Register the @better-auth/passkey plugin alongside the existing better-auth setup. Adds a passkey table to the Drizzle schema with FK cascade to user, RLS enabled, and a userId index. The rpID is derived dynamically from CLIENT_URL so Portless dev (e.g. https://wt44.localhost) and production both work without extra env config. The plugin is placed before customSession to preserve the requirement that customSession remain last.
174 lines
6.3 KiB
JSON
174 lines
6.3 KiB
JSON
{
|
|
"name": "@autumn/server",
|
|
"version": "1.0.0",
|
|
"description": "",
|
|
"main": "src/index.ts",
|
|
"type": "module",
|
|
"scripts": {
|
|
"email": "email dev -p 3001",
|
|
"d": "ENV_FILE=.env infisical run --watch --env=dev --recursive -- bun dev",
|
|
"s": "ENV_FILE=.env.staging infisical run --watch --env=staging --recursive -- bun dev",
|
|
"p": "ENV_FILE=.env.prod infisical run --env=prod --recursive -- bun dev",
|
|
"w": "ENV_FILE=.env infisical run --env=dev --recursive -- bun workers:dev",
|
|
"c": "ENV_FILE=.env infisical run --env=dev --recursive -- bun cron",
|
|
"w:prod": "ENV_FILE=.env.prod infisical run --env=prod --recursive -- bun workers:dev",
|
|
"c:prod": "ENV_FILE=.env.prod NODE_ENV=development infisical run --env=prod --recursive -- bun cron",
|
|
"dev": "cross-env NODE_ENV=development bunx nodemon",
|
|
"dev:prod": "cross-env NODE_ENV=production bunx nodemon",
|
|
"workers:dev": "cross-env NODE_ENV=development bunx nodemon --exec bun src/workers.ts --signal SIGTERM --delay 500ms",
|
|
"workers:prod": "cross-env NODE_ENV=production bunx nodemon --exec bun src/workers.ts --signal SIGTERM --delay 500ms",
|
|
"start": "bun src/index.ts",
|
|
"workers": "bun src/workers.ts",
|
|
"cron": "bun src/cron.ts",
|
|
"check": "bun src/check.ts",
|
|
"t": "cd ../ && bun t $* && cd ./server",
|
|
"parallel-tests": "ENV_FILE=.env infisical run --env=dev --recursive -- bun tests/testRunner/runParallelGroupsV3.ts",
|
|
"parallel-tests:v1": "ENV_FILE=.env infisical run --env=dev --recursive -- bun tests/testRunner/runParallelGroups.ts",
|
|
"parallel-tests:verbose": "ENV_FILE=.env infisical run --env=dev --recursive -- bun tests/testRunner/runParallelGroups.ts --verbose",
|
|
"parallel-tests:debug": "ENV_FILE=.env infisical run --env=dev --recursive -- bun tests/testRunner/runParallelGroups.ts --debug",
|
|
"clear-master": "ENV_FILE=.env infisical run --env=dev --recursive -- bun tests/clearMasterOrg.ts",
|
|
"cm": "ENV_FILE=.env infisical run --env=dev --recursive -- bun tests/clearMaster.ts",
|
|
"ts": "bunx tsgo --build --noEmit",
|
|
"test:unit": "ENV_FILE=.env infisical run --env=dev --recursive -- bun test tests/unit",
|
|
"test:integration": "ENV_FILE=.env infisical run --env=dev --recursive -- bun test --timeout 0 --preload ./tests/setup-integration-tests.ts",
|
|
"loadtest": "ENV_FILE=.env infisical run --env=dev --recursive -- npx artillery run perf/load-test/artillery.yml",
|
|
"loadtest:leak": "ENV_FILE=.env infisical run --env=dev --recursive -- bun perf/load-test/runLeakTest.ts",
|
|
"loadtest:leak:summary": "bun perf/load-test/summarizeLeakSnapshots.ts",
|
|
"loadtest:setup": "ENV_FILE=.env infisical run --env=dev --recursive -- bun perf/load-test/setup.ts"
|
|
},
|
|
"mocha": {
|
|
"node-option": [
|
|
"import=tsx"
|
|
]
|
|
},
|
|
"author": "Recase Inc.",
|
|
"license": "Apache-2.0",
|
|
"dependencies": {
|
|
"@ai-sdk/anthropic": "^3.0.9",
|
|
"@anthropic-ai/sdk": "^0.32.1",
|
|
"@autumn/ksuid": "workspace:*",
|
|
"@autumn/shared": "workspace:*",
|
|
"@autumn/stripe-sync": "workspace:*",
|
|
"@aws-sdk/client-s3": "^3.1017.0",
|
|
"@aws-sdk/client-scheduler": "^3.1004.0",
|
|
"@aws-sdk/client-sqs": "^3.958.0",
|
|
"@axiomhq/js": "^1.6.1",
|
|
"@axiomhq/pino": "^1.3.1",
|
|
"@better-auth/dash": "catalog:",
|
|
"@better-auth/oauth-provider": "catalog:",
|
|
"@better-auth/passkey": "catalog:",
|
|
"@chronark/zod-bird": "0.3.10",
|
|
"@clickhouse/client": "^1.11.2",
|
|
"@date-fns/tz": "^1.2.0",
|
|
"@date-fns/utc": "^2.1.0",
|
|
"@hatchet-dev/typescript-sdk": "1.14.0",
|
|
"@hono-rate-limiter/redis": "^0.1.4",
|
|
"@hono/node-server": "^1.19.5",
|
|
"@hono/otel": "^1.1.1",
|
|
"@hono/zod-validator": "^0.7.3",
|
|
"@hyperbrowser/sdk": "^0.54.0",
|
|
"@infisical/sdk": "^4.0.6",
|
|
"@kubiks/otel-drizzle": "^2.1.0",
|
|
"@onkernel/sdk": "^0.36.1",
|
|
"@opentelemetry/api": "^1.9.0",
|
|
"@opentelemetry/exporter-metrics-otlp-proto": "0.202.0",
|
|
"@opentelemetry/exporter-trace-otlp-http": "^0.213.0",
|
|
"@opentelemetry/sdk-metrics": "2.0.1",
|
|
"@opentelemetry/sdk-node": "^0.202.0",
|
|
"@opentelemetry/sdk-trace-base": "^2.6.0",
|
|
"@posthog/ai": "^7.4.2",
|
|
"@puzzmo/revenue-cat-webhook-types": "^1.1.0",
|
|
"@react-email/components": "^0.0.42",
|
|
"@sentry/bun": "catalog:",
|
|
"@supabase/supabase-js": "^2.46.2",
|
|
"@tinybirdco/sdk": "^0.0.69",
|
|
"@trigger.dev/build": "4.4.6",
|
|
"@trigger.dev/sdk": "4.4.6",
|
|
"@types/qs": "^6.14.0",
|
|
"@types/semver": "^7.7.1",
|
|
"@typescript/native-preview": "^7.0.0-dev.20251114.1",
|
|
"@upstash/ratelimit": "^2.0.7",
|
|
"@upstash/redis": "^1.35.6",
|
|
"@vercel/sdk": "^1.17.0",
|
|
"ai": "^6.0.24",
|
|
"arctic": "^3.7.0",
|
|
"autumn-js": "^0.1.8",
|
|
"axios": "^1.8.3",
|
|
"better-all": "0.0.7",
|
|
"better-auth": "catalog:",
|
|
"better-result": "^2.8.2",
|
|
"body-parser": "^1.20.3",
|
|
"bullmq": "^5.56.2",
|
|
"chai": "^5.1.2",
|
|
"chai-http": "^5.1.1",
|
|
"chalk": "^5.3.0",
|
|
"cors": "^2.8.5",
|
|
"cron": "^3.5.0",
|
|
"csv-parse": "^5.6.0",
|
|
"csv-parser": "^3.2.0",
|
|
"currency-symbol-map": "^5.1.0",
|
|
"date-fns": "^4.1.0",
|
|
"decimal.js": "^10.5.0",
|
|
"detect-content-type": "^1.2.0",
|
|
"dotenv": "^16.5.0",
|
|
"drizzle-orm": "catalog:",
|
|
"express": "^4.21.1",
|
|
"express-rate-limit": "^7.5.1",
|
|
"fetch-retry": "^6.0.0",
|
|
"hono": "4.12.7",
|
|
"hono-rate-limiter": "^0.4.2",
|
|
"http-status-codes": "^2.3.0",
|
|
"ink": "^6.3.1",
|
|
"ink-spinner": "^5.0.0",
|
|
"ioredis": "^5.5.0",
|
|
"jose": "^6.1.0",
|
|
"kafkajs": "^2.2.4",
|
|
"ksuid": "^3.0.0",
|
|
"loops": "^5.0.1",
|
|
"lru-cache": "^11.2.7",
|
|
"mime-detect": "^1.3.0",
|
|
"nanoid": "^5.1.6",
|
|
"openai": "^4.85.2",
|
|
"p-limit": "^7.2.0",
|
|
"pg": "^8.13.1",
|
|
"pino": "^9.6.0",
|
|
"pino-pretty": "^13.0.0",
|
|
"postgres": "catalog:",
|
|
"posthog-node": "^5.20.0",
|
|
"puppeteer-core": "^24.14.0",
|
|
"qs": "^6.14.0",
|
|
"react": "^18.2.0",
|
|
"resend": "^4.1.1",
|
|
"semver": "^7.7.2",
|
|
"stripe": "catalog:",
|
|
"svix": "^1.45.1",
|
|
"tsc-alias": "^1.8.16",
|
|
"ws": "^8.18.0",
|
|
"zod": "^3.25.23"
|
|
},
|
|
"devDependencies": {
|
|
"@types/bun": "^1.3.1",
|
|
"@types/chai": "^5.0.1",
|
|
"@types/chai-http": "^3.0.5",
|
|
"@types/cors": "^2.8.19",
|
|
"@types/express": "^5.0.3",
|
|
"@types/mocha": "^10.0.10",
|
|
"@types/node": "^25.0.7",
|
|
"@types/pg": "^8.11.10",
|
|
"@types/react": "^18.3.18",
|
|
"@types/react-dom": "^18.3.5",
|
|
"@types/ws": "^8.18.1",
|
|
"artillery": "^2.0.30",
|
|
"cross-env": "^7.0.3",
|
|
"drizzle-kit": "catalog:",
|
|
"mocha": "^11.1.0",
|
|
"nodemon": "^3.1.10",
|
|
"playwright-core": "^1.58.2",
|
|
"react-email": "4.0.16",
|
|
"ts-node": "^10.9.2",
|
|
"tsconfig-paths": "^4.2.0",
|
|
"tsx": "^4.21.0",
|
|
"typescript": "^5.7.3"
|
|
}
|
|
}
|