@prisma/cli-dev 0.0.0-dev.202509051011 → 0.0.0-dev.202510020621

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 (2) hide show
  1. package/dist/index.js +9 -9
  2. package/package.json +4 -7
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
- import{a as s,b as y,d as c,e as u,f as w}from"./chunk-ZKMEOIRF.js";import{a as N}from"./chunk-XOIFSEIB.js";import{context as Se,trace as Pe}from"@opentelemetry/api";import{AsyncLocalStorageContextManager as ye}from"@opentelemetry/context-async-hooks";import{BasicTracerProvider as we}from"@opentelemetry/sdk-trace-base";import{runMain as Re}from"citty";import{unstable_startServer as ue}from"@prisma/dev";import{defineCommand as fe}from"citty";function _(e){let r,t,o=new Promise((n,p)=>{r=n,t=p}),i=n=>{i=a=null,t(n),e?.onRejected?.(n),e?.onFulfilled?.()},a=n=>{a=i=null,r(n),e?.onResolved?.(n),e?.onFulfilled?.()};return{isFulfilled:()=>a===i,promise:o,reject:n=>i?.(n),resolve:n=>a?.(n)}}import{consola as K,LogLevels as ve}from"consola";import{process as ge}from"std-env";var M="0.0.0-dev.202509051011";var d={database:"db-port",server:"port",shadow_database:"shadow-db-port"},k={...N,[d.database]:{alias:"P",description:"Port number the database server will listen on.",required:!1,type:"string"},name:{alias:"n",default:"default",description:"Name of the server. Helps keep state isolated between different projects. Defaults to `default`.",required:!1,type:"string"},[d.server]:{alias:"p",description:"Main port number the Prisma Dev server will listen on.",required:!1,type:"string"},[d.shadow_database]:{description:"Port number the shadow database server will listen on.",required:!1,type:"string"}},J=/^[a-zA-Z0-9-_]+$/;function D(e){let{[d.server]:r,[d.database]:t,[d.shadow_database]:o,debug:i,name:a}=e.args,n=t?Number(t):void 0,p=r?Number(r):void 0,l=o?Number(o):void 0;return r&&Number.isNaN(p)?(console.error(`Invalid server port number provided. Please provide a valid port number in \`--${d.server}\`.`),process.exit(1)):t&&Number.isNaN(n)?(console.error(`Invalid database port number provided. Please provide a valid port number in \`--${d.database}\`.`),process.exit(1)):o&&Number.isNaN(l)?(console.error(`Invalid shadow database port number provided. Please provide a valid port number in \`--${d.shadow_database}\`.`),process.exit(1)):p!=null&&p===n?(console.error(`The server port and database port cannot be the same. Please provide different port numbers in \`--${d.server}\` and/or \`--${d.database}\`.`),process.exit(1)):n!=null&&n===l?(console.error(`The database port and shadow database port cannot be the same. Please provide different port numbers in \`--${d.database}\` and/or \`--${d.shadow_database}\`.`),process.exit(1)):p!=null&&p===l?(console.error(`The server port and shadow database port cannot be the same. Please provide different port numbers in \`--${d.server}\` and/or \`--${d.shadow_database}\`.`),process.exit(1)):J.test(a)?{databasePort:n,debug:i,name:a,serverPort:p,shadowDatabasePort:l}:(console.error("Invalid name provided. The name can only contain letters, numbers, dashes, and underscores. Please provide a valid name in `--name`."),process.exit(1))}import{PortNotAvailableError as me,ServerAlreadyRunningError as ce}from"@prisma/dev";import{consola as F}from"consola";import{process as q}from"std-env";import{setTimeout as se}from"timers/promises";import{consola as f}from"consola";import{colorize as T}from"consola/utils";import ie from"yocto-spinner";import{isCancel as Z,SelectKeyPrompt as ee}from"@clack/core";import{box as re,colorize as te}from"consola/utils";import{process as R}from"std-env";var oe=[{value:"h",label:"print http url"},{value:"t",label:"print tcp urls"},{value:"q",label:"quit"}],C=6;function G(e){let r=new ee({debug:e?.debug,options:oe,render:ne,signal:e?.abortSignal});return{clearPrompt(){R.stdout.moveCursor(0,-C),R.stdout.cursorTo(0),R.stdout.clearScreenDown()},prompt:r,respond:async t=>{if(Z(t)||t==="q")return await e?.onQuit?.();await e?.onOption?.[t]?.()}}}function ne(){let e=`${this.options.map(r=>`${te("inverse",` ${r.value} `)} ${r.label}`).join(" ")}`;return re(e,{style:{borderColor:"blackBright",borderStyle:"solid"},title:" \u25B3 press a key \u25B3 "})}function B(e){let r=ie();return{renderContent:ae,renderIntro:()=>de(e,r),renderOutro:()=>Promise.resolve(pe(e)),spinner:r}}async function ae(e){let{abortSignal:r,debug:t,isClosed:o,onQuit:i,server:a,spinner:n}=e;if(n.success(` Great Success! \u{1F609}\u{1F44D}
2
+ import{a as s,b as y,d as c,e as u,f as w}from"./chunk-ZKMEOIRF.js";import{a as N}from"./chunk-XOIFSEIB.js";import{runMain as Se}from"citty";import{unstable_startServer as ue}from"@prisma/dev";import{defineCommand as fe}from"citty";function _(e){let r,o,t=new Promise((n,p)=>{r=n,o=p}),i=n=>{i=a=null,o(n),e?.onRejected?.(n),e?.onFulfilled?.()},a=n=>{a=i=null,r(n),e?.onResolved?.(n),e?.onFulfilled?.()};return{isFulfilled:()=>a===i,promise:t,reject:n=>i?.(n),resolve:n=>a?.(n)}}import{consola as K,LogLevels as ve}from"consola";import{process as ge}from"std-env";var M="0.0.0-dev.202510020621";var d={database:"db-port",server:"port",shadow_database:"shadow-db-port"},D={...N,[d.database]:{alias:"P",description:"Port number the database server will listen on.",required:!1,type:"string"},name:{alias:"n",default:"default",description:"Name of the server. Helps keep state isolated between different projects. Defaults to `default`.",required:!1,type:"string"},[d.server]:{alias:"p",description:"Main port number the Prisma Dev server will listen on.",required:!1,type:"string"},[d.shadow_database]:{description:"Port number the shadow database server will listen on.",required:!1,type:"string"}},J=/^[a-zA-Z0-9-_]+$/;function k(e){let{[d.server]:r,[d.database]:o,[d.shadow_database]:t,debug:i,name:a}=e.args,n=o?Number(o):void 0,p=r?Number(r):void 0,l=t?Number(t):void 0;return r&&Number.isNaN(p)?(console.error(`Invalid server port number provided. Please provide a valid port number in \`--${d.server}\`.`),process.exit(1)):o&&Number.isNaN(n)?(console.error(`Invalid database port number provided. Please provide a valid port number in \`--${d.database}\`.`),process.exit(1)):t&&Number.isNaN(l)?(console.error(`Invalid shadow database port number provided. Please provide a valid port number in \`--${d.shadow_database}\`.`),process.exit(1)):p!=null&&p===n?(console.error(`The server port and database port cannot be the same. Please provide different port numbers in \`--${d.server}\` and/or \`--${d.database}\`.`),process.exit(1)):n!=null&&n===l?(console.error(`The database port and shadow database port cannot be the same. Please provide different port numbers in \`--${d.database}\` and/or \`--${d.shadow_database}\`.`),process.exit(1)):p!=null&&p===l?(console.error(`The server port and shadow database port cannot be the same. Please provide different port numbers in \`--${d.server}\` and/or \`--${d.shadow_database}\`.`),process.exit(1)):J.test(a)?{databasePort:n,debug:i,name:a,serverPort:p,shadowDatabasePort:l}:(console.error("Invalid name provided. The name can only contain letters, numbers, dashes, and underscores. Please provide a valid name in `--name`."),process.exit(1))}import{PortNotAvailableError as me,ServerAlreadyRunningError as ce}from"@prisma/dev";import{consola as F}from"consola";import{process as q}from"std-env";import{setTimeout as se}from"timers/promises";import{consola as f}from"consola";import{colorize as C}from"consola/utils";import ie from"yocto-spinner";import{isCancel as Z,SelectKeyPrompt as ee}from"@clack/core";import{box as re,colorize as oe}from"consola/utils";import{process as R}from"std-env";var te=[{value:"h",label:"print http url"},{value:"t",label:"print tcp urls"},{value:"q",label:"quit"}],$=6;function G(e){let r=new ee({debug:e?.debug,options:te,render:ne,signal:e?.abortSignal});return{clearPrompt(){R.stdout.moveCursor(0,-$),R.stdout.cursorTo(0),R.stdout.clearScreenDown()},prompt:r,respond:async o=>{if(Z(o)||o==="q")return await e?.onQuit?.();await e?.onOption?.[o]?.()}}}function ne(){let e=`${this.options.map(r=>`${oe("inverse",` ${r.value} `)} ${r.label}`).join(" ")}`;return re(e,{style:{borderColor:"blackBright",borderStyle:"solid"},title:" \u25B3 press a key \u25B3 "})}function B(e){let r=ie();return{renderContent:ae,renderIntro:()=>de(e,r),renderOutro:()=>Promise.resolve(pe(e)),spinner:r}}async function ae(e){let{abortSignal:r,debug:o,isClosed:t,onQuit:i,server:a,spinner:n}=e;if(n.success(` Great Success! \u{1F609}\u{1F44D}
3
3
 
4
- Your ${u} server ${s(a.name)} is ready and listening on ports ${x([new URL(a.http.url).port,new URL(a.database.connectionString).port,new URL(a.shadowDatabase.connectionString).port])}.`),!w){f.log(L(a)),f.log(U(a));return}for(;!o();){let{clearPrompt:p,prompt:l,respond:P}=G({abortSignal:r,debug:t,onOption:{h:()=>f.log(L(a)),t:()=>f.log(U(a))},onQuit:i}),v=await l.prompt();p(),r.aborted||await P(v)}}async function de(e,r){r.start(` Starting ${u} server ${s(e)}...${`
5
- `.repeat(C+3)}`),w&&await se(250)}function pe(e){f.log(`\u{1F44B} Buh Bye!
4
+ Your ${u} server ${s(a.name)} is ready and listening on ports ${x([new URL(a.http.url).port,new URL(a.database.connectionString).port,new URL(a.shadowDatabase.connectionString).port])}.`),!w){f.log(L(a)),f.log(U(a));return}for(;!t();){let{clearPrompt:p,prompt:l,respond:P}=G({abortSignal:r,debug:o,onOption:{h:()=>f.log(L(a)),t:()=>f.log(U(a))},onQuit:i}),v=await l.prompt();p(),r.aborted||await P(v)}}async function de(e,r){r.start(` Starting ${u} server ${s(e)}...${`
5
+ `.repeat($+3)}`),w&&await se(250)}function pe(e){f.log(`\u{1F44B} Buh Bye!
6
6
 
7
7
  Your ${u} server ${s(e)} has been closed successfully.
8
8
  `)}function L(e){return`\u{1F50C} To connect to your local Prisma Postgres database via HTTP + Prisma ORM
@@ -10,25 +10,25 @@ import{a as s,b as y,d as c,e as u,f as w}from"./chunk-ZKMEOIRF.js";import{a as
10
10
 
11
11
  ${H("\u{1F4C4} .env:")}
12
12
 
13
- ${$("DATABASE_URL",le(e.ppg.url))}
13
+ ${T("DATABASE_URL",le(e.ppg.url))}
14
14
 
15
15
  \u2728 The ${s("api_key")} above does not contain any sensitive information.`}function U(e){return`\u{1F50C} To connect to your local Prisma Postgres database via TCP + Prisma ORM
16
16
  use the following connection strings:
17
17
 
18
18
  ${H("\u{1F4C4} .env:")}
19
19
 
20
- ${$("DATABASE_URL",j(e.database.prismaORMConnectionString))}
20
+ ${T("DATABASE_URL",j(e.database.prismaORMConnectionString))}
21
21
 
22
- ${$("SHADOW_DATABASE_URL",j(e.shadowDatabase.prismaORMConnectionString))}
22
+ ${T("SHADOW_DATABASE_URL",j(e.shadowDatabase.prismaORMConnectionString))}
23
23
 
24
24
  \u{1F418} You can also use the TCP ${s("DATABASE_URL")} with the ${s("pg")} or ${s("postgres.js")} JavaScript drivers!
25
25
 
26
26
  Set the maximum number of connections to ${s(1)}, connect timeout to ${s(0)} and
27
- idle timeout to the smallest positive value supported.`}function x(e){if(e.length===0)return"";let r=[...e].map(Number).sort();return r.length>1&&r.every((t,o)=>o===0||t===r[o-1]+1)?`${s(r[0])}-${s(r.at(-1))}`:e.map(s).join(", ")}function $(e,r){return`${s(e)}="${r}"`}function le(e){return e=new URL(e),`${y(e.protocol)}//${s(e.hostname)}:${s(e.port)}${c(e.pathname)}${c(e.search)}`}function j(e){return e=new URL(e),`${y(e.protocol)}${c(`//${e.username}:${e.password}@`)}${s(e.hostname)}${c(":")}${s(e.port)}${c(e.pathname)}${c(e.search)}`}function H(e){return T("italic",T("dim",T("green",`# ${e}`)))}async function g(e,r,t){if(e instanceof ce)try{let i=await e.server;if(!i)return await g("Something went wrong, try again!",r,t);r.warning(` Skipped! \u{1F60C}
27
+ idle timeout to the smallest positive value supported.`}function x(e){if(e.length===0)return"";let r=[...e].map(Number).sort();return r.length>1&&r.every((o,t)=>t===0||o===r[t-1]+1)?`${s(r[0])}-${s(r.at(-1))}`:e.map(s).join(", ")}function T(e,r){return`${s(e)}="${r}"`}function le(e){return e=new URL(e),`${y(e.protocol)}//${s(e.hostname)}:${s(e.port)}${c(e.pathname)}${c(e.search)}`}function j(e){return e=new URL(e),`${y(e.protocol)}${c(`//${e.username}:${e.password}@`)}${s(e.hostname)}${c(":")}${s(e.port)}${c(e.pathname)}${c(e.search)}`}function H(e){return C("italic",C("dim",C("green",`# ${e}`)))}async function g(e,r,o){if(e instanceof ce)try{let i=await e.server;if(!i)return await g("Something went wrong, try again!",r,o);r.warning(` Skipped! \u{1F60C}
28
28
 
29
29
  Your ${u} server ${s(i.name)} is already running and listening on ports ${x([i.port,i.databasePort,i.shadowDatabasePort])}.
30
30
 
31
31
  To start a different server, use the ${`${s("-n")}/${s("--name")}`} flag with another name.
32
- `);return}catch(i){return await g(i,r,t)}let{args:o}=t;throw F.error(e instanceof me?`Prisma Dev Error: port number \`${e.port}\` is already in use. Please pass a different port number in the \`--${o.port===String(e.port)?"port":o.databasePort===String(e.port)?"database":"shadow_database"}\` option.`:e),q.exitCode||=1,e}function V(e){q.on?.("uncaughtException",r=>{if("code"in r&&r.code==="ECONNRESET"){e?.debug&&F.error("uncaught ECONNRESET");return}e?.onError?.(r)})}import{consola as b}from"consola";import{process as h}from"std-env";function X(e){let r={shutdownAlreadyStarted:!1};h.once?.("SIGINT",Q("SIGINT",e,r)),h.once?.("SIGTERM",Q("SIGTERM",e,r))}function Q(e,r,t){let{debug:o,onFailure:i,onSuccess:a,server:n}=r;return()=>{if(t.shutdownAlreadyStarted){o&&b.debug(`Received ${e} signal, ignoring.`);return}t.shutdownAlreadyStarted=!0,o&&b.debug(`${e} signal receieved.`),o&&b.log(`
32
+ `);return}catch(i){return await g(i,r,o)}let{args:t}=o;throw F.error(e instanceof me?`Prisma Dev Error: port number \`${e.port}\` is already in use. Please pass a different port number in the \`--${t.port===String(e.port)?"port":t.databasePort===String(e.port)?"database":"shadow_database"}\` option.`:e),q.exitCode||=1,e}function V(e){q.on?.("uncaughtException",r=>{if("code"in r&&r.code==="ECONNRESET"){e?.debug&&F.error("uncaught ECONNRESET");return}e?.onError?.(r)})}import{consola as b}from"consola";import{process as h}from"std-env";function X(e){let r={shutdownAlreadyStarted:!1};h.once?.("SIGINT",Q("SIGINT",e,r)),h.once?.("SIGTERM",Q("SIGTERM",e,r))}function Q(e,r,o){let{debug:t,onFailure:i,onSuccess:a,server:n}=r;return()=>{if(o.shutdownAlreadyStarted){t&&b.debug(`Received ${e} signal, ignoring.`);return}o.shutdownAlreadyStarted=!0,t&&b.debug(`${e} signal receieved.`),t&&b.log(`
33
33
  Closing Prisma Dev...
34
- `),h.exitCode=e==="SIGINT"?130:143,n.close().then(()=>{o&&b.debug("Prisma Dev server closed."),e==="SIGINT"&&(h.exitCode=0),a()}).catch(i)}}var be={description:"Spin up a local Prisma Postgres database",name:"prisma dev",version:M},S="\v",O=fe({args:k,meta:be,run:async e=>{let{subCommands:r}=e.cmd,t=r?e.rawArgs.find(m=>!m.startsWith("-")):void 0;if(t&&t!==S&&t in r)return;let{debug:o,name:i,serverPort:a,...n}=D(e),{renderContent:p,renderIntro:l,renderOutro:P,spinner:v}=B(i);try{let m=await he({...n,debug:o,name:i,port:a,renderIntro:l}),A=new AbortController,{isFulfilled:W,promise:Y,reject:E,resolve:I}=_({onFulfilled:()=>A.abort()});X({debug:o,onFailure:E,onSuccess:I,server:m}),V({debug:o,onError:E}),await p({abortSignal:A.signal,debug:o,isClosed:W,onQuit:async()=>{await m.close(),I()},server:m,spinner:v}),await Y,await P(),ge.exitCode||=0}catch(m){await g(m,v,e)}},setup(e){e.args.debug&&(K.level=ve.debug),K.options.formatOptions.date=!1},subCommands:{[S]:{},ls:()=>import("./list-K5DAVLAS.js").then(e=>e.ListCommand),rm:()=>import("./remove-6QJTZ5SK.js").then(e=>e.RemoveCommand),stop:()=>import("./stop-CRL2UWAK.js").then(e=>e.StopCommand)}});async function he(e){let{renderIntro:r,...t}=e,[,o]=await Promise.allSettled([e.renderIntro(),ue({...t,persistenceMode:"stateful"})]);if(o.status==="rejected")throw o.reason;return o.value}Se.setGlobalContextManager(new ye);Pe.setGlobalTracerProvider(new we);async function ur(e,r){let[t]=e;t==="-v"&&(e[0]="--version"),t&&!(t in O.subCommands)&&t!=="--help"&&t!=="-h"&&t!=="--version"&&t!=="-v"&&e.unshift(S),await Re(O,{rawArgs:e})}export{ur as run};
34
+ `),h.exitCode=e==="SIGINT"?130:143,n.close().then(()=>{t&&b.debug("Prisma Dev server closed."),e==="SIGINT"&&(h.exitCode=0),a()}).catch(i)}}var be={description:"Spin up a local Prisma Postgres database",name:"prisma dev",version:M},S="\v",O=fe({args:D,meta:be,run:async e=>{let{subCommands:r}=e.cmd,o=r?e.rawArgs.find(m=>!m.startsWith("-")):void 0;if(o&&o!==S&&o in r)return;let{debug:t,name:i,serverPort:a,...n}=k(e),{renderContent:p,renderIntro:l,renderOutro:P,spinner:v}=B(i);try{let m=await he({...n,debug:t,name:i,port:a,renderIntro:l}),A=new AbortController,{isFulfilled:W,promise:Y,reject:E,resolve:I}=_({onFulfilled:()=>A.abort()});X({debug:t,onFailure:E,onSuccess:I,server:m}),V({debug:t,onError:E}),await p({abortSignal:A.signal,debug:t,isClosed:W,onQuit:async()=>{await m.close(),I()},server:m,spinner:v}),await Y,await P(),ge.exitCode||=0}catch(m){await g(m,v,e)}},setup(e){e.args.debug&&(K.level=ve.debug),K.options.formatOptions.date=!1},subCommands:{[S]:{},ls:()=>import("./list-K5DAVLAS.js").then(e=>e.ListCommand),rm:()=>import("./remove-6QJTZ5SK.js").then(e=>e.RemoveCommand),stop:()=>import("./stop-CRL2UWAK.js").then(e=>e.StopCommand)}});async function he(e){let{renderIntro:r,...o}=e,[,t]=await Promise.allSettled([e.renderIntro(),ue({...o,persistenceMode:"stateful"})]);if(t.status==="rejected")throw t.reason;return t.value}async function ir(e,r){let[o]=e;o==="-v"&&(e[0]="--version"),o&&!(o in O.subCommands)&&o!=="--help"&&o!=="-h"&&o!=="--version"&&o!=="-v"&&e.unshift(S),await Se(O,{rawArgs:e})}export{ir as run};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma/cli-dev",
3
- "version": "0.0.0-dev.202509051011",
3
+ "version": "0.0.0-dev.202510020621",
4
4
  "description": "Dev CLI for Prisma",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -36,20 +36,17 @@
36
36
  "tsup": "8.5.0",
37
37
  "typescript": "5.8.3",
38
38
  "vitest": "3.1.4",
39
- "common-stuff": "^0.0.0",
40
- "common-cli-utils": "^0.0.0"
39
+ "common-cli-utils": "^0.0.0",
40
+ "common-stuff": "^0.0.0"
41
41
  },
42
42
  "dependencies": {
43
43
  "@clack/core": "0.5.0",
44
- "@opentelemetry/api": "1.9.0",
45
- "@opentelemetry/context-async-hooks": "2.1.0",
46
- "@opentelemetry/sdk-trace-base": "2.1.0",
47
44
  "citty": "0.1.6",
48
45
  "consola": "3.4.2",
49
46
  "std-env": "3.9.0",
50
47
  "table-layout": "4.1.1",
51
48
  "yocto-spinner": "1.0.0",
52
- "@prisma/dev": "0.0.0-dev.202509051011"
49
+ "@prisma/dev": "0.0.0-dev.202510020621"
53
50
  },
54
51
  "scripts": {
55
52
  "build": "tsup",