- Add scripts/generate-secrets.mjs: plain ESM script that prints SESSION_SECRET + APP_PASSWORD_ENCRYPTION_KEY (32 random bytes each, hex-encoded) and VAPID_PUBLIC_KEY + VAPID_PRIVATE_KEY from web-push generateVAPIDKeys() — all to stdout only (SC-3: nothing written to disk) - Resolve web-push as CommonJS default import from apps/api/node_modules (avoids a root-level dependency; named-export ESM form not supported) - Wire root package.json "generate-secrets" script: node scripts/generate-secrets.mjs
31 lines
1009 B
JSON
31 lines
1009 B
JSON
{
|
|
"name": "familysync",
|
|
"private": true,
|
|
"type": "module",
|
|
"packageManager": "pnpm@11.5.1",
|
|
"scripts": {
|
|
"dev:api": "pnpm --filter @familysync/api dev",
|
|
"dev:pwa": "pnpm --filter @familysync/pwa dev",
|
|
"build": "pnpm --filter @familysync/api build && pnpm --filter @familysync/pwa build",
|
|
"test": "pnpm --filter @familysync/api test",
|
|
"test:e2e": "pnpm --filter @familysync/pwa test:e2e",
|
|
"lint": "pnpm -r --if-present lint",
|
|
"typecheck": "pnpm -r typecheck",
|
|
"format": "prettier --write .",
|
|
"format:check": "prettier --check .",
|
|
"md:lint": "markdownlint-cli2",
|
|
"generate-secrets": "node scripts/generate-secrets.mjs"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "9.39.4",
|
|
"eslint": "9.39.4",
|
|
"eslint-config-prettier": "10.1.8",
|
|
"eslint-plugin-react": "7.37.5",
|
|
"eslint-plugin-react-hooks": "7.1.1",
|
|
"eslint-plugin-security": "3.0.1",
|
|
"markdownlint-cli2": "0.22.1",
|
|
"prettier": "3.8.4",
|
|
"typescript-eslint": "8.61.0"
|
|
}
|
|
}
|