@prisma/cli-dev 0.0.0-dev.202506192123 → 0.0.0-dev.202506202022

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.
@@ -0,0 +1,2 @@
1
+ import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
+ var e={debug:{default:!1,description:"Enable debug logging. Defaults to `false`.",required:!1,type:"boolean"}};export{e as a};
package/dist/index.js CHANGED
@@ -1,38 +1,38 @@
1
1
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
- import{runMain as Te}from"citty";import{unstable_startServer as he}from"@prisma/dev";import{defineCommand as Se}from"citty";function I(e){let r,t,o=new Promise((n,p)=>{r=n,t=p}),s=n=>{s=a=null,t(n),e?.onRejected?.(n),e?.onFulfilled?.()},a=n=>{a=s=null,r(n),e?.onResolved?.(n),e?.onFulfilled?.()};return{isFulfilled:()=>a===s,promise:o,reject:n=>s?.(n),resolve:n=>a?.(n)}}import{consola as W,LogLevels as Pe}from"consola";import{process as ye}from"std-env";var N="0.0.0-dev.202506192123";var d={database:"db-port",server:"port",shadow_database:"shadow-db-port"},_={[d.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"},[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"}},ee=/^[a-zA-Z0-9-_]+$/;function k(e){let{[d.server]:r,[d.database]:t,[d.shadow_database]:o,debug:s,name:a}=e.args,n=t?Number(t):void 0,p=r?Number(r):void 0,c=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(c)?(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===c?(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===c?(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)):ee.test(a)?{databasePort:n,debug:s,name:a,serverPort:p,shadowDatabasePort:c}:(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 ge,ServerAlreadyRunningError as be}from"@prisma/dev";import{consola as V}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 l,stripAnsi as de}from"consola/utils";import{hasTTY as pe,isCI as le,process as M}from"std-env";import ce 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 w}from"std-env";var se=[{value:"q",label:"uit"},{value:"h",label:"ttp url"},{value:"t",label:"cp urls"}],$=4;function D(e){let r=new te({debug:e?.debug,options:se,render:ie,signal:e?.abortSignal});return{clearPrompt(){w.stdout.moveCursor(0,-$),w.stdout.cursorTo(0),w.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=l("white",l("bgBlack"," prisma dev ")),U=!le&&pe;function j(e){let r=ce();return{renderContent:ue,renderIntro:()=>me(e,r),renderOutro:()=>Promise.resolve(fe(e)),spinner:r}}async function ue(e){let{abortSignal:r,debug:t,isClosed:o,onQuit:s,server:a,spinner:n}=e;if(n.success(` Great Success! \u{1F609}\u{1F44D}
2
+ import{a as E}from"./chunk-XOIFSEIB.js";import{runMain as Te}from"citty";import{unstable_startServer as Se}from"@prisma/dev";import{defineCommand as Pe}from"citty";function N(e){let r,t,o=new Promise((n,p)=>{r=n,t=p}),s=n=>{s=a=null,t(n),e?.onRejected?.(n),e?.onFulfilled?.()},a=n=>{a=s=null,r(n),e?.onResolved?.(n),e?.onFulfilled?.()};return{isFulfilled:()=>a===s,promise:o,reject:n=>s?.(n),resolve:n=>a?.(n)}}import{consola as z,LogLevels as ye}from"consola";import{process as we}from"std-env";var _="0.0.0-dev.202506202022";var d={database:"db-port",server:"port",shadow_database:"shadow-db-port"},M={...E,[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 k(e){let{[d.server]:r,[d.database]:t,[d.shadow_database]:o,debug:s,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:s,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 be,ServerAlreadyRunningError as he}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 c,stripAnsi as pe}from"consola/utils";import{hasTTY as ce,isCI as le,process as G}from"std-env";import me 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 w}from"std-env";var ie=[{value:"q",label:"uit"},{value:"h",label:"ttp url"},{value:"t",label:"cp urls"}],$=4;function D(e){let r=new oe({debug:e?.debug,options:ie,render:ae,signal:e?.abortSignal});return{clearPrompt(){w.stdout.moveCursor(0,-$),w.stdout.cursorTo(0),w.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}})}var v=c("white",c("bgBlack"," prisma dev ")),j=!le&&ce;function H(e){let r=me();return{renderContent:ue,renderIntro:()=>fe(e,r),renderOutro:()=>Promise.resolve(ve(e)),spinner:r}}async function ue(e){let{abortSignal:r,debug:t,isClosed:o,onQuit:s,server:a,spinner:n}=e;if(n.success(` Great Success! \u{1F609}\u{1F44D}
3
3
 
4
- Your ${v} server ${i(a.name)} is ready and listening on ports ${C([new URL(a.http.url).port,new URL(a.database.connectionString).port,new URL(a.shadowDatabase.connectionString).port])}.`),!U){f.log(G(a)),f.log(L(a));return}for(;!o();){let{clearPrompt:p,prompt:c,respond:y}=D({abortSignal:r,debug:t,onOption:{h:()=>f.log(G(a)),t:()=>f.log(L(a))},onQuit:s}),g=await c.prompt();p(),r.aborted||await y(g)}}async function me(e,r){r.start(` Starting ${v} server ${i(e)}...${`
5
- `.repeat($+3)}`),U&&await ae(250)}function fe(e){f.log(`\u{1F44B} Buh Bye!
4
+ Your ${v} server ${i(a.name)} is ready and listening on ports ${C([new URL(a.http.url).port,new URL(a.database.connectionString).port,new URL(a.shadowDatabase.connectionString).port])}.`),!j){f.log(L(a)),f.log(B(a));return}for(;!o();){let{clearPrompt:p,prompt:l,respond:y}=D({abortSignal:r,debug:t,onOption:{h:()=>f.log(L(a)),t:()=>f.log(B(a))},onQuit:s}),g=await l.prompt();p(),r.aborted||await y(g)}}async function fe(e,r){r.start(` Starting ${v} server ${i(e)}...${`
5
+ `.repeat($+3)}`),j&&await de(250)}function ve(e){f.log(`\u{1F44B} Buh Bye!
6
6
 
7
7
  Your ${v} server ${i(e)} has been closed successfully.
8
- `)}function G(e){return`\u{1F50C} To connect to your local Prisma Postgres database via HTTP + Prisma ORM
8
+ `)}function L(e){return`\u{1F50C} To connect to your local Prisma Postgres database via HTTP + Prisma ORM
9
9
  use the following connection string:
10
10
 
11
- ${q(`${F("\u{1F4C4} .env:")}
11
+ ${V(`${q("\u{1F4C4} .env:")}
12
12
 
13
- ${R("DATABASE_URL",ve(e.ppg.url))}`)}
13
+ ${T("DATABASE_URL",ge(e.ppg.url))}`)}
14
14
 
15
- \u2728 The ${i("api_key")} above does not contain any sensitive information.`}function L(e){return`\u{1F50C} To connect to your local Prisma Postgres database via TCP + Prisma ORM
15
+ \u2728 The ${i("api_key")} above does not contain any sensitive information.`}function B(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
- ${q(`${F("\u{1F4C4} .env:")}
18
+ ${V(`${q("\u{1F4C4} .env:")}
19
19
 
20
- ${R("DATABASE_URL",B(e.database.prismaORMConnectionString))}
20
+ ${T("DATABASE_URL",U(e.database.prismaORMConnectionString))}
21
21
 
22
- ${R("SHADOW_DATABASE_URL",B(e.shadowDatabase.prismaORMConnectionString))}`)}
22
+ ${T("SHADOW_DATABASE_URL",U(e.shadowDatabase.prismaORMConnectionString))}`)}
23
23
 
24
24
  \u{1F418} You can also use the TCP ${i("DATABASE_URL")} with the ${i("pg")} or ${i("postgres.js")} JavaScript drivers!
25
25
 
26
26
  Set the maximum number of connections to ${i(1)}, connect timeout to ${i(0)} and
27
- idle timeout to the smallest positive value supported.`}function C(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)?`${i(r[0])}-${i(r.at(-1))}`:e.map(i).join(", ")}function R(e,r){return l("bgBlack",`${i(e)}="${r}"`)}function ve(e){return e=new URL(e),`${H(e.protocol)}//${i(e.hostname)}:${i(e.port)}${m(e.pathname)}${m(e.search)}`}function B(e){return e=new URL(e),`${H(e.protocol)}${m(`//${e.username}:${e.password}@`)}${i(e.hostname)}${m(":")}${i(e.port)}${m(e.pathname)}${m(e.search)}`}function i(e){return l("cyan",e)}function H(e){return l("magenta",e)}function m(e){return l("white",e)}function F(e){return l("italic",l("dim",l("greenBright",`# ${e}`)))}function q(e){return l("bgBlack",`${T()}
27
+ idle timeout to the smallest positive value supported.`}function C(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)?`${i(r[0])}-${i(r.at(-1))}`:e.map(i).join(", ")}function T(e,r){return c("bgBlack",`${i(e)}="${r}"`)}function ge(e){return e=new URL(e),`${F(e.protocol)}//${i(e.hostname)}:${i(e.port)}${u(e.pathname)}${u(e.search)}`}function U(e){return e=new URL(e),`${F(e.protocol)}${u(`//${e.username}:${e.password}@`)}${i(e.hostname)}${u(":")}${i(e.port)}${u(e.pathname)}${u(e.search)}`}function i(e){return c("cyan",e)}function F(e){return c("magenta",e)}function u(e){return c("white",e)}function q(e){return c("italic",c("dim",c("greenBright",`# ${e}`)))}function V(e){return c("bgBlack",`${R()}
28
28
  ${e.split(`
29
- `).map(r=>` ${r}${T(de(r).length+1)}`).join(`
29
+ `).map(r=>` ${r}${R(pe(r).length+1)}`).join(`
30
30
  `)}
31
- ${T()}`)}function T(e=0){return e%=M.stdout.columns," ".repeat(M.stdout.columns-e)}async function b(e,r,t){if(e instanceof be)try{let s=await e.server;if(!s)return await b("Something went wrong, try again!",r,t);r.warning(` Skipped! \u{1F60C}
31
+ ${R()}`)}function R(e=0){return e%=G.stdout.columns," ".repeat(G.stdout.columns-e)}async function b(e,r,t){if(e instanceof he)try{let s=await e.server;if(!s)return await b("Something went wrong, try again!",r,t);r.warning(` Skipped! \u{1F60C}
32
32
 
33
33
  Your ${v} server ${i(s.name)} is already running and listening on ports ${C([s.port,s.databasePort,s.shadowDatabasePort])}.
34
34
 
35
35
  To start a different server, use the ${`${i("-n")}/${i("--name")}`} flag with another name.
36
- `);return}catch(s){return await b(s,r,t)}let{args:o}=t;throw V.error(e instanceof ge?`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 X(e){Q.on?.("uncaughtException",r=>{if("code"in r&&r.code==="ECONNRESET"){e?.debug&&V.error("uncaught ECONNRESET");return}e?.onError?.(r)})}import{consola as h}from"consola";import{process as S}from"std-env";function K(e){let r={shutdownAlreadyStarted:!1};S.once?.("SIGINT",Y("SIGINT",e,r)),S.once?.("SIGTERM",Y("SIGTERM",e,r))}function Y(e,r,t){let{debug:o,onFailure:s,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(`
36
+ `);return}catch(s){return await b(s,r,t)}let{args:o}=t;throw Q.error(e instanceof be?`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 Y(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 W(e){let r={shutdownAlreadyStarted:!1};S.once?.("SIGINT",K("SIGINT",e,r)),S.once?.("SIGTERM",K("SIGTERM",e,r))}function K(e,r,t){let{debug:o,onFailure:s,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(s)}}var we={description:"Spin up a local Prisma Postgres database",name:"dev",version:N},P="\v",x=Se({args:_,meta:we,run:async e=>{let{subCommands:r}=e.cmd,t=r?e.rawArgs.find(u=>!u.startsWith("-")):void 0;if(t&&t!==P&&t in r)return;let{debug:o,name:s,serverPort:a,...n}=k(e),{renderContent:p,renderIntro:c,renderOutro:y,spinner:g}=j(s);try{let u=await $e({...n,debug:o,name:s,port:a,renderIntro:c}),O=new AbortController,{isFulfilled:z,promise:J,reject:A,resolve:E}=I({onFulfilled:()=>O.abort()});K({debug:o,onFailure:A,onSuccess:E,server:u}),X({debug:o,onError:A}),await p({abortSignal:O.signal,debug:o,isClosed:z,onQuit:async()=>{await u.close(),E()},server:u,spinner:g}),await J,await y(),ye.exitCode||=0}catch(u){await b(u,g,e)}},setup(e){e.args.debug&&(W.level=Pe.debug),W.options.formatOptions.date=!1},subCommands:{[P]:{},ls:()=>import("./list-4ABJMPY2.js").then(e=>e.ListCommand)}});async function $e(e){let{renderIntro:r,...t}=e,[,o]=await Promise.allSettled([e.renderIntro(),he({...t,persistenceMode:"stateful"})]);if(o.status==="rejected")throw o.reason;return o.value}async function ir(e,r){let[t]=e;t==="-v"&&(e[0]="--version"),t&&!(t in x.subCommands)&&t!=="--help"&&t!=="-h"&&t!=="--version"&&t!=="-v"&&e.unshift(P),await Te(x,{rawArgs:e})}export{ir 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(s)}}var $e={description:"Spin up a local Prisma Postgres database",name:"dev",version:_},P="\v",x=Pe({args:M,meta:$e,run:async e=>{let{subCommands:r}=e.cmd,t=r?e.rawArgs.find(m=>!m.startsWith("-")):void 0;if(t&&t!==P&&t in r)return;let{debug:o,name:s,serverPort:a,...n}=k(e),{renderContent:p,renderIntro:l,renderOutro:y,spinner:g}=H(s);try{let m=await Re({...n,debug:o,name:s,port:a,renderIntro:l}),O=new AbortController,{isFulfilled:J,promise:Z,reject:A,resolve:I}=N({onFulfilled:()=>O.abort()});W({debug:o,onFailure:A,onSuccess:I,server:m}),Y({debug:o,onError:A}),await p({abortSignal:O.signal,debug:o,isClosed:J,onQuit:async()=>{await m.close(),I()},server:m,spinner:g}),await Z,await y(),we.exitCode||=0}catch(m){await b(m,g,e)}},setup(e){e.args.debug&&(z.level=ye.debug),z.options.formatOptions.date=!1},subCommands:{[P]:{},ls:()=>import("./list-JXAA45ZT.js").then(e=>e.ListCommand)}});async function Re(e){let{renderIntro:r,...t}=e,[,o]=await Promise.allSettled([e.renderIntro(),Se({...t,persistenceMode:"stateful"})]);if(o.status==="rejected")throw o.reason;return o.value}async function dr(e,r){let[t]=e;t==="-v"&&(e[0]="--version"),t&&!(t in x.subCommands)&&t!=="--help"&&t!=="-h"&&t!=="--version"&&t!=="-v"&&e.unshift(P),await Te(x,{rawArgs:e})}export{dr as run};
@@ -0,0 +1,3 @@
1
+ import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
+ import{a}from"./chunk-XOIFSEIB.js";import{ServerState as i}from"@prisma/dev/internal/state";import{defineCommand as m}from"citty";function o(t,n=t){return`\x1B]8;;${t.toString()}\x07${n.toString()}\x1B]8;;\x07`}import{consola as c}from"consola";import u from"table-layout";var l={...a},p={description:"List available servers",name:"list"},U=m({args:l,meta:p,run:async t=>{let n=await i.scan({debug:t.args.debug}),e=new u([{name:s("name"),status:s("status"),urls:s("urls")},...n.map(r=>({name:r.name,status:r.status,urls:g(r)}))]);c.log(e.toString())}});function s(t){return`\x1B[1m${t}\x1B[0m`}function g(t){if(t.status!=="running")return"";let n=f(t),e=S(t),r=d(t);return[n?`${s("DATABASE_URL")}: ${n}`:null,e?`${s("TCP")}: ${e}`:null,r?`${s("Terminal")}: ${r}`:null].filter(Boolean).join(`
3
+ `)}function f(t){let{url:n}=t.exports?.ppg||{};if(!n)return"";let e=new URL(n),r=e.searchParams.get("api_key");return e.searchParams.set("api_key",`${r.slice(0,4)}...${r.slice(-4)}`),o(n,e)}function S(t){let{connectionString:n,prismaORMConnectionString:e}=t.exports?.database||{};if(!e&&!n)return"";let r=new URL(e||n);return o(r,`${r.protocol}//...@${r.host}/...`)}function d(t){let{connectionString:n,terminalCommand:e}=t.exports?.database||{};if(!n||!e)return"";let r=new URL(n);return o(e,`...psql -h ${r.hostname} -p ${r.port} ...`)}export{U as ListCommand};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma/cli-dev",
3
- "version": "0.0.0-dev.202506192123",
3
+ "version": "0.0.0-dev.202506202022",
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.202506192123"
49
+ "@prisma/dev": "0.0.0-dev.202506202022"
50
50
  },
51
51
  "scripts": {
52
52
  "build": "tsup",
@@ -1,3 +0,0 @@
1
- import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
- import{ServerState as a}from"@prisma/dev/internal/state";import{defineCommand as i}from"citty";function o(t,n=t){return`\x1B]8;;${t.toString()}\x07${n.toString()}\x1B]8;;\x07`}import l from"table-layout";var c={debug:{default:!1,description:"Enable debug logging. Defaults to `false`.",required:!1,type:"boolean"}},u={description:"List available servers",name:"list"},L=i({args:c,meta:u,run:async t=>{let n=await a.scan({debug:t.args.debug}),r=new l([{name:s("name"),status:s("status"),urls:s("urls")},...n.map(e=>({name:e.name,status:e.status,urls:m(e)}))]);console.log(r.toString())}});function s(t){return`\x1B[1m${t}\x1B[0m`}function m(t){if(t.status!=="running")return"";let n=g(t),r=p(t),e=f(t);return[n?`${s("DATABASE_URL")}: ${n}`:null,r?`${s("TCP")}: ${r}`:null,e?`${s("Terminal")}: ${e}`:null].filter(Boolean).join(`
3
- `)}function g(t){let{url:n}=t.exports?.ppg||{};if(!n)return"";let r=new URL(n),e=r.searchParams.get("api_key");return r.searchParams.set("api_key",`${e.slice(0,4)}...${e.slice(-4)}`),o(n,r)}function p(t){let{connectionString:n,prismaORMConnectionString:r}=t.exports?.database||{};if(!r&&!n)return"";let e=new URL(r||n);return o(e,`${e.protocol}//...@${e.host}/...`)}function f(t){let{connectionString:n,terminalCommand:r}=t.exports?.database||{};if(!n||!r)return"";let e=new URL(n);return o(r,`...psql -h ${e.hostname} -p ${e.port} ...`)}export{L as ListCommand};