@prisma/dev 0.0.0-dev.202603231356 → 0.0.0-dev.202607271058

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 (87) hide show
  1. package/README.md +259 -0
  2. package/dist/accelerate-TRR43YJ5.js +11 -0
  3. package/dist/chunk-662IKR3V.js +1 -0
  4. package/dist/chunk-A5B4L65Y.js +1 -0
  5. package/dist/chunk-ANHBRJRZ.js +1 -0
  6. package/dist/chunk-DOJAPHLY.js +1 -0
  7. package/dist/{chunk-X3G665AK.js → chunk-EDFHV3AK.js} +1 -1
  8. package/dist/chunk-HFONW2ZS.js +3 -0
  9. package/dist/chunk-KWCQYPJI.js +1 -0
  10. package/dist/chunk-MTR5KBPH.js +1 -0
  11. package/dist/chunk-PP43TGA5.js +107 -0
  12. package/dist/chunk-SW3J2PL2.js +1 -0
  13. package/dist/daemon.cjs +33 -26
  14. package/dist/daemon.d.cts +12 -3
  15. package/dist/daemon.d.ts +12 -3
  16. package/dist/daemon.js +1 -1
  17. package/dist/db-BzbLAxLn.d.cts +126 -0
  18. package/dist/db-HU7BFiFV.d.ts +126 -0
  19. package/dist/db.cjs +23 -16
  20. package/dist/db.d.cts +3 -70
  21. package/dist/db.d.ts +3 -70
  22. package/dist/db.js +1 -1
  23. package/dist/engine-YTEOPVUP.js +3 -0
  24. package/dist/index.cjs +33 -26
  25. package/dist/index.d.cts +10 -6
  26. package/dist/index.d.ts +10 -6
  27. package/dist/index.js +1 -1
  28. package/dist/query-plan-executor-ZS4544O3.js +1 -0
  29. package/dist/runtime-assets/amcheck.tar.gz +0 -0
  30. package/dist/runtime-assets/bloom.tar.gz +0 -0
  31. package/dist/runtime-assets/btree_gin.tar.gz +0 -0
  32. package/dist/runtime-assets/btree_gist.tar.gz +0 -0
  33. package/dist/runtime-assets/citext.tar.gz +0 -0
  34. package/dist/runtime-assets/cube.tar.gz +0 -0
  35. package/dist/runtime-assets/dict_int.tar.gz +0 -0
  36. package/dist/runtime-assets/dict_xsyn.tar.gz +0 -0
  37. package/dist/runtime-assets/earthdistance.tar.gz +0 -0
  38. package/dist/runtime-assets/file_fdw.tar.gz +0 -0
  39. package/dist/runtime-assets/fuzzystrmatch.tar.gz +0 -0
  40. package/dist/runtime-assets/hstore.tar.gz +0 -0
  41. package/dist/runtime-assets/initdb.wasm +0 -0
  42. package/dist/runtime-assets/intarray.tar.gz +0 -0
  43. package/dist/runtime-assets/isn.tar.gz +0 -0
  44. package/dist/runtime-assets/lo.tar.gz +0 -0
  45. package/dist/runtime-assets/ltree.tar.gz +0 -0
  46. package/dist/runtime-assets/pageinspect.tar.gz +0 -0
  47. package/dist/runtime-assets/pg_buffercache.tar.gz +0 -0
  48. package/dist/runtime-assets/pg_freespacemap.tar.gz +0 -0
  49. package/dist/runtime-assets/pg_surgery.tar.gz +0 -0
  50. package/dist/runtime-assets/pg_trgm.tar.gz +0 -0
  51. package/dist/runtime-assets/pg_visibility.tar.gz +0 -0
  52. package/dist/runtime-assets/pg_walinspect.tar.gz +0 -0
  53. package/dist/runtime-assets/pglite-seed.tar.gz +0 -0
  54. package/dist/runtime-assets/pglite.wasm +0 -0
  55. package/dist/runtime-assets/seg.tar.gz +0 -0
  56. package/dist/runtime-assets/tablefunc.tar.gz +0 -0
  57. package/dist/runtime-assets/tcn.tar.gz +0 -0
  58. package/dist/runtime-assets/tsm_system_rows.tar.gz +0 -0
  59. package/dist/runtime-assets/tsm_system_time.tar.gz +0 -0
  60. package/dist/runtime-assets/unaccent.tar.gz +0 -0
  61. package/dist/runtime-assets/uuid-ossp.tar.gz +0 -0
  62. package/dist/runtime-assets/vector.tar.gz +0 -0
  63. package/dist/runtime-assets-manifest.bun.js +2 -0
  64. package/dist/runtime-assets.cjs +1 -1
  65. package/dist/runtime-assets.d.cts +2 -0
  66. package/dist/runtime-assets.d.ts +2 -0
  67. package/dist/runtime-assets.js +1 -1
  68. package/dist/server-QR7P25DP.js +1 -0
  69. package/dist/{state-DTMxyzXf.d.ts → state-CNKFAMiX.d.cts} +22 -1
  70. package/dist/{state-DTMxyzXf.d.cts → state-CNKFAMiX.d.ts} +22 -1
  71. package/dist/state.cjs +3 -3
  72. package/dist/state.d.cts +1 -1
  73. package/dist/state.d.ts +1 -1
  74. package/dist/state.js +1 -1
  75. package/dist/utility-YEFNU35E.js +1 -0
  76. package/dist/vite.cjs +121 -0
  77. package/dist/vite.d.cts +186 -0
  78. package/dist/vite.d.ts +184 -0
  79. package/dist/vite.js +1 -0
  80. package/package.json +27 -8
  81. package/dist/accelerate-HWGEFOM5.js +0 -11
  82. package/dist/chunk-62DM64XC.js +0 -1
  83. package/dist/chunk-CC3P7GPW.js +0 -3
  84. package/dist/chunk-TF5C7XJX.js +0 -3
  85. package/dist/chunk-X7AUCZJT.js +0 -1
  86. package/dist/chunk-YL6J3L2T.js +0 -100
  87. package/dist/utility-Q5A254LJ.js +0 -1
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -4,6 +4,7 @@ import {
4
4
  } from "./runtime-assets.js";
5
5
  import initdbWasmAsset from "./runtime-assets/initdb.wasm";
6
6
  import fsBundleAsset from "./runtime-assets/pglite.data";
7
+ import loadDataDirAsset from "./runtime-assets/pglite-seed.tar.gz";
7
8
  import wasmModuleAsset from "./runtime-assets/pglite.wasm";
8
9
  import amcheckAsset from "./runtime-assets/amcheck.tar.gz";
9
10
  import bloomAsset from "./runtime-assets/bloom.tar.gz";
