@prisma/cli-dev 0.0.0-dev.202506112317 → 0.0.0-dev.202506121347

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