@geekmidas/cli 10.0.0-alpha.88 → 10.0.0-alpha.89

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 (176) hide show
  1. package/dist/GoDaddyProvider--36rw8cP.mjs +387 -0
  2. package/dist/GoDaddyProvider--36rw8cP.mjs.map +1 -0
  3. package/dist/GoDaddyProvider-DnRor066.cjs +387 -0
  4. package/dist/GoDaddyProvider-DnRor066.cjs.map +1 -0
  5. package/dist/{HostingerProvider-CVc3rLPB.mjs → HostingerProvider-BI6J7oJr.mjs} +2 -2
  6. package/dist/{HostingerProvider-CVc3rLPB.mjs.map → HostingerProvider-BI6J7oJr.mjs.map} +1 -1
  7. package/dist/{HostingerProvider-BCB1QJj1.cjs → HostingerProvider-CyTpG_jy.cjs} +2 -2
  8. package/dist/{HostingerProvider-BCB1QJj1.cjs.map → HostingerProvider-CyTpG_jy.cjs.map} +1 -1
  9. package/dist/{LegacyStateStore-CWG_HVC0.cjs → LegacyStateStore-BaBoYl59.cjs} +2 -2
  10. package/dist/{LegacyStateStore-CWG_HVC0.cjs.map → LegacyStateStore-BaBoYl59.cjs.map} +1 -1
  11. package/dist/{LegacyStateStore-B0R4LlX_.mjs → LegacyStateStore-CO7bzJCU.mjs} +2 -2
  12. package/dist/{LegacyStateStore-B0R4LlX_.mjs.map → LegacyStateStore-CO7bzJCU.mjs.map} +1 -1
  13. package/dist/{LocalStateStore-CLwa2DpK.cjs → LocalStateStore-CUWh2BWU.cjs} +2 -2
  14. package/dist/{LocalStateStore-CLwa2DpK.cjs.map → LocalStateStore-CUWh2BWU.cjs.map} +1 -1
  15. package/dist/{LocalStateStore-Q4vXg2ua.mjs → LocalStateStore-C_hYDv6I.mjs} +2 -2
  16. package/dist/{LocalStateStore-Q4vXg2ua.mjs.map → LocalStateStore-C_hYDv6I.mjs.map} +1 -1
  17. package/dist/{S3StateStore-Cea9_5gF.cjs → S3StateStore-O8EYfjfG.cjs} +2 -2
  18. package/dist/{S3StateStore-Cea9_5gF.cjs.map → S3StateStore-O8EYfjfG.cjs.map} +1 -1
  19. package/dist/{S3StateStore-CksKYKRa.mjs → S3StateStore-hIm8Rrmu.mjs} +2 -2
  20. package/dist/{S3StateStore-CksKYKRa.mjs.map → S3StateStore-hIm8Rrmu.mjs.map} +1 -1
  21. package/dist/{SSMStateStore-aBOTF018.cjs → SSMStateStore-DIzbiqCz.cjs} +2 -2
  22. package/dist/{SSMStateStore-aBOTF018.cjs.map → SSMStateStore-DIzbiqCz.cjs.map} +1 -1
  23. package/dist/{SSMStateStore-BszSCAS2.mjs → SSMStateStore-IvcjTk8h.mjs} +2 -2
  24. package/dist/{SSMStateStore-BszSCAS2.mjs.map → SSMStateStore-IvcjTk8h.mjs.map} +1 -1
  25. package/dist/SubscriberGenerator-BPqQf8fB.mjs.map +1 -1
  26. package/dist/SubscriberGenerator-BVn7cQ-2.cjs.map +1 -1
  27. package/dist/{add-5MZAXybv.cjs → add-C9qX4Juc.cjs} +30 -7
  28. package/dist/add-C9qX4Juc.cjs.map +1 -0
  29. package/dist/{add-D_jNqnfZ.mjs → add-v3tCbrpE.mjs} +30 -7
  30. package/dist/add-v3tCbrpE.mjs.map +1 -0
  31. package/dist/{bundler-1REMhKps.cjs → bundler-C4NmpRTD.cjs} +5 -5
  32. package/dist/{bundler-1REMhKps.cjs.map → bundler-C4NmpRTD.cjs.map} +1 -1
  33. package/dist/{bundler-BMo-JP5s.mjs → bundler-C_fCgcVO.mjs} +5 -5
  34. package/dist/{bundler-BMo-JP5s.mjs.map → bundler-C_fCgcVO.mjs.map} +1 -1
  35. package/dist/{cli-BL8ZHsLQ.cjs → cli-C85Dut8K.cjs} +6 -5
  36. package/dist/cli-C85Dut8K.cjs.map +1 -0
  37. package/dist/{cli-7edNFwGk.mjs → cli-REdO9X5b.mjs} +7 -6
  38. package/dist/cli-REdO9X5b.mjs.map +1 -0
  39. package/dist/{compose-xw86kVYi.cjs → compose-BvrhDwJ6.cjs} +556 -30
  40. package/dist/compose-BvrhDwJ6.cjs.map +1 -0
  41. package/dist/{compose-DbJhRQlh.mjs → compose-Dn0oAgQ0.mjs} +509 -31
  42. package/dist/compose-Dn0oAgQ0.mjs.map +1 -0
  43. package/dist/{config-DrCAyoH5.d.mts → config-CdEcTrjG.d.mts} +3 -3
  44. package/dist/{config-CpjsVxru.d.cts.map → config-CdEcTrjG.d.mts.map} +1 -1
  45. package/dist/{config-CpjsVxru.d.cts → config-pST7E0CS.d.cts} +3 -3
  46. package/dist/{config-DrCAyoH5.d.mts.map → config-pST7E0CS.d.cts.map} +1 -1
  47. package/dist/config.cjs +1 -1
  48. package/dist/config.d.cts +3 -3
  49. package/dist/config.d.mts +3 -3
  50. package/dist/config.mjs +1 -1
  51. package/dist/{credentials-tr26-KML.cjs → credentials-BKfIugu2.cjs} +47 -2
  52. package/dist/credentials-BKfIugu2.cjs.map +1 -0
  53. package/dist/{credentials-BgJ5mS_d.mjs → credentials-CnVqoXMb.mjs} +30 -3
  54. package/dist/credentials-CnVqoXMb.mjs.map +1 -0
  55. package/dist/deploy/public.cjs +10 -10
  56. package/dist/deploy/public.d.cts +9 -3
  57. package/dist/deploy/public.d.cts.map +1 -1
  58. package/dist/deploy/public.d.mts +9 -3
  59. package/dist/deploy/public.d.mts.map +1 -1
  60. package/dist/deploy/public.mjs +10 -10
  61. package/dist/{deploy-BTfmXd3g.mjs → deploy-BaERRh0Q.mjs} +10 -8
  62. package/dist/deploy-BaERRh0Q.mjs.map +1 -0
  63. package/dist/{deploy-CtbZj4zN.cjs → deploy-DbBGo3a6.cjs} +10 -8
  64. package/dist/deploy-DbBGo3a6.cjs.map +1 -0
  65. package/dist/{dokploy-r69yZaIt.mjs → dokploy-CMmD_ddX.mjs} +2 -2
  66. package/dist/{dokploy-r69yZaIt.mjs.map → dokploy-CMmD_ddX.mjs.map} +1 -1
  67. package/dist/{dokploy-TGk3oPwr.cjs → dokploy-DwAaKA9B.cjs} +2 -2
  68. package/dist/{dokploy-TGk3oPwr.cjs.map → dokploy-DwAaKA9B.cjs.map} +1 -1
  69. package/dist/{encryption-C-8Tt5Hh.mjs → encryption-BQmhq9_y.mjs} +3 -3
  70. package/dist/{encryption-C-8Tt5Hh.mjs.map → encryption-BQmhq9_y.mjs.map} +1 -1
  71. package/dist/{encryption-CDn7BH5O.cjs → encryption-BrN_9_CM.cjs} +3 -3
  72. package/dist/{encryption-CDn7BH5O.cjs.map → encryption-BrN_9_CM.cjs.map} +1 -1
  73. package/dist/{engine-jAINgiOB.mjs → engine-DILocOOH.mjs} +23 -404
  74. package/dist/engine-DILocOOH.mjs.map +1 -0
  75. package/dist/{engine-Bt5k_UMq.cjs → engine-DgHoFBMw.cjs} +25 -406
  76. package/dist/engine-DgHoFBMw.cjs.map +1 -0
  77. package/dist/{github-DFhuJQlp.cjs → github-Bf7pz6AV.cjs} +3 -3
  78. package/dist/{github-DFhuJQlp.cjs.map → github-Bf7pz6AV.cjs.map} +1 -1
  79. package/dist/{github-CZHAtwPT.mjs → github-xzg99wz8.mjs} +3 -3
  80. package/dist/{github-CZHAtwPT.mjs.map → github-xzg99wz8.mjs.map} +1 -1
  81. package/dist/{index-MnUJuUlj.d.mts → index-D-F_hTDz.d.cts} +21 -4
  82. package/dist/index-D-F_hTDz.d.cts.map +1 -0
  83. package/dist/{index-elsLJTUv.d.cts → index-YFNxR5Ns.d.mts} +21 -4
  84. package/dist/index-YFNxR5Ns.d.mts.map +1 -0
  85. package/dist/index.cjs +246 -63
  86. package/dist/index.cjs.map +1 -1
  87. package/dist/index.mjs +247 -65
  88. package/dist/index.mjs.map +1 -1
  89. package/dist/{local-Cq8qdgNX.cjs → local-BjxDfPvy.cjs} +2 -2
  90. package/dist/{local-Cq8qdgNX.cjs.map → local-BjxDfPvy.cjs.map} +1 -1
  91. package/dist/{local-Ciq-bTPr.mjs → local-IuoIF3CT.mjs} +2 -2
  92. package/dist/{local-Ciq-bTPr.mjs.map → local-IuoIF3CT.mjs.map} +1 -1
  93. package/dist/{migrate-B1rVlwj1.cjs → migrate-7xayVtzL.cjs} +3 -3
  94. package/dist/{migrate-B1rVlwj1.cjs.map → migrate-7xayVtzL.cjs.map} +1 -1
  95. package/dist/{migrate-ggkPVJRC.mjs → migrate-CKLJ73OO.mjs} +4 -4
  96. package/dist/{migrate-ggkPVJRC.mjs.map → migrate-CKLJ73OO.mjs.map} +1 -1
  97. package/dist/{migrate-Dn7nK6sh.mjs → migrate-CpmO5qnl.mjs} +3 -3
  98. package/dist/{migrate-Dn7nK6sh.mjs.map → migrate-CpmO5qnl.mjs.map} +1 -1
  99. package/dist/{migrate-B16qgYTn.cjs → migrate-DPF7ZF8M.cjs} +3 -3
  100. package/dist/{migrate-B16qgYTn.cjs.map → migrate-DPF7ZF8M.cjs.map} +1 -1
  101. package/dist/openapi.cjs +1 -1
  102. package/dist/openapi.d.cts +1 -1
  103. package/dist/openapi.d.mts +1 -1
  104. package/dist/openapi.mjs +1 -1
  105. package/dist/reconcile/public.d.cts +1 -1
  106. package/dist/reconcile/public.d.mts +1 -1
  107. package/dist/{reconcile--I7V4Klj.mjs → reconcile-Dh1Jk7WE.mjs} +2 -2
  108. package/dist/{reconcile--I7V4Klj.mjs.map → reconcile-Dh1Jk7WE.mjs.map} +1 -1
  109. package/dist/{resolve-BSke45k6.mjs → resolve-Dv_weZoh.mjs} +4 -4
  110. package/dist/{resolve-BSke45k6.mjs.map → resolve-Dv_weZoh.mjs.map} +1 -1
  111. package/dist/{resolve-BXeXzpmU.cjs → resolve-dlKPFNgv.cjs} +4 -4
  112. package/dist/{resolve-BXeXzpmU.cjs.map → resolve-dlKPFNgv.cjs.map} +1 -1
  113. package/dist/{rollback-DFMiBWf0.cjs → rollback-65VVIdBM.cjs} +6 -6
  114. package/dist/{rollback-DFMiBWf0.cjs.map → rollback-65VVIdBM.cjs.map} +1 -1
  115. package/dist/{rollback-CEE6dse4.mjs → rollback-DpSU2DsD.mjs} +6 -6
  116. package/dist/{rollback-CEE6dse4.mjs.map → rollback-DpSU2DsD.mjs.map} +1 -1
  117. package/dist/{runtime-HabiNBtJ.d.mts → runtime-CN_kmqxo.d.cts} +2 -2
  118. package/dist/{runtime-D48ZKk8_.d.cts.map → runtime-CN_kmqxo.d.cts.map} +1 -1
  119. package/dist/{runtime-D48ZKk8_.d.cts → runtime-Cjvon3oj.d.mts} +2 -2
  120. package/dist/{runtime-HabiNBtJ.d.mts.map → runtime-Cjvon3oj.d.mts.map} +1 -1
  121. package/dist/{seeds-CsI0A_Ef.cjs → seeds-CN6tB-va.cjs} +646 -187
  122. package/dist/{seeds-CsI0A_Ef.cjs.map → seeds-CN6tB-va.cjs.map} +1 -1
  123. package/dist/{seeds-BYdrtZsC.mjs → seeds-perzdN81.mjs} +599 -164
  124. package/dist/seeds-perzdN81.mjs.map +1 -0
  125. package/dist/{sniffer-B0EU73bj.mjs → sniffer-BTtX3NUM.mjs} +3 -3
  126. package/dist/{sniffer-B0EU73bj.mjs.map → sniffer-BTtX3NUM.mjs.map} +1 -1
  127. package/dist/{sniffer-DJYupBeK.cjs → sniffer-IAQEpsQb.cjs} +3 -3
  128. package/dist/{sniffer-DJYupBeK.cjs.map → sniffer-IAQEpsQb.cjs.map} +1 -1
  129. package/dist/{sst-DAqUoZKG.cjs → sst-BgcOsaBi.cjs} +3 -3
  130. package/dist/{sst-DAqUoZKG.cjs.map → sst-BgcOsaBi.cjs.map} +1 -1
  131. package/dist/{sst-D1Qj4sIs.mjs → sst-CJzvyrEz.mjs} +3 -3
  132. package/dist/{sst-D1Qj4sIs.mjs.map → sst-CJzvyrEz.mjs.map} +1 -1
  133. package/dist/{stages-Brn3vcdy.cjs → stages-CUn6gvXL.cjs} +2 -2
  134. package/dist/{stages-Brn3vcdy.cjs.map → stages-CUn6gvXL.cjs.map} +1 -1
  135. package/dist/{stages-DoHHz6pS.mjs → stages-CnZRYmkI.mjs} +2 -2
  136. package/dist/{stages-DoHHz6pS.mjs.map → stages-CnZRYmkI.mjs.map} +1 -1
  137. package/dist/target/public.cjs +1 -1
  138. package/dist/target/public.d.cts +2 -2
  139. package/dist/target/public.d.mts +2 -2
  140. package/dist/target/public.mjs +1 -1
  141. package/dist/{terminal-BTbZlrFV.mjs → terminal-D8TPK7o9.mjs} +3 -3
  142. package/dist/{terminal-BTbZlrFV.mjs.map → terminal-D8TPK7o9.mjs.map} +1 -1
  143. package/dist/{terminal-COv23heb.cjs → terminal-DuapRxh6.cjs} +2 -2
  144. package/dist/{terminal-COv23heb.cjs.map → terminal-DuapRxh6.cjs.map} +1 -1
  145. package/dist/{types-0oAyFOfR.d.cts → types-NqX1Hz4P.d.cts} +210 -205
  146. package/dist/types-NqX1Hz4P.d.cts.map +1 -0
  147. package/dist/{types-BZ01tZs-.d.mts → types-ZHuZ89hv.d.mts} +210 -205
  148. package/dist/types-ZHuZ89hv.d.mts.map +1 -0
  149. package/dist/workspace/index.cjs +3 -1
  150. package/dist/workspace/index.d.cts +3 -3
  151. package/dist/workspace/index.d.mts +3 -3
  152. package/dist/workspace/index.mjs +2 -2
  153. package/dist/{workspace-D2CYLMCW.mjs → workspace-CJ0lKFq-.mjs} +231 -10
  154. package/dist/workspace-CJ0lKFq-.mjs.map +1 -0
  155. package/dist/{workspace-CT0JM3Y8.cjs → workspace-CwW3Gkru.cjs} +266 -9
  156. package/dist/workspace-CwW3Gkru.cjs.map +1 -0
  157. package/package.json +15 -15
  158. package/dist/add-5MZAXybv.cjs.map +0 -1
  159. package/dist/add-D_jNqnfZ.mjs.map +0 -1
  160. package/dist/cli-7edNFwGk.mjs.map +0 -1
  161. package/dist/cli-BL8ZHsLQ.cjs.map +0 -1
  162. package/dist/compose-DbJhRQlh.mjs.map +0 -1
  163. package/dist/compose-xw86kVYi.cjs.map +0 -1
  164. package/dist/credentials-BgJ5mS_d.mjs.map +0 -1
  165. package/dist/credentials-tr26-KML.cjs.map +0 -1
  166. package/dist/deploy-BTfmXd3g.mjs.map +0 -1
  167. package/dist/deploy-CtbZj4zN.cjs.map +0 -1
  168. package/dist/engine-Bt5k_UMq.cjs.map +0 -1
  169. package/dist/engine-jAINgiOB.mjs.map +0 -1
  170. package/dist/index-MnUJuUlj.d.mts.map +0 -1
  171. package/dist/index-elsLJTUv.d.cts.map +0 -1
  172. package/dist/seeds-BYdrtZsC.mjs.map +0 -1
  173. package/dist/types-0oAyFOfR.d.cts.map +0 -1
  174. package/dist/types-BZ01tZs-.d.mts.map +0 -1
  175. package/dist/workspace-CT0JM3Y8.cjs.map +0 -1
  176. package/dist/workspace-D2CYLMCW.mjs.map +0 -1