@@ -40,6 +41,7 @@ import vectorAsset from "./runtime-assets/vector.tar.gz";
40
41
  registerBundledPGliteRuntimeAssetSources({
41
42
  fsBundle: resolveBundledRuntimeAssetSource(fsBundleAsset, import.meta.url),
42
43
  initdbWasm: resolveBundledRuntimeAssetSource(initdbWasmAsset, import.meta.url),
44
+ loadDataDir: resolveBundledRuntimeAssetSource(loadDataDirAsset, import.meta.url),
43
45
  wasmModule: resolveBundledRuntimeAssetSource(wasmModuleAsset, import.meta.url),
44
46
  extensions: {
45
47
  "amcheck": resolveBundledRuntimeAssetSource(amcheckAsset, import.meta.url),
@@ -1 +1 @@
1
- "use strict";var z=Object.create;var m=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,T=Object.prototype.hasOwnProperty;var D=(e,t)=>{for(var n in t)m(e,n,{get:t[n],enumerable:!0})},p=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of v(t))!T.call(e,i)&&i!==n&&m(e,i,{get:()=>t[i],enumerable:!(s=E(t,i))||s.enumerable});return e};var G=(e,t,n)=>(n=e!=null?z(x(e)):{},p(t||!e||!e.__esModule?m(n,"default",{value:e,enumerable:!0}):n,e)),I=e=>p(m({},"__esModule",{value:!0}),e);var H={};D(H,{copyPrismaDevRuntimeAssets:()=>O,getPGliteRuntimeAssets:()=>W,getPrismaDevRuntimeAssetManifest:()=>L,registerBundledPGliteRuntimeAssetSources:()=>C,resolveBundledRuntimeAssetSource:()=>u});module.exports=I(H);var N=()=>typeof document>"u"?new URL(`file:${__filename}`).href:document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"?document.currentScript.src:new URL("main.js",document.baseURI).href,l=N();var o=require("fs"),a=require("fs/promises"),w=require("module"),A=require("path"),r=require("url"),k=(0,w.createRequire)(l),M=["initdb.wasm","pglite.data","pglite.wasm"],P={amcheck:"amcheck.tar.gz",bloom:"bloom.tar.gz",btree_gin:"btree_gin.tar.gz",btree_gist:"btree_gist.tar.gz",citext:"citext.tar.gz",cube:"cube.tar.gz",dict_int:"dict_int.tar.gz",dict_xsyn:"dict_xsyn.tar.gz",earthdistance:"earthdistance.tar.gz",file_fdw:"file_fdw.tar.gz",fuzzystrmatch:"fuzzystrmatch.tar.gz",hstore:"hstore.tar.gz",intarray:"intarray.tar.gz",isn:"isn.tar.gz",lo:"lo.tar.gz",ltree:"ltree.tar.gz",pageinspect:"pageinspect.tar.gz",pg_buffercache:"pg_buffercache.tar.gz",pg_freespacemap:"pg_freespacemap.tar.gz",pg_surgery:"pg_surgery.tar.gz",pg_trgm:"pg_trgm.tar.gz",pg_visibility:"pg_visibility.tar.gz",pg_walinspect:"pg_walinspect.tar.gz",seg:"seg.tar.gz",tablefunc:"tablefunc.tar.gz",tcn:"tcn.tar.gz",tsm_system_rows:"tsm_system_rows.tar.gz",tsm_system_time:"tsm_system_time.tar.gz",unaccent:"unaccent.tar.gz",uuid_ossp:"uuid-ossp.tar.gz",vector:"vector.tar.gz"},U=[...M.map(e=>({fileName:e,kind:"core",name:e})),...Object.entries(P).map(([e,t])=>({fileName:t,kind:"extension",name:e}))],d=new Map,h=Symbol.for("@prisma/dev/bundled-pglite-runtime-asset-sources"),c=null;async function O(e){let t=f(e),n=(0,r.fileURLToPath)(t);await(0,a.mkdir)(n,{recursive:!0});let s=[];for(let i of L()){let g=new URL(i.fileName,t),R=(0,r.fileURLToPath)(g);await(0,a.copyFile)(i.sourcePath,R),s.push({...i,destinationPath:R})}return s}function L(){let e=_();return U.map(t=>({...t,sourcePath:(0,r.fileURLToPath)(new URL(t.fileName,e))}))}async function W(){await K();let e=S();if(e)return await J(e),await F(e);let t=q(),n=t.href,s=d.get(n);return s||(s=j(t),d.set(n,s)),await s}function C(e){let t=globalThis;t[h]={extensions:Object.fromEntries(Object.entries(e.extensions).map(([n,s])=>[n,u(s)])),fsBundle:u(e.fsBundle),initdbWasm:u(e.initdbWasm),wasmModule:u(e.wasmModule)}}function u(e,t=l){return e instanceof URL?e:/^(?:https?:|data:|file:)/.test(e)?new URL(e):e.startsWith("/")||/^[a-zA-Z]:[\\/]/.test(e)?(0,r.pathToFileURL)(e):new URL(e,t)}async function F(e){let t=`bundled:${e.wasmModule.href}:${e.fsBundle.href}`,n=d.get(t);return n||(n=$(e),d.set(t,n)),await n}async function j(e){let[t,n]=await Promise.all([(0,a.readFile)(new URL("pglite.data",e)),(0,a.readFile)(new URL("pglite.wasm",e))]),s=B();return{extensions:Object.fromEntries(Object.entries(P).map(([i,g])=>[i,new URL(g,e)])),fsBundle:new Blob([Uint8Array.from(t)]),wasmModule:await s.compile(n)}}async function $(e){let[t,n]=await Promise.all([b(e.fsBundle),b(e.wasmModule)]),s=B();return{extensions:e.extensions,fsBundle:new Blob([Uint8Array.from(t)]),wasmModule:await s.compile(n)}}async function J(e){if(e.initdbWasm.protocol!=="file:")return;let t=new URL("initdb.wasm",f(new URL("./",e.initdbWasm))),n=(0,r.fileURLToPath)(t);(0,o.existsSync)(n)||await(0,a.copyFile)((0,r.fileURLToPath)(e.initdbWasm),n)}function f(e){return e instanceof URL?y(e):y((0,r.pathToFileURL)(e))}function y(e){return e.href.endsWith("/")?e:new URL(`${e.href}/`)}function _(){let e=k.resolve("@electric-sql/pglite");return f((0,A.dirname)(e))}function q(){let e=f(new URL("./",l));if(Y(e))return e;if(X())return _();throw new Error("Unable to locate PGlite runtime assets. If you bundled @prisma/dev, copy them next to the bundle with copyPrismaDevRuntimeAssets().")}function Y(e){return U.every(t=>(0,o.existsSync)((0,r.fileURLToPath)(new URL(t.fileName,e))))}function S(){return globalThis[h]??null}async function K(){!Z()||S()||(c||(c=import("./runtime-assets-manifest.bun.js").then(()=>{}).catch(e=>{throw c=null,e})),await c)}function X(){let e=(0,r.fileURLToPath)(new URL("../package.json",l));if(!(0,o.existsSync)(e))return!1;try{return JSON.parse((0,o.readFileSync)(e,"utf8")).name==="@prisma/dev"}catch{return!1}}function Z(){return typeof globalThis.Bun<"u"}function B(){let e=globalThis.WebAssembly;if(!e)throw new Error("WebAssembly is not available in this runtime.");return e}async function b(e){if(e.protocol==="file:")return await(0,a.readFile)(e);let t=await fetch(e);if(!t.ok)throw new Error(`Failed to fetch runtime asset ${e.href}: ${t.status} ${t.statusText}`);return new Uint8Array(await t.arrayBuffer())}0&&(module.exports={copyPrismaDevRuntimeAssets,getPGliteRuntimeAssets,getPrismaDevRuntimeAssetManifest,registerBundledPGliteRuntimeAssetSources,resolveBundledRuntimeAssetSource});
1
+ "use strict";var v=Object.create;var f=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var G=Object.getPrototypeOf,I=Object.prototype.hasOwnProperty;var k=(e,t)=>{for(var n in t)f(e,n,{get:t[n],enumerable:!0})},w=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of x(t))!I.call(e,i)&&i!==n&&f(e,i,{get:()=>t[i],enumerable:!(s=T(t,i))||s.enumerable});return e};var N=(e,t,n)=>(n=e!=null?v(G(e)):{},w(t||!e||!e.__esModule?f(n,"default",{value:e,enumerable:!0}):n,e)),O=e=>w(f({},"__esModule",{value:!0}),e);var ee={};k(ee,{copyPrismaDevRuntimeAssets:()=>F,getPGliteRuntimeAssets:()=>j,getPrismaDevRuntimeAssetManifest:()=>S,registerBundledPGliteRuntimeAssetSources:()=>$,resolveBundledRuntimeAssetSource:()=>u});module.exports=O(ee);var W=()=>typeof document>"u"?new URL(`file:${__filename}`).href:document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"?document.currentScript.src:new URL("main.js",document.baseURI).href,l=W();var o=require("fs"),a=require("fs/promises"),U=require("module"),L=require("path"),r=require("url"),M=(0,U.createRequire)(l),C=["initdb.wasm","pglite.data","pglite.wasm"],b="pglite-seed.tar.gz",P={amcheck:"amcheck.tar.gz",bloom:"bloom.tar.gz",btree_gin:"btree_gin.tar.gz",btree_gist:"btree_gist.tar.gz",citext:"citext.tar.gz",cube:"cube.tar.gz",dict_int:"dict_int.tar.gz",dict_xsyn:"dict_xsyn.tar.gz",earthdistance:"earthdistance.tar.gz",file_fdw:"file_fdw.tar.gz",fuzzystrmatch:"fuzzystrmatch.tar.gz",hstore:"hstore.tar.gz",intarray:"intarray.tar.gz",isn:"isn.tar.gz",lo:"lo.tar.gz",ltree:"ltree.tar.gz",pageinspect:"pageinspect.tar.gz",pg_buffercache:"pg_buffercache.tar.gz",pg_freespacemap:"pg_freespacemap.tar.gz",pg_surgery:"pg_surgery.tar.gz",pg_trgm:"pg_trgm.tar.gz",pg_visibility:"pg_visibility.tar.gz",pg_walinspect:"pg_walinspect.tar.gz",seg:"seg.tar.gz",tablefunc:"tablefunc.tar.gz",tcn:"tcn.tar.gz",tsm_system_rows:"tsm_system_rows.tar.gz",tsm_system_time:"tsm_system_time.tar.gz",unaccent:"unaccent.tar.gz",uuid_ossp:"uuid-ossp.tar.gz",vector:"vector.tar.gz"},h=[...C.map(e=>({fileName:e,kind:"core",name:e})),{fileName:b,kind:"core",name:b},...Object.entries(P).map(([e,t])=>({fileName:t,kind:"extension",name:e}))],R=new Map,_=Symbol.for("@prisma/dev/bundled-pglite-runtime-asset-sources"),g=null;async function F(e){let t=m(e),n=(0,r.fileURLToPath)(t);await(0,a.mkdir)(n,{recursive:!0});let s=[];for(let i of S()){let p=new URL(i.fileName,t),d=(0,r.fileURLToPath)(p);await(0,a.copyFile)(i.sourcePath,d),s.push({...i,destinationPath:d})}return s}function S(){let e=D(),t=m(new URL("./runtime-assets/",l));return h.map(n=>({...n,sourcePath:(0,r.fileURLToPath)(c(n.fileName,e,t))}))}async function j(){await H();let e=B();if(e)return await K(e),await J(e);let t=X(),n=t.href,s=R.get(n);return s||(s=q(t),R.set(n,s)),await s}function $(e){let t=globalThis;t[_]={extensions:Object.fromEntries(Object.entries(e.extensions).map(([n,s])=>[n,u(s)])),fsBundle:u(e.fsBundle),initdbWasm:u(e.initdbWasm),loadDataDir:u(e.loadDataDir),wasmModule:u(e.wasmModule)}}function u(e,t=l){return e instanceof URL?e:/^(?:https?:|data:|file:)/.test(e)?new URL(e):e.startsWith("/")||/^[a-zA-Z]:[\\/]/.test(e)?(0,r.pathToFileURL)(e):new URL(e,t)}async function J(e){let t=`bundled:${e.wasmModule.href}:${e.fsBundle.href}`,n=R.get(t);return n||(n=Y(e),R.set(t,n)),await n}async function q(e){let t=m(new URL("./runtime-assets/",l)),[n,s,i]=await Promise.all([(0,a.readFile)(c("pglite.data",e,t)),(0,a.readFile)(c(b,e,t)),(0,a.readFile)(c("pglite.wasm",e,t))]),p=z();return{extensions:Object.fromEntries(Object.entries(P).map(([d,E])=>[d,c(E,e,t)])),fsBundle:new Blob([Uint8Array.from(n)]),loadDataDir:new Blob([Uint8Array.from(s)]),wasmModule:await p.compile(i)}}async function Y(e){let[t,n,s]=await Promise.all([y(e.fsBundle),y(e.loadDataDir),y(e.wasmModule)]),i=z();return{extensions:e.extensions,fsBundle:new Blob([Uint8Array.from(t)]),loadDataDir:new Blob([Uint8Array.from(n)]),wasmModule:await i.compile(s)}}async function K(e){if(e.initdbWasm.protocol!=="file:")return;let t=new URL("initdb.wasm",m(new URL("./",e.initdbWasm))),n=(0,r.fileURLToPath)(t);(0,o.existsSync)(n)||await(0,a.copyFile)((0,r.fileURLToPath)(e.initdbWasm),n)}function m(e){return e instanceof URL?A(e):A((0,r.pathToFileURL)(e))}function A(e){return e.href.endsWith("/")?e:new URL(`${e.href}/`)}function D(){let e=M.resolve("@electric-sql/pglite");return m((0,L.dirname)(e))}function X(){let e=m(new URL("./",l));if(Z(e))return e;if(Q())return D();throw new Error("Unable to locate PGlite runtime assets. If you bundled @prisma/dev, copy them next to the bundle with copyPrismaDevRuntimeAssets().")}function Z(e){return h.every(t=>(0,o.existsSync)((0,r.fileURLToPath)(new URL(t.fileName,e))))}function B(){return globalThis[_]??null}async function H(){!V()||B()||(g||(g=import("./runtime-assets-manifest.bun.js").then(()=>{}).catch(e=>{throw g=null,e})),await g)}function Q(){let e=(0,r.fileURLToPath)(new URL("../package.json",l));if(!(0,o.existsSync)(e))return!1;try{return JSON.parse((0,o.readFileSync)(e,"utf8")).name==="@prisma/dev"}catch{return!1}}function V(){return typeof globalThis.Bun<"u"}function z(){let e=globalThis.WebAssembly;if(!e)throw new Error("WebAssembly is not available in this runtime.");return e}async function y(e){if(e.protocol==="file:")return await(0,a.readFile)(e);let t=await fetch(e);if(!t.ok)throw new Error(`Failed to fetch runtime asset ${e.href}: ${t.status} ${t.statusText}`);return new Uint8Array(await t.arrayBuffer())}function c(e,t,n){let s=new URL(e,t);if((0,o.existsSync)((0,r.fileURLToPath)(s)))return s;if(n){let i=new URL(e,n);if((0,o.existsSync)((0,r.fileURLToPath)(i)))return i}return s}0&&(module.exports={copyPrismaDevRuntimeAssets,getPGliteRuntimeAssets,getPrismaDevRuntimeAssetManifest,registerBundledPGliteRuntimeAssetSources,resolveBundledRuntimeAssetSource});
@@ -1,6 +1,7 @@
1
1
  interface PGliteRuntimeAssets {
2
2
  readonly extensions: Record<string, URL>;
3
3
  readonly fsBundle: Blob;
4
+ readonly loadDataDir: Blob;
4
5
  readonly wasmModule: unknown;
5
6
  }
