@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.
Files changed (170) hide show
  1. package/README.md +2 -0
  2. package/dist/{HostingerProvider-B92qH4dC.mjs → HostingerProvider-DBBwpDjn.mjs} +2 -2
  3. package/dist/{HostingerProvider-B92qH4dC.mjs.map → HostingerProvider-DBBwpDjn.mjs.map} +1 -1
  4. package/dist/{HostingerProvider-DyD1Hin8.cjs → HostingerProvider-mJ7YruxH.cjs} +2 -2
  5. package/dist/{HostingerProvider-DyD1Hin8.cjs.map → HostingerProvider-mJ7YruxH.cjs.map} +1 -1
  6. package/dist/{LegacyStateStore-UHJEBLdn.cjs → LegacyStateStore-CP7SZwTP.cjs} +2 -2
  7. package/dist/{LegacyStateStore-UHJEBLdn.cjs.map → LegacyStateStore-CP7SZwTP.cjs.map} +1 -1
  8. package/dist/{LegacyStateStore-A8d2GdT7.mjs → LegacyStateStore-Q3GmKOdw.mjs} +2 -2
  9. package/dist/{LegacyStateStore-A8d2GdT7.mjs.map → LegacyStateStore-Q3GmKOdw.mjs.map} +1 -1
  10. package/dist/{LocalStateStore-B51rnfgn.mjs → LocalStateStore-BGIXcrvX.mjs} +2 -2
  11. package/dist/{LocalStateStore-B51rnfgn.mjs.map → LocalStateStore-BGIXcrvX.mjs.map} +1 -1
  12. package/dist/{LocalStateStore-COW3Ldwa.cjs → LocalStateStore-sS8mvLeq.cjs} +2 -2
  13. package/dist/{LocalStateStore-COW3Ldwa.cjs.map → LocalStateStore-sS8mvLeq.cjs.map} +1 -1
  14. package/dist/{OpenApiTsGenerator-BSrgw7B0.cjs → OpenApiTsGenerator-CjHWFRDd.cjs} +2 -2
  15. package/dist/{OpenApiTsGenerator-BSrgw7B0.cjs.map → OpenApiTsGenerator-CjHWFRDd.cjs.map} +1 -1
  16. package/dist/{OpenApiTsGenerator-q5B0z8Xg.mjs → OpenApiTsGenerator-CnAwhGxi.mjs} +2 -2
  17. package/dist/{OpenApiTsGenerator-q5B0z8Xg.mjs.map → OpenApiTsGenerator-CnAwhGxi.mjs.map} +1 -1
  18. package/dist/{S3StateStore-WUJGdRNL.cjs → S3StateStore-6jqITH2F.cjs} +2 -2
  19. package/dist/{S3StateStore-WUJGdRNL.cjs.map → S3StateStore-6jqITH2F.cjs.map} +1 -1
  20. package/dist/{S3StateStore-CJewPhgz.mjs → S3StateStore-D7l_lWJ3.mjs} +2 -2
  21. package/dist/{S3StateStore-CJewPhgz.mjs.map → S3StateStore-D7l_lWJ3.mjs.map} +1 -1
  22. package/dist/{SSMStateStore-Zejt42V8.cjs → SSMStateStore-B__F7IJa.cjs} +2 -2
  23. package/dist/{SSMStateStore-Zejt42V8.cjs.map → SSMStateStore-B__F7IJa.cjs.map} +1 -1
  24. package/dist/{SSMStateStore-iK5UKp9d.mjs → SSMStateStore-CAQDVpoc.mjs} +2 -2
  25. package/dist/{SSMStateStore-iK5UKp9d.mjs.map → SSMStateStore-CAQDVpoc.mjs.map} +1 -1
  26. package/dist/{bundler-CfH9frOS.cjs → bundler-DLfOn0ls.cjs} +3 -3
  27. package/dist/{bundler-CfH9frOS.cjs.map → bundler-DLfOn0ls.cjs.map} +1 -1
  28. package/dist/{bundler-DN5r4x5b.mjs → bundler-DyWI41Iy.mjs} +2 -2
  29. package/dist/{bundler-DN5r4x5b.mjs.map → bundler-DyWI41Iy.mjs.map} +1 -1
  30. package/dist/{cli-DOAUp80L.cjs → cli-D-ZM-X2s.cjs} +4 -4
  31. package/dist/{cli-DOAUp80L.cjs.map → cli-D-ZM-X2s.cjs.map} +1 -1
  32. package/dist/{cli-DYwxmfsW.mjs → cli-PkVF28LM.mjs} +4 -4
  33. package/dist/{cli-DYwxmfsW.mjs.map → cli-PkVF28LM.mjs.map} +1 -1
  34. package/dist/{config-BYh9S0cZ.cjs → config-BEJYKd4s.cjs} +132 -18
  35. package/dist/config-BEJYKd4s.cjs.map +1 -0
  36. package/dist/config-C2BUosLm.d.mts +256 -0
  37. package/dist/config-C2BUosLm.d.mts.map +1 -0
  38. package/dist/config-CemHVcIr.d.cts +256 -0
  39. package/dist/config-CemHVcIr.d.cts.map +1 -0
  40. package/dist/{config-Bf4-bROQ.mjs → config-LKKCVCnC.mjs} +109 -19
  41. package/dist/config-LKKCVCnC.mjs.map +1 -0
  42. package/dist/config.cjs +6 -2
  43. package/dist/config.d.cts +3 -210
  44. package/dist/config.d.mts +3 -210
  45. package/dist/config.mjs +3 -3
  46. package/dist/deploy/public.cjs +151 -5
  47. package/dist/deploy/public.cjs.map +1 -0
  48. package/dist/deploy/public.d.cts +186 -1
  49. package/dist/deploy/public.d.cts.map +1 -1
  50. package/dist/deploy/public.d.mts +186 -1
  51. package/dist/deploy/public.d.mts.map +1 -1
  52. package/dist/deploy/public.mjs +134 -6
  53. package/dist/deploy/public.mjs.map +1 -0
  54. package/dist/deploy/sniffer-envparser-worker.cjs +54 -0
  55. package/dist/deploy/sniffer-envparser-worker.cjs.map +1 -0
  56. package/dist/deploy/sniffer-envparser-worker.d.cts +1 -0
  57. package/dist/deploy/sniffer-envparser-worker.d.mts +1 -0
  58. package/dist/deploy/sniffer-envparser-worker.mjs +55 -0
  59. package/dist/deploy/sniffer-envparser-worker.mjs.map +1 -0
  60. package/dist/{deploy-DSaCYvcO.cjs → deploy-ABBI0lf1.cjs} +7 -7
  61. package/dist/{deploy-DSaCYvcO.cjs.map → deploy-ABBI0lf1.cjs.map} +1 -1
  62. package/dist/{deploy-D8Qr-Xto.cjs → deploy-BiMrP9i7.cjs} +11 -9
  63. package/dist/deploy-BiMrP9i7.cjs.map +1 -0
  64. package/dist/{deploy-B7jvUORo.mjs → deploy-CG8bfFij.mjs} +7 -7
  65. package/dist/{deploy-B7jvUORo.mjs.map → deploy-CG8bfFij.mjs.map} +1 -1
  66. package/dist/{deploy-Cg9fae7a.mjs → deploy-CGW-QY9D.mjs} +11 -9
  67. package/dist/deploy-CGW-QY9D.mjs.map +1 -0
  68. package/dist/discover-B6yPpvRV.d.mts +99 -0
  69. package/dist/discover-B6yPpvRV.d.mts.map +1 -0
  70. package/dist/discover-B_IkPukx.d.cts +99 -0
  71. package/dist/discover-B_IkPukx.d.cts.map +1 -0
  72. package/dist/discover-BaT6bpnA.mjs +614 -0
  73. package/dist/discover-BaT6bpnA.mjs.map +1 -0
  74. package/dist/discover-C_6COHEv.cjs +729 -0
  75. package/dist/discover-C_6COHEv.cjs.map +1 -0
  76. package/dist/{dokploy-CD9PY-3D.mjs → dokploy-CwdmlyQL.mjs} +2 -2
  77. package/dist/{dokploy-CD9PY-3D.mjs.map → dokploy-CwdmlyQL.mjs.map} +1 -1
  78. package/dist/{dokploy-Ey2foJLv.cjs → dokploy-QJxMhxdf.cjs} +2 -2
  79. package/dist/{dokploy-Ey2foJLv.cjs.map → dokploy-QJxMhxdf.cjs.map} +1 -1
  80. package/dist/{encryption-CVwvGbsL.mjs → encryption-CbQG_ayW.mjs} +4 -4
  81. package/dist/{encryption-CVwvGbsL.mjs.map → encryption-CbQG_ayW.mjs.map} +1 -1
  82. package/dist/{encryption-ChBk3hTj.cjs → encryption-DXw3jj0c.cjs} +4 -4
  83. package/dist/{encryption-ChBk3hTj.cjs.map → encryption-DXw3jj0c.cjs.map} +1 -1
  84. package/dist/fakes-C9RiT6XG.mjs.map +1 -1
  85. package/dist/fakes-zW-jNAbQ.cjs.map +1 -1
  86. package/dist/{github-OUgPDlqg.cjs → github-BH_mETav.cjs} +3 -3
  87. package/dist/{github-OUgPDlqg.cjs.map → github-BH_mETav.cjs.map} +1 -1
  88. package/dist/{github-BCB3_LBX.mjs → github-ciwbIwVa.mjs} +3 -3
  89. package/dist/{github-BCB3_LBX.mjs.map → github-ciwbIwVa.mjs.map} +1 -1
  90. package/dist/index.cjs +55 -48
  91. package/dist/index.cjs.map +1 -1
  92. package/dist/index.mjs +52 -45
  93. package/dist/index.mjs.map +1 -1
  94. package/dist/{migrate-dnaFMvOm.cjs → migrate-6oa9y_f2.cjs} +5 -5
  95. package/dist/{migrate-dnaFMvOm.cjs.map → migrate-6oa9y_f2.cjs.map} +1 -1
  96. package/dist/{migrate-BoHMqdCu.mjs → migrate-ImBKTBcW.mjs} +5 -5
  97. package/dist/{migrate-BoHMqdCu.mjs.map → migrate-ImBKTBcW.mjs.map} +1 -1
  98. package/dist/openapi.cjs +3 -3
  99. package/dist/openapi.mjs +3 -3
  100. package/dist/{ready-XlNx-Gbo.cjs → ready-BiG0rt4h.cjs} +3 -3
  101. package/dist/{ready-XlNx-Gbo.cjs.map → ready-BiG0rt4h.cjs.map} +1 -1
  102. package/dist/{ready-DQIy21W5.mjs → ready-Bpdnn2ON.mjs} +3 -3
  103. package/dist/{ready-DQIy21W5.mjs.map → ready-Bpdnn2ON.mjs.map} +1 -1
  104. package/dist/reconcile/public.cjs +1 -1
  105. package/dist/reconcile/public.d.cts +3 -76
  106. package/dist/reconcile/public.d.cts.map +1 -1
  107. package/dist/reconcile/public.d.mts +3 -76
  108. package/dist/reconcile/public.d.mts.map +1 -1
  109. package/dist/reconcile/public.mjs +1 -1
  110. package/dist/{resolve-CFCIkm7m.mjs → resolve-B1T0hUaR.mjs} +2 -2
  111. package/dist/{resolve-CFCIkm7m.mjs.map → resolve-B1T0hUaR.mjs.map} +1 -1
  112. package/dist/{resolve-wbv66HjD.cjs → resolve-xytBTtG4.cjs} +2 -2
  113. package/dist/{resolve-wbv66HjD.cjs.map → resolve-xytBTtG4.cjs.map} +1 -1
  114. package/dist/sandbox/config-worker.cjs +43 -0
  115. package/dist/sandbox/config-worker.cjs.map +1 -0
  116. package/dist/sandbox/config-worker.d.cts +1 -0
  117. package/dist/sandbox/config-worker.d.mts +1 -0
  118. package/dist/sandbox/config-worker.mjs +44 -0
  119. package/dist/sandbox/config-worker.mjs.map +1 -0
  120. package/dist/sandbox/discover-worker.cjs +44 -0
  121. package/dist/sandbox/discover-worker.cjs.map +1 -0
  122. package/dist/sandbox/discover-worker.d.cts +1 -0
  123. package/dist/sandbox/discover-worker.d.mts +1 -0
  124. package/dist/sandbox/discover-worker.mjs +45 -0
  125. package/dist/sandbox/discover-worker.mjs.map +1 -0
  126. package/dist/sandbox-M8UnLhXE.d.cts +126 -0
  127. package/dist/sandbox-M8UnLhXE.d.cts.map +1 -0
  128. package/dist/sandbox-M8UnLhXE.d.mts +126 -0
  129. package/dist/sandbox-M8UnLhXE.d.mts.map +1 -0
  130. package/dist/{workspace-BFe57es7.mjs → schemas-Ckm_aBnF.cjs} +71 -982
  131. package/dist/schemas-Ckm_aBnF.cjs.map +1 -0
  132. package/dist/{workspace-B6zQO6RY.cjs → schemas-D2LCF689.mjs} +2 -1168
  133. package/dist/schemas-D2LCF689.mjs.map +1 -0
  134. package/dist/{sniffer-BsfPa-GA.cjs → sniffer-D_SYc_pO.cjs} +369 -207
  135. package/dist/sniffer-D_SYc_pO.cjs.map +1 -0
  136. package/dist/{sniffer-DHE2Nafd.mjs → sniffer-aO_-s5vq.mjs} +336 -204
  137. package/dist/sniffer-aO_-s5vq.mjs.map +1 -0
  138. package/dist/target/public.cjs +1 -1
  139. package/dist/target/public.mjs +1 -1
  140. package/dist/{terminal-6oL0vANs.cjs → terminal-D0f1u0LG.cjs} +6 -6
  141. package/dist/{terminal-6oL0vANs.cjs.map → terminal-D0f1u0LG.cjs.map} +1 -1
  142. package/dist/{terminal-ByZNjuig.mjs → terminal-gMxAo9Dj.mjs} +6 -6
  143. package/dist/{terminal-ByZNjuig.mjs.map → terminal-gMxAo9Dj.mjs.map} +1 -1
  144. package/dist/vitest.cjs +2 -2
  145. package/dist/vitest.mjs +2 -2
  146. package/dist/workerRuntime-BXfhbe13.cjs +108 -0
  147. package/dist/workerRuntime-BXfhbe13.cjs.map +1 -0
  148. package/dist/workerRuntime-CsOyBRx2.mjs +79 -0
  149. package/dist/workerRuntime-CsOyBRx2.mjs.map +1 -0
  150. package/dist/workspace/index.cjs +1 -1
  151. package/dist/workspace/index.mjs +1 -1
  152. package/dist/workspace-Dh7rr7l4.mjs +1024 -0
  153. package/dist/workspace-Dh7rr7l4.mjs.map +1 -0
  154. package/dist/workspace-Kl4NG9IH.cjs +1196 -0
  155. package/dist/workspace-Kl4NG9IH.cjs.map +1 -0
  156. package/package.json +13 -13
  157. package/dist/config-BYh9S0cZ.cjs.map +0 -1
  158. package/dist/config-Bf4-bROQ.mjs.map +0 -1
  159. package/dist/config.d.cts.map +0 -1
  160. package/dist/config.d.mts.map +0 -1
  161. package/dist/deploy-Cg9fae7a.mjs.map +0 -1
  162. package/dist/deploy-D8Qr-Xto.cjs.map +0 -1
  163. package/dist/discover-Bc-4eA_p.cjs +0 -299
  164. package/dist/discover-Bc-4eA_p.cjs.map +0 -1
  165. package/dist/discover-FrYvzkeC.mjs +0 -262
  166. package/dist/discover-FrYvzkeC.mjs.map +0 -1
  167. package/dist/sniffer-BsfPa-GA.cjs.map +0 -1
  168. package/dist/sniffer-DHE2Nafd.mjs.map +0 -1
  169. package/dist/workspace-B6zQO6RY.cjs.map +0 -1
  170. 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"}
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_workspace = require("../workspace-B6zQO6RY.cjs");
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;
@@ -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-BFe57es7.mjs";
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 };