@@ -1,4 +1,4 @@
1
- import { D as WorkspaceConfig, O as WorkspaceInput, _ as InferredWorkspaceConfig, a as Routes, j as Framework, l as AppsRecord, r as GkmConfig, v as LoadedConfig, x as NormalizedWorkspace } from "./types-0oAyFOfR.cjs";
1
+ import { D as WorkspaceConfig, O as WorkspaceInput, _ as InferredWorkspaceConfig, a as Routes, j as Framework, l as AppsRecord, r as GkmConfig, v as LoadedConfig, x as NormalizedWorkspace } from "./types-ZHuZ89hv.mjs";
2
2
  //#region src/workspace/publicEnv.d.ts
3
3
  /**
4
4
  * All public env-var prefixes the toolbox understands.
@@ -68,7 +68,7 @@ declare function stripPublicPrefix(name: string): string | null;
68
68
  * // config.apps.foo <- TypeScript error
69
69
  * ```
70
70
  */
71
- declare function defineWorkspace<const TApps extends AppsRecord>(config: WorkspaceInput<TApps>): InferredWorkspaceConfig<TApps>;
71
+ declare function defineWorkspace<const TApps extends AppsRecord, const TDeployed extends string = string>(config: WorkspaceInput<TApps, TDeployed>): InferredWorkspaceConfig<TApps>;
72
72
  /**
73
73
  * Normalize a workspace configuration with resolved defaults.
74
74
  */
