Remove Firebase and Vercel deployment options
- Remove firebase package dependency - Delete apphosting.yaml configuration file - Update README.md to focus on AWS S3 deployment only - Update CLAUDE.md documentation accordingly - Clean up package-lock.json (removed 54 packages) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
cdfc23e563
commit
2b74d15a4c
6 changed files with 57 additions and 659 deletions
|
@ -17,7 +17,9 @@
|
||||||
"Bash(git reset:*)",
|
"Bash(git reset:*)",
|
||||||
"Bash(git checkout:*)",
|
"Bash(git checkout:*)",
|
||||||
"WebFetch(domain:cheatingchelsea.com)",
|
"WebFetch(domain:cheatingchelsea.com)",
|
||||||
"Bash(npm install:*)"
|
"Bash(npm install:*)",
|
||||||
|
"Bash(npm run typecheck:*)",
|
||||||
|
"Bash(rm:*)"
|
||||||
],
|
],
|
||||||
"deny": []
|
"deny": []
|
||||||
}
|
}
|
||||||
|
|
38
CLAUDE.md
38
CLAUDE.md
|
@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
||||||
|
|
||||||
## Project Overview
|
## Project Overview
|
||||||
|
|
||||||
This is a Next.js 15.3.3 application with TypeScript, React 18, and Firebase hosting. The app exposes harmful activities and supports Kristen Jacobs through a GoFundMe campaign.
|
This is a Next.js 15.3.3 application with TypeScript, React 18, and multiple deployment options. The app exposes harmful activities and supports Kristen Jacobs through a GoFundMe campaign.
|
||||||
|
|
||||||
## Essential Commands
|
## Essential Commands
|
||||||
|
|
||||||
|
@ -15,7 +15,8 @@ npm run genkit:dev # Start Genkit AI development server
|
||||||
npm run genkit:watch # Start Genkit with file watching
|
npm run genkit:watch # Start Genkit with file watching
|
||||||
|
|
||||||
# Production
|
# Production
|
||||||
npm run build # Build the Next.js application
|
npm run build # Build with git commit hash injection
|
||||||
|
npm run build:static # Standard Next.js build
|
||||||
npm run start # Start production server
|
npm run start # Start production server
|
||||||
|
|
||||||
# Quality Checks
|
# Quality Checks
|
||||||
|
@ -23,8 +24,8 @@ npm run lint # Run Next.js linting
|
||||||
npm run typecheck # Run TypeScript type checking
|
npm run typecheck # Run TypeScript type checking
|
||||||
|
|
||||||
# Deployment
|
# Deployment
|
||||||
npm run deploy:s3 # Deploy to AWS S3 bucket
|
npm run deploy:s3 # Deploy to AWS S3 bucket (requires S3_BUCKET_NAME env var)
|
||||||
npm run create-s3-bucket # Create S3 bucket for deployment
|
npm run create-s3-bucket # Interactive S3 bucket setup
|
||||||
```
|
```
|
||||||
|
|
||||||
## Architecture Overview
|
## Architecture Overview
|
||||||
|
@ -32,24 +33,33 @@ npm run create-s3-bucket # Create S3 bucket for deployment
|
||||||
### App Structure
|
### App Structure
|
||||||
- **App Router**: Uses Next.js App Router in `src/app/`
|
- **App Router**: Uses Next.js App Router in `src/app/`
|
||||||
- **Pages**: Homepage, Gallery (YouTube videos), Dadvocate (curated videos), Long Story
|
- **Pages**: Homepage, Gallery (YouTube videos), Dadvocate (curated videos), Long Story
|
||||||
- **Static Generation**: Pages use static generation with ISR for external data
|
- **Static Export**: Configured with `output: 'export'` for static hosting
|
||||||
- **Deployment**: Supports Static hosting (S3), Firebase App Hosting, and Vercel
|
- **Deployment**: AWS S3 static hosting
|
||||||
|
|
||||||
### Key Patterns
|
### Key Patterns
|
||||||
1. **UI Components**: Full shadcn/ui component library in `src/components/ui/`
|
1. **UI Components**: Full shadcn/ui component library in `src/components/ui/`
|
||||||
2. **Styling**: Tailwind CSS with custom theme, use `cn()` utility for class merging
|
2. **Styling**: Tailwind CSS with custom theme, use `cn()` utility for class merging
|
||||||
3. **Data Fetching**: Server-side fetching in page components with fallback data
|
3. **Data Fetching**: Server-side fetching with fallback data, 1-hour cache for YouTube API
|
||||||
4. **Environment Variables**: Only `YOUTUBE_API_KEY` is used
|
4. **Environment Variables**: `YOUTUBE_API_KEY` (required), `S3_BUCKET_NAME` (for deployment)
|
||||||
5. **Path Alias**: Use `@/` for imports from `src/` directory
|
5. **Path Alias**: Use `@/` for imports from `src/` directory
|
||||||
|
|
||||||
|
### Build & Deployment Details
|
||||||
|
- **Version Tracking**: Build process injects git commit hash into footer via `scripts/set-git-commit.js`
|
||||||
|
- **Static Files**: Build outputs to `out/` directory for S3 deployment
|
||||||
|
- **Build Errors**: TypeScript and ESLint errors are ignored (configured in next.config.ts)
|
||||||
|
- **S3 Deployment**: Uses dotenv-cli to load environment variables from `.env.local`
|
||||||
|
- **Pre-commit Hooks**: Husky installed for running lint checks before commits
|
||||||
|
|
||||||
### Development Notes
|
### Development Notes
|
||||||
- **Build Configuration**: TypeScript and ESLint errors are ignored during builds
|
- **No Testing Framework**: Project currently has no test setup
|
||||||
- **YouTube API**: Gallery and Dadvocate pages fetch video data with 1-hour cache
|
- **AI Integration**: Genkit configured with Google AI (Gemini 2.0 Flash) but minimally implemented
|
||||||
- **AI Integration**: Genkit setup exists but is minimally implemented
|
|
||||||
- **Theme**: Dark/light mode support via next-themes
|
- **Theme**: Dark/light mode support via next-themes
|
||||||
- **Pre-commit**: Husky runs linting before commits
|
- **Image Optimization**: Configured for YouTube thumbnails and placeholder images
|
||||||
|
|
||||||
### Adding Features
|
### Adding Features
|
||||||
- New pages: Create directory in `src/app/` with `page.tsx` and metadata export
|
- New pages: Create directory in `src/app/` with `page.tsx` and export metadata
|
||||||
- New components: Add to `src/components/` or use existing shadcn/ui components
|
- New components: Add to `src/components/` or use existing shadcn/ui components
|
||||||
- API integration: Use server components with async/await and error handling
|
- YouTube videos: Update video IDs in gallery/page.tsx or dadvocate/page.tsx, then rebuild
|
||||||
|
|
||||||
|
## Code Style Guidelines
|
||||||
|
- Always use 'tea' instead of 'gh'
|
10
README.md
10
README.md
|
@ -17,7 +17,7 @@ A Next.js application built to expose harmful activities and support Kristen Jac
|
||||||
- **Language**: TypeScript
|
- **Language**: TypeScript
|
||||||
- **UI Components**: shadcn/ui component library
|
- **UI Components**: shadcn/ui component library
|
||||||
- **Styling**: Tailwind CSS with custom theming
|
- **Styling**: Tailwind CSS with custom theming
|
||||||
- **Hosting**: Supports Static hosting (S3), Firebase App Hosting, and Vercel
|
- **Hosting**: AWS S3 static hosting
|
||||||
- **AI Integration**: Google Genkit (minimal implementation)
|
- **AI Integration**: Google Genkit (minimal implementation)
|
||||||
|
|
||||||
## 📋 Prerequisites
|
## 📋 Prerequisites
|
||||||
|
@ -89,14 +89,6 @@ This application supports multiple deployment platforms:
|
||||||
### Static Hosting (AWS S3)
|
### Static Hosting (AWS S3)
|
||||||
The project includes CI/CD workflow for automatic deployment to AWS S3.
|
The project includes CI/CD workflow for automatic deployment to AWS S3.
|
||||||
|
|
||||||
### Firebase App Hosting
|
|
||||||
Deploy using Firebase CLI:
|
|
||||||
```bash
|
|
||||||
firebase deploy
|
|
||||||
```
|
|
||||||
|
|
||||||
### Vercel
|
|
||||||
Deploy directly from Git repository through Vercel dashboard or CLI.
|
|
||||||
|
|
||||||
## 📁 Project Structure
|
## 📁 Project Structure
|
||||||
|
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
# Settings to manage and configure a Firebase App Hosting backend.
|
|
||||||
# https://firebase.google.com/docs/app-hosting/configure
|
|
||||||
|
|
||||||
runConfig:
|
|
||||||
# Increase this value if you'd like to automatically spin up
|
|
||||||
# more instances in response to increased traffic.
|
|
||||||
maxInstances: 1
|
|
653
package-lock.json
generated
653
package-lock.json
generated
|
@ -37,7 +37,6 @@
|
||||||
"date-fns": "^3.6.0",
|
"date-fns": "^3.6.0",
|
||||||
"dotenv": "^16.5.0",
|
"dotenv": "^16.5.0",
|
||||||
"embla-carousel-react": "^8.6.0",
|
"embla-carousel-react": "^8.6.0",
|
||||||
"firebase": "^11.9.1",
|
|
||||||
"genkit": "^1.13.0",
|
"genkit": "^1.13.0",
|
||||||
"lucide-react": "^0.475.0",
|
"lucide-react": "^0.475.0",
|
||||||
"next": "15.3.3",
|
"next": "15.3.3",
|
||||||
|
@ -59,6 +58,7 @@
|
||||||
"aws-cdk-lib": "^2.189.1",
|
"aws-cdk-lib": "^2.189.1",
|
||||||
"constructs": "^10.4.2",
|
"constructs": "^10.4.2",
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
|
"dotenv-cli": "^8.0.0",
|
||||||
"esbuild": "^0.25.5",
|
"esbuild": "^0.25.5",
|
||||||
"eslint": "^9.30.0",
|
"eslint": "^9.30.0",
|
||||||
"eslint-config-next": "15.3.4",
|
"eslint-config-next": "15.3.4",
|
||||||
|
@ -381,538 +381,6 @@
|
||||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@firebase/ai": {
|
|
||||||
"version": "1.4.0",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/app-check-interop-types": "0.3.3",
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/logger": "0.4.4",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18.0.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app": "0.x",
|
|
||||||
"@firebase/app-types": "0.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/analytics": {
|
|
||||||
"version": "0.10.16",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/installations": "0.6.17",
|
|
||||||
"@firebase/logger": "0.4.4",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app": "0.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/analytics-compat": {
|
|
||||||
"version": "0.2.22",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/analytics": "0.10.16",
|
|
||||||
"@firebase/analytics-types": "0.8.3",
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app-compat": "0.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/analytics-types": {
|
|
||||||
"version": "0.8.3",
|
|
||||||
"license": "Apache-2.0"
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/app": {
|
|
||||||
"version": "0.13.1",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/logger": "0.4.4",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"idb": "7.1.1",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/app-check": {
|
|
||||||
"version": "0.10.0",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/logger": "0.4.4",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18.0.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app": "0.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/app-check-compat": {
|
|
||||||
"version": "0.3.25",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/app-check": "0.10.0",
|
|
||||||
"@firebase/app-check-types": "0.5.3",
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/logger": "0.4.4",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18.0.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app-compat": "0.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/app-check-interop-types": {
|
|
||||||
"version": "0.3.3",
|
|
||||||
"license": "Apache-2.0"
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/app-check-types": {
|
|
||||||
"version": "0.5.3",
|
|
||||||
"license": "Apache-2.0"
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/app-compat": {
|
|
||||||
"version": "0.4.1",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/app": "0.13.1",
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/logger": "0.4.4",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/app-types": {
|
|
||||||
"version": "0.9.3",
|
|
||||||
"license": "Apache-2.0"
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/app/node_modules/idb": {
|
|
||||||
"version": "7.1.1",
|
|
||||||
"license": "ISC"
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/auth-compat": {
|
|
||||||
"version": "0.5.27",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/auth": "1.10.7",
|
|
||||||
"@firebase/auth-types": "0.13.0",
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18.0.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app-compat": "0.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/auth-compat/node_modules/@firebase/auth": {
|
|
||||||
"version": "1.10.7",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/logger": "0.4.4",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18.0.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app": "0.x",
|
|
||||||
"@react-native-async-storage/async-storage": "^1.18.1"
|
|
||||||
},
|
|
||||||
"peerDependenciesMeta": {
|
|
||||||
"@react-native-async-storage/async-storage": {
|
|
||||||
"optional": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/auth-interop-types": {
|
|
||||||
"version": "0.2.4",
|
|
||||||
"license": "Apache-2.0"
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/auth-types": {
|
|
||||||
"version": "0.13.0",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app-types": "0.x",
|
|
||||||
"@firebase/util": "1.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/component": {
|
|
||||||
"version": "0.6.17",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/data-connect": {
|
|
||||||
"version": "0.3.9",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/auth-interop-types": "0.2.4",
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/logger": "0.4.4",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app": "0.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/database": {
|
|
||||||
"version": "1.0.19",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/app-check-interop-types": "0.3.3",
|
|
||||||
"@firebase/auth-interop-types": "0.2.4",
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/logger": "0.4.4",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"faye-websocket": "0.11.4",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/database-compat": {
|
|
||||||
"version": "2.0.10",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/database": "1.0.19",
|
|
||||||
"@firebase/database-types": "1.0.14",
|
|
||||||
"@firebase/logger": "0.4.4",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/database-types": {
|
|
||||||
"version": "1.0.14",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/app-types": "0.9.3",
|
|
||||||
"@firebase/util": "1.12.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/firestore": {
|
|
||||||
"version": "4.7.17",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/logger": "0.4.4",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"@firebase/webchannel-wrapper": "1.0.3",
|
|
||||||
"@grpc/grpc-js": "~1.9.0",
|
|
||||||
"@grpc/proto-loader": "^0.7.8",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18.0.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app": "0.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/firestore-compat": {
|
|
||||||
"version": "0.3.52",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/firestore": "4.7.17",
|
|
||||||
"@firebase/firestore-types": "3.0.3",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18.0.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app-compat": "0.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/firestore-types": {
|
|
||||||
"version": "3.0.3",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app-types": "0.x",
|
|
||||||
"@firebase/util": "1.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/functions": {
|
|
||||||
"version": "0.12.8",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/app-check-interop-types": "0.3.3",
|
|
||||||
"@firebase/auth-interop-types": "0.2.4",
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/messaging-interop-types": "0.2.3",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18.0.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app": "0.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/functions-compat": {
|
|
||||||
"version": "0.3.25",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/functions": "0.12.8",
|
|
||||||
"@firebase/functions-types": "0.6.3",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18.0.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app-compat": "0.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/functions-types": {
|
|
||||||
"version": "0.6.3",
|
|
||||||
"license": "Apache-2.0"
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/installations": {
|
|
||||||
"version": "0.6.17",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"idb": "7.1.1",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app": "0.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/installations-compat": {
|
|
||||||
"version": "0.2.17",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/installations": "0.6.17",
|
|
||||||
"@firebase/installations-types": "0.5.3",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app-compat": "0.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/installations-types": {
|
|
||||||
"version": "0.5.3",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app-types": "0.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/installations/node_modules/idb": {
|
|
||||||
"version": "7.1.1",
|
|
||||||
"license": "ISC"
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/logger": {
|
|
||||||
"version": "0.4.4",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/messaging": {
|
|
||||||
"version": "0.12.21",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/installations": "0.6.17",
|
|
||||||
"@firebase/messaging-interop-types": "0.2.3",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"idb": "7.1.1",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app": "0.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/messaging-compat": {
|
|
||||||
"version": "0.2.21",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/messaging": "0.12.21",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app-compat": "0.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/messaging-interop-types": {
|
|
||||||
"version": "0.2.3",
|
|
||||||
"license": "Apache-2.0"
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/messaging/node_modules/idb": {
|
|
||||||
"version": "7.1.1",
|
|
||||||
"license": "ISC"
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/performance": {
|
|
||||||
"version": "0.7.6",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/installations": "0.6.17",
|
|
||||||
"@firebase/logger": "0.4.4",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"tslib": "^2.1.0",
|
|
||||||
"web-vitals": "^4.2.4"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app": "0.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/performance-compat": {
|
|
||||||
"version": "0.2.19",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/logger": "0.4.4",
|
|
||||||
"@firebase/performance": "0.7.6",
|
|
||||||
"@firebase/performance-types": "0.2.3",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app-compat": "0.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/performance-types": {
|
|
||||||
"version": "0.2.3",
|
|
||||||
"license": "Apache-2.0"
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/remote-config": {
|
|
||||||
"version": "0.6.4",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/installations": "0.6.17",
|
|
||||||
"@firebase/logger": "0.4.4",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app": "0.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/remote-config-compat": {
|
|
||||||
"version": "0.2.17",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/logger": "0.4.4",
|
|
||||||
"@firebase/remote-config": "0.6.4",
|
|
||||||
"@firebase/remote-config-types": "0.4.0",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app-compat": "0.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/remote-config-types": {
|
|
||||||
"version": "0.4.0",
|
|
||||||
"license": "Apache-2.0"
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/storage": {
|
|
||||||
"version": "0.13.13",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18.0.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app": "0.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/storage-compat": {
|
|
||||||
"version": "0.3.23",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/storage": "0.13.13",
|
|
||||||
"@firebase/storage-types": "0.8.3",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18.0.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app-compat": "0.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/storage-types": {
|
|
||||||
"version": "0.8.3",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app-types": "0.x",
|
|
||||||
"@firebase/util": "1.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/util": {
|
|
||||||
"version": "1.12.0",
|
|
||||||
"hasInstallScript": true,
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@firebase/webchannel-wrapper": {
|
|
||||||
"version": "1.0.3",
|
|
||||||
"license": "Apache-2.0"
|
|
||||||
},
|
|
||||||
"node_modules/@floating-ui/core": {
|
"node_modules/@floating-ui/core": {
|
||||||
"version": "1.7.1",
|
"version": "1.7.1",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
@ -6011,6 +5479,32 @@
|
||||||
"url": "https://dotenvx.com"
|
"url": "https://dotenvx.com"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/dotenv-cli": {
|
||||||
|
"version": "8.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/dotenv-cli/-/dotenv-cli-8.0.0.tgz",
|
||||||
|
"integrity": "sha512-aLqYbK7xKOiTMIRf1lDPbI+Y+Ip/wo5k3eyp6ePysVaSqbyxjyK3dK35BTxG+rmd7djf5q2UPs4noPNH+cj0Qw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"cross-spawn": "^7.0.6",
|
||||||
|
"dotenv": "^16.3.0",
|
||||||
|
"dotenv-expand": "^10.0.0",
|
||||||
|
"minimist": "^1.2.6"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"dotenv": "cli.js"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/dotenv-expand": {
|
||||||
|
"version": "10.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz",
|
||||||
|
"integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "BSD-2-Clause",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/dotprompt": {
|
"node_modules/dotprompt": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
|
@ -7170,16 +6664,6 @@
|
||||||
"reusify": "^1.0.4"
|
"reusify": "^1.0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/faye-websocket": {
|
|
||||||
"version": "0.11.4",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"websocket-driver": ">=0.5.1"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.8.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/fd-slicer": {
|
"node_modules/fd-slicer": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
@ -7269,62 +6753,6 @@
|
||||||
"micromatch": "^4.0.2"
|
"micromatch": "^4.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/firebase": {
|
|
||||||
"version": "11.9.1",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/ai": "1.4.0",
|
|
||||||
"@firebase/analytics": "0.10.16",
|
|
||||||
"@firebase/analytics-compat": "0.2.22",
|
|
||||||
"@firebase/app": "0.13.1",
|
|
||||||
"@firebase/app-check": "0.10.0",
|
|
||||||
"@firebase/app-check-compat": "0.3.25",
|
|
||||||
"@firebase/app-compat": "0.4.1",
|
|
||||||
"@firebase/app-types": "0.9.3",
|
|
||||||
"@firebase/auth": "1.10.7",
|
|
||||||
"@firebase/auth-compat": "0.5.27",
|
|
||||||
"@firebase/data-connect": "0.3.9",
|
|
||||||
"@firebase/database": "1.0.19",
|
|
||||||
"@firebase/database-compat": "2.0.10",
|
|
||||||
"@firebase/firestore": "4.7.17",
|
|
||||||
"@firebase/firestore-compat": "0.3.52",
|
|
||||||
"@firebase/functions": "0.12.8",
|
|
||||||
"@firebase/functions-compat": "0.3.25",
|
|
||||||
"@firebase/installations": "0.6.17",
|
|
||||||
"@firebase/installations-compat": "0.2.17",
|
|
||||||
"@firebase/messaging": "0.12.21",
|
|
||||||
"@firebase/messaging-compat": "0.2.21",
|
|
||||||
"@firebase/performance": "0.7.6",
|
|
||||||
"@firebase/performance-compat": "0.2.19",
|
|
||||||
"@firebase/remote-config": "0.6.4",
|
|
||||||
"@firebase/remote-config-compat": "0.2.17",
|
|
||||||
"@firebase/storage": "0.13.13",
|
|
||||||
"@firebase/storage-compat": "0.3.23",
|
|
||||||
"@firebase/util": "1.12.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/firebase/node_modules/@firebase/auth": {
|
|
||||||
"version": "1.10.7",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@firebase/component": "0.6.17",
|
|
||||||
"@firebase/logger": "0.4.4",
|
|
||||||
"@firebase/util": "1.12.0",
|
|
||||||
"tslib": "^2.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18.0.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@firebase/app": "0.x",
|
|
||||||
"@react-native-async-storage/async-storage": "^1.18.1"
|
|
||||||
},
|
|
||||||
"peerDependenciesMeta": {
|
|
||||||
"@react-native-async-storage/async-storage": {
|
|
||||||
"optional": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/flat-cache": {
|
"node_modules/flat-cache": {
|
||||||
"version": "4.0.1",
|
"version": "4.0.1",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
@ -8028,10 +7456,6 @@
|
||||||
"node": ">= 0.8"
|
"node": ">= 0.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/http-parser-js": {
|
|
||||||
"version": "0.5.10",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/http-proxy-agent": {
|
"node_modules/http-proxy-agent": {
|
||||||
"version": "5.0.0",
|
"version": "5.0.0",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
@ -11923,33 +11347,10 @@
|
||||||
"node": ">= 8"
|
"node": ">= 8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/web-vitals": {
|
|
||||||
"version": "4.2.4",
|
|
||||||
"license": "Apache-2.0"
|
|
||||||
},
|
|
||||||
"node_modules/webidl-conversions": {
|
"node_modules/webidl-conversions": {
|
||||||
"version": "3.0.1",
|
"version": "3.0.1",
|
||||||
"license": "BSD-2-Clause"
|
"license": "BSD-2-Clause"
|
||||||
},
|
},
|
||||||
"node_modules/websocket-driver": {
|
|
||||||
"version": "0.7.4",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"http-parser-js": ">=0.5.1",
|
|
||||||
"safe-buffer": ">=5.1.0",
|
|
||||||
"websocket-extensions": ">=0.1.1"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.8.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/websocket-extensions": {
|
|
||||||
"version": "0.1.4",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.8.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/whatwg-url": {
|
"node_modules/whatwg-url": {
|
||||||
"version": "5.0.0",
|
"version": "5.0.0",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
"start": "next start",
|
"start": "next start",
|
||||||
"lint": "next lint",
|
"lint": "next lint",
|
||||||
"typecheck": "tsc --noEmit",
|
"typecheck": "tsc --noEmit",
|
||||||
"deploy:s3": "npm run build && aws s3 sync out/ s3://$S3_BUCKET_NAME --delete",
|
"deploy:s3": "npm run build && dotenv -e .env.local -- aws s3 sync out/ s3://$S3_BUCKET_NAME --delete",
|
||||||
"create-s3-bucket": "node scripts/create-s3-bucket.js",
|
"create-s3-bucket": "node scripts/create-s3-bucket.js",
|
||||||
"prepare": "husky install"
|
"prepare": "husky install"
|
||||||
},
|
},
|
||||||
|
@ -45,7 +45,6 @@
|
||||||
"date-fns": "^3.6.0",
|
"date-fns": "^3.6.0",
|
||||||
"dotenv": "^16.5.0",
|
"dotenv": "^16.5.0",
|
||||||
"embla-carousel-react": "^8.6.0",
|
"embla-carousel-react": "^8.6.0",
|
||||||
"firebase": "^11.9.1",
|
|
||||||
"genkit": "^1.13.0",
|
"genkit": "^1.13.0",
|
||||||
"lucide-react": "^0.475.0",
|
"lucide-react": "^0.475.0",
|
||||||
"next": "15.3.3",
|
"next": "15.3.3",
|
||||||
|
@ -67,6 +66,7 @@
|
||||||
"aws-cdk-lib": "^2.189.1",
|
"aws-cdk-lib": "^2.189.1",
|
||||||
"constructs": "^10.4.2",
|
"constructs": "^10.4.2",
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
|
"dotenv-cli": "^8.0.0",
|
||||||
"esbuild": "^0.25.5",
|
"esbuild": "^0.25.5",
|
||||||
"eslint": "^9.30.0",
|
"eslint": "^9.30.0",
|
||||||
"eslint-config-next": "15.3.4",
|
"eslint-config-next": "15.3.4",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue