6e2d794130
- @app/storage med MockStorage + AwsStorage delas mellan API och worker - Workerns readUrl() ger presignerad S3-URL i aws-läge (fixar mock-s3 404) - sync-env-from-ssm.py hämtar /cibello/prod/* och skriver .env; first-deploy.sh kör det i prod - /readyz returnerar 503 om app.aamos.healthCheck() misslyckas - docs/SECRETS.md med rotations- och SSM-regler
70 lines
2.0 KiB
JSON
70 lines
2.0 KiB
JSON
{
|
||
"name": "@app/api",
|
||
"version": "0.1.0",
|
||
"private": true,
|
||
"type": "module",
|
||
"description": "Food API – enda ingången för mobilappen (spec §31, §50)",
|
||
"scripts": {
|
||
"dev": "tsx watch src/index.ts",
|
||
"start": "node dist/index.js",
|
||
"build": "tsup src/index.ts --format esm --target node22 --sourcemap --clean",
|
||
"typecheck": "tsc --noEmit",
|
||
"test": "vitest run --fileParallelism=false"
|
||
},
|
||
"dependencies": {
|
||
"@app/ai-contracts": "workspace:*",
|
||
"@app/analytics": "workspace:*",
|
||
"@app/connectors": "workspace:*",
|
||
"@app/database": "workspace:*",
|
||
"@app/events": "workspace:*",
|
||
"@app/feature-flags": "workspace:*",
|
||
"@app/inventory-engine": "workspace:*",
|
||
"@app/memory-client": "workspace:*",
|
||
"@app/nutrition-engine": "workspace:*",
|
||
"@app/recipe-engine": "workspace:*",
|
||
"@app/recommendation-engine": "workspace:*",
|
||
"@app/shared-types": "workspace:*",
|
||
"@app/storage": "workspace:*",
|
||
"@app/subscriptions": "workspace:*",
|
||
"@app/validation": "workspace:*",
|
||
"@aws-sdk/client-s3": "^3.1102.0",
|
||
"@aws-sdk/s3-request-presigner": "^3.1102.0",
|
||
"@fastify/cors": "^11.0.0",
|
||
"@fastify/jwt": "^10.0.0",
|
||
"@fastify/rate-limit": "^10.0.0",
|
||
"bullmq": "^6.0.0",
|
||
"dotenv": "^16.4.0",
|
||
"drizzle-orm": "^0.45.0",
|
||
"fastify": "^5.6.0",
|
||
"fastify-plugin": "^5.0.0",
|
||
"ioredis": "^6.0.0",
|
||
"nodemailer": "^9.0.3",
|
||
"pg": "^8.13.0",
|
||
"zod": "^4.4.0"
|
||
},
|
||
"devDependencies": {
|
||
"@types/nodemailer": "^8.0.1",
|
||
"@types/pg": "^8.11.0",
|
||
"tsup": "^8.3.0"
|
||
},
|
||
"tsup": {
|
||
"noExternal": [
|
||
"@app/ai-contracts",
|
||
"@app/analytics",
|
||
"@app/connectors",
|
||
"@app/database",
|
||
"@app/events",
|
||
"@app/feature-flags",
|
||
"@app/inventory-engine",
|
||
"@app/memory-client",
|
||
"@app/nutrition-engine",
|
||
"@app/recipe-engine",
|
||
"@app/recommendation-engine",
|
||
"@app/shared-types",
|
||
"@app/storage",
|
||
"@app/subscriptions",
|
||
"@app/validation"
|
||
]
|
||
}
|
||
}
|