@prisma/cli-dev 0.0.0-dev.202506211253 → 0.0.0-dev.202506212251

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.
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
- import{a as s,b as w,d as m,e as u,f as $}from"./chunk-ZKMEOIRF.js";import{a as _}from"./chunk-XOIFSEIB.js";import{runMain as $e}from"citty";import{unstable_startServer as be}from"@prisma/dev";import{defineCommand as he}from"citty";function M(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 z,LogLevels as Se}from"consola";import{process as Pe}from"std-env";var k="0.0.0-dev.202506211253";var d={database:"db-port",server:"port",shadow_database:"shadow-db-port"},D={..._,[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"}},re=/^[a-zA-Z0-9-_]+$/;function G(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)):re.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 ve,ServerAlreadyRunningError as ge}from"@prisma/dev";import{consola as Q}from"consola";import{process as X}from"std-env";import{setTimeout as de}from"timers/promises";import{consola as f}from"consola";import{colorize as v,stripAnsi as pe}from"consola/utils";import{process as U}from"std-env";import le from"yocto-spinner";import{isCancel as te,SelectKeyPrompt as oe}from"@clack/core";import{box as ne,colorize as se}from"consola/utils";import{process as R}from"std-env";var ie=[{value:"q",label:"uit"},{value:"h",label:"ttp url"},{value:"t",label:"cp urls"}],C=4;function L(e){let r=new oe({debug:e?.debug,options:ie,render:ae,signal:e?.abortSignal});return{clearPrompt(){R.stdout.moveCursor(0,-C),R.stdout.cursorTo(0),R.stdout.clearScreenDown()},prompt:r,respond:async t=>{if(te(t)||t==="q")return await e?.onQuit?.();e?.onOption?.[t]?.()}}}function ae(){let e=`${this.options.map(r=>`[${se("cyan",r.value)}]${r.label}`).join(" ")}`;return ne(e,{style:{borderColor:"blackBright",padding:0}})}function F(e){let r=le();return{renderContent:ce,renderIntro:()=>me(e,r),renderOutro:()=>Promise.resolve(ue(e)),spinner:r}}async function ce(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 w,d as m,e as u,f as $}from"./chunk-ZKMEOIRF.js";import{a as _}from"./chunk-XOIFSEIB.js";import{runMain as $e}from"citty";import{unstable_startServer as be}from"@prisma/dev";import{defineCommand as he}from"citty";function M(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 z,LogLevels as Se}from"consola";import{process as Pe}from"std-env";var k="0.0.0-dev.202506212251";var d={database:"db-port",server:"port",shadow_database:"shadow-db-port"},D={..._,[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"}},re=/^[a-zA-Z0-9-_]+$/;function G(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)):re.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 ve,ServerAlreadyRunningError as ge}from"@prisma/dev";import{consola as Q}from"consola";import{process as X}from"std-env";import{setTimeout as de}from"timers/promises";import{consola as f}from"consola";import{colorize as v,stripAnsi as pe}from"consola/utils";import{process as U}from"std-env";import le from"yocto-spinner";import{isCancel as te,SelectKeyPrompt as oe}from"@clack/core";import{box as ne,colorize as se}from"consola/utils";import{process as R}from"std-env";var ie=[{value:"q",label:"uit"},{value:"h",label:"ttp url"},{value:"t",label:"cp urls"}],C=4;function L(e){let r=new oe({debug:e?.debug,options:ie,render:ae,signal:e?.abortSignal});return{clearPrompt(){R.stdout.moveCursor(0,-C),R.stdout.cursorTo(0),R.stdout.clearScreenDown()},prompt:r,respond:async t=>{if(te(t)||t==="q")return await e?.onQuit?.();e?.onOption?.[t]?.()}}}function ae(){let e=`${this.options.map(r=>`[${se("cyan",r.value)}]${r.label}`).join(" ")}`;return ne(e,{style:{borderColor:"blackBright",padding:0}})}function F(e){let r=le();return{renderContent:ce,renderIntro:()=>me(e,r),renderOutro:()=>Promise.resolve(ue(e)),spinner:r}}async function ce(e){let{abortSignal:r,debug:t,isClosed:o,onQuit:i,server:a,spinner:n}=e;if(n.success(` Great Success! \u{1F609}\u{1F44D}
3
3
 
4
4
  Your ${u} server ${s(a.name)} is ready and listening on ports ${O([new URL(a.http.url).port,new URL(a.database.connectionString).port,new URL(a.shadowDatabase.connectionString).port])}.`),!$){f.log(B(a)),f.log(j(a));return}for(;!o();){let{clearPrompt:p,prompt:l,respond:y}=L({abortSignal:r,debug:t,onOption:{h:()=>f.log(B(a)),t:()=>f.log(j(a))},onQuit:i}),g=await l.prompt();p(),r.aborted||await y(g)}}async function me(e,r){r.start(` Starting ${u} server ${s(e)}...${`
5
5
  `.repeat(C+3)}`),$&&await de(250)}function ue(e){f.log(`\u{1F44B} Buh Bye!
@@ -35,4 +35,4 @@ ${T()}`)}function T(e=0){return e%=U.stdout.columns," ".repeat(U.stdout.columns-
35
35
  To start a different server, use the ${`${s("-n")}/${s("--name")}`} flag with another name.
36
36
  `);return}catch(i){return await b(i,r,t)}let{args:o}=t;throw Q.error(e instanceof ve?`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),X.exitCode||=1,e}function K(e){X.on?.("uncaughtException",r=>{if("code"in r&&r.code==="ECONNRESET"){e?.debug&&Q.error("uncaught ECONNRESET");return}e?.onError?.(r)})}import{consola as h}from"consola";import{process as S}from"std-env";function Y(e){let r={shutdownAlreadyStarted:!1};S.once?.("SIGINT",W("SIGINT",e,r)),S.once?.("SIGTERM",W("SIGTERM",e,r))}function W(e,r,t){let{debug:o,onFailure:i,onSuccess:a,server:n}=r;return()=>{if(t.shutdownAlreadyStarted){o&&h.debug(`Received ${e} signal, ignoring.`);return}t.shutdownAlreadyStarted=!0,o&&h.debug(`${e} signal receieved.`),o&&h.log(`
37
37
  Closing Prisma Dev...
38
- `),S.exitCode=e==="SIGINT"?130:143,n.close().then(()=>{o&&h.debug("Prisma Dev server closed."),e==="SIGINT"&&(S.exitCode=0),a()}).catch(i)}}var ye={description:"Spin up a local Prisma Postgres database",name:"prisma dev",version:k},P="\v",A=he({args:D,meta:ye,run:async e=>{let{subCommands:r}=e.cmd,t=r?e.rawArgs.find(c=>!c.startsWith("-")):void 0;if(t&&t!==P&&t in r)return;let{debug:o,name:i,serverPort:a,...n}=G(e),{renderContent:p,renderIntro:l,renderOutro:y,spinner:g}=F(i);try{let c=await we({...n,debug:o,name:i,port:a,renderIntro:l}),E=new AbortController,{isFulfilled:J,promise:Z,reject:I,resolve:N}=M({onFulfilled:()=>E.abort()});Y({debug:o,onFailure:I,onSuccess:N,server:c}),K({debug:o,onError:I}),await p({abortSignal:E.signal,debug:o,isClosed:J,onQuit:async()=>{await c.close(),N()},server:c,spinner:g}),await Z,await y(),Pe.exitCode||=0}catch(c){await b(c,g,e)}},setup(e){e.args.debug&&(z.level=Se.debug),z.options.formatOptions.date=!1},subCommands:{[P]:{},ls:()=>import("./list-K5DAVLAS.js").then(e=>e.ListCommand),rm:()=>import("./remove-HQAF4XST.js").then(e=>e.RemoveCommand)}});async function we(e){let{renderIntro:r,...t}=e,[,o]=await Promise.allSettled([e.renderIntro(),be({...t,persistenceMode:"stateful"})]);if(o.status==="rejected")throw o.reason;return o.value}async function cr(e,r){let[t]=e;t==="-v"&&(e[0]="--version"),t&&!(t in A.subCommands)&&t!=="--help"&&t!=="-h"&&t!=="--version"&&t!=="-v"&&e.unshift(P),await $e(A,{rawArgs:e})}export{cr as run};
38
+ `),S.exitCode=e==="SIGINT"?130:143,n.close().then(()=>{o&&h.debug("Prisma Dev server closed."),e==="SIGINT"&&(S.exitCode=0),a()}).catch(i)}}var ye={description:"Spin up a local Prisma Postgres database",name:"prisma dev",version:k},P="\v",A=he({args:D,meta:ye,run:async e=>{let{subCommands:r}=e.cmd,t=r?e.rawArgs.find(c=>!c.startsWith("-")):void 0;if(t&&t!==P&&t in r)return;let{debug:o,name:i,serverPort:a,...n}=G(e),{renderContent:p,renderIntro:l,renderOutro:y,spinner:g}=F(i);try{let c=await we({...n,debug:o,name:i,port:a,renderIntro:l}),E=new AbortController,{isFulfilled:J,promise:Z,reject:I,resolve:N}=M({onFulfilled:()=>E.abort()});Y({debug:o,onFailure:I,onSuccess:N,server:c}),K({debug:o,onError:I}),await p({abortSignal:E.signal,debug:o,isClosed:J,onQuit:async()=>{await c.close(),N()},server:c,spinner:g}),await Z,await y(),Pe.exitCode||=0}catch(c){await b(c,g,e)}},setup(e){e.args.debug&&(z.level=Se.debug),z.options.formatOptions.date=!1},subCommands:{[P]:{},ls:()=>import("./list-K5DAVLAS.js").then(e=>e.ListCommand),rm:()=>import("./remove-W52PYGAD.js").then(e=>e.RemoveCommand)}});async function we(e){let{renderIntro:r,...t}=e,[,o]=await Promise.allSettled([e.renderIntro(),be({...t,persistenceMode:"stateful"})]);if(o.status==="rejected")throw o.reason;return o.value}async function cr(e,r){let[t]=e;t==="-v"&&(e[0]="--version"),t&&!(t in A.subCommands)&&t!=="--help"&&t!=="-h"&&t!=="--version"&&t!=="-v"&&e.unshift(P),await $e(A,{rawArgs:e})}export{cr as run};
@@ -0,0 +1,19 @@
1
+ import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
+ import{a as m,b as p,c as g,e as o,f as d}from"./chunk-ZKMEOIRF.js";import{a as f}from"./chunk-XOIFSEIB.js";import{deleteServer as w,isServerRunning as h,ServerState as T}from"@prisma/dev/internal/state";import{defineCommand as y}from"citty";import{consola as n}from"consola";import{process as A}from"std-env";import{TextPrompt as b}from"@clack/core";import{colorize as s}from"consola/utils";async function v(t){let{confirmationText:e,debug:a}=t;return d?await new b({debug:a,render(){switch(this.state){case"active":case"error":case"initial":{let r=`
3
+ \u{1F9F7} To confirm, type ${g(e)} and press ${s("inverse"," \u23CE ")}:`,u=this.value?.length<=e.length&&e.startsWith(this.value),i=this.value===e,S=e.charAt(this.cursor)?s("inverse",e.charAt(this.cursor)):this.valueWithCursor.charAt(this.cursor),C=s("dim",e.slice(this.valueWithCursor.length));return`${r}
4
+
5
+ ${s(i?"greenBright":u?"reset":"redBright",`${s("hidden","_")}> ${this.value}${S}`)}${C}
6
+ `}case"cancel":return`
7
+ Aborted!
8
+
9
+ `;case"submit":return`
10
+ `;default:return this.state,`
11
+ `}},validate:r=>r!==e?"wrong":void 0}).prompt()===e:!0}var R={...f,force:{default:!1,description:"Stops any running servers before removing them. Default is `false`, which would fail the command if any server is running.",required:!1,type:"boolean"},name:{description:"Name(s)/pattern(s) of the server(s) to remove",required:!0,type:"positional",valueHint:"glob"}},x={description:"Remove servers",name:"rm"},H=y({args:R,meta:x,run:async t=>{let{debug:e,force:a,name:c}=t.args,l=c.split(","),r=await T.scan({debug:e,globs:l});if(r.length===0){n.log(`\u26A0\uFE0F No ${o} servers found to remove.
12
+ `);return}if(!a&&r.some(h)){n.log(`\u{1F6AB} Some ${o} servers are currently running:
13
+
14
+ ${$(r.filter(h))}
15
+
16
+ Use the ${p("--force")} flag to stop and remove them.`),A.exitCode||=1;return}n.log(`\u{1F5D1}\uFE0F Removing the following ${o} servers:
17
+
18
+ ${$(r)}`),await v({confirmationText:"i will lose local data",debug:t.args.debug})&&(await Promise.allSettled(r.map(async i=>{await w(i,e),n.log(`\u{1F9F9} Removed ${o} server ${m(i.name)}.`)})),n.log(""))}});function $(t){return` - ${t.map(e=>`${m(e.name)}`).join(`
19
+ - `)}`}export{H as RemoveCommand};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma/cli-dev",
3
- "version": "0.0.0-dev.202506211253",
3
+ "version": "0.0.0-dev.202506212251",
4
4
  "description": "Dev CLI for Prisma",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -46,7 +46,7 @@
46
46
  "std-env": "3.9.0",
47
47
  "table-layout": "4.1.1",
48
48
  "yocto-spinner": "1.0.0",
49
- "@prisma/dev": "0.0.0-dev.202506211253"
49
+ "@prisma/dev": "0.0.0-dev.202506212251"
50
50
  },
51
51
  "scripts": {
52
52
  "build": "tsup",
@@ -1,19 +0,0 @@
1
- import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
- import{a as m,b as u,c as d,e as o,f as g}from"./chunk-ZKMEOIRF.js";import{a as p}from"./chunk-XOIFSEIB.js";import{deleteServer as b,isServerRunning as h,ServerState as w}from"@prisma/dev/internal/state";import{defineCommand as T}from"citty";import{consola as n}from"consola";import{process as y}from"std-env";import{TextPrompt as C}from"@clack/core";import{colorize as i}from"consola/utils";async function v(t){let{confirmationText:e,debug:a}=t;return g?await new C({debug:a,render(){switch(this.state){case"active":case"error":case"initial":{let r=`
3
- \u{1F9F7} To confirm, type ${d(e)} and press ${i("inverse"," \u23CE ")}:`,f=this.value?.length<=e.length&&e.startsWith(this.value),s=this.value===e,$=i("dim",e.slice(this.valueWithCursor.length));return`${r}
4
-
5
- ${i(s?"greenBright":f?"reset":"redBright",`${i("hidden","_")}> ${this.valueWithCursor}`)}${$}
6
- `}case"cancel":return`
7
- Aborted!
8
-
9
- `;case"submit":return`
10
- `;default:return this.state,`
11
- `}},validate:r=>r!==e?"wrong":void 0}).prompt()===e:!0}var R={...p,force:{default:!1,description:"Stops any running servers before removing them. Default is `false`, which would fail the command if any server is running.",required:!1,type:"boolean"},name:{description:"Name(s)/pattern(s) of the server(s) to remove",required:!0,type:"positional",valueHint:"glob"}},x={description:"Remove servers",name:"rm"},B=T({args:R,meta:x,run:async t=>{let{debug:e,force:a,name:l}=t.args,c=l.split(","),r=await w.scan({debug:e,globs:c});if(r.length===0){n.log(`\u26A0\uFE0F No ${o} servers found to remove.
12
- `);return}if(!a&&r.some(h)){n.log(`\u{1F6AB} Some ${o} servers are currently running:
13
-
14
- ${S(r.filter(h))}
15
-
16
- Use the ${u("--force")} flag to stop and remove them.`),y.exitCode||=1;return}n.log(`\u{1F5D1}\uFE0F Removing the following ${o} servers:
17
-
18
- ${S(r)}`),await v({confirmationText:"i will lose local data",debug:t.args.debug})&&(await Promise.allSettled(r.map(async s=>{await b(s,e),n.log(`\u{1F9F9} Removed ${o} server ${m(s.name)}.`)})),n.log(""))}});function S(t){return` - ${t.map(e=>`${m(e.name)}`).join(`
19
- - `)}`}export{B as RemoveCommand};