@@ -93,6 +93,23 @@ declare class DokployRegistryMoved extends Error {
93
93
  readonly registry: unknown;
94
94
  constructor(registry: unknown);
95
95
  }
96
+ /**
97
+ * `deploy.domains`, which became `domains` at the root of the config: a stage's
98
+ * domain is a fact about the product every target and every command reads,
99
+ * not a deploy setting.
100
+ */
101
+ declare class DomainsMoved extends Error {
102
+ readonly domains: unknown;
103
+ constructor(domains: unknown);
104
+ }
105
+ /**
106
+ * `deploy.dns`, which became `dns` at the root of the config, keyed by root
107
+ * domain.
108
+ */
109
+ declare class DnsMoved extends Error {
110
+ readonly dns: unknown;
111
+ constructor(dns: unknown);
112
+ }
96
113
  /** Refuse a deploy key that has moved, naming where it lives now. */
97
114
  declare function assertNoMovedDeployKeys(deploy: unknown): void;
98
115
  declare function processConfig(config: GkmConfig | WorkspaceConfig, cwd: string): LoadedConfig;
@@ -169,5 +186,5 @@ declare function getEndpointForStage(dokployConfig: {
169
186
  endpoints?: Record<string, string>;
170
187
  } | undefined, stage: string): string | undefined;
171
188
  //#endregion
172
- export { stripPublicPrefix as _, assertNoMovedDeployKeys as a, getAppBuildOrder as c, normalizeWorkspace as d, processConfig as f, getPublicEnvPrefix as g, PUBLIC_ENV_PREFIXES as h, appConstructGlobs as i, getAppGkmConfig as l, wrapSingleAppAsWorkspace as m, InvalidWorkspaceConfig as n, constructPatterns as o, workspaceConstructGlobs as p, allConstructGlobs as r, defineWorkspace as s, DokployRegistryMoved as t, getEndpointForStage as u };
173
- //# sourceMappingURL=index-elsLJTUv.d.cts.map
189
+ export { PUBLIC_ENV_PREFIXES as _, allConstructGlobs as a, constructPatterns as c, getAppGkmConfig as d, getEndpointForStage as f, wrapSingleAppAsWorkspace as g, workspaceConstructGlobs as h, InvalidWorkspaceConfig as i, defineWorkspace as l, processConfig as m, DokployRegistryMoved as n, appConstructGlobs as o, normalizeWorkspace as p, DomainsMoved as r, assertNoMovedDeployKeys as s, DnsMoved as t, getAppBuildOrder as u, getPublicEnvPrefix as v, stripPublicPrefix as y };
190
+ //# sourceMappingURL=index-YFNxR5Ns.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-YFNxR5Ns.d.mts","names":[],"sources":["../src/workspace/publicEnv.ts","../src/workspace/index.ts"],"mappings":";;;;;;;;;cASa;;;;;;;;;;;;;;;iBAoBG,mBAAmB,YAAY;;;;;iBAoB/B,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBCgFlB,sBACT,cAAc,kBACd,mCACL,QAAQ,eAAe,OAAO,aAAa,wBAAwB;;;;iBAiCrD,mBACf,QAAQ,iBACR,cACE;;;;;iBAkDa,yBACf,QAAQ,WACR,cACE;;;;;;;;;;;;cAgEU,6BAA6B;WACpB;EAArB,YAAqB;;;;;;;cAcT,qBAAqB;WACZ;EAArB,YAAqB;;;;;;cAaT,iBAAiB;WACR;EAArB,YAAqB;;;iBAcN,wBAAwB;iBAaxB,cACf,QAAQ,YAAY,iBACpB,cACE;;cAiCU,+BAA+B;EAC3C,YAAY;;;;;;;;iBAYG,wBACf,WAAW;;;;;;;;;;;;iBAkBI,kBACf,WAAW,qBACX;;;;;;;iBAsBe,kBAAkB,WAAW;;iBAa7B,kBAAkB,QAAQ;;;;;iBAS1B,gBACf,WAAW,qBACX,kBACE;;;;;iBAgCa,iBAAiB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoD5B,oBACf;EACK;EAAmB,YAAY;eAEpC"}
package/dist/index.cjs CHANGED
@@ -1,24 +1,24 @@
1
1
  #!/usr/bin/env -S npx tsx
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const require_rolldown_runtime = require("./rolldown-runtime-C0BPl7ul.cjs");
4
- const require_credentials = require("./credentials-tr26-KML.cjs");
4
+ const require_credentials = require("./credentials-BKfIugu2.cjs");
5
5
  const require_discover = require("./discover-D1It5r_h.cjs");
6
6
  const require_derive = require("./derive-DAbo49sm.cjs");
7
- const require_workspace = require("./workspace-CT0JM3Y8.cjs");
7
+ const require_workspace = require("./workspace-CwW3Gkru.cjs");
8
8
  const require_config = require("./config.cjs");
