create-prisma 0.7.1-pr.52.181.1 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/README.md +25 -19
  2. package/dist/cli.mjs +2 -32
  3. package/dist/index.d.mts +25 -1
  4. package/dist/index.mjs +2 -2290
  5. package/dist/src-B3hRLZ0U.mjs +2527 -0
  6. package/package.json +2 -4
  7. package/templates/create/astro/README.md.hbs +14 -7
  8. package/templates/create/astro/astro.config.mjs.hbs +0 -11
  9. package/templates/create/astro/deno.json.hbs +5 -0
  10. package/templates/create/astro/prisma/schema.prisma.hbs +5 -0
  11. package/templates/create/astro/prisma/seed.ts.hbs +5 -1
  12. package/templates/create/astro/prisma.compute.ts.hbs +10 -0
  13. package/templates/create/astro/src/lib/prisma.ts.hbs +4 -18
  14. package/templates/create/astro/src/pages/api/users.ts.hbs +11 -1
  15. package/templates/create/astro/src/pages/index.astro.hbs +176 -36
  16. package/templates/create/elysia/README.md.hbs +13 -7
  17. package/templates/create/elysia/deno.json.hbs +5 -0
  18. package/templates/create/elysia/package.json.hbs +3 -4
  19. package/templates/create/elysia/prisma/schema.prisma.hbs +6 -0
  20. package/templates/create/elysia/prisma/seed.ts.hbs +5 -1
  21. package/templates/create/elysia/prisma.compute.ts.hbs +11 -0
  22. package/templates/create/elysia/src/index.ts.hbs +17 -13
  23. package/templates/create/elysia/src/lib/prisma.ts.hbs +4 -18
  24. package/templates/create/elysia/tsconfig.json +0 -1
  25. package/templates/create/hono/README.md.hbs +13 -7
  26. package/templates/create/hono/deno.json.hbs +5 -0
  27. package/templates/create/hono/package.json.hbs +2 -2
  28. package/templates/create/hono/prisma/schema.prisma.hbs +6 -0
  29. package/templates/create/hono/prisma/seed.ts.hbs +5 -1
  30. package/templates/create/hono/prisma.compute.ts.hbs +10 -0
  31. package/templates/create/hono/src/index.ts.hbs +7 -9
  32. package/templates/create/hono/src/lib/prisma.ts.hbs +4 -18
  33. package/templates/create/hono/tsconfig.json +0 -1
  34. package/templates/create/nest/README.md.hbs +12 -6
  35. package/templates/create/nest/deno.json.hbs +5 -0
  36. package/templates/create/nest/package.json.hbs +2 -2
  37. package/templates/create/nest/prisma/schema.prisma.hbs +6 -0
  38. package/templates/create/nest/prisma/seed.ts.hbs +5 -1
  39. package/templates/create/nest/prisma.compute.ts.hbs +10 -0
  40. package/templates/create/nest/src/app.controller.ts.hbs +1 -6
  41. package/templates/create/nest/src/app.module.ts.hbs +14 -7
  42. package/templates/create/nest/src/lib/prisma.ts.hbs +4 -17
  43. package/templates/create/nest/src/main.ts.hbs +6 -2
  44. package/templates/create/nest/src/prisma.service.ts.hbs +2 -2
  45. package/templates/create/nest/src/users.controller.ts.hbs +3 -1
  46. package/templates/create/nest/src/users.service.ts.hbs +3 -1
  47. package/templates/create/nest/tsconfig.json +0 -1
  48. package/templates/create/next/README.md.hbs +11 -7
  49. package/templates/create/next/deno.json.hbs +12 -0
  50. package/templates/create/next/prisma/schema.prisma.hbs +5 -0
  51. package/templates/create/next/prisma/seed.ts.hbs +5 -1
  52. package/templates/create/next/prisma.compute.ts.hbs +9 -0
  53. package/templates/create/next/src/app/globals.css +122 -0
  54. package/templates/create/next/src/app/layout.tsx.hbs +2 -2
  55. package/templates/create/next/src/app/page.tsx.hbs +58 -34
  56. package/templates/create/next/src/lib/prisma.ts.hbs +4 -18
  57. package/templates/create/nuxt/README.md.hbs +11 -7
  58. package/templates/create/nuxt/app/pages/index.vue.hbs +175 -43
  59. package/templates/create/nuxt/deno.json.hbs +5 -0
  60. package/templates/create/nuxt/nuxt.config.ts +0 -1
  61. package/templates/create/nuxt/prisma/schema.prisma.hbs +5 -0
  62. package/templates/create/nuxt/prisma/seed.ts.hbs +5 -1
  63. package/templates/create/nuxt/prisma.compute.ts.hbs +9 -0
  64. package/templates/create/nuxt/server/api/users.get.ts.hbs +6 -0
  65. package/templates/create/nuxt/server/utils/prisma.ts.hbs +4 -18
  66. package/templates/create/svelte/README.md.hbs +13 -4
  67. package/templates/create/svelte/deno.json.hbs +5 -0
  68. package/templates/create/svelte/package.json.hbs +1 -2
  69. package/templates/create/svelte/prisma/schema.prisma.hbs +5 -0
  70. package/templates/create/svelte/prisma/seed.ts.hbs +5 -1
  71. package/templates/create/svelte/src/lib/server/prisma.ts.hbs +2 -18
  72. package/templates/create/svelte/src/routes/+layout.svelte +0 -1
  73. package/templates/create/svelte/src/routes/+page.server.ts.hbs +7 -1
  74. package/templates/create/svelte/src/routes/+page.svelte.hbs +297 -41
  75. package/templates/create/svelte/svelte.config.js +13 -0
  76. package/templates/create/svelte/vite.config.ts +0 -3
  77. package/templates/create/tanstack-start/README.md.hbs +11 -7
  78. package/templates/create/tanstack-start/deno.json.hbs +13 -0
  79. package/templates/create/tanstack-start/prisma/schema.prisma.hbs +5 -0
  80. package/templates/create/tanstack-start/prisma/seed.ts.hbs +5 -1
  81. package/templates/create/tanstack-start/prisma.compute.ts.hbs +9 -0
  82. package/templates/create/tanstack-start/src/lib/prisma.server.ts.hbs +4 -18
  83. package/templates/create/tanstack-start/src/routes/__root.tsx.hbs +29 -4
  84. package/templates/create/tanstack-start/src/routes/index.tsx.hbs +76 -35
  85. package/templates/create/tanstack-start/src/styles.css +146 -0
  86. package/templates/create/tanstack-start/tsconfig.json +1 -1
  87. package/templates/create/turborepo/README.md.hbs +9 -7
  88. package/templates/create/turborepo/apps/api/package.json.hbs +9 -2
  89. package/templates/create/turborepo/apps/api/src/index.ts.hbs +12 -28
  90. package/templates/create/turborepo/apps/api/tsconfig.json +0 -1
  91. package/templates/create/turborepo/deno.json.hbs +5 -0
  92. package/templates/create/turborepo/package.json.hbs +6 -0
  93. package/templates/create/turborepo/packages/db/package.json.hbs +5 -4
  94. package/templates/create/turborepo/packages/db/prisma/schema.prisma.hbs +5 -0
  95. package/templates/create/turborepo/packages/db/prisma/seed.ts.hbs +5 -1
  96. package/templates/create/turborepo/packages/db/src/client.ts.hbs +5 -2
  97. package/templates/create/turborepo/packages/db/tsconfig.json +0 -1
  98. package/templates/create/turborepo/prisma.compute.ts.hbs +14 -0
  99. package/templates/create/astro/module.ts.hbs +0 -30
  100. package/templates/create/astro/prisma-composer.config.ts.hbs +0 -8
  101. package/templates/create/astro/service.ts.hbs +0 -19
  102. package/templates/create/elysia/.yarnrc.yml.hbs +0 -3
  103. package/templates/create/elysia/module.ts.hbs +0 -30
  104. package/templates/create/elysia/prisma-composer.config.ts.hbs +0 -8
  105. package/templates/create/elysia/service.ts.hbs +0 -19
  106. package/templates/create/hono/module.ts.hbs +0 -30
  107. package/templates/create/hono/prisma-composer.config.ts.hbs +0 -8
  108. package/templates/create/hono/service.ts.hbs +0 -19
  109. package/templates/create/nest/module.ts.hbs +0 -30
  110. package/templates/create/nest/prisma-composer.config.ts.hbs +0 -8
  111. package/templates/create/nest/src/service.ts.hbs +0 -19
  112. package/templates/create/next/module.ts.hbs +0 -30
  113. package/templates/create/next/prisma-composer.config.ts.hbs +0 -8
  114. package/templates/create/next/service.ts.hbs +0 -19
  115. package/templates/create/nuxt/module.ts.hbs +0 -30
  116. package/templates/create/nuxt/prisma-composer.config.ts.hbs +0 -8
  117. package/templates/create/nuxt/service.ts.hbs +0 -19
  118. package/templates/create/svelte/module.ts.hbs +0 -30
  119. package/templates/create/svelte/prisma-composer.config.ts.hbs +0 -8
  120. package/templates/create/svelte/service.ts.hbs +0 -19
  121. package/templates/create/svelte/svelte.config.js.hbs +0 -10
  122. package/templates/create/tanstack-start/module.ts.hbs +0 -30
  123. package/templates/create/tanstack-start/prisma-composer.config.ts.hbs +0 -8
  124. package/templates/create/tanstack-start/service.ts.hbs +0 -19
  125. package/templates/create/turborepo/apps/api/src/service.ts.hbs +0 -19
  126. package/templates/create/turborepo/module.ts.hbs +0 -30
  127. package/templates/create/turborepo/prisma-composer.config.ts.hbs +0 -8
  128. package/templates/shared/setup-composer-postgres.mjs.hbs +0 -179
  129. package/templates/shared/starter.css +0 -276
