- Add stripeCustomerId column to users table - Create Stripe client initialization (web/src/server/stripe.ts) - Add billing service with getOrCreateCustomer, checkout/portal sessions, subscription management, invoice listing, and webhook event handling - Create billing tRPC router with getSubscription, createCheckoutSession, createPortalSession, cancelSubscription, reactivateSubscription, listInvoices - Add raw webhook endpoint at /api/stripe/webhook with signature verification - Define Valibot schemas for all billing procedure inputs - Wire billing router into root tRPC router - Update schema tests for new column/index counts - Write unit tests for billing service and router
49 lines
1.2 KiB
JSON
49 lines
1.2 KiB
JSON
{
|
|
"name": "web",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite dev",
|
|
"build": "vite build",
|
|
"start": "vite start",
|
|
"preview": "vite preview",
|
|
"test": "vitest run",
|
|
"lint": "tsc --noEmit",
|
|
"db:generate": "drizzle-kit generate",
|
|
"db:push": "drizzle-kit push",
|
|
"db:migrate": "tsx src/server/db/migrate.ts",
|
|
"db:seed": "tsx src/server/db/seed.ts"
|
|
},
|
|
"dependencies": {
|
|
"@solidjs/meta": "^0.29.4",
|
|
"@solidjs/router": "^0.15.0",
|
|
"@solidjs/start": "2.0.0-alpha.2",
|
|
"@solidjs/vite-plugin-nitro-2": "^0.1.0",
|
|
"@tailwindcss/vite": "^4.0.0",
|
|
"@trpc/client": "^10.45.2",
|
|
"@trpc/server": "^10.45.2",
|
|
"@types/three": "^0.184.1",
|
|
"@typeschema/valibot": "^0.13.4",
|
|
"bcryptjs": "^3.0.3",
|
|
"drizzle-orm": "^0.45.2",
|
|
"jose": "^5",
|
|
"pg": "^8.21.0",
|
|
"solid-js": "^1.9.5",
|
|
"stripe": "^22.1.1",
|
|
"tailwindcss": "^4.0.0",
|
|
"three": "^0.184.0",
|
|
"valibot": "^0.29.0",
|
|
"vite": "^7.0.0"
|
|
},
|
|
"engines": {
|
|
"node": ">=22"
|
|
},
|
|
"devDependencies": {
|
|
"@types/pg": "^8.20.0",
|
|
"drizzle-kit": "^0.31.10",
|
|
"jsdom": "^29.1.1",
|
|
"tsx": "^4.22.3",
|
|
"vite-plugin-solid": "^2.11.12",
|
|
"vitest": "^4.1.5"
|
|
}
|
|
}
|