@prisma/cli-dev 0.0.0-dev.202506110338 → 0.0.0-dev.202506111136

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 +27 -12
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -1,17 +1,32 @@
1
1
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
- import{runMain as se}from"citty";import{unstable_startServer as Y}from"@prisma/dev";import{defineCommand as J}from"citty";function w(){let e,t,o=new Promise((r,c)=>{e=r,t=c}),n=r=>{n=i=null,t(r)},i=r=>{i=n=null,e(r)};return{isFulfilled:()=>i===n,promise:o,reject:r=>n?.(r),resolve:r=>i?.(r)}}import{consola as l,LogLevels as X}from"consola";import{colorize as I}from"consola/utils";import{hasTTY as Z,isCI as ee,process as D}from"std-env";import oe from"yocto-spinner";var y="0.0.0-dev.202506110338";import{DEFAULT_DATABASE_PORT as T,DEFAULT_SERVER_PORT as $,DEFAULT_SHADOW_DATABASE_PORT as A}from"@prisma/dev";var s={database:"db-port",server:"port",shadow_database:"shadow-db-port"},E={[s.database]:{alias:"P",description:`Port number the database server will listen on. Defaults to \`${T}\`.`,required:!1,type:"string"},debug:{default:!1,description:"Enable debug logging. Defaults to `false`.",required:!1,type:"boolean"},name:{alias:"n",default:"default",description:"Name of the server. Helps keep state isolated between different projects. Defaults to `default`.",required:!1,type:"string"},[s.server]:{alias:"p",description:`Main port number the Prisma Dev server will listen on. Defaults to \`${$}\`.`,required:!1,type:"string"},[s.shadow_database]:{description:`Port number the shadow database server will listen on. Defaults to \`${A}\`.`,required:!1,type:"string"}},F=/^[a-zA-Z0-9-_]+$/;function R(e){let{[s.server]:t,[s.database]:o,[s.shadow_database]:n,debug:i,name:r}=e.args,c=o?Number(o):T,p=t?Number(t):$,d=n?Number(n):A;return t&&isNaN(p)?(console.error(`Invalid server port number provided. Please provide a valid port number in \`--${s.server}\`.`),process.exit(1)):o&&isNaN(c)?(console.error(`Invalid database port number provided. Please provide a valid port number in \`--${s.database}\`.`),process.exit(1)):n&&isNaN(d)?(console.error(`Invalid shadow database port number provided. Please provide a valid port number in \`--${s.shadow_database}\`.`),process.exit(1)):p===c?(console.error(`The server port and database port cannot be the same. Please provide different port numbers in \`--${s.server}\` and/or \`--${s.database}\`.`),process.exit(1)):c===d?(console.error(`The database port and shadow database port cannot be the same. Please provide different port numbers in \`--${s.database}\` and/or \`--${s.shadow_database}\`.`),process.exit(1)):p===d?(console.error(`The server port and shadow database port cannot be the same. Please provide different port numbers in \`--${s.server}\` and/or \`--${s.shadow_database}\`.`),process.exit(1)):F.test(r)?{databasePort:c,debug:i,name:r,serverPort:p,shadowDatabasePort:d}:(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 q}from"@prisma/dev";function x(e){throw console.error(e instanceof q?`Prisma Dev Error: port number \`${e.port}\` is already in use. Please pass a different port number in the \`--${s[e.service]}\` option.`:e),process.exitCode||=1,e}import{isCancel as H,SelectKeyPrompt as V}from"@clack/core";import{box as W,colorize as z}from"consola/utils";import{process as f}from"std-env";var K=[{value:"q",label:"uit"},{value:"h",label:"ttp url"},{value:"t",label:"cp urls"}];function O(e){let t=new V({options:K,render:Q});return{clearPrompt(){f.stdout?.isTTY&&(f.stdout?.moveCursor(0,-4),f.stdout?.clearScreenDown())},prompt:t,respond(o){if(H(o)||o==="q"){e?.onQuit?.();return}e?.onOption?.[o]?.()}}}function Q(){let e=`${this.options.map(t=>`[${z("cyan",t.value)}]${t.label}`).join(" ")}`;return W(e,{style:{borderColor:"blackBright",padding:0}})}function C(e){let t={shutdownAlreadyStarted:!1};process.once("SIGINT",_("SIGINT",e,t)),process.once("SIGTERM",_("SIGTERM",e,t))}function _(e,t,o){let{debug:n,onFailure:i,onSuccess:r,server:c}=t;return()=>{if(o.shutdownAlreadyStarted){n&&console.debug(`Received ${e} signal, ignoring.`);return}o.shutdownAlreadyStarted=!0,n&&console.debug(`${e} signal receieved.`),console.log(`
2
+ import{runMain as le}from"citty";import{unstable_startServer as ne}from"@prisma/dev";import{defineCommand as se}from"citty";function E(){let e,t,o=new Promise((s,p)=>{e=s,t=p}),r=s=>{r=a=null,t(s)},a=s=>{a=r=null,e(s)};return{isFulfilled:()=>a===r,promise:o,reject:s=>r?.(s),resolve:s=>a?.(s)}}import{consola as u,LogLevels as ie}from"consola";import{hasTTY as ae,isCI as de,process as F}from"std-env";import pe from"yocto-spinner";var C="0.0.0-dev.202506111136";import{DEFAULT_DATABASE_PORT as R,DEFAULT_SERVER_PORT as _,DEFAULT_SHADOW_DATABASE_PORT as O}from"@prisma/dev";var i={database:"db-port",server:"port",shadow_database:"shadow-db-port"},D={[i.database]:{alias:"P",description:`Port number the database server will listen on. Defaults to \`${R}\`.`,required:!1,type:"string"},debug:{default:!1,description:"Enable debug logging. Defaults to `false`.",required:!1,type:"boolean"},name:{alias:"n",default:"default",description:"Name of the server. Helps keep state isolated between different projects. Defaults to `default`.",required:!1,type:"string"},[i.server]:{alias:"p",description:`Main port number the Prisma Dev server will listen on. Defaults to \`${_}\`.`,required:!1,type:"string"},[i.shadow_database]:{description:`Port number the shadow database server will listen on. Defaults to \`${O}\`.`,required:!1,type:"string"}},Q=/^[a-zA-Z0-9-_]+$/;function I(e){let{[i.server]:t,[i.database]:o,[i.shadow_database]:r,debug:a,name:s}=e.args,p=o?Number(o):R,l=t?Number(t):_,d=r?Number(r):O;return t&&isNaN(l)?(console.error(`Invalid server port number provided. Please provide a valid port number in \`--${i.server}\`.`),process.exit(1)):o&&isNaN(p)?(console.error(`Invalid database port number provided. Please provide a valid port number in \`--${i.database}\`.`),process.exit(1)):r&&isNaN(d)?(console.error(`Invalid shadow database port number provided. Please provide a valid port number in \`--${i.shadow_database}\`.`),process.exit(1)):l===p?(console.error(`The server port and database port cannot be the same. Please provide different port numbers in \`--${i.server}\` and/or \`--${i.database}\`.`),process.exit(1)):p===d?(console.error(`The database port and shadow database port cannot be the same. Please provide different port numbers in \`--${i.database}\` and/or \`--${i.shadow_database}\`.`),process.exit(1)):l===d?(console.error(`The server port and shadow database port cannot be the same. Please provide different port numbers in \`--${i.server}\` and/or \`--${i.shadow_database}\`.`),process.exit(1)):Q.test(s)?{databasePort:p,debug:a,name:s,serverPort:l,shadowDatabasePort:d}:(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 W}from"@prisma/dev";function N(e){throw console.error(e instanceof W?`Prisma Dev Error: port number \`${e.port}\` is already in use. Please pass a different port number in the \`--${i[e.service]}\` option.`:e),process.exitCode||=1,e}import{isCancel as X,SelectKeyPrompt as J}from"@clack/core";import{box as Z,colorize as ee}from"consola/utils";import{process as g}from"std-env";var te=[{value:"q",label:"uit"},{value:"h",label:"ttp url"},{value:"t",label:"cp urls"}];function L(e){let t=new J({options:te,render:oe});return{clearPrompt(){g.stdout?.isTTY&&(g.stdout?.moveCursor(0,-4),g.stdout?.clearScreenDown())},prompt:t,respond(o){if(X(o)||o==="q"){e?.onQuit?.();return}e?.onOption?.[o]?.()}}}function oe(){let e=`${this.options.map(t=>`[${ee("cyan",t.value)}]${t.label}`).join(" ")}`;return Z(e,{style:{borderColor:"blackBright",padding:0}})}import{colorize as c,stripAnsi as re}from"consola/utils";import{process as k}from"std-env";var f=c("white",c("bgBlack"," prisma dev "));function M(e){if(e.length===0)return"";let t=[...e].sort();return t.length>1&&t.every((o,r)=>r===0||o===t[r-1]+1)?`${n(t[0])}-${n(t.at(-1))}`:e.map(n).join(", ")}function v(e,t){return c("bgBlack",`${n(e)}="${t}"`)}function G(e){return e=new URL(e),`${B(e.protocol)}//${n(e.hostname)}:${n(e.port)}${e.pathname}${e.search}`}function P(e){return e=new URL(e),`${B(e.protocol)}//${e.username}:${e.password}@${n(e.hostname)}:${n(e.port)}${e.pathname}${e.search}`}function n(e){return c("cyan",e)}function B(e){return c("magenta",e)}function S(e){return c("italic",c("dim",c("greenBright",`# ${e}`)))}function T(e){return c("bgBlack",`${h()}
3
+ ${e.split(`
4
+ `).map(t=>`${t}${h(k.stdout.columns-re(t).length)}`).join(`
5
+ `)}
6
+ ${h()}`)}function h(e){return e!==void 0&&e<0?"":" ".repeat(e??k.stdout.columns)}function j(e){let t={shutdownAlreadyStarted:!1};process.once("SIGINT",U("SIGINT",e,t)),process.once("SIGTERM",U("SIGTERM",e,t))}function U(e,t,o){let{debug:r,onFailure:a,onSuccess:s,server:p}=t;return()=>{if(o.shutdownAlreadyStarted){r&&console.debug(`Received ${e} signal, ignoring.`);return}o.shutdownAlreadyStarted=!0,r&&console.debug(`${e} signal receieved.`),console.log(`
3
7
  Closing Prisma Dev...
4
- `),process.exitCode=e==="SIGINT"?130:143,c.close().then(()=>{n&&console.debug("Prisma Dev server closed."),e==="SIGINT"&&(process.exitCode=0),r()}).catch(i)}}var te={description:"Spin up a local Prisma Postgres database",name:"dev",version:y},u="\v",b=J({args:E,cleanup(){l.restoreAll()},meta:te,run:async e=>{let{subCommands:t}=e.cmd,o=t?e.rawArgs.find(d=>!d.startsWith("-")):void 0;if(o&&o!==u&&o in t)return;let{debug:n,name:i,serverPort:r,...c}=R(e),p=oe().start(`Starting Prisma Dev server ${a(i)}...`);try{let d=await Y({...c,debug:n,name:i,persistenceMode:"stateful",port:r}),{isFulfilled:G,promise:M,reject:g,resolve:h}=w();C({debug:n,onFailure:g,onSuccess:h,server:d}),D.on?.("uncaughtException",m=>{if("code"in m&&m.code==="ECONNRESET"){n&&console.error("uncaught ECONNRESET from PGLite");return}g(m)}),p.success(`Great Success!
5
- Prisma Dev server ${a(i)} is ready and listening on ports ${a(r)}, ${a(c.databasePort)}, ${a(c.shadowDatabasePort)}.`);let P=`
6
- \u{1F50C} To connect to your local Prisma Postgres database via HTTP + Prisma ORM, use the following connection string:
8
+ `),process.exitCode=e==="SIGINT"?130:143,p.close().then(()=>{r&&console.debug("Prisma Dev server closed."),e==="SIGINT"&&(process.exitCode=0),s()}).catch(a)}}var ce={description:"Spin up a local Prisma Postgres database",name:"dev",version:C},b="\v",$=se({args:D,meta:ce,run:async e=>{let{subCommands:t}=e.cmd,o=t?e.rawArgs.find(d=>!d.startsWith("-")):void 0;if(o&&o!==b&&o in t)return;let{debug:r,name:a,serverPort:s,...p}=I(e),l=pe().start(` Starting ${f} server ${n(a)}...`);try{let d=await ne({...p,debug:r,name:a,persistenceMode:"stateful",port:s}),{isFulfilled:q,promise:H,reject:w,resolve:y}=E();j({debug:r,onFailure:w,onSuccess:y,server:d}),F.on?.("uncaughtException",m=>{if("code"in m&&m.code==="ECONNRESET"){r&&console.error("uncaught ECONNRESET from PGLite");return}w(m)}),l.success(` Great Success! \u{1F609}\u{1F44D}
7
9
 
8
- ${v("DATABASE_URL",re(d.ppg.url))}`,S=`
9
- \u{1F50C} To connect to your local Prisma Postgres database via TCP + Prisma ORM, use the following connection strings:
10
+ Your ${f} server ${n(a)} is ready and listening on ports ${M([s,p.databasePort,p.shadowDatabasePort])}.`);let x=`\u{1F50C} To connect to your local Prisma Postgres database via HTTP + Prisma ORM
11
+ use the following connection string:
10
12
 
11
- ${v("DATABASE_URL",N(d.database.prismaORMConnectionString))}
12
-
13
- ${v("SHADOW_DATABASE_URL",N(d.shadowDatabase.prismaORMConnectionString))}
13
+ ${T(` ${S("\u{1F4C4} .env:")}
14
14
 
15
- \u{1F418} You can also use the TCP ${a("DATABASE_URL")} with the ${a("pg")} or ${a("postgres.js")} JavaScript drivers!
16
- When you do so, set the maximum number of connections to ${a(1)}, connect timeout to ${a(0)} and idle timeout to the smallest positive value supported.`;if(!ee&&Z)for(;!G();){let{clearPrompt:m,prompt:k,respond:U}=O({onOption:{h:()=>console.log(P),t:()=>console.log(S)},onQuit:h}),B=await k.prompt();m(),U(B)}else l.log(P),l.log(S);await M,l.log(`\u{1F44B} Buh Bye!
17
- Prisma Dev server ${a(i)} has been closed successfully.`),D.exit?.(0)}catch(d){x(d)}},setup(e){e.args.debug&&(l.level=X.debug),l.options.formatOptions.date=!1},subCommands:{[u]:{},ls:()=>import("./list-4ABJMPY2.js").then(e=>e.ListCommand)}});function v(e,t){return`${a(e)}="${t}"`}function re(e){return e=new URL(e),`${L(e.protocol)}//${a(e.hostname)}:${a(e.port)}${e.pathname}${e.search}`}function N(e){return e=new URL(e),`${L(e.protocol)}//${e.username}:${e.password}@${a(e.hostname)}:${a(e.port)}${e.pathname}${e.search}`}function L(e){return I("magenta",e)}function a(e){return I("cyan",e)}async function De(e,t){let[o]=e;o==="-v"&&(e[0]="--version"),o&&!(o in b.subCommands)&&o!=="--help"&&o!=="-h"&&o!=="--version"&&o!=="-v"&&e.unshift(u),await se(b,{rawArgs:e})}export{De as run};
15
+ ${v("DATABASE_URL",G(d.ppg.url))}`)}
16
+
17
+ \u2728 The ${n("api_key")} above does not contain any sensitive information.`,A=`\u{1F50C} To connect to your local Prisma Postgres database via TCP + Prisma ORM
18
+ use the following connection strings:
19
+
20
+ ${T(` ${S("\u{1F4C4} .env:")}
21
+
22
+ ${v("DATABASE_URL",P(d.database.prismaORMConnectionString))}
23
+
24
+ ${v("SHADOW_DATABASE_URL",P(d.shadowDatabase.prismaORMConnectionString))}`)}
25
+
26
+ \u{1F418} You can also use the TCP ${n("DATABASE_URL")} with the ${n("pg")} or ${n("postgres.js")} JavaScript drivers!
27
+
28
+ Set the maximum number of connections to ${n(1)}, connect timeout to ${n(0)} and
29
+ idle timeout to the smallest positive value supported.`;if(!de&&ae)for(;!q();){let{clearPrompt:m,prompt:V,respond:Y}=L({onOption:{h:()=>console.log(x),t:()=>console.log(A)},onQuit:y}),z=await V.prompt();m(),Y(z)}else u.log(x),u.log(A);await H,u.log(`\u{1F44B} Buh Bye!
30
+
31
+ Your ${f} server ${n(a)} has been closed successfully.
32
+ `),F.exit?.(0)}catch(d){N(d)}},setup(e){e.args.debug&&(u.level=ie.debug),u.options.formatOptions.date=!1},subCommands:{[b]:{},ls:()=>import("./list-4ABJMPY2.js").then(e=>e.ListCommand)}});async function Fe(e,t){let[o]=e;o==="-v"&&(e[0]="--version"),o&&!(o in $.subCommands)&&o!=="--help"&&o!=="-h"&&o!=="--version"&&o!=="-v"&&e.unshift(b),await le($,{rawArgs:e})}export{Fe as run};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma/cli-dev",
3
- "version": "0.0.0-dev.202506110338",
3
+ "version": "0.0.0-dev.202506111136",
4
4
  "description": "Dev CLI for Prisma",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -47,7 +47,7 @@
47
47
  "std-env": "3.9.0",
48
48
  "table-layout": "4.1.1",
49
49
  "yocto-spinner": "1.0.0",
50
- "@prisma/dev": "0.0.0-dev.202506110338"
50
+ "@prisma/dev": "0.0.0-dev.202506111136"
51
51
  },
52
52
  "scripts": {
53
53
  "build": "tsup",