6
7
  interface PrismaDevRuntimeAsset {
@@ -19,6 +20,7 @@ declare function registerBundledPGliteRuntimeAssetSources(sources: {
19
20
  extensions: Record<string, string | URL>;
20
21
  fsBundle: string | URL;
21
22
  initdbWasm: string | URL;
23
+ loadDataDir: string | URL;
22
24
  wasmModule: string | URL;
23
25
  }): void;
24
26
  declare function resolveBundledRuntimeAssetSource(source: string | URL, baseURL?: string): URL;
@@ -1,6 +1,7 @@
1
1
  interface PGliteRuntimeAssets {
2
2
  readonly extensions: Record<string, URL>;
3
3
  readonly fsBundle: Blob;
4
+ readonly loadDataDir: Blob;
4
5
  readonly wasmModule: unknown;
5
6
  }
6
7
  interface PrismaDevRuntimeAsset {
@@ -19,6 +20,7 @@ declare function registerBundledPGliteRuntimeAssetSources(sources: {
19
20
  extensions: Record<string, string | URL>;
20
21
  fsBundle: string | URL;
21
22
  initdbWasm: string | URL;
23
+ loadDataDir: string | URL;
22
24
  wasmModule: string | URL;
23
25
  }): void;
24
26
  declare function resolveBundledRuntimeAssetSource(source: string | URL, baseURL?: string): URL;
@@ -1 +1 @@
1
- import{a,b,c,d,e}from"./chunk-62DM64XC.js";export{a as copyPrismaDevRuntimeAssets,c as getPGliteRuntimeAssets,b as getPrismaDevRuntimeAssetManifest,d as registerBundledPGliteRuntimeAssetSources,e as resolveBundledRuntimeAssetSource};
1
+ import{a,b,c,d,e}from"./chunk-KWCQYPJI.js";export{a as copyPrismaDevRuntimeAssets,c as getPGliteRuntimeAssets,b as getPrismaDevRuntimeAssetManifest,d as registerBundledPGliteRuntimeAssetSources,e as resolveBundledRuntimeAssetSource};
@@ -0,0 +1 @@
1
+ import{a,b}from"./chunk-SW3J2PL2.js";import"./chunk-ANHBRJRZ.js";import"./chunk-EDFHV3AK.js";import"./chunk-DOJAPHLY.js";export{b as createHTTPServer,a as wrap};
@@ -7,7 +7,14 @@ interface ExperimentalStreams {
7
7
  readonly streamName: string;
8
8
  readonly url: string;
9
9
  }
10
+ interface ExperimentalQueryInsightsMetadata {
11
+ readonly serverUrl: string;
12
+ readonly sqlitePath: string;
13
+ readonly streamName: string;
14
+ readonly url: string;
15
+ }
10
16
  interface ExperimentalServerMetadata {
17
+ readonly queryInsights?: ExperimentalQueryInsightsMetadata;
11
18
  readonly streams?: ExperimentalStreams;
12
19
  }
13
20
 
@@ -33,6 +40,12 @@ type Exports = InferOutput<typeof exportsSchema>;
33
40
  declare const serverDumpV1Schema: valibot.ObjectSchema<{
34
41
  readonly databasePort: valibot.SchemaWithPipe<readonly [valibot.NumberSchema<undefined>, valibot.IntegerAction<number, undefined>, valibot.MinValueAction<number, 1, undefined>]>;
35
42
  readonly experimental: valibot.OptionalSchema<valibot.ObjectSchema<{
43
+ readonly queryInsights: valibot.OptionalSchema<valibot.ObjectSchema<{
44
+ readonly serverUrl: valibot.SchemaWithPipe<readonly [valibot.StringSchema<undefined>, valibot.UrlAction<string, undefined>]>;
45
+ readonly sqlitePath: valibot.SchemaWithPipe<readonly [valibot.StringSchema<undefined>, valibot.MinLengthAction<string, 1, undefined>]>;
46
+ readonly streamName: valibot.SchemaWithPipe<readonly [valibot.StringSchema<undefined>, valibot.MinLengthAction<string, 1, undefined>]>;
47
+ readonly url: valibot.SchemaWithPipe<readonly [valibot.StringSchema<undefined>, valibot.UrlAction<string, undefined>]>;
48
+ }, undefined>, undefined>;
36
49
  readonly streams: valibot.OptionalSchema<valibot.ObjectSchema<{
37
50
  readonly serverUrl: valibot.SchemaWithPipe<readonly [valibot.StringSchema<undefined>, valibot.UrlAction<string, undefined>]>;
38
51
  readonly sqlitePath: valibot.SchemaWithPipe<readonly [valibot.StringSchema<undefined>, valibot.MinLengthAction<string, 1, undefined>]>;
@@ -152,6 +165,14 @@ interface ServerOptions {
152
165
  * An error is thrown if the port is already in use.
153
166
  */
154
167
  shadowDatabasePort?: number;
168
+ /**
169
+ * The port the streams server will listen on.
170
+ *
171
+ * Defaults to `51216`.
172
+ *
173
+ * An error is thrown if the port is already in use.
174
+ */
175
+ streamsPort?: number;
155
176
  }
156
177
  type ResolvedServerOptions = Required<ServerOptions>;
157
178
  type PersistenceMode = "stateless" | "stateful";
@@ -232,4 +253,4 @@ declare class ServerAlreadyRunningError extends ServerStateAlreadyExistsError {
232
253
  get server(): Promise<ServerState | null>;
233
254
  }
234
255
 
235
- export { type ExperimentalStreams as E, type PersistenceMode as P, type ResolvedServerOptions as R, type ServerOptions as S, type Exports as a, ServerAlreadyRunningError as b, ServerState as c, type ScanOptions as d, type ServerDumpV1 as e, ServerStateAlreadyExistsError as f, type ServerStatusV1 as g, deleteServer as h, getServerStatus as i, isServerRunning as j, killServer as k };
256
+ export { type ExperimentalQueryInsightsMetadata as E, type PersistenceMode as P, type ResolvedServerOptions as R, type ServerOptions as S, type ExperimentalStreams as a, type Exports as b, ServerAlreadyRunningError as c, ServerState as d, type ScanOptions as e, type ServerDumpV1 as f, ServerStateAlreadyExistsError as g, type ServerStatusV1 as h, deleteServer as i, getServerStatus as j, isServerRunning as k, killServer as l };
@@ -7,7 +7,14 @@ interface ExperimentalStreams {
7
7
  readonly streamName: string;
8
8
  readonly url: string;
9
9
  }
10
+ interface ExperimentalQueryInsightsMetadata {
11
+ readonly serverUrl: string;
12
+ readonly sqlitePath: string;
13
+ readonly streamName: string;
14
+ readonly url: string;
15
+ }
10
16
  interface ExperimentalServerMetadata {
17
+ readonly queryInsights?: ExperimentalQueryInsightsMetadata;
11
18
  readonly streams?: ExperimentalStreams;
12
19
  }
13
20
 
@@ -33,6 +40,12 @@ type Exports = InferOutput<typeof exportsSchema>;
33
40
  declare const serverDumpV1Schema: valibot.ObjectSchema<{
34
41
  readonly databasePort: valibot.SchemaWithPipe<readonly [valibot.NumberSchema<undefined>, valibot.IntegerAction<number, undefined>, valibot.MinValueAction<number, 1, undefined>]>;
35
42
  readonly experimental: valibot.OptionalSchema<valibot.ObjectSchema<{
43
+ readonly queryInsights: valibot.OptionalSchema<valibot.ObjectSchema<{
44
+ readonly serverUrl: valibot.SchemaWithPipe<readonly [valibot.StringSchema<undefined>, valibot.UrlAction<string, undefined>]>;
45
+ readonly sqlitePath: valibot.SchemaWithPipe<readonly [valibot.StringSchema<undefined>, valibot.MinLengthAction<string, 1, undefined>]>;
46
+ readonly streamName: valibot.SchemaWithPipe<readonly [valibot.StringSchema<undefined>, valibot.MinLengthAction<string, 1, undefined>]>;
47
+ readonly url: valibot.SchemaWithPipe<readonly [valibot.StringSchema<undefined>, valibot.UrlAction<string, undefined>]>;
48
+ }, undefined>, undefined>;
36
49
  readonly streams: valibot.OptionalSchema<valibot.ObjectSchema<{
37
50
  readonly serverUrl: valibot.SchemaWithPipe<readonly [valibot.StringSchema<undefined>, valibot.UrlAction<string, undefined>]>;
38
51
  readonly sqlitePath: valibot.SchemaWithPipe<readonly [valibot.StringSchema<undefined>, valibot.MinLengthAction<string, 1, undefined>]>;
@@ -152,6 +165,14 @@ interface ServerOptions {
152
165
  * An error is thrown if the port is already in use.
153
166
  */
154
167
  shadowDatabasePort?: number;
168
+ /**
169
+ * The port the streams server will listen on.
170
+ *
171
+ * Defaults to `51216`.
172
+ *
173
+ * An error is thrown if the port is already in use.
174
+ */
175
+ streamsPort?: number;
155
176
  }
156
177
  type ResolvedServerOptions = Required<ServerOptions>;
157
178
  type PersistenceMode = "stateless" | "stateful";
@@ -232,4 +253,4 @@ declare class ServerAlreadyRunningError extends ServerStateAlreadyExistsError {
232
253
  get server(): Promise<ServerState | null>;
233
254
  }
234
255
 
235
- export { type ExperimentalStreams as E, type PersistenceMode as P, type ResolvedServerOptions as R, type ServerOptions as S, type Exports as a, ServerAlreadyRunningError as b, ServerState as c, type ScanOptions as d, type ServerDumpV1 as e, ServerStateAlreadyExistsError as f, type ServerStatusV1 as g, deleteServer as h, getServerStatus as i, isServerRunning as j, killServer as k };
256
+ export { type ExperimentalQueryInsightsMetadata as E, type PersistenceMode as P, type ResolvedServerOptions as R, type ServerOptions as S, type ExperimentalStreams as a, type Exports as b, ServerAlreadyRunningError as c, ServerState as d, type ScanOptions as e, type ServerDumpV1 as f, ServerStateAlreadyExistsError as g, type ServerStatusV1 as h, deleteServer as i, getServerStatus as j, isServerRunning as k, killServer as l };
package/dist/state.cjs CHANGED
@@ -1,3 +1,3 @@
1
- "use strict";var xe=Object.create;var k=Object.defineProperty;var Te=Object.getOwnPropertyDescriptor;var _e=Object.getOwnPropertyNames;var Ee=Object.getPrototypeOf,$e=Object.prototype.hasOwnProperty;var Oe=(t,e)=>{for(var r in e)k(t,r,{get:e[r],enumerable:!0})},re=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of _e(e))!$e.call(t,n)&&n!==r&&k(t,n,{get:()=>e[n],enumerable:!(o=Te(e,n))||o.enumerable});return t};var T=(t,e,r)=>(r=t!=null?xe(Ee(t)):{},re(e||!t||!t.__esModule?k(r,"default",{value:t,enumerable:!0}):r,t)),ke=t=>re(k({},"__esModule",{value:!0}),t);var Je={};Oe(Je,{ServerAlreadyRunningError:()=>L,ServerState:()=>f,ServerStateAlreadyExistsError:()=>j,deleteServer:()=>He,getServerStatus:()=>te,isServerRunning:()=>we,killServer:()=>Se});module.exports=ke(Je);var ve=require("fs/promises"),y=require("pathe"),x=require("proper-lockfile"),Q=require("std-env"),s=require("valibot");var se=require("fs"),m=require("fs/promises"),oe=require("util"),ae=require("zlib");var d=T(require("path"),1),B=T(require("os"),1),M=T(require("process"),1),b=B.default.homedir(),C=B.default.tmpdir(),{env:w}=M.default,Me=t=>{let e=d.default.join(b,"Library");return{data:d.default.join(e,"Application Support",t),config:d.default.join(e,"Preferences",t),cache:d.default.join(e,"Caches",t),log:d.default.join(e,"Logs",t),temp:d.default.join(C,t)}},Re=t=>{let e=w.APPDATA||d.default.join(b,"AppData","Roaming"),r=w.LOCALAPPDATA||d.default.join(b,"AppData","Local");return{data:d.default.join(r,t,"Data"),config:d.default.join(e,t,"Config"),cache:d.default.join(r,t,"Cache"),log:d.default.join(r,t,"Log"),temp:d.default.join(C,t)}},Ae=t=>{let e=d.default.basename(b);return{data:d.default.join(w.XDG_DATA_HOME||d.default.join(b,".local","share"),t),config:d.default.join(w.XDG_CONFIG_HOME||d.default.join(b,".config"),t),cache:d.default.join(w.XDG_CACHE_HOME||d.default.join(b,".cache"),t),log:d.default.join(w.XDG_STATE_HOME||d.default.join(b,".local","state"),t),temp:d.default.join(C,e,t)}};function V(t,{suffix:e="nodejs"}={}){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);return e&&(t+=`-${e}`),M.default.platform==="darwin"?Me(t):M.default.platform==="win32"?Re(t):Ae(t)}var ne=T(require("zeptomatch"),1),q=V("prisma-dev"),Ze=(0,oe.promisify)(ae.unzip);function S(t){return`${q.data}/${t}`}function ie(t){return t!=null&&typeof t=="object"&&"code"in t&&t.code==="ENOENT"}async function ue(t){try{return await(0,m.readFile)(t,{encoding:"utf-8"})}catch(e){if(ie(e))return null;throw e}}async function ce(t){await(0,m.mkdir)(t,{recursive:!0})}async function de(t,e){try{return(await(0,m.readdir)(t,{withFileTypes:!0})).reduce((o,n)=>(n.isDirectory()&&!n.name.startsWith(".")&&(!e||(0,ne.default)(e,n.name))&&o.push(n.name),o),[])}catch(r){if(ie(r))return[];throw r}}async function F(t){await(0,m.rm)(t,{force:!0,recursive:!0})}var le=require("timers/promises"),E=require("std-env");function G(t,e){if(t==null)return!1;try{return E.process.kill?.(t,0)??!0}catch(r){return e&&console.error(`Error checking if process with PID ${t} exists:`,r),!1}}async function pe(t,e){if(!E.process.kill)return!1;try{E.process.kill(t,"SIGTERM")}catch(o){return e&&console.error(`Error killing process with PID ${t}:`,o),!1}let r=0;do{if(!G(t,e))return!0;await(0,le.setTimeout)(100)}while(++r<50);try{return E.process.kill(t,"SIGKILL")}catch(o){return e&&console.error(`Error forcefully killing process with PID ${t}:`,o),!1}}var g=require("get-port-please"),I=require("remeda"),me=51214,he=51213,fe=51215,Pe=51216,R=65535,D=0,p=-1/0;async function W(t){let{debug:e,name:r,requestedPorts:o,servers:n}=t,{portsUsedByOtherServers:a,portsUsedByThisServerLastTime:i}=Le(r,n);e&&(console.debug(`ports used by other servers: ${Object.keys(a).join(", ")}`),console.debug(`ports used by "${r}" server last time: ${JSON.stringify(i)}`));let u={databasePort:p,port:p,shadowDatabasePort:p,streamsPort:p},c=["port","databasePort","shadowDatabasePort","streamsPort"];for(let l of c){let h=await Ie({debug:e,portKey:l,portsUsedByOtherServers:a,portsUsedByThisServerLastTime:i,requestedPorts:o})??await je({debug:e,pickedPorts:u,portKey:l,portsUsedByOtherServers:a,portsUsedByThisServerLastTime:i});e&&console.debug(`Got port for "${l}": ${h}`),u[l]=h}return e&&console.debug(`Picked ports: ${JSON.stringify(u)}`),u}async function Ie(t){let{debug:e,portKey:r,portsUsedByOtherServers:o,portsUsedByThisServerLastTime:n,requestedPorts:a}=t,{[r]:i,...u}=a;if(K(i))return await Be({debug:e,otherRequestedPorts:u,portKey:r,portsUsedByOtherServers:o,requestedPort:i}),i;let c=n?.[r]??p;if(!K(c))return e&&console.debug(`No port specified for "${r}". Trying to pick a new port.`),null;let l=c in o;return l||Object.values(u).includes(c)?(e&&console.debug(`Port ${c} that was used last time for this server, ${l?"is also used by another server":"has been requested for another service"}. Trying to pick a new port.`),null):await(0,g.checkPort)(c)===!1?(e&&console.debug(`Port ${c}, that was used last time for this server, is not available. Trying to pick a new port.`),null):(e&&console.debug(`Using port ${c} for "${r}" as it was used last time and is available.`),c)}async function je(t){let{debug:e,pickedPorts:r,portKey:o,portsUsedByOtherServers:n,portsUsedByThisServerLastTime:a}=t,i=Math.max(me,he,fe,Pe)+1,u=Object.values(r).filter(P=>P!==void 0),c=a?Ue(a):[],l=[...u,...Object.keys(n).map(Number),...c],h=Math.min(Math.max(i,...l)+100,R),N=(0,I.difference)((0,I.range)(i,h),l),v={port:he,databasePort:me,shadowDatabasePort:fe,streamsPort:Pe}[o];try{return await(0,g.getPort)({port:v in n||u.includes(v)||c.includes(v)?void 0:v,ports:N})}catch(P){if(P instanceof Error&&P.name==="GetPortError"&&h+1<=R)return e&&console.debug(`Expanding port lookup to range [${h+1}, ${R}].`),await(0,g.getPort)({portRange:[h+1,R]});throw P}}function K(t){return Number.isFinite(t)&&t>=0}function Le(t,e){let r={},o;for(let n of e){let{databasePort:a,port:i,shadowDatabasePort:u}=n,c=Ne(n);if(n.name===t){o={databasePort:a,port:i,shadowDatabasePort:u,streamsPort:c};continue}r[a]=!0,r[i]=!0,r[u]=!0,K(c)&&(r[c]=!0)}return{portsUsedByOtherServers:r,portsUsedByThisServerLastTime:o}}function Ne(t){let e=t.experimental?.streams?.serverUrl;if(!e)return p;try{let r=Number(new URL(e).port);return Number.isInteger(r)&&r>0?r:p}catch{return p}}function Ue(t){return[t.port,t.databasePort,t.shadowDatabasePort,t.streamsPort]}async function Be(t){let{debug:e,otherRequestedPorts:r,portKey:o,portsUsedByOtherServers:n,requestedPort:a}=t;if(a!==D){if(a in n)throw e&&console.error(`Port ${a} was requested for "${o}", but is already used by another server.`),new J(a);if(Object.values(r).includes(a))throw e&&console.error(`Port ${a} was requested for "${o}", but also for another key.`),new H(a);if((0,g.isUnsafePort)(a))throw e&&console.error(`Port ${a} was requested for "${o}", but is unsafe.`),new A(a);if(await(0,g.checkPort)(a)===!1)throw e&&console.error(`Port ${a} was requested for "${o}", but is not available.`),new A(a)}}var A=class extends Error{constructor(r){super(`Port \`${r}\` is not available.`);this.port=r}name="PortNotAvailableError"},H=class extends Error{constructor(r){super(`Port number \`${r}\` was requested twice. Please choose a different port for each service.`);this.port=r}name="PortRequestedTwiceError"},J=class extends Error{constructor(r){super(`Port number \`${r}\` belongs to another Prisma Dev server. Please choose a different port.`);this.port=r}name="PortBelongsToAnotherServerError"};var X=require("pathe");function Ce(){return(0,X.join)(q.data,"durable-streams")}function be(t){return(0,X.join)(Ce(),t)}var O=(0,s.pipe)((0,s.string)(),(0,s.url)()),ge=(0,s.object)({connectionString:O,prismaORMConnectionString:(0,s.optional)(O),terminalCommand:(0,s.optional)((0,s.string)())}),ye=(0,s.object)({url:O}),Ve=(0,s.object)({serverUrl:O,sqlitePath:(0,s.pipe)((0,s.string)(),(0,s.minLength)(1)),streamName:(0,s.pipe)((0,s.string)(),(0,s.minLength)(1)),url:O}),qe=(0,s.object)({streams:(0,s.optional)(Ve)}),Y=(0,s.pipe)((0,s.number)(),(0,s.integer)(),(0,s.minValue)(1)),Fe=(0,s.object)({database:ge,http:ye,ppg:ye,shadowDatabase:ge}),Ge=(0,s.object)({databasePort:Y,experimental:(0,s.optional)(qe),exports:(0,s.optional)(Fe),name:(0,s.pipe)((0,s.string)(),(0,s.minLength)(1)),pid:(0,s.optional)((0,s.pipe)((0,s.number)(),(0,s.integer)(),(0,s.minValue)(0))),port:Y,shadowDatabasePort:Y,version:(0,s.literal)("1")}),ee=Symbol("initialize"),z="default",Ke=new Set(["durable-streams"]),f=class{_databasePort;databaseConnectTimeoutMillis;databaseIdleTimeoutMillis;debug;dryRun;name;persistenceMode;pid;shadowDatabaseConnectTimeoutMillis;shadowDatabaseIdleTimeoutMillis;_port;_shadowDatabasePort;_streamsPort;constructor(e){this._databasePort=e.databasePort??p,this.databaseConnectTimeoutMillis=e.databaseConnectTimeoutMillis??6e4,this.databaseIdleTimeoutMillis=e.databaseIdleTimeoutMillis??1/0,this.debug=e.debug??!1,this.dryRun=e.dryRun??!1,this.name=e.name??z,this.persistenceMode=e.persistenceMode,this.pid=e.pid??Q.process.pid,this.shadowDatabaseConnectTimeoutMillis=e.shadowDatabaseConnectTimeoutMillis??this.databaseConnectTimeoutMillis,this.shadowDatabaseIdleTimeoutMillis=e.shadowDatabaseIdleTimeoutMillis??this.databaseIdleTimeoutMillis,this._port=e.port??p,this._shadowDatabasePort=e.shadowDatabasePort??p,this._streamsPort=p}static async createExclusively(e){let r=e?.dryRun!==!0&&e?.persistenceMode==="stateful"?new $(e):new Z(e);return await r[ee](),r}static async fromServerDump(e){let{debug:r,name:o=z}=e??{},n=S(o),a=$.getServerDumpPath(n),i=await ue(a);if(i==null)return r&&console.debug(`[State] No server dump file found at: ${a}`),null;r&&(console.debug(`[State] server dump file found at "${a}":`),console.debug(i));let{issues:u,output:c,success:l}=(0,s.safeParse)((0,s.pipe)((0,s.string)(),(0,s.parseJson)(),Ge),i);if(!l)throw r&&console.debug(`[State] Invalid server dump file at "${a}":
2
- ${JSON.stringify(u,null,2)}`),new Error(`Invalid Prisma Dev state for "${o}".`);return new $({databasePort:c.databasePort,debug:r,dryRun:!1,name:o,pid:c.pid,port:c.port,serverDump:c,shadowDatabasePort:c.shadowDatabasePort})}static async scan(e){let{debug:r,globs:o}=e??{},n=(0,y.join)(S(z),"..");r&&console.debug(`[State] scanning for server states in: ${n}`);let a=(await de(n,o)).filter(i=>!Ke.has(i));return r&&console.debug(`[State] found server names: ${JSON.stringify(a)}`),await Promise.all(a.map(i=>te(i,e)))}get databasePort(){return this._databasePort}set databasePort(e){this.#t("databasePort",e)}get port(){return this._port}set port(e){this.#t("port",e)}get shadowDatabasePort(){return this._shadowDatabasePort}get streamsPort(){return this._streamsPort}set shadowDatabasePort(e){this.#t("shadowDatabasePort",e)}#t(e,r){if(r<0||!Number.isInteger(r))throw new Error(`Invalid port number: ${r}`);let o=`_${e}`;if(this[o]!==D&&this[o]!==r)throw new Error(`\`${e}\` is already set to ${this[o]}, cannot change it to ${r}`);this[o]=r}},Z=class extends f{constructor(e){super({...e,databasePort:e?.databasePort||D,persistenceMode:"stateless",port:e?.port||D,shadowDatabasePort:e?.shadowDatabasePort||D})}get databaseDumpPath(){return"<DUMP_PATH>"}get pgliteDataDirPath(){return"memory://"}async[ee](){let e;try{e=await f.scan({debug:this.debug,onlyMetadata:!0})}catch(o){this.debug&&console.warn("[State] failed to scan for existing servers, assuming filesystem does not exist or other reasons.",o),e=[]}let r=await W({debug:this.debug,name:this.dryRun?this.name:"",requestedPorts:{databasePort:this.databasePort,port:this.port,shadowDatabasePort:this.shadowDatabasePort,streamsPort:this.streamsPort},servers:e});this._databasePort=r.databasePort,this._port=r.port,this._shadowDatabasePort=r.shadowDatabasePort,this._streamsPort=r.streamsPort}async close(){}async writeServerDump(){}},$=class t extends f{#t;#e;#s;#a;#n;#o;#r;constructor(e){super({...e,persistenceMode:"stateful"}),this.#o=!1,this.#e=S(this.name),this.#t=(0,y.join)(this.#e,"db_dump.bak"),this.#s=(0,y.join)(this.#e,".lock"),this.#a=(0,y.join)(this.#e,".pglite"),this.#r=e?.serverDump??null,this.#n=t.getServerDumpPath(this.#e)}static getServerDumpPath(e){return(0,y.join)(e,"server.json")}get databaseDumpPath(){return this.#t}get exports(){return this.#r?.exports}get experimental(){return this.#r?.experimental}get pgliteDataDirPath(){return this.#a}async[ee](){await ce(this.#e),this.debug&&console.debug(`[State] using data directory: ${this.#e}`);try{await(0,x.lock)(this.#e,{lockfilePath:this.#s}),this.debug&&console.debug(`[State] obtained lock on: ${this.#e}`);let e=await f.scan({debug:this.debug,onlyMetadata:!0}),r=await W({debug:this.debug,name:this.name,requestedPorts:{databasePort:this.databasePort,port:this.port,shadowDatabasePort:this.shadowDatabasePort,streamsPort:this.streamsPort},servers:e});this._databasePort=r.databasePort,this._port=r.port,this._shadowDatabasePort=r.shadowDatabasePort,this._streamsPort=r.streamsPort,await this.writeServerDump()}catch(e){throw e instanceof Error&&"code"in e&&e.code==="ELOCKED"?new L(this):e}}async close(){if(!this.#o)try{await(0,x.unlock)(this.#e,{lockfilePath:this.#s}),this.#o=!0,this.debug&&console.debug(`[State] released lock on: ${this.#e}`)}catch(e){throw this.debug&&console.error(`[State] failed to release lock on: ${this.#e}`,e),e}}async writeServerDump(e,r){this.#r={name:this.name,version:"1",pid:Q.process.pid,port:this.port,databasePort:this.databasePort,experimental:r,shadowDatabasePort:this.shadowDatabasePort,exports:e},await(0,ve.writeFile)(this.#n,`${JSON.stringify(this.#r,null,2)}
3
- `,{encoding:"utf-8"})}};async function He(t,e){await Se(t,e);let r=typeof t=="string"?t:t.name,o=S(r);await F(o),await F(be(r))}async function te(t,e){let{debug:r,onlyMetadata:o}=e||{},n=typeof t=="string"?t:t.name,a=typeof t!="string"?t:void 0,i={databasePort:a?.databasePort??-1,experimental:a?.experimental,exports:a?.exports,name:n,pid:a?.pid,port:a?.port??-1,shadowDatabasePort:a?.shadowDatabasePort??-1,version:"1"};try{let u=a||await f.fromServerDump({debug:r,name:n});if(!u)return r&&console.debug(`[State] no server state found for name: ${n}`),{...i,status:"no_such_server"};i.databasePort=u.databasePort,i.experimental=u.experimental,i.exports=u.exports,i.pid=u.pid,i.port=u.port,i.shadowDatabasePort=u.shadowDatabasePort;let{exports:c,pid:l}=u;if(o)return{...i,status:"unknown"};if(!G(l,r))return r&&console.debug(`[State] server state for "${n}" has no running process with PID: ${l}`),{...i,status:"not_running"};let h=S(n);try{if(!await(0,x.check)(h,{lockfilePath:(0,y.join)(h,".lock")}))return r&&console.debug(`[State] server state for "${n}" is not locked, indicating it is not running.`),{...i,status:"not_running"}}catch(De){r&&console.error(`[State] server state for "${n}" failed to check lock:`,De)}if(!c)return{...i,status:"starting_up"};let{http:N}=c,{hc:v}=await import("hono/client"),P=await v(N.url).health.$get();if(!P.ok)return r&&console.debug(`[State] server state for "${n}" is not live: ${JSON.stringify(P)}`),{...i,status:"not_running"};let U=await P.json();return U.name!==t?(r&&console.debug(`[State] server state for "${n}" has mismatched health response: ${JSON.stringify(U)}`),{...i,status:"unknown"}):(r&&console.debug(`[State] server state for "${t}" is live: ${JSON.stringify(U)}`),{...i,status:"running"})}catch(u){return r&&console.error(`[State] failed to get server status for "${n}":`,u),{...i,status:"error"}}}function we(t){let{status:e}=t;return e==="running"||e==="starting_up"}async function Se(t,e){let{pid:r,...o}=typeof t=="string"?await te(t,{debug:e}):t;if(!we(o))return!1;let n=await f.fromServerDump({debug:e,name:o.name});if(r==null){e&&console.debug(`[State] No PID found for server "${o.name}" to kill.`);try{await n?.close()}catch{}return!1}let a=await pe(r,e);try{await n?.close()}catch{}return a}var j=class extends Error{name="ServerStateAlreadyExistsError";constructor(e){super(`A Prisma Dev server with the name "${e}" is already running.`)}},L=class extends j{#t;name="ServerAlreadyRunningError";constructor(e){super(e.name),this.#t=e}get server(){return f.fromServerDump({debug:this.#t.debug,name:this.#t.name})}};0&&(module.exports={ServerAlreadyRunningError,ServerState,ServerStateAlreadyExistsError,deleteServer,getServerStatus,isServerRunning,killServer});
1
+ "use strict";var xe=Object.create;var M=Object.defineProperty;var Te=Object.getOwnPropertyDescriptor;var _e=Object.getOwnPropertyNames;var Ee=Object.getPrototypeOf,$e=Object.prototype.hasOwnProperty;var Me=(t,e)=>{for(var r in e)M(t,r,{get:e[r],enumerable:!0})},te=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of _e(e))!$e.call(t,n)&&n!==r&&M(t,n,{get:()=>e[n],enumerable:!(o=Te(e,n))||o.enumerable});return t};var O=(t,e,r)=>(r=t!=null?xe(Ee(t)):{},te(e||!t||!t.__esModule?M(r,"default",{value:t,enumerable:!0}):r,t)),Oe=t=>te(M({},"__esModule",{value:!0}),t);var He={};Me(He,{ServerAlreadyRunningError:()=>U,ServerState:()=>f,ServerStateAlreadyExistsError:()=>N,deleteServer:()=>Ke,getServerStatus:()=>ee,isServerRunning:()=>Se,killServer:()=>we});module.exports=Oe(He);var ve=require("fs/promises"),S=require("pathe"),x=require("proper-lockfile"),Q=require("std-env"),s=require("valibot");var re=require("fs"),m=require("fs/promises"),se=require("util"),oe=require("zlib");var d=O(require("path"),1),L=O(require("os"),1),k=O(require("process"),1),g=L.default.homedir(),q=L.default.tmpdir(),{env:w}=k.default,ke=t=>{let e=d.default.join(g,"Library");return{data:d.default.join(e,"Application Support",t),config:d.default.join(e,"Preferences",t),cache:d.default.join(e,"Caches",t),log:d.default.join(e,"Logs",t),temp:d.default.join(q,t)}},Ae=t=>{let e=w.APPDATA||d.default.join(g,"AppData","Roaming"),r=w.LOCALAPPDATA||d.default.join(g,"AppData","Local");return{data:d.default.join(r,t,"Data"),config:d.default.join(e,t,"Config"),cache:d.default.join(r,t,"Cache"),log:d.default.join(r,t,"Log"),temp:d.default.join(q,t)}},Re=t=>{let e=d.default.basename(g);return{data:d.default.join(w.XDG_DATA_HOME||d.default.join(g,".local","share"),t),config:d.default.join(w.XDG_CONFIG_HOME||d.default.join(g,".config"),t),cache:d.default.join(w.XDG_CACHE_HOME||d.default.join(g,".cache"),t),log:d.default.join(w.XDG_STATE_HOME||d.default.join(g,".local","state"),t),temp:d.default.join(q,e,t)}};function B(t,{suffix:e="nodejs"}={}){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);return e&&(t+=`-${e}`),k.default.platform==="darwin"?ke(t):k.default.platform==="win32"?Ae(t):Re(t)}var ae=O(require("zeptomatch"),1),C=B("prisma-dev"),ze=(0,se.promisify)(oe.unzip);function D(t){return`${C.data}/${t}`}function ne(t){return t!=null&&typeof t=="object"&&"code"in t&&t.code==="ENOENT"}async function ie(t){try{return await(0,m.readFile)(t,{encoding:"utf-8"})}catch(e){if(ne(e))return null;throw e}}async function ue(t){await(0,m.mkdir)(t,{recursive:!0})}async function ce(t,e){try{return(await(0,m.readdir)(t,{withFileTypes:!0})).reduce((o,n)=>(n.isDirectory()&&!n.name.startsWith(".")&&(!e||(0,ae.default)(e,n.name))&&o.push(n.name),o),[])}catch(r){if(ne(r))return[];throw r}}async function V(t){await(0,m.rm)(t,{force:!0,recursive:!0})}var de=require("timers/promises"),_=require("std-env");function F(t,e){if(t==null)return!1;try{return _.process.kill?.(t,0)??!0}catch(r){return e&&console.error(`Error checking if process with PID ${t} exists:`,r),!1}}async function le(t,e){if(!_.process.kill)return!1;try{_.process.kill(t,"SIGTERM")}catch(o){return e&&console.error(`Error killing process with PID ${t}:`,o),!1}let r=0;do{if(!F(t,e))return!0;await(0,de.setTimeout)(100)}while(++r<50);try{return _.process.kill(t,"SIGKILL")}catch(o){return e&&console.error(`Error forcefully killing process with PID ${t}:`,o),!1}}var y=require("get-port-please"),I=require("remeda"),pe=51214,me=51213,he=51215,fe=51216,A=65535,v=0,p=-1/0;async function J(t){let{debug:e,name:r,requestedPorts:o,servers:n}=t,{portsUsedByOtherServers:a,portsUsedByThisServerLastTime:i}=Ue(r,n);e&&(console.debug(`ports used by other servers: ${Object.keys(a).join(", ")}`),console.debug(`ports used by "${r}" server last time: ${JSON.stringify(i)}`));let u={databasePort:p,port:p,shadowDatabasePort:p,streamsPort:p},c=["port","databasePort","shadowDatabasePort","streamsPort"];for(let l of c){let h=await Ie({debug:e,portKey:l,portsUsedByOtherServers:a,portsUsedByThisServerLastTime:i,requestedPorts:o})??await Ne({debug:e,pickedPorts:u,portKey:l,portsUsedByOtherServers:a,portsUsedByThisServerLastTime:i});e&&console.debug(`Got port for "${l}": ${h}`),u[l]=h}return e&&console.debug(`Picked ports: ${JSON.stringify(u)}`),u}async function Ie(t){let{debug:e,portKey:r,portsUsedByOtherServers:o,portsUsedByThisServerLastTime:n,requestedPorts:a}=t,{[r]:i,...u}=a;if(G(i))return await qe({debug:e,otherRequestedPorts:u,portKey:r,portsUsedByOtherServers:o,requestedPort:i}),i;let c=n?.[r]??p;if(!G(c))return e&&console.debug(`No port specified for "${r}". Trying to pick a new port.`),null;let l=c in o;return l||Object.values(u).includes(c)?(e&&console.debug(`Port ${c} that was used last time for this server, ${l?"is also used by another server":"has been requested for another service"}. Trying to pick a new port.`),null):await(0,y.checkPort)(c)===!1?(e&&console.debug(`Port ${c}, that was used last time for this server, is not available. Trying to pick a new port.`),null):(e&&console.debug(`Using port ${c} for "${r}" as it was used last time and is available.`),c)}async function Ne(t){let{debug:e,pickedPorts:r,portKey:o,portsUsedByOtherServers:n,portsUsedByThisServerLastTime:a}=t,i=Math.max(pe,me,he,fe)+1,u=Object.values(r).filter(P=>P!==void 0),c=a?Le(a):[],l=[...u,...Object.keys(n).map(Number),...c],h=Math.min(Math.max(i,...l)+100,A),j=(0,I.difference)((0,I.range)(i,h),l),b={port:me,databasePort:pe,shadowDatabasePort:he,streamsPort:fe}[o];try{return await(0,y.getPort)({port:b in n||u.includes(b)||c.includes(b)?void 0:b,ports:j})}catch(P){if(P instanceof Error&&P.name==="GetPortError"&&h+1<=A)return e&&console.debug(`Expanding port lookup to range [${h+1}, ${A}].`),await(0,y.getPort)({portRange:[h+1,A]});throw P}}function G(t){return Number.isFinite(t)&&t>=0}function Ue(t,e){let r={},o;for(let n of e){let{databasePort:a,port:i,shadowDatabasePort:u}=n,c=je(n);if(n.name===t){o={databasePort:a,port:i,shadowDatabasePort:u,streamsPort:c};continue}r[a]=!0,r[i]=!0,r[u]=!0,G(c)&&(r[c]=!0)}return{portsUsedByOtherServers:r,portsUsedByThisServerLastTime:o}}function je(t){let e=t.experimental?.streams?.serverUrl;if(!e)return p;try{let r=Number(new URL(e).port);return Number.isInteger(r)&&r>0?r:p}catch{return p}}function Le(t){return[t.port,t.databasePort,t.shadowDatabasePort,t.streamsPort]}async function qe(t){let{debug:e,otherRequestedPorts:r,portKey:o,portsUsedByOtherServers:n,requestedPort:a}=t;if(a!==v){if(a in n)throw e&&console.error(`Port ${a} was requested for "${o}", but is already used by another server.`),new H(a);if(Object.values(r).includes(a))throw e&&console.error(`Port ${a} was requested for "${o}", but also for another key.`),new K(a);if((0,y.isUnsafePort)(a))throw e&&console.error(`Port ${a} was requested for "${o}", but is unsafe.`),new R(a);if(await(0,y.checkPort)(a)===!1)throw e&&console.error(`Port ${a} was requested for "${o}", but is not available.`),new R(a)}}var R=class extends Error{constructor(r){super(`Port \`${r}\` is not available.`);this.port=r}name="PortNotAvailableError"},K=class extends Error{constructor(r){super(`Port number \`${r}\` was requested twice. Please choose a different port for each service.`);this.port=r}name="PortRequestedTwiceError"},H=class extends Error{constructor(r){super(`Port number \`${r}\` belongs to another Prisma Dev server. Please choose a different port.`);this.port=r}name="PortBelongsToAnotherServerError"};var W=require("pathe");function Be(){return(0,W.join)(C.data,"durable-streams")}function Pe(t){return(0,W.join)(Be(),t)}var $=(0,s.pipe)((0,s.string)(),(0,s.url)()),be=(0,s.object)({connectionString:$,prismaORMConnectionString:(0,s.optional)($),terminalCommand:(0,s.optional)((0,s.string)())}),ge=(0,s.object)({url:$}),ye=(0,s.object)({serverUrl:$,sqlitePath:(0,s.pipe)((0,s.string)(),(0,s.minLength)(1)),streamName:(0,s.pipe)((0,s.string)(),(0,s.minLength)(1)),url:$}),Ce=(0,s.object)({queryInsights:(0,s.optional)(ye),streams:(0,s.optional)(ye)}),X=(0,s.pipe)((0,s.number)(),(0,s.integer)(),(0,s.minValue)(1)),Ve=(0,s.object)({database:be,http:ge,ppg:ge,shadowDatabase:be}),Fe=(0,s.object)({databasePort:X,experimental:(0,s.optional)(Ce),exports:(0,s.optional)(Ve),name:(0,s.pipe)((0,s.string)(),(0,s.minLength)(1)),pid:(0,s.optional)((0,s.pipe)((0,s.number)(),(0,s.integer)(),(0,s.minValue)(0))),port:X,shadowDatabasePort:X,version:(0,s.literal)("1")}),Z=Symbol("initialize"),Y="default",Ge=new Set(["durable-streams"]),f=class{_databasePort;databaseConnectTimeoutMillis;databaseIdleTimeoutMillis;debug;dryRun;name;persistenceMode;pid;shadowDatabaseConnectTimeoutMillis;shadowDatabaseIdleTimeoutMillis;_port;_shadowDatabasePort;_streamsPort;constructor(e){this._databasePort=e.databasePort??p,this.databaseConnectTimeoutMillis=e.databaseConnectTimeoutMillis??6e4,this.databaseIdleTimeoutMillis=e.databaseIdleTimeoutMillis??1/0,this.debug=e.debug??!1,this.dryRun=e.dryRun??!1,this.name=e.name??Y,this.persistenceMode=e.persistenceMode,this.pid=e.pid??Q.process.pid,this.shadowDatabaseConnectTimeoutMillis=e.shadowDatabaseConnectTimeoutMillis??this.databaseConnectTimeoutMillis,this.shadowDatabaseIdleTimeoutMillis=e.shadowDatabaseIdleTimeoutMillis??this.databaseIdleTimeoutMillis,this._port=e.port??p,this._shadowDatabasePort=e.shadowDatabasePort??p,this._streamsPort=e.streamsPort??p}static async createExclusively(e){let r=e?.dryRun!==!0&&e?.persistenceMode==="stateful"?new E(e):new z(e);return await r[Z](),r}static async fromServerDump(e){let{debug:r,name:o=Y}=e??{},n=D(o),a=E.getServerDumpPath(n),i=await ie(a);if(i==null)return r&&console.debug(`[State] No server dump file found at: ${a}`),null;r&&(console.debug(`[State] server dump file found at "${a}":`),console.debug(i));let{issues:u,output:c,success:l}=(0,s.safeParse)((0,s.pipe)((0,s.string)(),(0,s.parseJson)(),Fe),i);if(!l)throw r&&console.debug(`[State] Invalid server dump file at "${a}":
2
+ ${JSON.stringify(u,null,2)}`),new Error(`Invalid Prisma Dev state for "${o}".`);return new E({databasePort:c.databasePort,debug:r,dryRun:!1,name:o,pid:c.pid,port:c.port,serverDump:c,shadowDatabasePort:c.shadowDatabasePort})}static async scan(e){let{debug:r,globs:o}=e??{},n=(0,S.join)(D(Y),"..");r&&console.debug(`[State] scanning for server states in: ${n}`);let a=(await ce(n,o)).filter(i=>!Ge.has(i));return r&&console.debug(`[State] found server names: ${JSON.stringify(a)}`),await Promise.all(a.map(i=>ee(i,e)))}get databasePort(){return this._databasePort}set databasePort(e){this.#t("databasePort",e)}get port(){return this._port}set port(e){this.#t("port",e)}get shadowDatabasePort(){return this._shadowDatabasePort}get streamsPort(){return this._streamsPort}set shadowDatabasePort(e){this.#t("shadowDatabasePort",e)}#t(e,r){if(r<0||!Number.isInteger(r))throw new Error(`Invalid port number: ${r}`);let o=`_${e}`;if(this[o]!==v&&this[o]!==r)throw new Error(`\`${e}\` is already set to ${this[o]}, cannot change it to ${r}`);this[o]=r}},z=class extends f{constructor(e){super({...e,databasePort:e?.databasePort||v,persistenceMode:"stateless",port:e?.port||v,shadowDatabasePort:e?.shadowDatabasePort||v,streamsPort:e?.streamsPort||v})}get databaseDumpPath(){return"<DUMP_PATH>"}get pgliteDataDirPath(){return"memory://"}async[Z](){let e;try{e=await f.scan({debug:this.debug,onlyMetadata:!0})}catch(o){this.debug&&console.warn("[State] failed to scan for existing servers, assuming filesystem does not exist or other reasons.",o),e=[]}let r=await J({debug:this.debug,name:this.dryRun?this.name:"",requestedPorts:{databasePort:this.databasePort,port:this.port,shadowDatabasePort:this.shadowDatabasePort,streamsPort:this.streamsPort},servers:e});this._databasePort=r.databasePort,this._port=r.port,this._shadowDatabasePort=r.shadowDatabasePort,this._streamsPort=r.streamsPort}async close(){}async writeServerDump(){}},E=class t extends f{#t;#e;#s;#a;#n;#o;#r;constructor(e){super({...e,persistenceMode:"stateful"}),this.#o=!1,this.#e=D(this.name),this.#t=(0,S.join)(this.#e,"db_dump.bak"),this.#s=(0,S.join)(this.#e,".lock"),this.#a=(0,S.join)(this.#e,".pglite"),this.#r=e?.serverDump??null,this.#n=t.getServerDumpPath(this.#e)}static getServerDumpPath(e){return(0,S.join)(e,"server.json")}get databaseDumpPath(){return this.#t}get exports(){return this.#r?.exports}get experimental(){return this.#r?.experimental}get pgliteDataDirPath(){return this.#a}async[Z](){await ue(this.#e),this.debug&&console.debug(`[State] using data directory: ${this.#e}`);try{await(0,x.lock)(this.#e,{lockfilePath:this.#s}),this.debug&&console.debug(`[State] obtained lock on: ${this.#e}`);let e=await f.scan({debug:this.debug,onlyMetadata:!0}),r=await J({debug:this.debug,name:this.name,requestedPorts:{databasePort:this.databasePort,port:this.port,shadowDatabasePort:this.shadowDatabasePort,streamsPort:this.streamsPort},servers:e});this._databasePort=r.databasePort,this._port=r.port,this._shadowDatabasePort=r.shadowDatabasePort,this._streamsPort=r.streamsPort,await this.writeServerDump()}catch(e){throw e instanceof Error&&"code"in e&&e.code==="ELOCKED"?new U(this):e}}async close(){if(!this.#o)try{await(0,x.unlock)(this.#e,{lockfilePath:this.#s}),this.#o=!0,this.debug&&console.debug(`[State] released lock on: ${this.#e}`)}catch(e){throw this.debug&&console.error(`[State] failed to release lock on: ${this.#e}`,e),e}}async writeServerDump(e,r){this.#r={name:this.name,version:"1",pid:Q.process.pid,port:this.port,databasePort:this.databasePort,experimental:r,shadowDatabasePort:this.shadowDatabasePort,exports:e},await(0,ve.writeFile)(this.#n,`${JSON.stringify(this.#r,null,2)}
3
+ `,{encoding:"utf-8"})}};async function Ke(t,e){await we(t,e);let r=typeof t=="string"?t:t.name,o=D(r);await V(o),await V(Pe(r))}async function ee(t,e){let{debug:r,onlyMetadata:o}=e||{},n=typeof t=="string"?t:t.name,a=typeof t!="string"?t:void 0,i={databasePort:a?.databasePort??-1,experimental:a?.experimental,exports:a?.exports,name:n,pid:a?.pid,port:a?.port??-1,shadowDatabasePort:a?.shadowDatabasePort??-1,version:"1"};try{let u=a||await f.fromServerDump({debug:r,name:n});if(!u)return r&&console.debug(`[State] no server state found for name: ${n}`),{...i,status:"no_such_server"};i.databasePort=u.databasePort,i.experimental=u.experimental,i.exports=u.exports,i.pid=u.pid,i.port=u.port,i.shadowDatabasePort=u.shadowDatabasePort;let{exports:c,pid:l}=u;if(o)return{...i,status:"unknown"};if(!F(l,r))return r&&console.debug(`[State] server state for "${n}" has no running process with PID: ${l}`),{...i,status:"not_running"};let h=D(n);try{if(!await(0,x.check)(h,{lockfilePath:(0,S.join)(h,".lock")}))return r&&console.debug(`[State] server state for "${n}" is not locked, indicating it is not running.`),{...i,status:"not_running"}}catch(De){r&&console.error(`[State] server state for "${n}" failed to check lock:`,De)}if(!c)return{...i,status:"starting_up"};let{http:j}=c,b=await fetch(`${j.url}/health`,{headers:{connection:"close"}});if(!b.ok)return r&&console.debug(`[State] server state for "${n}" is not live: ${JSON.stringify(b)}`),{...i,status:"not_running"};let P=await b.json();return P.name!==t?(r&&console.debug(`[State] server state for "${n}" has mismatched health response: ${JSON.stringify(P)}`),{...i,status:"unknown"}):(r&&console.debug(`[State] server state for "${t}" is live: ${JSON.stringify(P)}`),{...i,status:"running"})}catch(u){return r&&console.error(`[State] failed to get server status for "${n}":`,u),{...i,status:"error"}}}function Se(t){let{status:e}=t;return e==="running"||e==="starting_up"}async function we(t,e){let{pid:r,...o}=typeof t=="string"?await ee(t,{debug:e}):t;if(!Se(o))return!1;let n=await f.fromServerDump({debug:e,name:o.name});if(r==null){e&&console.debug(`[State] No PID found for server "${o.name}" to kill.`);try{await n?.close()}catch{}return!1}let a=await le(r,e);try{await n?.close()}catch{}return a}var N=class extends Error{name="ServerStateAlreadyExistsError";constructor(e){super(`A Prisma Dev server with the name "${e}" is already running.`)}},U=class extends N{#t;name="ServerAlreadyRunningError";constructor(e){super(e.name),this.#t=e}get server(){return f.fromServerDump({debug:this.#t.debug,name:this.#t.name})}};0&&(module.exports={ServerAlreadyRunningError,ServerState,ServerStateAlreadyExistsError,deleteServer,getServerStatus,isServerRunning,killServer});
package/dist/state.d.cts CHANGED
@@ -1,2 +1,2 @@
1
1
  import 'valibot';
2
- export { a as Exports, P as PersistenceMode, R as ResolvedServerOptions, d as ScanOptions, b as ServerAlreadyRunningError, e as ServerDumpV1, S as ServerOptions, c as ServerState, f as ServerStateAlreadyExistsError, g as ServerStatusV1, h as deleteServer, i as getServerStatus, j as isServerRunning, k as killServer } from './state-DTMxyzXf.cjs';
2
+ export { b as Exports, P as PersistenceMode, R as ResolvedServerOptions, e as ScanOptions, c as ServerAlreadyRunningError, f as ServerDumpV1, S as ServerOptions, d as ServerState, g as ServerStateAlreadyExistsError, h as ServerStatusV1, i as deleteServer, j as getServerStatus, k as isServerRunning, l as killServer } from './state-CNKFAMiX.cjs';
package/dist/state.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  import 'valibot';
2
- export { a as Exports, P as PersistenceMode, R as ResolvedServerOptions, d as ScanOptions, b as ServerAlreadyRunningError, e as ServerDumpV1, S as ServerOptions, c as ServerState, f as ServerStateAlreadyExistsError, g as ServerStatusV1, h as deleteServer, i as getServerStatus, j as isServerRunning, k as killServer } from './state-DTMxyzXf.js';
2
+ export { b as Exports, P as PersistenceMode, R as ResolvedServerOptions, e as ScanOptions, c as ServerAlreadyRunningError, f as ServerDumpV1, S as ServerOptions, d as ServerState, g as ServerStateAlreadyExistsError, h as ServerStatusV1, i as deleteServer, j as getServerStatus, k as isServerRunning, l as killServer } from './state-CNKFAMiX.js';
package/dist/state.js CHANGED
@@ -1 +1 @@
1
- import{e as a,f as b,g as c,h as d,i as e,j as f,k as g}from"./chunk-CC3P7GPW.js";import"./chunk-X3G665AK.js";import"./chunk-DWY47FQV.js";export{g as ServerAlreadyRunningError,a as ServerState,f as ServerStateAlreadyExistsError,b as deleteServer,c as getServerStatus,d as isServerRunning,e as killServer};
1
+ import{f as a,g as b,h as c,i as d,j as e,k as f,l as g}from"./chunk-HFONW2ZS.js";import"./chunk-EDFHV3AK.js";import"./chunk-DWY47FQV.js";export{g as ServerAlreadyRunningError,a as ServerState,f as ServerStateAlreadyExistsError,b as deleteServer,c as getServerStatus,d as isServerRunning,e as killServer};
@@ -0,0 +1 @@
1
+ import{a as r}from"./chunk-SW3J2PL2.js";import"./chunk-ANHBRJRZ.js";import"./chunk-EDFHV3AK.js";import{a}from"./chunk-DOJAPHLY.js";function h(o,e,m){o.on("POST","/database/dump",r(async(p,t)=>{await e.db.dump(e.databaseDumpPath),a(t,{dumpPath:e.databaseDumpPath},201)},m)),o.on("GET","/health",r((p,t)=>{a(t,{name:e.name})},m))}export{h as registerUtilityRoutes};