package/README.md CHANGED
@@ -8,12 +8,12 @@ Scaffold a new app with Prisma already wired up.
8
8
 
9
9
  - creates a new app from a supported template
10
10
  - adds Prisma 7 dependencies for your database
11
- - scaffolds `prisma/schema.prisma`, `prisma/seed.ts`, `prisma.config.ts`, and a Composer application graph for supported templates
11
+ - scaffolds `prisma/schema.prisma`, `prisma/seed.ts`, `prisma.config.ts`, and Compute deploy defaults for Compute-ready templates
12
12
  - writes a Prisma client singleton in the right place for the selected template
13
- - adds `db:generate`, `db:migrate`, `db:migrate:deploy`, and `db:seed` scripts
14
- - creates an env example for databases managed outside Composer
15
- - installs dependencies when requested, then generates Prisma Client and an initial migration automatically
16
- - can deploy the finished app and its Prisma Postgres database with Prisma Composer
13
+ - adds `db:generate`, `db:migrate`, and `db:seed` scripts
14
+ - creates or updates the template env file with `DATABASE_URL`
15
+ - can install dependencies and run `prisma generate` for you
16
+ - can deploy the finished app to Prisma Compute and return a live URL
17
17
 
18
18
  ## Quick Start
19
19
 
@@ -35,6 +35,10 @@ yarn dlx create-prisma@latest
35
35
  bunx create-prisma@latest
