{ "name": "@stackframe/monorepo", "version": "0.0.0", "private": true, "repository": "", "scripts": { "pre-no-codegen": "npx -y only-allow pnpm", "pre-preinstall": "npx -y only-allow pnpm && node -e \"if(process.env.STACK_SKIP_TEMPLATE_GENERATION !== 'true') require('child_process').execSync('npx --package=tsx tsx ./scripts/generate-sdks.ts', {stdio: 'inherit'})\"", "pre": "pnpm pre-preinstall", "preinstall": "pnpm pre-preinstall", "typecheck": "pnpm pre && turbo typecheck", "build:dev": "pnpm pre && NODE_ENV=development pnpm run build", "build": "pnpm pre && turbo build", "build:backend": "pnpm pre && turbo run build --filter=@stackframe/stack-backend...", "build:dashboard": "pnpm pre && turbo run build --filter=@stackframe/stack-dashboard...", "build:demo": "pnpm pre && turbo run build --filter=demo-app...", "build:docs": "pnpm run build:packages-only && pnpm run build:backend && turbo run generate-openapi-fumadocs && pnpm run --filter=@stackframe/stack-docs generate-docs && pnpm run --filter=@stackframe/stack-docs generate-openapi-docs && turbo run build --filter=@stackframe/stack-docs", "build:packages": "pnpm pre && turbo run build --filter=./packages/*", "build:packages-only": "turbo run build --filter=./packages/*", "claude-code": "pnpm pre && npx -y @anthropic-ai/claude-code@latest", "codebuff": "pnpm pre && npx codebuff", "restart-dev-in-background": "pnpm pre && pnpm run kill-dev:named && (pnpm run dev:named > dev-server.log.untracked.txt 2>&1 &) && echo 'Starting dev server in background... (Logs are in dev-server.log.untracked.txt)' && npx wait-on http://localhost:8102 -t 120000 && echo 'Dev server running.'", "restart-dev-environment": "pnpm pre && concurrently \"pnpm run build:packages && pnpm run codegen\" \"pnpm run restart-deps\" && pnpm run restart-dev-in-background", "stop-dev-environment": "pnpm pre && pnpm run kill-dev:named && pnpm run stop-deps", "clean": "pnpm pre-no-codegen && turbo run clean && rimraf --glob **/.next && rimraf --glob **/.turbo && rimraf .turbo && rimraf --glob **/node_modules", "codegen": "pnpm pre && turbo run codegen && pnpm run generate-sdks && pnpm run generate-openapi-fumadocs", "deps-compose": "docker compose -p stack-dependencies -f docker/dependencies/docker.compose.yaml", "stop-deps": "POSTGRES_DELAY_MS=0 pnpm run deps-compose kill && POSTGRES_DELAY_MS=0 pnpm run deps-compose down -v", "wait-until-postgres-is-ready:pg_isready": "until pg_isready -h localhost -p 5432; do sleep 1; done", "wait-until-postgres-is-ready": "command -v pg_isready >/dev/null 2>&1 && pnpm run wait-until-postgres-is-ready:pg_isready || sleep 10 # not everyone has pg_isready installed, so we fallback to sleeping", "start-deps:no-delay": "pnpm pre && pnpm run deps-compose up --detach --build && pnpm run wait-until-postgres-is-ready && pnpm run db:init && echo \"\\nDependencies started in the background as Docker containers. 'pnpm run stop-deps' to stop them\"n", "start-deps": "POSTGRES_DELAY_MS=${POSTGRES_DELAY_MS:-20} pnpm run start-deps:no-delay", "restart-deps": "pnpm pre && pnpm run stop-deps && pnpm run start-deps", "restart-deps:no-delay": "pnpm pre && pnpm run stop-deps && pnpm run start-deps:no-delay", "psql": "pnpm pre && pnpm run --filter=@stackframe/stack-backend psql", "explain-query": "pnpm pre && echo 'Paste your query (end with Ctrl-D):' && query=$(cat) && echo 'Connecting to Postgres...' && printf \"EXPLAIN (ANALYZE, COSTS, VERBOSE, BUFFERS, FORMAT JSON)\n$query\" | pnpm run --silent psql -qAt | sed -n '/\\[/,$p' > explained-query.untracked.json && echo 'Explained query saved to explained-query.untracked.json. To analyze it, open it in the query analyzer at https://tatiyants.com/pev/#/plans/new'", "db:migration-gen": "pnpm pre && pnpm run --filter=@stackframe/stack-backend db:migration-gen", "db:reset": "pnpm pre && pnpm run --filter=@stackframe/stack-backend db:reset", "db:seed": "pnpm pre && pnpm run --filter=@stackframe/stack-backend db:seed", "db:init": "pnpm pre && pnpm run --filter=@stackframe/stack-backend db:init", "db:migrate": "pnpm pre && pnpm run --filter=@stackframe/stack-backend db:migrate", "fern": "pnpm pre && pnpm run --filter=@stackframe/docs fern", "dev:full": "pnpm pre && concurrently -k \"pnpm run generate-sdks:watch\" \"pnpm run generate-docs:watch\" \"turbo run dev --concurrency 99999\"", "dev": "pnpm pre && concurrently -k \"pnpm run generate-sdks:watch\" \"pnpm run generate-docs:watch\" \"pnpm run generate-openapi-docs:watch\" \"turbo run dev --concurrency 99999 --filter=./apps/* --filter=@stackframe/stack-docs --filter=./packages/* --filter=./examples/demo \"", "dev:basic": "pnpm pre && concurrently -k \"pnpm run generate-sdks:watch\" \"pnpm run generate-docs:watch\" \"turbo run dev --concurrency 99999 --filter=@stackframe/stack-backend --filter=@stackframe/stack-dashboard --filter=@stackframe/mock-oauth-server\"", "dev:docs": "pnpm pre && concurrently -k \"pnpm run generate-docs:watch\" \"pnpm run generate-openapi-docs:watch\" \"turbo run dev --concurrency 99999 --filter=@stackframe/stack-docs\"", "dev:named": "pnpm pre && concurrently -k \"pnpm run dev\" \"node -e \\\"process.title='node (stack-named-dev-server)'; process.stdin.resume();\\\"\"", "kill-dev:named": "(pgrep -f 'stack-named-dev-server' | xargs -r -n1 pkill -P); echo 'Killed named dev server (if found). Sleeping to give some time for it to shut down...' && sleep 10", "start": "pnpm pre && turbo run start --concurrency 99999", "start:backend": "pnpm pre && turbo run start --concurrency 99999 --filter=@stackframe/stack-backend", "start:dashboard": "pnpm pre && turbo run start --concurrency 99999 --filter=@stackframe/stack-dashboard", "start:mock-oauth-server": "pnpm pre && turbo run start --concurrency 99999 --filter=@stackframe/mock-oauth-server", "lint": "pnpm pre && turbo run lint -- --max-warnings=0", "release": "pnpm pre && release", "peek": "pnpm pre && pnpm release --peek", "changeset": "pnpm pre && changeset", "test": "pnpm pre && vitest", "test:e2e": "pnpm pre && vitest e2e/tests", "test:unit": "pnpm pre && vitest src", "verify-data-integrity": "pnpm pre && pnpm -C apps/backend run verify-data-integrity", "generate-openapi-fumadocs": "turbo run generate-openapi-fumadocs", "generate-keys": "pnpm pre && turbo run generate-keys", "generate-sdks": "npx --package=tsx tsx ./scripts/generate-sdks.ts", "generate-sdks:watch": "chokidar --silent -c 'pnpm run generate-sdks' './packages/template' --ignore './packages/template/package.json' --ignore '**/node_modules/**' --ignore '**/dist/**' --ignore '**/.turbo/**' --throttle 2000", "generate-docs": "pnpm run build:packages-only && turbo run generate-openapi-fumadocs && pnpm run --filter=@stackframe/stack-docs generate-docs && pnpm run --filter=@stackframe/stack-docs generate-openapi-docs", "generate-docs:watch": "chokidar --silent -c 'pnpm run generate-docs' './docs/templates' --throttle 2000", "generate-openapi-docs:watch": "chokidar --silent -c 'pnpm run --filter=@stackframe/stack-docs generate-openapi-docs' './docs/public/openapi/{admin,client,server,webhooks}.json' --throttle 2000" }, "devDependencies": { "@changesets/cli": "^2.27.9", "@testing-library/react": "^15.0.7", "@types/node": "20.17.6", "@types/supertest": "^6.0.2", "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", "@vitejs/plugin-react": "^4.3.3", "chokidar-cli": "^3.0.0", "codebuff": "^1.0.261", "concurrently": "^8.2.2", "esbuild": "^0.24.0", "eslint": "8.30.0", "eslint-config-next": "^14.2.17", "eslint-plugin-import": "^2.31.0", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^6.6.0", "eslint-plugin-react": "^7.37.2", "jsdom": "^24.1.3", "only-allow": "^1.2.1", "rimraf": "^5.0.10", "tsup": "^8.3.5", "turbo": "^2.2.3", "typescript": "5.3.3", "vite-tsconfig-paths": "^4.3.2", "vitest": "^1.6.0", "wait-on": "^8.0.1" }, "pnpm": { "overrides": { "@types/react": "^18.2.0", "@types/react-dom": "^18.2.0" }, "patchedDependencies": { "openid-client@5.6.4": "patches/openid-client@5.6.4.patch" } }, "engines": { "npm": ">=10.0.0", "node": ">=20.0.0" }, "packageManager": "pnpm@9.1.2", "dependencies": { "commander": "^13.1.0", "tsx": "^4.19.3", "yaml": "^2.4.5" } }