@geekmidas/cli 10.0.0-alpha.62 → 10.0.0-alpha.63
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/README.md +2 -0
- package/dist/{HostingerProvider-B92qH4dC.mjs → HostingerProvider-DBBwpDjn.mjs} +2 -2
- package/dist/{HostingerProvider-B92qH4dC.mjs.map → HostingerProvider-DBBwpDjn.mjs.map} +1 -1
- package/dist/{HostingerProvider-DyD1Hin8.cjs → HostingerProvider-mJ7YruxH.cjs} +2 -2
- package/dist/{HostingerProvider-DyD1Hin8.cjs.map → HostingerProvider-mJ7YruxH.cjs.map} +1 -1
- package/dist/{LegacyStateStore-UHJEBLdn.cjs → LegacyStateStore-CP7SZwTP.cjs} +2 -2
- package/dist/{LegacyStateStore-UHJEBLdn.cjs.map → LegacyStateStore-CP7SZwTP.cjs.map} +1 -1
- package/dist/{LegacyStateStore-A8d2GdT7.mjs → LegacyStateStore-Q3GmKOdw.mjs} +2 -2
- package/dist/{LegacyStateStore-A8d2GdT7.mjs.map → LegacyStateStore-Q3GmKOdw.mjs.map} +1 -1
- package/dist/{LocalStateStore-B51rnfgn.mjs → LocalStateStore-BGIXcrvX.mjs} +2 -2
- package/dist/{LocalStateStore-B51rnfgn.mjs.map → LocalStateStore-BGIXcrvX.mjs.map} +1 -1
- package/dist/{LocalStateStore-COW3Ldwa.cjs → LocalStateStore-sS8mvLeq.cjs} +2 -2
- package/dist/{LocalStateStore-COW3Ldwa.cjs.map → LocalStateStore-sS8mvLeq.cjs.map} +1 -1
- package/dist/{OpenApiTsGenerator-BSrgw7B0.cjs → OpenApiTsGenerator-CjHWFRDd.cjs} +2 -2
- package/dist/{OpenApiTsGenerator-BSrgw7B0.cjs.map → OpenApiTsGenerator-CjHWFRDd.cjs.map} +1 -1
- package/dist/{OpenApiTsGenerator-q5B0z8Xg.mjs → OpenApiTsGenerator-CnAwhGxi.mjs} +2 -2
- package/dist/{OpenApiTsGenerator-q5B0z8Xg.mjs.map → OpenApiTsGenerator-CnAwhGxi.mjs.map} +1 -1
- package/dist/{S3StateStore-WUJGdRNL.cjs → S3StateStore-6jqITH2F.cjs} +2 -2
- package/dist/{S3StateStore-WUJGdRNL.cjs.map → S3StateStore-6jqITH2F.cjs.map} +1 -1
- package/dist/{S3StateStore-CJewPhgz.mjs → S3StateStore-D7l_lWJ3.mjs} +2 -2
- package/dist/{S3StateStore-CJewPhgz.mjs.map → S3StateStore-D7l_lWJ3.mjs.map} +1 -1
- package/dist/{SSMStateStore-Zejt42V8.cjs → SSMStateStore-B__F7IJa.cjs} +2 -2
- package/dist/{SSMStateStore-Zejt42V8.cjs.map → SSMStateStore-B__F7IJa.cjs.map} +1 -1
- package/dist/{SSMStateStore-iK5UKp9d.mjs → SSMStateStore-CAQDVpoc.mjs} +2 -2
- package/dist/{SSMStateStore-iK5UKp9d.mjs.map → SSMStateStore-CAQDVpoc.mjs.map} +1 -1
- package/dist/{bundler-CfH9frOS.cjs → bundler-DLfOn0ls.cjs} +3 -3
- package/dist/{bundler-CfH9frOS.cjs.map → bundler-DLfOn0ls.cjs.map} +1 -1
- package/dist/{bundler-DN5r4x5b.mjs → bundler-DyWI41Iy.mjs} +2 -2
- package/dist/{bundler-DN5r4x5b.mjs.map → bundler-DyWI41Iy.mjs.map} +1 -1
- package/dist/{cli-DOAUp80L.cjs → cli-D-ZM-X2s.cjs} +4 -4
- package/dist/{cli-DOAUp80L.cjs.map → cli-D-ZM-X2s.cjs.map} +1 -1
- package/dist/{cli-DYwxmfsW.mjs → cli-PkVF28LM.mjs} +4 -4
- package/dist/{cli-DYwxmfsW.mjs.map → cli-PkVF28LM.mjs.map} +1 -1
- package/dist/{config-BYh9S0cZ.cjs → config-BEJYKd4s.cjs} +132 -18
- package/dist/config-BEJYKd4s.cjs.map +1 -0
- package/dist/config-C2BUosLm.d.mts +256 -0
- package/dist/config-C2BUosLm.d.mts.map +1 -0
- package/dist/config-CemHVcIr.d.cts +256 -0
- package/dist/config-CemHVcIr.d.cts.map +1 -0
- package/dist/{config-Bf4-bROQ.mjs → config-LKKCVCnC.mjs} +109 -19
- package/dist/config-LKKCVCnC.mjs.map +1 -0
- package/dist/config.cjs +6 -2
- package/dist/config.d.cts +3 -210
- package/dist/config.d.mts +3 -210
- package/dist/config.mjs +3 -3
- package/dist/deploy/public.cjs +151 -5
- package/dist/deploy/public.cjs.map +1 -0
- package/dist/deploy/public.d.cts +186 -1
- package/dist/deploy/public.d.cts.map +1 -1
- package/dist/deploy/public.d.mts +186 -1
- package/dist/deploy/public.d.mts.map +1 -1
- package/dist/deploy/public.mjs +134 -6
- package/dist/deploy/public.mjs.map +1 -0
- package/dist/deploy/sniffer-envparser-worker.cjs +54 -0
- package/dist/deploy/sniffer-envparser-worker.cjs.map +1 -0
- package/dist/deploy/sniffer-envparser-worker.d.cts +1 -0
- package/dist/deploy/sniffer-envparser-worker.d.mts +1 -0
- package/dist/deploy/sniffer-envparser-worker.mjs +55 -0
- package/dist/deploy/sniffer-envparser-worker.mjs.map +1 -0
- package/dist/{deploy-DSaCYvcO.cjs → deploy-ABBI0lf1.cjs} +7 -7
- package/dist/{deploy-DSaCYvcO.cjs.map → deploy-ABBI0lf1.cjs.map} +1 -1
- package/dist/{deploy-D8Qr-Xto.cjs → deploy-BiMrP9i7.cjs} +11 -9
- package/dist/deploy-BiMrP9i7.cjs.map +1 -0
- package/dist/{deploy-B7jvUORo.mjs → deploy-CG8bfFij.mjs} +7 -7
- package/dist/{deploy-B7jvUORo.mjs.map → deploy-CG8bfFij.mjs.map} +1 -1
- package/dist/{deploy-Cg9fae7a.mjs → deploy-CGW-QY9D.mjs} +11 -9
- package/dist/deploy-CGW-QY9D.mjs.map +1 -0
- package/dist/discover-B6yPpvRV.d.mts +99 -0
- package/dist/discover-B6yPpvRV.d.mts.map +1 -0
- package/dist/discover-B_IkPukx.d.cts +99 -0
- package/dist/discover-B_IkPukx.d.cts.map +1 -0
- package/dist/discover-BaT6bpnA.mjs +614 -0
- package/dist/discover-BaT6bpnA.mjs.map +1 -0
- package/dist/discover-C_6COHEv.cjs +729 -0
- package/dist/discover-C_6COHEv.cjs.map +1 -0
- package/dist/{dokploy-CD9PY-3D.mjs → dokploy-CwdmlyQL.mjs} +2 -2
- package/dist/{dokploy-CD9PY-3D.mjs.map → dokploy-CwdmlyQL.mjs.map} +1 -1
- package/dist/{dokploy-Ey2foJLv.cjs → dokploy-QJxMhxdf.cjs} +2 -2
- package/dist/{dokploy-Ey2foJLv.cjs.map → dokploy-QJxMhxdf.cjs.map} +1 -1
- package/dist/{encryption-CVwvGbsL.mjs → encryption-CbQG_ayW.mjs} +4 -4
- package/dist/{encryption-CVwvGbsL.mjs.map → encryption-CbQG_ayW.mjs.map} +1 -1
- package/dist/{encryption-ChBk3hTj.cjs → encryption-DXw3jj0c.cjs} +4 -4
- package/dist/{encryption-ChBk3hTj.cjs.map → encryption-DXw3jj0c.cjs.map} +1 -1
- package/dist/fakes-C9RiT6XG.mjs.map +1 -1
- package/dist/fakes-zW-jNAbQ.cjs.map +1 -1
- package/dist/{github-OUgPDlqg.cjs → github-BH_mETav.cjs} +3 -3
- package/dist/{github-OUgPDlqg.cjs.map → github-BH_mETav.cjs.map} +1 -1
- package/dist/{github-BCB3_LBX.mjs → github-ciwbIwVa.mjs} +3 -3
- package/dist/{github-BCB3_LBX.mjs.map → github-ciwbIwVa.mjs.map} +1 -1
- package/dist/index.cjs +55 -48
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +52 -45
- package/dist/index.mjs.map +1 -1
- package/dist/{migrate-dnaFMvOm.cjs → migrate-6oa9y_f2.cjs} +5 -5
- package/dist/{migrate-dnaFMvOm.cjs.map → migrate-6oa9y_f2.cjs.map} +1 -1
- package/dist/{migrate-BoHMqdCu.mjs → migrate-ImBKTBcW.mjs} +5 -5
- package/dist/{migrate-BoHMqdCu.mjs.map → migrate-ImBKTBcW.mjs.map} +1 -1
- package/dist/openapi.cjs +3 -3
- package/dist/openapi.mjs +3 -3
- package/dist/{ready-XlNx-Gbo.cjs → ready-BiG0rt4h.cjs} +3 -3
- package/dist/{ready-XlNx-Gbo.cjs.map → ready-BiG0rt4h.cjs.map} +1 -1
- package/dist/{ready-DQIy21W5.mjs → ready-Bpdnn2ON.mjs} +3 -3
- package/dist/{ready-DQIy21W5.mjs.map → ready-Bpdnn2ON.mjs.map} +1 -1
- package/dist/reconcile/public.cjs +1 -1
- package/dist/reconcile/public.d.cts +3 -76
- package/dist/reconcile/public.d.cts.map +1 -1
- package/dist/reconcile/public.d.mts +3 -76
- package/dist/reconcile/public.d.mts.map +1 -1
- package/dist/reconcile/public.mjs +1 -1
- package/dist/{resolve-CFCIkm7m.mjs → resolve-B1T0hUaR.mjs} +2 -2
- package/dist/{resolve-CFCIkm7m.mjs.map → resolve-B1T0hUaR.mjs.map} +1 -1
- package/dist/{resolve-wbv66HjD.cjs → resolve-xytBTtG4.cjs} +2 -2
- package/dist/{resolve-wbv66HjD.cjs.map → resolve-xytBTtG4.cjs.map} +1 -1
- package/dist/sandbox/config-worker.cjs +43 -0
- package/dist/sandbox/config-worker.cjs.map +1 -0
- package/dist/sandbox/config-worker.d.cts +1 -0
- package/dist/sandbox/config-worker.d.mts +1 -0
- package/dist/sandbox/config-worker.mjs +44 -0
- package/dist/sandbox/config-worker.mjs.map +1 -0
- package/dist/sandbox/discover-worker.cjs +44 -0
- package/dist/sandbox/discover-worker.cjs.map +1 -0
- package/dist/sandbox/discover-worker.d.cts +1 -0
- package/dist/sandbox/discover-worker.d.mts +1 -0
- package/dist/sandbox/discover-worker.mjs +45 -0
- package/dist/sandbox/discover-worker.mjs.map +1 -0
- package/dist/sandbox-M8UnLhXE.d.cts +126 -0
- package/dist/sandbox-M8UnLhXE.d.cts.map +1 -0
- package/dist/sandbox-M8UnLhXE.d.mts +126 -0
- package/dist/sandbox-M8UnLhXE.d.mts.map +1 -0
- package/dist/{workspace-BFe57es7.mjs → schemas-Ckm_aBnF.cjs} +71 -982
- package/dist/schemas-Ckm_aBnF.cjs.map +1 -0
- package/dist/{workspace-B6zQO6RY.cjs → schemas-D2LCF689.mjs} +2 -1168
- package/dist/schemas-D2LCF689.mjs.map +1 -0
- package/dist/{sniffer-BsfPa-GA.cjs → sniffer-D_SYc_pO.cjs} +369 -207
- package/dist/sniffer-D_SYc_pO.cjs.map +1 -0
- package/dist/{sniffer-DHE2Nafd.mjs → sniffer-aO_-s5vq.mjs} +336 -204
- package/dist/sniffer-aO_-s5vq.mjs.map +1 -0
- package/dist/target/public.cjs +1 -1
- package/dist/target/public.mjs +1 -1
- package/dist/{terminal-6oL0vANs.cjs → terminal-D0f1u0LG.cjs} +6 -6
- package/dist/{terminal-6oL0vANs.cjs.map → terminal-D0f1u0LG.cjs.map} +1 -1
- package/dist/{terminal-ByZNjuig.mjs → terminal-gMxAo9Dj.mjs} +6 -6
- package/dist/{terminal-ByZNjuig.mjs.map → terminal-gMxAo9Dj.mjs.map} +1 -1
- package/dist/vitest.cjs +2 -2
- package/dist/vitest.mjs +2 -2
- package/dist/workerRuntime-BXfhbe13.cjs +108 -0
- package/dist/workerRuntime-BXfhbe13.cjs.map +1 -0
- package/dist/workerRuntime-CsOyBRx2.mjs +79 -0
- package/dist/workerRuntime-CsOyBRx2.mjs.map +1 -0
- package/dist/workspace/index.cjs +1 -1
- package/dist/workspace/index.mjs +1 -1
- package/dist/workspace-Dh7rr7l4.mjs +1024 -0
- package/dist/workspace-Dh7rr7l4.mjs.map +1 -0
- package/dist/workspace-Kl4NG9IH.cjs +1196 -0
- package/dist/workspace-Kl4NG9IH.cjs.map +1 -0
- package/package.json +13 -13
- package/dist/config-BYh9S0cZ.cjs.map +0 -1
- package/dist/config-Bf4-bROQ.mjs.map +0 -1
- package/dist/config.d.cts.map +0 -1
- package/dist/config.d.mts.map +0 -1
- package/dist/deploy-Cg9fae7a.mjs.map +0 -1
- package/dist/deploy-D8Qr-Xto.cjs.map +0 -1
- package/dist/discover-Bc-4eA_p.cjs +0 -299
- package/dist/discover-Bc-4eA_p.cjs.map +0 -1
- package/dist/discover-FrYvzkeC.mjs +0 -262
- package/dist/discover-FrYvzkeC.mjs.map +0 -1
- package/dist/sniffer-BsfPa-GA.cjs.map +0 -1
- package/dist/sniffer-DHE2Nafd.mjs.map +0 -1
- package/dist/workspace-B6zQO6RY.cjs.map +0 -1
- package/dist/workspace-BFe57es7.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workerRuntime-BXfhbe13.cjs","names":["dirname","fileURLToPath","join","existsSync","pathToFileURL"],"sources":["../src/sandbox/workerRuntime.ts"],"sourcesContent":["/**\n * What a worker script needs on its side of the sandbox: to answer, to say\n * what would not cross as data, and to resolve the project's path aliases the\n * way `gkm` does.\n *\n * Kept apart from `worker.ts`, which the host runs, so a worker loads nothing\n * of the host's side.\n */\n\nimport { existsSync } from 'node:fs';\nimport { dirname, join } from 'node:path';\nimport { fileURLToPath, pathToFileURL } from 'node:url';\n\n/** The line prefix a worker's answer is written after, on stdout. */\nexport const WORKER_RESULT_MARKER = '@@gkm-worker-result@@';\n\n/**\n * Write a worker's answer, and end the worker once it is out.\n *\n * Exiting rather than returning: the project's code may have left a server, a\n * timer or a connection open, and the answer is all the deploy waits for. The\n * callback, because a pipe on macOS is written asynchronously and an exit\n * before it drains would cut the answer short.\n */\nexport function answer(value: unknown): void {\n\tprocess.stdout.write(\n\t\t`${WORKER_RESULT_MARKER}${JSON.stringify(value)}\\n`,\n\t\t() => process.exit(0),\n\t);\n}\n\n/**\n * Where in `value` something is that JSON cannot carry faithfully: a\n * function, a class instance, a symbol, a bigint, a `Date`, a `Map` — as\n * paths like `state.provider` or `apps.api.hooks[0]`.\n *\n * `JSON.stringify` drops a function silently and turns a store into `{}`, so a\n * config that crossed it would arrive *different* rather than refused.\n */\nexport function liveValuePaths(value: unknown, path = ''): string[] {\n\tif (value === null) return [];\n\tswitch (typeof value) {\n\t\tcase 'string':\n\t\tcase 'boolean':\n\t\tcase 'undefined':\n\t\t\treturn [];\n\t\tcase 'number':\n\t\t\treturn Number.isFinite(value) ? [] : [path || '(root)'];\n\t\tcase 'object':\n\t\t\tbreak;\n\t\tdefault:\n\t\t\treturn [path || '(root)'];\n\t}\n\n\tif (Array.isArray(value)) {\n\t\treturn value.flatMap((item, index) =>\n\t\t\tliveValuePaths(item, `${path}[${index}]`),\n\t\t);\n\t}\n\n\tconst proto = Object.getPrototypeOf(value);\n\tif (proto !== Object.prototype && proto !== null) return [path || '(root)'];\n\n\treturn Object.entries(value as Record<string, unknown>).flatMap(\n\t\t([key, item]) => liveValuePaths(item, path ? `${path}.${key}` : key),\n\t);\n}\n\n/** An error, as plain data a host can rebuild a message from. */\nexport function errorData(error: unknown): {\n\tname: string;\n\tmessage: string;\n\t[field: string]: unknown;\n} {\n\tif (!(error instanceof Error))\n\t\treturn { name: 'Error', message: String(error) };\n\tconst fields = Object.fromEntries(\n\t\tObject.entries(error).filter(([, v]) => liveValuePaths(v).length === 0),\n\t);\n\treturn { ...fields, name: error.name, message: error.message };\n}\n\n/**\n * Resolve each module's path aliases through its own tsconfig, as `gkm` does\n * — the hook ships beside `bin/gkm.mjs`. Without it a construct importing\n * `~/db` resolves in `gkm dev` and not in a deploy.\n */\nexport async function registerAdjacentTsconfig(): Promise<void> {\n\tfor (\n\t\tlet dir = dirname(fileURLToPath(import.meta.url));\n\t\tdirname(dir) !== dir;\n\t\tdir = dirname(dir)\n\t) {\n\t\tconst hook = join(dir, 'bin', 'adjacent-tsconfig.mjs');\n\t\tif (existsSync(hook)) {\n\t\t\tconst { registerAdjacentTsconfig: register } = await import(\n\t\t\t\tpathToFileURL(hook).href\n\t\t\t);\n\t\t\tawait register();\n\t\t\treturn;\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;AAcA,MAAa,uBAAuB;;;;;;;;;AAUpC,SAAgB,OAAO,OAAsB;CAC5C,QAAQ,OAAO,MACd,GAAG,uBAAuB,KAAK,UAAU,KAAK,EAAE,WAC1C,QAAQ,KAAK,CAAC,CACrB;AACD;;;;;;;;;AAUA,SAAgB,eAAe,OAAgB,OAAO,IAAc;CACnE,IAAI,UAAU,MAAM,OAAO,CAAC;CAC5B,QAAQ,OAAO,OAAf;EACC,KAAK;EACL,KAAK;EACL,KAAK,aACJ,OAAO,CAAC;EACT,KAAK,UACJ,OAAO,OAAO,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,QAAQ;EACvD,KAAK,UACJ;EACD,SACC,OAAO,CAAC,QAAQ,QAAQ;CAC1B;CAEA,IAAI,MAAM,QAAQ,KAAK,GACtB,OAAO,MAAM,SAAS,MAAM,UAC3B,eAAe,MAAM,GAAG,KAAK,GAAG,MAAM,EAAE,CACzC;CAGD,MAAM,QAAQ,OAAO,eAAe,KAAK;CACzC,IAAI,UAAU,OAAO,aAAa,UAAU,MAAM,OAAO,CAAC,QAAQ,QAAQ;CAE1E,OAAO,OAAO,QAAQ,KAAgC,CAAC,CAAC,SACtD,CAAC,KAAK,UAAU,eAAe,MAAM,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,CACpE;AACD;;AAGA,SAAgB,UAAU,OAIxB;CACD,IAAI,EAAE,iBAAiB,QACtB,OAAO;EAAE,MAAM;EAAS,SAAS,OAAO,KAAK;CAAE;CAIhD,OAAO;EAAE,GAHM,OAAO,YACrB,OAAO,QAAQ,KAAK,CAAC,CAAC,QAAQ,GAAG,OAAO,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAEtD;EAAG,MAAM,MAAM;EAAM,SAAS,MAAM;CAAQ;AAC9D;;;;;;AAOA,eAAsB,2BAA0C;CAC/D,KACC,IAAI,OAAA,GAAMA,UAAAA,QAAAA,EAAAA,GAAQC,SAAAA,cAAAA,CAAAA,QAAAA,KAAAA,CAAAA,CAAAA,cAAAA,UAAAA,CAAAA,CAAAA,IAA6B,CAAC,IAAA,GAChDD,UAAAA,QAAAA,CAAQ,GAAG,MAAM,KACjB,OAAA,GAAMA,UAAAA,QAAAA,CAAQ,GAAG,GAChB;EACD,MAAM,QAAA,GAAOE,UAAAA,KAAAA,CAAK,KAAK,OAAO,uBAAuB;EACrD,KAAA,GAAIC,QAAAA,WAAAA,CAAW,IAAI,GAAG;GACrB,MAAM,EAAE,0BAA0B,aAAa,MAAM,QAAA,GACpDC,SAAAA,cAAAA,CAAc,IAAI,CAAC,CAAC;GAErB,MAAM,SAAS;GACf;EACD;CACD;AACD"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { dirname, join } from "node:path";
|
|
2
|
+
import { existsSync } from "node:fs";
|
|
3
|
+
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
4
|
+
//#region src/sandbox/workerRuntime.ts
|
|
5
|
+
/**
|
|
6
|
+
* What a worker script needs on its side of the sandbox: to answer, to say
|
|
7
|
+
* what would not cross as data, and to resolve the project's path aliases the
|
|
8
|
+
* way `gkm` does.
|
|
9
|
+
*
|
|
10
|
+
* Kept apart from `worker.ts`, which the host runs, so a worker loads nothing
|
|
11
|
+
* of the host's side.
|
|
12
|
+
*/
|
|
13
|
+
/** The line prefix a worker's answer is written after, on stdout. */
|
|
14
|
+
const WORKER_RESULT_MARKER = "@@gkm-worker-result@@";
|
|
15
|
+
/**
|
|
16
|
+
* Write a worker's answer, and end the worker once it is out.
|
|
17
|
+
*
|
|
18
|
+
* Exiting rather than returning: the project's code may have left a server, a
|
|
19
|
+
* timer or a connection open, and the answer is all the deploy waits for. The
|
|
20
|
+
* callback, because a pipe on macOS is written asynchronously and an exit
|
|
21
|
+
* before it drains would cut the answer short.
|
|
22
|
+
*/
|
|
23
|
+
function answer(value) {
|
|
24
|
+
process.stdout.write(`${WORKER_RESULT_MARKER}${JSON.stringify(value)}\n`, () => process.exit(0));
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Where in `value` something is that JSON cannot carry faithfully: a
|
|
28
|
+
* function, a class instance, a symbol, a bigint, a `Date`, a `Map` — as
|
|
29
|
+
* paths like `state.provider` or `apps.api.hooks[0]`.
|
|
30
|
+
*
|
|
31
|
+
* `JSON.stringify` drops a function silently and turns a store into `{}`, so a
|
|
32
|
+
* config that crossed it would arrive *different* rather than refused.
|
|
33
|
+
*/
|
|
34
|
+
function liveValuePaths(value, path = "") {
|
|
35
|
+
if (value === null) return [];
|
|
36
|
+
switch (typeof value) {
|
|
37
|
+
case "string":
|
|
38
|
+
case "boolean":
|
|
39
|
+
case "undefined": return [];
|
|
40
|
+
case "number": return Number.isFinite(value) ? [] : [path || "(root)"];
|
|
41
|
+
case "object": break;
|
|
42
|
+
default: return [path || "(root)"];
|
|
43
|
+
}
|
|
44
|
+
if (Array.isArray(value)) return value.flatMap((item, index) => liveValuePaths(item, `${path}[${index}]`));
|
|
45
|
+
const proto = Object.getPrototypeOf(value);
|
|
46
|
+
if (proto !== Object.prototype && proto !== null) return [path || "(root)"];
|
|
47
|
+
return Object.entries(value).flatMap(([key, item]) => liveValuePaths(item, path ? `${path}.${key}` : key));
|
|
48
|
+
}
|
|
49
|
+
/** An error, as plain data a host can rebuild a message from. */
|
|
50
|
+
function errorData(error) {
|
|
51
|
+
if (!(error instanceof Error)) return {
|
|
52
|
+
name: "Error",
|
|
53
|
+
message: String(error)
|
|
54
|
+
};
|
|
55
|
+
return {
|
|
56
|
+
...Object.fromEntries(Object.entries(error).filter(([, v]) => liveValuePaths(v).length === 0)),
|
|
57
|
+
name: error.name,
|
|
58
|
+
message: error.message
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Resolve each module's path aliases through its own tsconfig, as `gkm` does
|
|
63
|
+
* — the hook ships beside `bin/gkm.mjs`. Without it a construct importing
|
|
64
|
+
* `~/db` resolves in `gkm dev` and not in a deploy.
|
|
65
|
+
*/
|
|
66
|
+
async function registerAdjacentTsconfig() {
|
|
67
|
+
for (let dir = dirname(fileURLToPath(import.meta.url)); dirname(dir) !== dir; dir = dirname(dir)) {
|
|
68
|
+
const hook = join(dir, "bin", "adjacent-tsconfig.mjs");
|
|
69
|
+
if (existsSync(hook)) {
|
|
70
|
+
const { registerAdjacentTsconfig: register } = await import(pathToFileURL(hook).href);
|
|
71
|
+
await register();
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//#endregion
|
|
77
|
+
export { registerAdjacentTsconfig as a, liveValuePaths as i, answer as n, errorData as r, WORKER_RESULT_MARKER as t };
|
|
78
|
+
|
|
79
|
+
//# sourceMappingURL=workerRuntime-CsOyBRx2.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workerRuntime-CsOyBRx2.mjs","names":[],"sources":["../src/sandbox/workerRuntime.ts"],"sourcesContent":["/**\n * What a worker script needs on its side of the sandbox: to answer, to say\n * what would not cross as data, and to resolve the project's path aliases the\n * way `gkm` does.\n *\n * Kept apart from `worker.ts`, which the host runs, so a worker loads nothing\n * of the host's side.\n */\n\nimport { existsSync } from 'node:fs';\nimport { dirname, join } from 'node:path';\nimport { fileURLToPath, pathToFileURL } from 'node:url';\n\n/** The line prefix a worker's answer is written after, on stdout. */\nexport const WORKER_RESULT_MARKER = '@@gkm-worker-result@@';\n\n/**\n * Write a worker's answer, and end the worker once it is out.\n *\n * Exiting rather than returning: the project's code may have left a server, a\n * timer or a connection open, and the answer is all the deploy waits for. The\n * callback, because a pipe on macOS is written asynchronously and an exit\n * before it drains would cut the answer short.\n */\nexport function answer(value: unknown): void {\n\tprocess.stdout.write(\n\t\t`${WORKER_RESULT_MARKER}${JSON.stringify(value)}\\n`,\n\t\t() => process.exit(0),\n\t);\n}\n\n/**\n * Where in `value` something is that JSON cannot carry faithfully: a\n * function, a class instance, a symbol, a bigint, a `Date`, a `Map` — as\n * paths like `state.provider` or `apps.api.hooks[0]`.\n *\n * `JSON.stringify` drops a function silently and turns a store into `{}`, so a\n * config that crossed it would arrive *different* rather than refused.\n */\nexport function liveValuePaths(value: unknown, path = ''): string[] {\n\tif (value === null) return [];\n\tswitch (typeof value) {\n\t\tcase 'string':\n\t\tcase 'boolean':\n\t\tcase 'undefined':\n\t\t\treturn [];\n\t\tcase 'number':\n\t\t\treturn Number.isFinite(value) ? [] : [path || '(root)'];\n\t\tcase 'object':\n\t\t\tbreak;\n\t\tdefault:\n\t\t\treturn [path || '(root)'];\n\t}\n\n\tif (Array.isArray(value)) {\n\t\treturn value.flatMap((item, index) =>\n\t\t\tliveValuePaths(item, `${path}[${index}]`),\n\t\t);\n\t}\n\n\tconst proto = Object.getPrototypeOf(value);\n\tif (proto !== Object.prototype && proto !== null) return [path || '(root)'];\n\n\treturn Object.entries(value as Record<string, unknown>).flatMap(\n\t\t([key, item]) => liveValuePaths(item, path ? `${path}.${key}` : key),\n\t);\n}\n\n/** An error, as plain data a host can rebuild a message from. */\nexport function errorData(error: unknown): {\n\tname: string;\n\tmessage: string;\n\t[field: string]: unknown;\n} {\n\tif (!(error instanceof Error))\n\t\treturn { name: 'Error', message: String(error) };\n\tconst fields = Object.fromEntries(\n\t\tObject.entries(error).filter(([, v]) => liveValuePaths(v).length === 0),\n\t);\n\treturn { ...fields, name: error.name, message: error.message };\n}\n\n/**\n * Resolve each module's path aliases through its own tsconfig, as `gkm` does\n * — the hook ships beside `bin/gkm.mjs`. Without it a construct importing\n * `~/db` resolves in `gkm dev` and not in a deploy.\n */\nexport async function registerAdjacentTsconfig(): Promise<void> {\n\tfor (\n\t\tlet dir = dirname(fileURLToPath(import.meta.url));\n\t\tdirname(dir) !== dir;\n\t\tdir = dirname(dir)\n\t) {\n\t\tconst hook = join(dir, 'bin', 'adjacent-tsconfig.mjs');\n\t\tif (existsSync(hook)) {\n\t\t\tconst { registerAdjacentTsconfig: register } = await import(\n\t\t\t\tpathToFileURL(hook).href\n\t\t\t);\n\t\t\tawait register();\n\t\t\treturn;\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;AAcA,MAAa,uBAAuB;;;;;;;;;AAUpC,SAAgB,OAAO,OAAsB;CAC5C,QAAQ,OAAO,MACd,GAAG,uBAAuB,KAAK,UAAU,KAAK,EAAE,WAC1C,QAAQ,KAAK,CAAC,CACrB;AACD;;;;;;;;;AAUA,SAAgB,eAAe,OAAgB,OAAO,IAAc;CACnE,IAAI,UAAU,MAAM,OAAO,CAAC;CAC5B,QAAQ,OAAO,OAAf;EACC,KAAK;EACL,KAAK;EACL,KAAK,aACJ,OAAO,CAAC;EACT,KAAK,UACJ,OAAO,OAAO,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,QAAQ;EACvD,KAAK,UACJ;EACD,SACC,OAAO,CAAC,QAAQ,QAAQ;CAC1B;CAEA,IAAI,MAAM,QAAQ,KAAK,GACtB,OAAO,MAAM,SAAS,MAAM,UAC3B,eAAe,MAAM,GAAG,KAAK,GAAG,MAAM,EAAE,CACzC;CAGD,MAAM,QAAQ,OAAO,eAAe,KAAK;CACzC,IAAI,UAAU,OAAO,aAAa,UAAU,MAAM,OAAO,CAAC,QAAQ,QAAQ;CAE1E,OAAO,OAAO,QAAQ,KAAgC,CAAC,CAAC,SACtD,CAAC,KAAK,UAAU,eAAe,MAAM,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,CACpE;AACD;;AAGA,SAAgB,UAAU,OAIxB;CACD,IAAI,EAAE,iBAAiB,QACtB,OAAO;EAAE,MAAM;EAAS,SAAS,OAAO,KAAK;CAAE;CAIhD,OAAO;EAAE,GAHM,OAAO,YACrB,OAAO,QAAQ,KAAK,CAAC,CAAC,QAAQ,GAAG,OAAO,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAEtD;EAAG,MAAM,MAAM;EAAM,SAAS,MAAM;CAAQ;AAC9D;;;;;;AAOA,eAAsB,2BAA0C;CAC/D,KACC,IAAI,MAAM,QAAQ,cAAc,YAAY,GAAG,CAAC,GAChD,QAAQ,GAAG,MAAM,KACjB,MAAM,QAAQ,GAAG,GAChB;EACD,MAAM,OAAO,KAAK,KAAK,OAAO,uBAAuB;EACrD,IAAI,WAAW,IAAI,GAAG;GACrB,MAAM,EAAE,0BAA0B,aAAa,MAAM,OACpD,cAAc,IAAI,CAAC,CAAC;GAErB,MAAM,SAAS;GACf;EACD;CACD;AACD"}
|
package/dist/workspace/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_workspace = require("../workspace-
|
|
2
|
+
const require_workspace = require("../workspace-Kl4NG9IH.cjs");
|
|
3
3
|
exports.PHASE_2_DEPLOY_TARGETS = require_workspace.PHASE_2_DEPLOY_TARGETS;
|
|
4
4
|
exports.PUBLIC_ENV_PREFIXES = require_workspace.PUBLIC_ENV_PREFIXES;
|
|
5
5
|
exports.SUPPORTED_DEPLOY_TARGETS = require_workspace.SUPPORTED_DEPLOY_TARGETS;
|
package/dist/workspace/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { C as safeValidateWorkspaceConfig, S as isPhase2DeployTarget, _ as SUPPORTED_DEPLOY_TARGETS, a as getAppBuildOrder, b as getDeployTargetError, c as normalizeWorkspace, d as wrapSingleAppAsWorkspace, f as PUBLIC_ENV_PREFIXES, g as PHASE_2_DEPLOY_TARGETS, h as isWorkspaceConfig, i as defineWorkspace, l as processConfig, m as stripPublicPrefix, n as appConstructGlobs, o as getAppGkmConfig, p as getPublicEnvPrefix, r as constructPatterns, s as getEndpointForStage, t as allConstructGlobs, u as workspaceConstructGlobs, v as WorkspaceConfigSchema, w as validateWorkspaceConfig, x as isDeployTargetSupported, y as formatValidationErrors } from "../workspace-
|
|
1
|
+
import { C as safeValidateWorkspaceConfig, S as isPhase2DeployTarget, _ as SUPPORTED_DEPLOY_TARGETS, a as getAppBuildOrder, b as getDeployTargetError, c as normalizeWorkspace, d as wrapSingleAppAsWorkspace, f as PUBLIC_ENV_PREFIXES, g as PHASE_2_DEPLOY_TARGETS, h as isWorkspaceConfig, i as defineWorkspace, l as processConfig, m as stripPublicPrefix, n as appConstructGlobs, o as getAppGkmConfig, p as getPublicEnvPrefix, r as constructPatterns, s as getEndpointForStage, t as allConstructGlobs, u as workspaceConstructGlobs, v as WorkspaceConfigSchema, w as validateWorkspaceConfig, x as isDeployTargetSupported, y as formatValidationErrors } from "../workspace-Dh7rr7l4.mjs";
|
|
2
2
|
export { PHASE_2_DEPLOY_TARGETS, PUBLIC_ENV_PREFIXES, SUPPORTED_DEPLOY_TARGETS, WorkspaceConfigSchema, allConstructGlobs, appConstructGlobs, constructPatterns, defineWorkspace, formatValidationErrors, getAppBuildOrder, getAppGkmConfig, getDeployTargetError, getEndpointForStage, getPublicEnvPrefix, isDeployTargetSupported, isPhase2DeployTarget, isWorkspaceConfig, normalizeWorkspace, processConfig, safeValidateWorkspaceConfig, stripPublicPrefix, validateWorkspaceConfig, workspaceConstructGlobs, wrapSingleAppAsWorkspace };
|