36
36
  ```
37
37
 
38
+ ```bash
39
+ deno run -A npm:create-prisma@latest
40
+ ```
41
+
38
42
  If you already have it available locally:
39
43
 
40
44
  ```bash
@@ -67,19 +71,19 @@ Create a monorepo with a shared Prisma package:
67
71
  create-prisma --name my-monorepo --template turborepo --provider postgresql
68
72
  ```
69
73
 
70
- Use Prisma Postgres auto-provisioning, which is the PostgreSQL default:
74
+ Use Prisma Postgres auto-provisioning:
71
75
 
72
76
  ```bash
73
- create-prisma --name my-app --template nest --provider postgresql
77
+ create-prisma --name my-app --template nest --provider postgresql --prisma-postgres
74
78
  ```
75
79
 
76
- Deploy a supported app with Prisma Composer:
80
+ Deploy a supported app to Prisma Compute:
77
81
 
78
82
  ```bash
79
83
  create-prisma --name my-api --template hono --provider postgresql --deploy
80
84
  ```
81
85
 
82
- PostgreSQL always includes Prisma Postgres in the Composer application graph. The generated deploy script provisions it with the app, applies the generated migration with `prisma migrate deploy`, seeds it, and removes the temporary direct connection used for setup.
86
+ With PostgreSQL and no `--database-url`, the Compute flow asks whether to use Prisma Postgres. If accepted, or if `--prisma-postgres` is passed, it creates a Prisma Compute project, creates a `main` Prisma Postgres database on the `main` branch, writes `DATABASE_URL` to the template env file, and deploys the app with the env file configured in `prisma.compute.ts`. Pass `--no-prisma-postgres` to deploy without provisioning a database.
83
87
 
84
88
  ## Supported Templates
85
89
 
@@ -93,13 +97,12 @@ PostgreSQL always includes Prisma Postgres in the Composer application graph. Th
93
97
  - `tanstack-start`
94
98
  - `turborepo`
95
99
 
96
- Prisma Composer files are included by default, and deployment is supported for:
100
+ Prisma Compute deployment is currently supported for:
97
101
 
98
102
  - `hono`
99
103
  - `elysia`
100
104
  - `nest`
101
105
  - `next`
102
- - `svelte`
103
106
  - `astro`
104
107
  - `nuxt`
105
108
  - `tanstack-start`
@@ -119,8 +122,7 @@ Prisma Composer files are included by default, and deployment is supported for:
119
122
  - `pnpm`
120
123
  - `yarn`
121
124
  - `bun`
122
-
123
- Every package manager receives the same Composer-ready templates and deploy scripts.
125
+ - `deno`
124
126
 
125
127
  ## Useful Flags
126
128
 
@@ -128,9 +130,12 @@ Every package manager receives the same Composer-ready templates and deploy scri
128
130
  - `--template` choose the template
129
131
  - `--provider` choose the database provider
130
132
  - `--package-manager` choose the package manager/runtime
131
- - `--deploy` deploy supported templates with Prisma Composer
133
+ - `--schema-preset empty|basic`
134
+ - `--deploy` deploy supported templates to Prisma Compute
132
135
  - `--yes` accept defaults and skip prompts
133
136
  - `--no-install` scaffold only
137
+ - `--no-generate` skip `prisma generate`
138
+ - `--prisma-postgres` provision Prisma Postgres for PostgreSQL
134
139
  - `--skills --mcp --extension` enable optional add-ons
135
140
  - `--force` allow scaffolding into a non-empty directory
136
141
  - `--verbose` print full command output
@@ -144,10 +149,11 @@ Every package manager receives the same Composer-ready templates and deploy scri
144
149
  - Prisma IDE extension install
145
150
 
146
151
  These can be selected interactively or enabled with flags.
152
+ When Prisma Compute deploy is selected, the skills add-on recommends the `prisma-compute` skill too.
147
153
 
148
- ## Deploy with Prisma Composer
154
+ ## Deploy to Prisma Compute
149
155
 
150
- Supported templates include Composer by default: `module.ts` declares the application graph, `service.ts` declares the Compute service and its dependencies, and `prisma-composer.config.ts` selects the Prisma Cloud target. The generated project is ready to deploy whether or not you deploy during creation.
156
+ After scaffolding, `create-prisma` can deploy your app to [Prisma Compute](https://www.prisma.io/docs/compute), the serverless hosting for TypeScript apps that runs next to your Prisma Postgres database. It is offered for the templates the Prisma CLI can deploy today: `hono`, `elysia`, `nest`, `next`, `astro`, `nuxt`, `tanstack-start`, and `turborepo`.
151
157
 
152
158
  Accept the deploy prompt when it appears, or pass the flag:
153
159
 
@@ -155,11 +161,11 @@ Accept the deploy prompt when it appears, or pass the flag:
155
161
  create-prisma --name my-api --template hono --provider postgresql --deploy
156
162
  ```