9
- const require_seeds = require("./seeds-CsI0A_Ef.cjs");
9
+ const require_seeds = require("./seeds-CN6tB-va.cjs");
10
10
  const require_EndpointGenerator = require("./EndpointGenerator-CwLjBCFE.cjs");
11
11
  const require_openapi = require("./openapi.cjs");
12
12
  const require_SubscriberGenerator = require("./SubscriberGenerator-BVn7cQ-2.cjs");
13
13
  const require_appPorts = require("./appPorts-Cu79hJF6.cjs");
14
14
  const require_drivers = require("./drivers-LYSdQDmd.cjs");
15
15
  const require_emit = require("./emit-Dmc1nvdS.cjs");
16
- const require_local = require("./local-Cq8qdgNX.cjs");
17
- const require_sniffer = require("./sniffer-DJYupBeK.cjs");
18
- const require_deploy = require("./deploy-CtbZj4zN.cjs");
19
- const require_compose = require("./compose-xw86kVYi.cjs");
16
+ const require_local = require("./local-BjxDfPvy.cjs");
17
+ const require_sniffer = require("./sniffer-IAQEpsQb.cjs");
18
+ const require_deploy = require("./deploy-DbBGo3a6.cjs");
19
+ const require_compose = require("./compose-BvrhDwJ6.cjs");
20
20
  const require_credentialSchemas = require("./credentialSchemas-DCR4Wd1W.cjs");
21
- const require_LocalStateStore = require("./LocalStateStore-CLwa2DpK.cjs");
21
+ const require_LocalStateStore = require("./LocalStateStore-CUWh2BWU.cjs");
22
22
  const require_utils = require("./utils-D2Nk1Nv2.cjs");
23
23
  const require_ready = require("./ready-BpNbORRB.cjs");
24
24
  let node_path = require("node:path");
@@ -53,7 +53,7 @@ crypto = require_rolldown_runtime.__toESM(crypto, 1);
53
53
  let _geekmidas_constructs_functions = require("@geekmidas/constructs/functions");
54
54
  let _geekmidas_constructs_topic = require("@geekmidas/constructs/topic");
55
55
  //#region package.json
56
- var version = "10.0.0-alpha.88";
56
+ var version = "10.0.0-alpha.89";
57
57
  //#endregion
58
58
  //#region src/prompt.ts
59
59
  /**
@@ -136,7 +136,7 @@ const logger$8 = console;
136
136
  * Validate Dokploy token by making a test API call
137
137
  */
