mirror of
https://github.com/stack-auth/stack.git
synced 2026-06-13 21:01:21 +08:00
<!--
Make sure you've read the CONTRIBUTING.md guidelines:
https://github.com/stack-auth/stack-auth/blob/dev/CONTRIBUTING.md
-->
<!-- ELLIPSIS_HIDDEN -->
----
> [!IMPORTANT]
> Introduces an automated database migration system, replacing manual
Prisma commands with new scripts and updating workflows, configurations,
and tests accordingly.
>
> - **Auto-Migration System**:
> - Introduces `db-migrations.ts` script for handling database
migrations automatically.
> - Adds utility functions in `utils.tsx` for managing migration files.
> - Implements `applyMigrations` and `runMigrationNeeded` in `index.tsx`
for executing migrations.
> - **Workflow and Scripts**:
> - Updates GitHub workflows (`check-prisma-migrations.yaml`,
`e2e-api-tests.yaml`) to use new migration commands.
> - Replaces `prisma migrate` commands with `db:init`, `db:migrate`,
etc., in `package.json` and `README.md`.
> - **Testing**:
> - Adds `auto-migration.tests.ts` for testing migration logic and
concurrency handling.
> - **Configuration**:
> - Updates `.env.development` and `vitest.config.ts` for new
environment variables and paths.
> - Modifies `turbo.json` and `package.json` to include new migration
tasks and scripts.
>
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=stack-auth%2Fstack-auth&utm_source=github&utm_medium=referral)<sup>
for 2c24183879. You can
[customize](https://app.ellipsis.dev/stack-auth/settings/summaries) this
summary. It will automatically update as commits are pushed.</sup>
<!-- ELLIPSIS_HIDDEN -->
---------
Co-authored-by: Konsti Wohlwend <n2d4xc@gmail.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
120 lines
5.2 KiB
JSON
120 lines
5.2 KiB
JSON
{
|
|
"name": "@stackframe/stack-backend",
|
|
"version": "2.8.24",
|
|
"private": true,
|
|
"scripts": {
|
|
"clean": "rimraf src/generated && rimraf .next && rimraf node_modules",
|
|
"typecheck": "tsc --noEmit",
|
|
"with-env": "dotenv -c development --",
|
|
"with-env:prod": "dotenv -c --",
|
|
"dev": "concurrently -n \"dev,codegen,prisma-studio\" -k \"next dev --turbopack --port 8102\" \"pnpm run codegen:watch\" \"pnpm run prisma-studio\"",
|
|
"build": "pnpm run codegen && next build",
|
|
"docker-build": "pnpm run codegen && next build --experimental-build-mode compile",
|
|
"build-self-host-seed-script": "tsup --config prisma/tsup.config.ts",
|
|
"analyze-bundle": "ANALYZE_BUNDLE=1 pnpm run build",
|
|
"start": "next start --port 8102",
|
|
"codegen-prisma": "pnpm run prisma generate",
|
|
"codegen-prisma:watch": "pnpm run prisma generate --watch",
|
|
"codegen-route-info": "pnpm run with-env tsx scripts/generate-route-info.ts",
|
|
"codegen-route-info:watch": "pnpm run with-env tsx watch --clear-screen=false scripts/generate-route-info.ts",
|
|
"codegen": "pnpm run with-env pnpm run generate-migration-imports && pnpm run with-env bash -c 'if [ \"$STACK_ACCELERATE_ENABLED\" = \"true\" ]; then pnpm run prisma generate --no-engine && pnpm run generate-openapi; else pnpm run codegen-prisma && pnpm run generate-openapi; fi' && pnpm run codegen-route-info",
|
|
"codegen:watch": "concurrently -n \"prisma,docs,route-info\" -k \"pnpm run codegen-prisma:watch\" \"pnpm run watch-docs\" \"pnpm run codegen-route-info:watch\"",
|
|
"psql-inner": "psql $STACK_DATABASE_CONNECTION_STRING",
|
|
"psql": "pnpm run with-env pnpm run psql-inner",
|
|
"prisma-studio": "pnpm run with-env prisma studio --port 8106 --browser none",
|
|
"prisma": "pnpm run with-env prisma",
|
|
"db:migration-gen": "pnpm run with-env tsx scripts/db-migrations.ts generate-migration-file",
|
|
"db:reset": "pnpm run with-env tsx scripts/db-migrations.ts reset",
|
|
"db:seed": "pnpm run with-env tsx scripts/db-migrations.ts seed",
|
|
"db:init": "pnpm run with-env tsx scripts/db-migrations.ts init",
|
|
"db:migrate": "pnpm run with-env tsx scripts/db-migrations.ts migrate",
|
|
"generate-migration-imports": "pnpm run with-env tsx scripts/generate-migration-imports.ts",
|
|
"generate-migration-imports:watch": "chokidar 'prisma/migrations/**/*.sql' -c 'pnpm run generate-migration-imports'",
|
|
"lint": "next lint",
|
|
"watch-docs": "pnpm run with-env bash -c 'tsx watch --clear-screen=false scripts/generate-openapi-fumadocs.ts && pnpm run --filter=@stackframe/stack-docs generate-openapi-docs'",
|
|
"generate-openapi": "pnpm run with-env tsx scripts/generate-openapi.ts",
|
|
"generate-openapi-fumadocs": "pnpm run with-env tsx scripts/generate-openapi-fumadocs.ts",
|
|
"generate-keys": "pnpm run with-env tsx scripts/generate-keys.ts",
|
|
"db-seed-script": "pnpm run with-env tsx prisma/seed.ts",
|
|
"verify-data-integrity": "pnpm run with-env tsx scripts/verify-data-integrity.ts"
|
|
},
|
|
"prisma": {
|
|
"seed": "pnpm run db-seed-script"
|
|
},
|
|
"dependencies": {
|
|
"@ai-sdk/openai": "^1.3.23",
|
|
"@next/bundle-analyzer": "15.2.3",
|
|
"@node-oauth/oauth2-server": "^5.1.0",
|
|
"@opentelemetry/api": "^1.9.0",
|
|
"@opentelemetry/api-logs": "^0.53.0",
|
|
"@opentelemetry/context-async-hooks": "^1.26.0",
|
|
"@opentelemetry/core": "^1.26.0",
|
|
"@opentelemetry/exporter-trace-otlp-http": "^0.53.0",
|
|
"@opentelemetry/instrumentation": "^0.53.0",
|
|
"@opentelemetry/resources": "^1.26.0",
|
|
"@opentelemetry/sdk-logs": "^0.53.0",
|
|
"@opentelemetry/sdk-trace-base": "^1.26.0",
|
|
"@opentelemetry/sdk-trace-node": "^1.26.0",
|
|
"@opentelemetry/semantic-conventions": "^1.27.0",
|
|
"@oslojs/otp": "^1.1.0",
|
|
"@prisma/adapter-neon": "^6.12.0",
|
|
"@prisma/adapter-pg": "^6.12.0",
|
|
"@prisma/client": "^6.12.0",
|
|
"@prisma/instrumentation": "^6.12.0",
|
|
"@sentry/nextjs": "^8.40.0",
|
|
"@simplewebauthn/server": "^11.0.0",
|
|
"@stackframe/stack-emails": "workspace:*",
|
|
"@stackframe/stack-shared": "workspace:*",
|
|
"@vercel/functions": "^2.0.0",
|
|
"@vercel/otel": "^1.10.4",
|
|
"ai": "^4.3.17",
|
|
"bcrypt": "^5.1.1",
|
|
"chokidar-cli": "^3.0.0",
|
|
"dotenv": "^16.4.5",
|
|
"dotenv-cli": "^7.3.0",
|
|
"freestyle-sandboxes": "^0.0.92",
|
|
"jose": "^5.2.2",
|
|
"json-diff": "^1.0.6",
|
|
"next": "15.4.1",
|
|
"nodemailer": "^6.9.10",
|
|
"oidc-provider": "^8.5.1",
|
|
"openid-client": "5.6.4",
|
|
"postgres": "^3.4.5",
|
|
"pg": "^8.16.3",
|
|
"posthog-node": "^4.1.0",
|
|
"react": "19.0.0",
|
|
"react-dom": "19.0.0",
|
|
"semver": "^7.6.3",
|
|
"sharp": "^0.32.6",
|
|
"svix": "^1.25.0",
|
|
"vite": "^6.1.0",
|
|
"yaml": "^2.4.5",
|
|
"yup": "^1.4.0",
|
|
"zod": "^3.23.8"
|
|
},
|
|
"devDependencies": {
|
|
"@simplewebauthn/types": "^11.0.0",
|
|
"@types/json-diff": "^1.0.3",
|
|
"@types/node": "20.17.6",
|
|
"@types/nodemailer": "^6.4.14",
|
|
"@types/oidc-provider": "^8.5.1",
|
|
"@types/react": "19.0.12",
|
|
"@types/react-dom": "19.0.4",
|
|
"@types/semver": "^7.5.8",
|
|
"concurrently": "^8.2.2",
|
|
"glob": "^10.4.1",
|
|
"import-in-the-middle": "^1.12.0",
|
|
"prisma": "^6.12.0",
|
|
"require-in-the-middle": "^7.4.0",
|
|
"rimraf": "^5.0.5",
|
|
"tsup": "^8.3.0",
|
|
"tsx": "^4.7.2"
|
|
},
|
|
"pnpm": {
|
|
"overrides": {
|
|
"@types/react": "19.0.12",
|
|
"@types/react-dom": "19.0.4"
|
|
}
|
|
}
|
|
}
|