157
163
 
158
- Deployment runs through `@prisma/cli@next` and reuses either your active Prisma browser-login session or `PRISMA_SERVICE_TOKEN` in CI. If you are not signed in, create-prisma opens the Prisma login flow before deploying from an interactive terminal. You can also sign in ahead of time with `npx @prisma/cli@next auth login`. PostgreSQL always provisions Prisma Postgres and passes its connection through `service.load()`. For other providers, copy `.env.example` to `.env`, set `DATABASE_URL`, and Composer will pass it to the application as a secret input.
164
+ The deploy step signs you in with the Prisma CLI if you are not signed in yet. With PostgreSQL and no `--database-url`, create-prisma asks whether to use Prisma Postgres. If accepted, or if `--prisma-postgres` is passed, setup creates a Prisma Compute project, creates a `main` Prisma Postgres database on the `main` branch, writes `DATABASE_URL` to the template env file, runs the requested Prisma setup, then deploys the app with the env file configured in `prisma.compute.ts`. Pass `--no-prisma-postgres` to deploy without provisioning a database.
159
165
 
160
- A `deploy` script is generated for every supported package manager. It builds and deploys the Composer application. For PostgreSQL it then resolves the Composer-managed database, applies the committed migration with `prisma migrate deploy`, seeds the database, and removes the temporary direct connection. No database URL is written back to the project.
166
+ A `prisma.compute.ts` file is generated with the app framework, runtime port, target, and env-file defaults. When deployment is selected, a `compute:deploy` script is added to the generated project so you can redeploy app changes later. That script runs `@prisma/cli@latest app deploy` using `prisma.compute.ts`; it does not create a new project, create a new database, run migrations, or seed data.
161
167
 