138
138
  async function validateDokployToken(endpoint, token) {
139
- const { DokployApi } = await Promise.resolve().then(() => require("./sniffer-DJYupBeK.cjs")).then((n) => n.dokploy_api_exports);
139
+ const { DokployApi } = await Promise.resolve().then(() => require("./sniffer-IAQEpsQb.cjs")).then((n) => n.dokploy_api_exports);
140
140
  return new DokployApi({
141
141
  baseUrl: endpoint,
142
142
  token
@@ -183,6 +183,10 @@ async function loginCommand(options) {
183
183
  logger$8.log(` Credentials stored in: ${require_credentials.getCredentialsPath()}`);
184
184
  logger$8.log("\nYou can now use deploy commands without setting DOKPLOY_API_TOKEN.");
185
185
  }
186
+ if (provider === "godaddy") {
187
+ await loginGoDaddy(options);
188
+ return;
189
+ }
186
190
  if (provider === "hostinger") {
187
191
  logger$8.log("\n🔐 Logging in to Hostinger...\n");
188
192
  let token = providedToken;
@@ -205,15 +209,50 @@ async function loginCommand(options) {
205
209
  }
206
210
  }
207
211
  /**
212
+ * Store a GoDaddy Personal Access Token. Not validated: the only call that
213
+ * proves a token without a domain is an account call (`GET /v1/domains`),
214
+ * which a token scoped to `domains.dns:update` alone may not make — the first
215
+ * `gkm setup` that writes a record is where a bad token reports itself.
216
+ */
217
+ async function loginGoDaddy(options) {
218
+ logger$8.log("\n🔐 Logging in to GoDaddy...\n");
219
+ let token = options.token;
220
+ if (!token) {
221
+ logger$8.log("\nCreate a Personal Access Token in the GoDaddy developer dashboard\n(https://developer.godaddy.com) with only the domains.dns:update scope.\n");
222
+ token = await prompt("Personal Access Token: ", {
223
+ hidden: true,
224
+ instead: LOGIN_INSTEAD
225
+ });
226
+ }
227
+ if (!token) {
228
+ logger$8.error("Token is required");
229
+ process.exit(1);
230
+ }
231
+ const where = options.home ? { home: options.home } : void 0;
232
+ await require_credentials.storeGoDaddyToken(token, where);
233
+ logger$8.log("\n✓ GoDaddy token stored.");
234
+ logger$8.log(` Token: ${maskToken(token)}`);
235
+ logger$8.log(` Credentials stored in: ${require_credentials.getCredentialsPath(where)}`);
236
+ logger$8.log(" Not validated here: proving a token without a domain needs an account\n scope a DNS-only token does not have, so the first gkm setup that\n writes a record is where a bad token reports itself.");
237
+ logger$8.log("\nYou can now use it as a DNS provider without setting GODADDY_API_TOKEN.");
238
+ }
239
+ /**
208
240
  * Logout from a service
209
241
  */
210
242
  async function logoutCommand(options) {
211
243
  const { provider = "dokploy" } = options;
212
244
  if (provider === "all") {
213
- if (await require_credentials.removeDokployCredentials()) logger$8.log("\n✓ Logged out from all services");
245
+ const dokployRemoved = await require_credentials.removeDokployCredentials();
246
+ const godaddyRemoved = await require_credentials.removeGoDaddyCredentials();
247
+ if (dokployRemoved || godaddyRemoved) logger$8.log("\n✓ Logged out from all services");
214
248
  else logger$8.log("\nNo stored credentials found");
215
249
  return;
216
250
  }
251
+ if (provider === "godaddy") {
252
+ const removed = await require_credentials.removeGoDaddyCredentials();
253
+ logger$8.log(removed ? "\n✓ Logged out from GoDaddy" : "\nNo GoDaddy credentials found");
254
+ return;
255
+ }
217
256
  if (provider === "dokploy") {
218
257
  if (await require_credentials.removeDokployCredentials()) logger$8.log("\n✓ Logged out from Dokploy");
219
258
  else logger$8.log("\nNo Dokploy credentials found");
@@ -230,6 +269,8 @@ async function whoamiCommand() {
230
269
  logger$8.log(` Endpoint: ${dokploy.endpoint}`);
231
270
  logger$8.log(` Token: ${maskToken(dokploy.token)}`);
232
271
  } else logger$8.log(" Dokploy: Not logged in");
272
+ const godaddy = (await require_credentials.readCredentials()).godaddy;
273
+ logger$8.log(godaddy ? ` GoDaddy:\n Token: ${maskToken(godaddy.token)}` : " GoDaddy: Not logged in");
233
274
  logger$8.log(`\n Credentials file: ${require_credentials.getCredentialsPath()}`);
234
275
  }
235
276
  /**
@@ -2289,9 +2330,9 @@ async function workspaceDevCommand(configured, options) {
2289
2330
  for (const { id, port } of fakes) logger$5.log(`🎭 ${id} fake: http://localhost:${port}`);
2290
2331
  logger$5.log(options.migrate || options.seed ? "🗄️ Migrating the databases" : "🗄️ Checking for pending migrations");
2291
2332
  if (options.migrate || options.seed) {
2292
- const { prepareDevDatabases } = await Promise.resolve().then(() => require("./migrate-B1rVlwj1.cjs"));
2333
+ const { prepareDevDatabases } = await Promise.resolve().then(() => require("./migrate-7xayVtzL.cjs"));
2293
2334
  await prepareDevDatabases(workspace, reconciled.env, { seed: !!options.seed });
2294
- } else await Promise.resolve().then(() => require("./migrate-B1rVlwj1.cjs")).then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
2335
+ } else await Promise.resolve().then(() => require("./migrate-7xayVtzL.cjs")).then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
2295
2336
  logger$5.log(`⚠️ Could not check for pending migrations: ${error instanceof Error ? error.message : String(error)}`);
2296
2337
  });
2297
2338
  const appUrls = {};
@@ -3344,7 +3385,7 @@ async function buildApp(input) {
3344
3385
  ...production,
3345
3386
  ...telemetry ? { telemetry } : {}
3346
3387
  });
3347
- const { bundleServer } = await Promise.resolve().then(() => require("./bundler-1REMhKps.cjs"));
3388
+ const { bundleServer } = await Promise.resolve().then(() => require("./bundler-C4NmpRTD.cjs"));
3348
3389
  await bundleServer({
3349
3390
  entryPoint,
3350
3391
  outputDir: (0, node_path.join)(outputDir, "dist"),
@@ -3489,7 +3530,7 @@ async function buildWorkers(input) {
3489
3530
  });
3490
3531
  logger$4.log(`Generated worker ${worker.id}: ${crons.length} crons, ${queues.length} queues, ${subscribers.length} subscribers`);
3491
3532
  if (!input.bundle) continue;
3492
- const { bundleServer } = await Promise.resolve().then(() => require("./bundler-1REMhKps.cjs"));
3533
+ const { bundleServer } = await Promise.resolve().then(() => require("./bundler-C4NmpRTD.cjs"));
3493
3534
  const outfile = require_seeds.workerBundleName(worker.id);
3494
3535
  await bundleServer({
3495
3536
  entryPoint,
@@ -3575,7 +3616,7 @@ async function buildForTarget(target, context, appRoot, workspaceRoot, endpointG
3575
3616
  let masterKey;
3576
3617
  if (context.production?.bundle && !skipBundle) {
3577
3618
  logger$4.log(`\n📦 Bundling production server...`);
3578
- const { bundleServer } = await Promise.resolve().then(() => require("./bundler-1REMhKps.cjs"));
3619
+ const { bundleServer } = await Promise.resolve().then(() => require("./bundler-C4NmpRTD.cjs"));
3579
3620
  const allConstructs = [
3580
3621
  ...endpoints.map((e) => e.construct),
3581
3622
  ...functions.map((f) => f.construct),
@@ -3869,6 +3910,7 @@ async function composeCommand(options, deps = {}) {
3869
3910
  ...options.dryRun ? { dryRun: true } : {},
3870
3911
  ...options.push ? { buildOnly: true } : {},
3871
3912
  ...options.allowDevServices ? { allowDevServices: true } : {},
3913
+ ...options.skipDnsCheck ? { skipDnsCheck: true } : {},
3872
3914
  logger: {
3873
3915
  info: (message) => console.log(message),
3874
3916
  warn: (message) => console.warn(message),
@@ -5276,25 +5318,25 @@ function loadPackageJson() {
5276
5318
  * Run: pnpm --filter @geekmidas/cli sync-versions
5277
5319
  */
5278
5320
  const GEEKMIDAS_VERSIONS = {
5279
- "@geekmidas/audit": "~10.0.0-alpha.88",
5280
- "@geekmidas/auth": "~10.0.0-alpha.88",
5281
- "@geekmidas/cache": "~10.0.0-alpha.88",
5282
- "@geekmidas/client": "~10.0.0-alpha.88",
5283
- "@geekmidas/cloud": "~10.0.0-alpha.88",
5284
- "@geekmidas/constructs": "~10.0.0-alpha.88",
5285
- "@geekmidas/db": "~10.0.0-alpha.88",
5286
- "@geekmidas/emailkit": "~10.0.0-alpha.88",
5287
- "@geekmidas/envkit": "~10.0.0-alpha.88",
5288
- "@geekmidas/errors": "~10.0.0-alpha.88",
5289
- "@geekmidas/events": "~10.0.0-alpha.88",
5290
- "@geekmidas/logger": "~10.0.0-alpha.88",
5291
- "@geekmidas/manifest": "~10.0.0-alpha.88",
5292
- "@geekmidas/rate-limit": "~10.0.0-alpha.88",
5293
- "@geekmidas/schema": "~10.0.0-alpha.88",
5294
- "@geekmidas/services": "~10.0.0-alpha.88",
5295
- "@geekmidas/storage": "~10.0.0-alpha.88",
5296
- "@geekmidas/telescope": "~10.0.0-alpha.88",
5297
- "@geekmidas/testkit": "~10.0.0-alpha.88",
5321
+ "@geekmidas/audit": "~10.0.0-alpha.89",
5322
+ "@geekmidas/auth": "~10.0.0-alpha.89",
5323
+ "@geekmidas/cache": "~10.0.0-alpha.89",
5324
+ "@geekmidas/client": "~10.0.0-alpha.89",
5325
+ "@geekmidas/cloud": "~10.0.0-alpha.89",
5326
+ "@geekmidas/constructs": "~10.0.0-alpha.89",
5327
+ "@geekmidas/db": "~10.0.0-alpha.89",
5328
+ "@geekmidas/emailkit": "~10.0.0-alpha.89",
5329
+ "@geekmidas/envkit": "~10.0.0-alpha.89",
5330
+ "@geekmidas/errors": "~10.0.0-alpha.89",
5331
+ "@geekmidas/events": "~10.0.0-alpha.89",
5332
+ "@geekmidas/logger": "~10.0.0-alpha.89",
5333
+ "@geekmidas/manifest": "~10.0.0-alpha.89",
5334
+ "@geekmidas/rate-limit": "~10.0.0-alpha.89",
5335
+ "@geekmidas/schema": "~10.0.0-alpha.89",
5336
+ "@geekmidas/services": "~10.0.0-alpha.89",
5337
+ "@geekmidas/storage": "~10.0.0-alpha.89",
5338
+ "@geekmidas/telescope": "~10.0.0-alpha.89",
5339
+ "@geekmidas/testkit": "~10.0.0-alpha.89",
5298
5340
  "@geekmidas/cli": `~${loadPackageJson().version}`
5299
5341
  };
5300
5342
  //#endregion
@@ -5695,7 +5737,7 @@ const COMMIT = /^[0-9a-f]{40}$/;
5695
5737
  * The `uses:` value for the stages action, with a comment saying which CLI
5696
5738
  * release the pinned commit is.
5697
5739
  */
5698
- function stagesActionUses(commit = "5bd5a7422c74b30cb3c285d0717da882171c103a", version = cliVersion()) {
5740
+ function stagesActionUses(commit = "e1be097c3e5909843479a2dcd97f06e952f5b1aa", version = cliVersion()) {
5699
5741
  return commit && COMMIT.test(commit) ? `${STAGES_ACTION}@${commit} # @geekmidas/cli ${version}` : `${STAGES_ACTION}@main # pin to a commit SHA: see the action's README`;
5700
5742
  }
5701
5743
  //#endregion
@@ -10977,6 +11019,135 @@ function maskUrl(url) {
10977
11019
  }
10978
11020
  }
10979
11021
  //#endregion
11022
+ //#region src/providers/dns.ts
11023
+ /** Whether the workspace deploys through the compose target. */
11024
+ function deploysWithCompose(workspace) {
11025
+ return workspace.deploy?.default === "compose" || Object.values(workspace.apps).some((app) => app.resolvedDeployTarget === "compose");
11026
+ }
11027
+ /**
11028
+ * A compose stage that serves a domain has its server's address in its
11029
+ * secrets — checked before `gkm setup --stage` does anything else.
11030
+ *
11031
+ * @throws {ServerAddressMissing} for a compose stage with a domain and none
11032
+ * @throws {ServerAddressInvalid} for a value that is not an address
11033
+ */
11034
+ function assertStageServer(workspace, stage, secrets) {
11035
+ if (stage === workspace.stages.local) return void 0;
11036
+ if (!deploysWithCompose(workspace)) return require_compose.serverAddress(stage, secrets?.custom);
11037
+ return require_compose.requiredServerAddress(stage, workspace.domains?.[stage], secrets?.custom);
11038
+ }
11039
+ /**
11040
+ * The hosts a compose stage serves: its stack composed as a deploy would —
11041
+ * with the secrets it would generate made up in memory, never written — and
11042
+ * every route's host read off it.
11043
+ */
11044
+ async function composeStageHosts(options) {
11045
+ const { workspace, stage } = options;
11046
+ const runnables = options.runnables ?? {};
11047
+ const background = options.background ?? {};
11048
+ const manifest = options.manifest ?? await require_discover.discover({
11049
+ patterns: require_seeds.constructGlobs(workspace),
11050
+ cwd: workspace.root,
11051
+ runnables,
11052
+ background
11053
+ });
11054
+ const stored = await (await require_seeds.secretsStoreFor(workspace, stage, {
11055
+ ...options.profile ? { profile: options.profile } : {},
11056
+ ...options.home ? { home: options.home } : {}
11057
+ })).read(stage);
11058
+ const { deployedStackSecrets } = await Promise.resolve().then(() => require("./compose-BvrhDwJ6.cjs")).then((n) => n.secrets_exports);
11059
+ const { composeStack } = await Promise.resolve().then(() => require("./compose-BvrhDwJ6.cjs")).then((n) => n.stack_exports);
11060
+ const { secrets } = deployedStackSecrets(workspace, stage, stored, manifest);
11061
+ const stack = composeStack({
11062
+ workspace,
11063
+ manifest,
11064
+ runnables,
11065
+ background,
11066
+ stage,
11067
+ identity: require_seeds.deployIdentity(workspace, stage),
11068
+ images: {
11069
+ mode: "pull",
11070
+ tag: "dns",
11071
+ ...workspace.deploy?.registry ? { registry: workspace.deploy.registry } : {}
11072
+ },
11073
+ secrets,
11074
+ buildOnly: true,
11075
+ allowDevServices: true
11076
+ });
11077
+ return require_compose.stackHosts(stack);
11078
+ }
11079
+ /**
11080
+ * `GKM_SERVER_IPV4` from the stage's secrets and `dns`: each public host's
11081
+ * records, created or corrected. A dry run reads and prints, and writes
11082
+ * nothing.
11083
+ */
11084
+ async function provisionStageDns(options) {
11085
+ const { workspace, stage } = options;
11086
+ const log = options.log ?? ((line) => console.log(line));
11087
+ if (stage === workspace.stages.local || !workspace.dns || !deploysWithCompose(workspace)) return {
11088
+ mode: "none",
11089
+ hosts: [],
11090
+ changes: []
11091
+ };
11092
+ const store = await require_seeds.secretsStoreFor(workspace, stage, {
11093
+ ...options.profile ? { profile: options.profile } : {},
11094
+ ...options.home ? { home: options.home } : {}
11095
+ });
11096
+ const server = require_compose.serverAddress(stage, (await store.read(stage))?.custom);
11097
+ if (!server) {
11098
+ log(`\n🌐 DNS for '${stage}': no GKM_SERVER_IPV4 in its secrets, so no records — ${require_compose.serverAddressHint(stage)}`);
11099
+ return {
11100
+ mode: "none",
11101
+ hosts: [],
11102
+ changes: []
11103
+ };
11104
+ }
11105
+ const hosts = [...options.hosts ?? await composeStageHosts({
11106
+ workspace,
11107
+ stage,
11108
+ ...options.profile ? { profile: options.profile } : {},
11109
+ ...options.home ? { home: options.home } : {},
11110
+ ...options.manifest ? { manifest: options.manifest } : {},
11111
+ ...options.runnables ? { runnables: options.runnables } : {},
11112
+ ...options.background ? { background: options.background } : {}
11113
+ })];
11114
+ log(`\n🌐 DNS for '${stage}' → ${server.ipv4}${server.ipv6 ? ` / ${server.ipv6}` : ""}${options.dryRun ? " (dry run — nothing is written)" : ""}`);
11115
+ const plan = require_compose.planStackDns({
11116
+ stage,
11117
+ hosts,
11118
+ server,
11119
+ dns: workspace.dns
11120
+ });
11121
+ try {
11122
+ return {
11123
+ mode: "records",
11124
+ hosts,
11125
+ changes: await require_compose.applyStackDns(plan, {
11126
+ ...options.dryRun ? { dryRun: true } : {},
11127
+ log,
11128
+ credentials: {
11129
+ env: options.env ?? process.env,
11130
+ ...options.home ? { home: options.home } : {},
11131
+ log
11132
+ },
11133
+ ...options.providerFor ? { providerFor: options.providerFor } : {}
11134
+ })
11135
+ };
11136
+ } catch (error) {
11137
+ if (error instanceof require_credentials.MissingCredential) {
11138
+ log(` ⚠ ${error.message}`);
11139
+ log(" Until then, create these records yourself:");
11140
+ for (const domain of plan.domains) for (const r of domain.records) log(` ${r.host.padEnd(32)} ${r.type.padEnd(5)} ${r.value} (TTL ${r.ttl})`);
11141
+ return {
11142
+ mode: "records",
11143
+ hosts,
11144
+ changes: []
11145
+ };
11146
+ }
11147
+ throw error;
11148
+ }
11149
+ }
11150
+ //#endregion
10980
11151
  //#region src/setup/index.ts
10981
11152
  var setup_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
10982
11153
  createFreshWorkspaceSecrets: () => createFreshWorkspaceSecrets,
@@ -11010,6 +11181,7 @@ async function setupCommand(options = {}) {
11010
11181
  logger$1.log(`📦 Workspace: ${workspace.name}`);
11011
11182
  logger$1.log(`📱 Apps: ${Object.keys(workspace.apps).join(", ")}`);
11012
11183
  logger$1.log(`🔑 Stage: ${stage}\n`);
11184
+ if (!local) assertStageServer(workspace, stage, await (await require_seeds.secretsStoreFor(workspace, stage, { ...options.profile ? { profile: options.profile } : {} })).read(stage));
11013
11185
  if (!local && options.dryRun) {
11014
11186
  await provisionDeployed(workspace, stage, options);
11015
11187
  return;
@@ -11043,11 +11215,16 @@ async function provisionDeployed(workspace, stage, options) {
11043
11215
  ...options.retireOldKeys ? { retireOldKeys: true } : {},
11044
11216
  log: (line) => logger$1.log(line)
11045
11217
  })).filter((r) => r.mode === "provider");
11046
- if (configured.length === 0) {
11047
- logger$1.log(` None configured: '${stage}' takes every key from its secrets (gkm secrets:add --stage ${stage}). Name one in gkm.config.ts — deploy: { objects: { ${stage}: { provider: 's3' } } } — to have ${require_seeds.provisionCommand(stage)} create it.`);
11048
- return;
11049
- }
11050
- const changes = configured.reduce((n, r) => n + r.actions.length, 0);
11218
+ if (configured.length === 0) logger$1.log(` None configured: '${stage}' takes every key from its secrets (gkm secrets:add --stage ${stage}). Name one in gkm.config.ts — deploy: { objects: { ${stage}: { provider: 's3' } } } — to have ${require_seeds.provisionCommand(stage)} create it.`);
11219
+ const dns = await provisionStageDns({
11220
+ workspace,
11221
+ stage,
11222
+ ...options.dryRun ? { dryRun: true } : {},
11223
+ ...options.profile ? { profile: options.profile } : {},
11224
+ log: (line) => logger$1.log(line)
11225
+ });
11226
+ const changes = configured.reduce((n, r) => n + r.actions.length, 0) + dns.changes.filter((c) => c.action !== "unchanged" && c.action !== "manual").length;
11227
+ if (configured.length === 0 && dns.mode === "none") return;
11051
11228
  logger$1.log(options.dryRun ? `\n${changes === 0 ? "✅ Nothing to change" : `📋 ${changes} change${changes === 1 ? "" : "s"} planned`}` : `\n✅ '${stage}' provisioned${changes === 0 ? " — already up to date" : ` (${changes} change${changes === 1 ? "" : "s"})`}`);
11052
11229
  }
11053
11230
  /**
@@ -11402,7 +11579,7 @@ function testDatabases(reconciled) {
11402
11579
  * starts without the reference data the app needs.
11403
11580
  */
11404
11581
  async function migrateTestStage(workspace, env) {
11405
- const { migrateAndSeed } = await Promise.resolve().then(() => require("./migrate-B1rVlwj1.cjs"));
11582
+ const { migrateAndSeed } = await Promise.resolve().then(() => require("./migrate-7xayVtzL.cjs"));
11406
11583
  const { discover } = await Promise.resolve().then(() => require("./discover-D1It5r_h.cjs")).then((n) => n.discover_exports);
11407
11584
  const sources = {};
11408
11585
  const manifest = await discover({
@@ -11846,7 +12023,7 @@ program.command("migrate").description("Apply each database construct's migratio
11846
12023
  try {
11847
12024
  const globalOptions = program.opts();
11848
12025
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11849
- const { migrateCommand } = await Promise.resolve().then(() => require("./migrate-B1rVlwj1.cjs"));
12026
+ const { migrateCommand } = await Promise.resolve().then(() => require("./migrate-7xayVtzL.cjs"));
11850
12027
  await migrateCommand({
11851
12028
  ...options,
11852
12029
  ...construct ? { construct } : {}
@@ -11860,7 +12037,7 @@ program.command("seed").description("Migrate, then run each database construct's
11860
12037
  try {
11861
12038
  const globalOptions = program.opts();
11862
12039
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11863
- const { seedCommand } = await Promise.resolve().then(() => require("./migrate-B1rVlwj1.cjs"));
12040
+ const { seedCommand } = await Promise.resolve().then(() => require("./migrate-7xayVtzL.cjs"));
11864
12041
  await seedCommand({
11865
12042
  ...options,
11866
12043
  ...construct ? { construct } : {}
@@ -11874,7 +12051,7 @@ program.command("migration").description("Write a construct's next migration: an
11874
12051
  try {
11875
12052
  const globalOptions = program.opts();
11876
12053
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11877
- const { migrationCommand } = await Promise.resolve().then(() => require("./migrate-B1rVlwj1.cjs"));
12054
+ const { migrationCommand } = await Promise.resolve().then(() => require("./migrate-7xayVtzL.cjs"));
11878
12055
  await migrationCommand({
11879
12056
  construct,
11880
12057
  ...name ? { name } : {}
@@ -11923,7 +12100,7 @@ program.command("docker").description("Generate Docker deployment files").option
11923
12100
  process.exit(1);
11924
12101
  }
11925
12102
  });
11926
- program.command("compose").description("Run the workspace's APIs and sites for a stage as one Docker Compose stack behind Caddy").requiredOption("--stage <stage>", "Stage to run — always named, so a stack is never a deployed stage by accident").option("--tag <tag>", "Run the images CI pushed at this tag (sites: <tag>-<stage>); nothing is built").option("--build", "Build images from this checkout, tagged with the commit").option("--pull", "Pull images (at --tag, or latest) rather than build them").option("--push", "With --build: push every image to deploy.registry and start nothing (for CI)").option("--digests-file <path>", "With --push: write each image as <ref>@sha256:… (JSON). With --tag: run the images at those digests").option("--dry-run", "Write the files and print the plan; start nothing").option("--down", "Stop the stage's stack (its volumes are kept)").option("--allow-dev-services", "Deployed stage: run the dev service (MinIO, Mailpit) for every bucket and mail the stage doesn't account for. Not production-grade").action(async (options) => {
12103
+ program.command("compose").description("Run the workspace's APIs and sites for a stage as one Docker Compose stack behind Caddy").requiredOption("--stage <stage>", "Stage to run — always named, so a stack is never a deployed stage by accident").option("--tag <tag>", "Run the images CI pushed at this tag (sites: <tag>-<stage>); nothing is built").option("--build", "Build images from this checkout, tagged with the commit").option("--pull", "Pull images (at --tag, or latest) rather than build them").option("--push", "With --build: push every image to deploy.registry and start nothing (for CI)").option("--digests-file <path>", "With --push: write each image as <ref>@sha256:… (JSON). With --tag: run the images at those digests").option("--dry-run", "Write the files and print the plan; start nothing").option("--down", "Stop the stage's stack (its volumes are kept)").option("--allow-dev-services", "Deployed stage: run the dev service (MinIO, Mailpit) for every bucket and mail the stage doesn't account for. Not production-grade").option("--skip-dns-check", "Deployed stage: do not check that each public host resolves to GKM_SERVER_IPV4 in the stage secrets before starting (a CDN or proxy in front)").action(async (options) => {
11927
12104
  try {
11928
12105
  const globalOptions = program.opts();
11929
12106
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
@@ -11982,7 +12159,7 @@ program.command("secrets:add").description("Build the keys a stage must be given
11982
12159
  try {
11983
12160
  const globalOptions = program.opts();
11984
12161
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11985
- const { secretsAddCommand } = await Promise.resolve().then(() => require("./add-5MZAXybv.cjs"));
12162
+ const { secretsAddCommand } = await Promise.resolve().then(() => require("./add-C9qX4Juc.cjs"));
11986
12163
  await secretsAddCommand(options);
11987
12164
  } catch (error) {
11988
12165
  console.error(formatError(error));
@@ -11993,7 +12170,7 @@ program.command("encryption:rotate").description("Add a new current key to an En
11993
12170
  try {
11994
12171
  const globalOptions = program.opts();
11995
12172
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11996
- const { encryptionRotateCommand } = await Promise.resolve().then(() => require("./encryption-CDn7BH5O.cjs"));
12173
+ const { encryptionRotateCommand } = await Promise.resolve().then(() => require("./encryption-BrN_9_CM.cjs"));
11997
12174
  await encryptionRotateCommand(construct, options);
11998
12175
  } catch (error) {
11999
12176
  console.error(formatError(error));
@@ -12004,7 +12181,7 @@ program.command("encryption:retire").description("Remove an old key from an Encr
12004
12181
  try {
12005
12182
  const globalOptions = program.opts();
12006
12183
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
12007
- const { encryptionRetireCommand } = await Promise.resolve().then(() => require("./encryption-CDn7BH5O.cjs"));
12184
+ const { encryptionRetireCommand } = await Promise.resolve().then(() => require("./encryption-BrN_9_CM.cjs"));
12008
12185
  await encryptionRetireCommand(construct, key, options);
12009
12186
  } catch (error) {
12010
12187
  console.error(formatError(error));
@@ -12047,7 +12224,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
12047
12224
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
12048
12225
  const { loadWorkspaceConfig } = await Promise.resolve().then(() => require("./config.cjs"));
12049
12226
  const { reconcileMissingSecrets } = await Promise.resolve().then(() => require("./reconcile-CuCQBa5-.cjs"));
12050
- const { secretsStoreFor } = await Promise.resolve().then(() => require("./seeds-CsI0A_Ef.cjs")).then((n) => n.store_exports);
12227
+ const { secretsStoreFor } = await Promise.resolve().then(() => require("./seeds-CN6tB-va.cjs")).then((n) => n.store_exports);
12051
12228
  const { workspace } = await loadWorkspaceConfig();
12052
12229
  const stage = options.stage ?? workspace.stages.local;
12053
12230
  const store = await secretsStoreFor(workspace, stage);
@@ -12056,7 +12233,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
12056
12233
  console.error(`No secrets found for stage "${stage}". Run "gkm secrets:init --stage ${stage}" first.`);
12057
12234
  process.exit(1);
12058
12235
  }
12059
- const { derivedContainers } = await Promise.resolve().then(() => require("./seeds-CsI0A_Ef.cjs")).then((n) => n.workspace_exports);
12236
+ const { derivedContainers } = await Promise.resolve().then(() => require("./seeds-CN6tB-va.cjs")).then((n) => n.workspace_exports);
12060
12237
  const result = reconcileMissingSecrets(secrets, workspace, await derivedContainers(workspace, stage));
12061
12238
  if (!result) {
12062
12239
  console.log(`\n✓ Secrets for stage "${stage}" are up-to-date`);
@@ -12074,15 +12251,15 @@ program.command("secrets:migrate").description("Copy a deployed stage's secrets
12074
12251
  try {
12075
12252
  const globalOptions = program.opts();
12076
12253
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
12077
- const { secretsMigrateCommand } = await Promise.resolve().then(() => require("./migrate-B16qgYTn.cjs"));
12254
+ const { secretsMigrateCommand } = await Promise.resolve().then(() => require("./migrate-DPF7ZF8M.cjs"));
12078
12255
  await secretsMigrateCommand(options);
12079
12256
  } catch (error) {
12080
12257
  console.error(formatError(error));
12081
12258
  process.exit(1);
12082
12259
  }
12083
12260
  });
12084
- program.command("deploy").description("Deploy a stage through its target").option("--target <name>", "Deploy target: dokploy, compose, sst, or one named in deploy.targets (default: deploy.default)").option("--provider <provider>", "[DEPRECATED] Use --target instead").requiredOption("--stage <stage>", "Deployment stage (e.g., production, staging)").option("--tag <tag>", "Image tag (default: stage-timestamp; compose: the commit). Compose pulls a given tag").option("--skip-push", "Skip pushing image to registry").option("--skip-build", "Skip build step (use existing build)").option("--json", "Write events as JSON lines instead of progress; never prompts").option("--dry-run", "Show what would be created or reused; change, build and push nothing").option("--atomic", "If the release fails, roll back every app it released, not only the failed ones").option("--allow-dev-services", "Server targets: run the dev service (MinIO, Mailpit) for every bucket and mail the stage doesn't account for. Not production-grade").action(async (options) => {
12085
- const { deployCli } = await Promise.resolve().then(() => require("./cli-BL8ZHsLQ.cjs"));
12261
+ program.command("deploy").description("Deploy a stage through its target").option("--target <name>", "Deploy target: dokploy, compose, sst, or one named in deploy.targets (default: deploy.default)").option("--provider <provider>", "[DEPRECATED] Use --target instead").requiredOption("--stage <stage>", "Deployment stage (e.g., production, staging)").option("--tag <tag>", "Image tag (default: stage-timestamp; compose: the commit). Compose pulls a given tag").option("--skip-push", "Skip pushing image to registry").option("--skip-build", "Skip build step (use existing build)").option("--json", "Write events as JSON lines instead of progress; never prompts").option("--dry-run", "Show what would be created or reused; change, build and push nothing").option("--atomic", "If the release fails, roll back every app it released, not only the failed ones").option("--allow-dev-services", "Server targets: run the dev service (MinIO, Mailpit) for every bucket and mail the stage doesn't account for. Not production-grade").option("--skip-dns-check", "Compose: do not check that each public host resolves to GKM_SERVER_IPV4 in the stage secrets before starting (a CDN or proxy in front)").action(async (options) => {
12262
+ const { deployCli } = await Promise.resolve().then(() => require("./cli-C85Dut8K.cjs"));
12086
12263
  const globalOptions = program.opts();
12087
12264
  const code = await deployCli({
12088
12265
  cwd: (0, node_path.resolve)(globalOptions.cwd ?? process.cwd()),
@@ -12093,14 +12270,15 @@ program.command("deploy").description("Deploy a stage through its target").optio
12093
12270
  ...options.json ? { json: true } : {},
12094
12271
  ...options.dryRun ? { dryRun: true } : {},
12095
12272
  ...options.atomic ? { atomic: true } : {},
12096
- ...options.allowDevServices ? { allowDevServices: true } : {}
12273
+ ...options.allowDevServices ? { allowDevServices: true } : {},
12274
+ ...options.skipDnsCheck ? { skipDnsCheck: true } : {}
12097
12275
  });
12098
12276
  if (code !== 0) process.exit(code);
12099
12277
  });
12100
12278
  program.command("deploy:rollback").description("Put a stage's app back on its previous release (Dokploy): one app with --app, every app with --atomic").requiredOption("--stage <stage>", "A deployed stage").option("--app <app>", "The app to roll back").option("--atomic", "Roll back every app that has an earlier release").action(async (options) => {
12101
12279
  try {
12102
- const { rollbackStage } = await Promise.resolve().then(() => require("./rollback-DFMiBWf0.cjs")).then((n) => n.rollback_exports);
12103
- const { terminalCredentials } = await Promise.resolve().then(() => require("./terminal-COv23heb.cjs"));
12280
+ const { rollbackStage } = await Promise.resolve().then(() => require("./rollback-65VVIdBM.cjs")).then((n) => n.rollback_exports);
12281
+ const { terminalCredentials } = await Promise.resolve().then(() => require("./terminal-DuapRxh6.cjs"));
12104
12282
  const globalOptions = program.opts();
12105
12283
  await rollbackStage({
12106
12284
  cwd: (0, node_path.resolve)(globalOptions.cwd ?? process.cwd()),
@@ -12135,7 +12313,7 @@ program.command("deploy:github").description("Let GitHub Actions deploy a stage:
12135
12313
  try {
12136
12314
  const globalOptions = program.opts();
12137
12315
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
12138
- const { deployGithubCommand } = await Promise.resolve().then(() => require("./github-DFhuJQlp.cjs"));
12316
+ const { deployGithubCommand } = await Promise.resolve().then(() => require("./github-Bf7pz6AV.cjs"));
12139
12317
  await deployGithubCommand(options);
12140
12318
  } catch (error) {
12141
12319
  console.error(formatError(error));
@@ -12146,7 +12324,7 @@ program.command("stages").description("The workspace's stages from gkm.config.ts
12146
12324
  try {
12147
12325
  const globalOptions = program.opts();
12148
12326
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
12149
- const { stagesCommand } = await Promise.resolve().then(() => require("./stages-Brn3vcdy.cjs"));
12327
+ const { stagesCommand } = await Promise.resolve().then(() => require("./stages-CUn6gvXL.cjs"));
12150
12328
  await stagesCommand(options);
12151
12329
  } catch (error) {
12152
12330
  console.error(formatError(error));
@@ -12180,13 +12358,17 @@ program.command("deploy:list").description("List Dokploy resources (projects, re
12180
12358
  process.exit(1);
12181
12359
  }
12182
12360
  });
12183
- program.command("login").description("Authenticate with a deployment or DNS provider").option("--provider <provider>", "Provider to log in to (dokploy, hostinger)", "dokploy").option("--service <provider>", "[DEPRECATED] Use --provider instead").option("--token <token>", "API token (will prompt if not provided)").option("--endpoint <url>", "Service endpoint URL").action(async (options) => {
12361
+ program.command("login").description("Authenticate with a deployment or DNS provider").option("--provider <provider>", "Provider to log in to (dokploy, hostinger, godaddy)", "dokploy").option("--service <provider>", "[DEPRECATED] Use --provider instead").option("--token <token>", "API token (will prompt if not provided)").option("--endpoint <url>", "Service endpoint URL").action(async (options) => {
12184
12362
  try {
12185
12363
  const globalOptions = program.opts();
12186
12364
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
12187
12365
  const provider = options.service ?? options.provider;
12188
- if (!["dokploy", "hostinger"].includes(provider)) {
12189
- console.error(`Unknown provider: ${provider}. Supported: dokploy, hostinger`);
12366
+ if (![
12367
+ "dokploy",
12368
+ "hostinger",
12369
+ "godaddy"
12370
+ ].includes(provider)) {
12371
+ console.error(`Unknown provider: ${provider}. Supported: dokploy, hostinger, godaddy`);
12190
12372
  process.exit(1);
12191
12373
  }
12192
12374
  await loginCommand({
@@ -12199,7 +12381,7 @@ program.command("login").description("Authenticate with a deployment or DNS prov
12199
12381
  process.exit(1);
12200
12382
  }
12201
12383
  });
12202
- program.command("logout").description("Remove stored credentials").option("--provider <provider>", "Whose credentials to remove (dokploy, all)", "dokploy").option("--service <provider>", "[DEPRECATED] Use --provider instead").action(async (options) => {
12384
+ program.command("logout").description("Remove stored credentials").option("--provider <provider>", "Whose credentials to remove (dokploy, godaddy, all)", "dokploy").option("--service <provider>", "[DEPRECATED] Use --provider instead").action(async (options) => {
12203
12385
  try {
12204
12386
  const globalOptions = program.opts();
12205
12387
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
@@ -12288,6 +12470,7 @@ try {
12288
12470
  program.parse();
12289
12471
  //#endregion
12290
12472
  exports.canPrompt = canPrompt;
12473
+ exports.deploysWithCompose = deploysWithCompose;
12291
12474
  exports.formatError = formatError;
12292
12475
  exports.generateFullstackCustomSecrets = generateFullstackCustomSecrets;
12293
12476
  exports.prompt = prompt;