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