162
- The only Composer-specific prompt asks whether to deploy immediately. It is skipped in `--yes` runs unless you pass `--deploy`; the Composer files are still generated. Prisma Client generation is automatic, and PostgreSQL uses Prisma Postgres by default without additional prompts.
168
+ The deploy prompt is skipped in `--yes` runs unless you pass `--deploy`. Browser sign-in may still need a person at the keyboard if no Prisma CLI session exists.
163
169
 
164
170
  ## Local Development
165
171
 
package/dist/cli.mjs CHANGED
@@ -1,36 +1,6 @@
1
1
  #!/usr/bin/env node
2
- //#endregion
3
- //#region src/utils/node-version.ts
4
- const supportedNodeVersionRange = {
5
- "bun": ">=1.3.0",
6
- "node": ">=24.0.0"
7
- }.node;
8
- function getMinimumNodeMajor() {
9
- const match = /^>=(\d+)(?:\.\d+){0,2}$/.exec(supportedNodeVersionRange);
10
- if (!match) throw new Error(`Unsupported Node.js engine range: ${supportedNodeVersionRange}`);
11
- return Number(match[1]);
12
- }
13
- function getNodeVersionCompatibilityError(nodeVersion) {
14
- const majorMatch = /^v?(\d+)(?:\.|$)/.exec(nodeVersion);
15
- const currentMajor = majorMatch ? Number(majorMatch[1]) : NaN;
16
- const minimumMajor = getMinimumNodeMajor();
17
- if (Number.isFinite(currentMajor) && currentMajor >= minimumMajor) return;
18
- return [
19
- `Node.js ${nodeVersion} is unsupported.`,
20
- "",
21
- `create-prisma requires Node.js ${minimumMajor} LTS or newer.`,
22
- "Update Node.js, then run create-prisma again."
23
- ].join("\n");
24
- }
25
- //#endregion
2
+ import { n as createCreatePrismaCli } from "./src-B3hRLZ0U.mjs";
26
3
  //#region src/cli.ts
27
- const nodeVersionError = getNodeVersionCompatibilityError(process.versions.node);
28
- if (nodeVersionError) {
29
- process.stderr.write(`${nodeVersionError}\n`);
30
- process.exit(1);
31
- }
32
- const { createCreatePrismaCli } = await import("./index.mjs");
33
- await createCreatePrismaCli().run({ formatError: (error) => error instanceof Error ? error.message : String(error) });
34
- if (process.exitCode && process.exitCode !== 0) process.exit(process.exitCode);
4
+ createCreatePrismaCli().run();
35
5
  //#endregion
36
6
  export {};
package/dist/index.d.mts CHANGED
@@ -185,6 +185,11 @@ declare const PackageManagerSchema: z.ZodEnum<{
185
185
  pnpm: "pnpm";
186
186
  yarn: "yarn";
187
187
  bun: "bun";
188
+ deno: "deno";
189
+ }>;
190
+ declare const SchemaPresetSchema: z.ZodEnum<{
191
+ empty: "empty";
192
+ basic: "basic";
188
193
  }>;
189
194
  declare const CreateTemplateSchema: z.ZodEnum<{
190
195
  hono: "hono";
@@ -197,6 +202,7 @@ declare const CreateTemplateSchema: z.ZodEnum<{
197
202
  "tanstack-start": "tanstack-start";
198
203
  turborepo: "turborepo";
199
204
  }>;
205
+ declare const DatabaseUrlSchema: z.ZodString;
200
206
  declare const CreateCommandInputSchema: z.ZodObject<{
201
207
  yes: z.ZodOptional<z.ZodBoolean>;
202
208
  verbose: z.ZodOptional<z.ZodBoolean>;
@@ -212,8 +218,17 @@ declare const CreateCommandInputSchema: z.ZodObject<{
212
218
  pnpm: "pnpm";
213
219
  yarn: "yarn";
214
220
  bun: "bun";
221
+ deno: "deno";
215
222
  }>>;
223
+ prismaPostgres: z.ZodOptional<z.ZodBoolean>;
224
+ databaseUrl: z.ZodOptional<z.ZodString>;
216
225
  install: z.ZodOptional<z.ZodBoolean>;
226
+ generate: z.ZodOptional<z.ZodBoolean>;
227
+ migrateAndSeed: z.ZodOptional<z.ZodBoolean>;
228
+ schemaPreset: z.ZodOptional<z.ZodEnum<{
229
+ empty: "empty";
230
+ basic: "basic";
231
+ }>>;
217
232
  name: z.ZodOptional<z.ZodString>;
218
233
  template: z.ZodOptional<z.ZodEnum<{
219
234
  hono: "hono";
@@ -251,8 +266,17 @@ declare const router: {
251
266
  pnpm: "pnpm";
252
267
  yarn: "yarn";
253
268
  bun: "bun";
269
+ deno: "deno";
254
270
  }>>;
271
+ prismaPostgres: import("zod").ZodOptional<import("zod").ZodBoolean>;
272
+ databaseUrl: import("zod").ZodOptional<import("zod").ZodString>;
255
273
  install: import("zod").ZodOptional<import("zod").ZodBoolean>;
274
+ generate: import("zod").ZodOptional<import("zod").ZodBoolean>;
275
+ migrateAndSeed: import("zod").ZodOptional<import("zod").ZodBoolean>;
276
+ schemaPreset: import("zod").ZodOptional<import("zod").ZodEnum<{
277
+ empty: "empty";
278
+ basic: "basic";
279
+ }>>;
256
280
  name: import("zod").ZodOptional<import("zod").ZodString>;
257
281
  template: import("zod").ZodOptional<import("zod").ZodEnum<{
258
282
  hono: "hono";
@@ -275,4 +299,4 @@ declare const router: {
275
299
  declare function createCreatePrismaCli(): import("trpc-cli").TrpcCli;
276
300
  declare function create(input?: CreateCommandInput): Promise<void>;
277
301
  //#endregion
278
- export { type CreateCommandInput, CreateCommandInputSchema, CreateTemplateSchema, DatabaseProviderSchema, PackageManagerSchema, create, createCreatePrismaCli, router };
302
+ export { type CreateCommandInput, CreateCommandInputSchema, CreateTemplateSchema, DatabaseProviderSchema, DatabaseUrlSchema, PackageManagerSchema, SchemaPresetSchema, create, createCreatePrismaCli, router };