@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
package/dist/index.mjs CHANGED
@@ -1,23 +1,23 @@
1
1
  #!/usr/bin/env -S npx tsx
2
2
  import { n as __require, t as __exportAll } from "./rolldown-runtime-BhDjJH2R.mjs";
3
- import { d as getDokployRegistryId, f as getDokployToken, g as storeHostingerToken, h as storeDokployCredentials, i as CommandFailed, l as getCredentialsPath, m as removeDokployCredentials, o as DEFAULT_TIMEOUT_MS, u as getDokployCredentials } from "./credentials-BgJ5mS_d.mjs";
3
+ import { _ as storeDokployCredentials, d as getDokployRegistryId, f as getDokployToken, g as removeGoDaddyCredentials, h as removeDokployCredentials, i as CommandFailed, l as getCredentialsPath, m as readCredentials, o as DEFAULT_TIMEOUT_MS, t as MissingCredential, u as getDokployCredentials, v as storeGoDaddyToken, y as storeHostingerToken } from "./credentials-CnVqoXMb.mjs";
4
4
  import { l as withOwningTsconfigJsx, r as discover, u as ConstructGenerator } from "./discover-BPelzeGW.mjs";
5
5
  import { t as appKey } from "./derive-B4vDpzgP.mjs";
6
- import { I as stageSampleRate, M as deployedProblems, N as stageProblems, O as InvalidStages, c as getAppBuildOrder, k as TEST_STAGE, l as getAppGkmConfig, r as allConstructGlobs } from "./workspace-D2CYLMCW.mjs";
6
+ import { A as InvalidStages, F as stageProblems, P as deployedProblems, R as stageSampleRate, a as allConstructGlobs, d as getAppGkmConfig, j as TEST_STAGE, u as getAppBuildOrder } from "./workspace-CJ0lKFq-.mjs";
7
7
  import { ConfigNotFound, NotABackendApp, NotInAnApp, loadAppConfig, loadConfig, loadWorkspaceConfig, loadWorkspaceSettings, parseModuleConfig } from "./config.mjs";
8
- import { Cn as loadEnvFiles, Ct as LOCAL_CA_PATH, D as dockerCommand, En as prepareEntryCredentials, Ft as pgClient, Gn as maskPassword, Jn as withCustomSecret, Jt as imageBuildCredentials, K as assertDevServicesFlag, Ln as deployIdentity, Mn as getKeyPath, On as secretsStoreFor, Pn as projectKey, Qt as providerOf, S as provisionCommand, Sn as isPortAvailable, Tn as loadSecretsForApp, Xt as cacheBackendFor, Yn as LOCAL_LOGS_EMAIL, Yt as isImageBuild, Zt as eventsBackendFor, _n as portsOf, a as provisionStage, at as CronGenerator, bn as createEntryWrapper, ct as constructGlobs, dn as telemetryOf, en as CLUSTER_DATABASE, et as workerUnits, hn as fakeKey, ht as readLocalCredentials, it as QueueGenerator, jn as FileSecretsStore, jt as quoteIdentifier, kt as postgresDatabaseNames, ln as scopeTelemetryEnv, lt as derivedContainers, mn as describeServices, nt as workerBundleName, ot as FAKE_ENV, qn as toEmbeddableSecrets, rn as TELEMETRY_CONTAINER, rt as workerEntryDir, sn as appTelemetry, st as backendsOf$1, tt as WorkerGenerator, un as surfaceClientTraced, ut as reconcileWorkspace, vn as primaryPortKey, wn as loadPortState, wt as forgetState, xn as findAvailablePort, yn as createCredentialsPreload, z as createStateStore } from "./seeds-BYdrtZsC.mjs";
8
+ import { $n as LOCAL_LOGS_EMAIL, $t as isImageBuild, An as prepareEntryCredentials, Cn as createCredentialsPreload, Dn as loadEnvFiles, Dt as LOCAL_CA_PATH, En as isPortAvailable, Fn as FileSecretsStore, Ft as quoteIdentifier, In as getKeyPath, Mn as secretsStoreFor, Nt as postgresDatabaseNames, On as loadPortState, Ot as forgetState, Qn as withCustomSecret, Qt as imageBuildCredentials, Rn as projectKey, Sn as primaryPortKey, Tn as findAvailablePort, U as createStateStore, Vn as deployIdentity, X as assertDevServicesFlag, Yn as maskPassword, Zn as toEmbeddableSecrets, a as provisionStage, at as WorkerGenerator, ct as QueueGenerator, dn as appTelemetry, dt as backendsOf$1, en as cacheBackendFor, ft as constructGlobs, h as dockerCommand, hn as telemetryOf, in as CLUSTER_DATABASE, it as workerUnits, kn as loadSecretsForApp, lt as CronGenerator, mn as surfaceClientTraced, mt as reconcileWorkspace, nn as providerOf, ot as workerBundleName, pn as scopeTelemetryEnv, pt as derivedContainers, sn as TELEMETRY_CONTAINER, st as workerEntryDir, tn as eventsBackendFor, u as provisionCommand, ut as FAKE_ENV, vn as describeServices, wn as createEntryWrapper, xn as portsOf, yn as fakeKey, yt as readLocalCredentials, zt as pgClient } from "./seeds-perzdN81.mjs";
9
9
  import { c as startTelemetryCode, l as telemetryFor, n as runtimeFor, o as mountRequestSpansCode, r as parseTelemetryFlag, s as routeTelemetry, t as EndpointGenerator, u as writeTelemetryModule } from "./EndpointGenerator-CVc6Oi1Y.mjs";
10
10
  import { generateOpenApi, openapiCommand, resolveOpenApiConfig } from "./openapi.mjs";
11
11
  import { s as isCacheBackend, t as SubscriberGenerator } from "./SubscriberGenerator-BPqQf8fB.mjs";
12
12
  import { a as describeHolder, i as assignAppPorts, o as holderOf, r as appTag, s as withAppPorts, t as APP_TAG_ENV } from "./appPorts-C9z9Pzn9.mjs";
13
13
  import { n as driversFor, r as eventsBackendsIn, t as cacheBackendsIn } from "./drivers-DTZzxeIl.mjs";
14
14
  import { n as withCompute, r as withRoutes, t as manifestModule } from "./emit-C1e8qD08.mjs";
15
- import { t as LocalSandbox } from "./local-Ciq-bTPr.mjs";
16
- import { f as keyFingerprint, n as sniffAppEnvironment, o as DokployApi } from "./sniffer-B0EU73bj.mjs";
17
- import { t as deploy$1 } from "./deploy-BTfmXd3g.mjs";
18
- import { a as stackOverrideFile, c as parseDigests, d as removeEdgeRoutes, f as EDGE_PROJECT, i as ComposePushNeedsBuild, l as pinnedRef, o as composeProject, p as dockerCompose, r as ComposePinNeedsPull, s as stackDir, t as composeTarget, u as edgeDir } from "./compose-DbJhRQlh.mjs";
15
+ import { t as LocalSandbox } from "./local-IuoIF3CT.mjs";
16
+ import { f as keyFingerprint, n as sniffAppEnvironment, o as DokployApi } from "./sniffer-BTtX3NUM.mjs";
17
+ import { t as deploy$1 } from "./deploy-BaERRh0Q.mjs";
18
+ import { _ as planStackDns, a as stackOverrideFile, b as serverAddressHint, d as pinnedRef, f as edgeDir, g as applyStackDns, h as dockerCompose, i as ComposePushNeedsBuild, m as EDGE_PROJECT, o as composeProject, p as removeEdgeRoutes, r as ComposePinNeedsPull, s as stackDir, t as composeTarget, u as parseDigests, v as requiredServerAddress, x as stackHosts, y as serverAddress } from "./compose-Dn0oAgQ0.mjs";
19
19
  import { o as loadCredentialSchemas, t as CredentialsInvalid } from "./credentialSchemas-BJqRJNK4.mjs";
20
- import { t as LocalStateStore } from "./LocalStateStore-Q4vXg2ua.mjs";
20
+ import { t as LocalStateStore } from "./LocalStateStore-C_hYDv6I.mjs";
21
21
  import { a as getExecCommand, c as validateProjectName, i as findWorkspaceRoot, n as detectPackageManager$1, o as getInstallCommand, r as findWorkspacePackages, s as getRunCommand, t as checkDirectoryExists } from "./utils-D_fxUqvU.mjs";
22
22
  import { a as writeTestHarness, i as TEST_MANIFEST_ENV, n as TEST_READY_FILE, t as TEST_READY_ENV } from "./ready-b6vm0-W-.mjs";
23
23
  import { createRequire } from "node:module";
@@ -47,7 +47,7 @@ import crypto from "crypto";
47
47
  import { Function } from "@geekmidas/constructs/functions";
48
48
  import { Topic } from "@geekmidas/constructs/topic";
49
49
  //#region package.json
50
- var version = "10.0.0-alpha.88";
50
+ var version = "10.0.0-alpha.89";
51
51
  //#endregion
52
52
  //#region src/prompt.ts
53
53
  /**
@@ -130,7 +130,7 @@ const logger$8 = console;
130
130
  * Validate Dokploy token by making a test API call
131
131
  */
132
132
  async function validateDokployToken(endpoint, token) {
133
- const { DokployApi } = await import("./sniffer-B0EU73bj.mjs").then((n) => n.c);
133
+ const { DokployApi } = await import("./sniffer-BTtX3NUM.mjs").then((n) => n.c);
134
134
  return new DokployApi({
135
135
  baseUrl: endpoint,
136
136
  token
@@ -177,6 +177,10 @@ async function loginCommand(options) {
177
177
  logger$8.log(` Credentials stored in: ${getCredentialsPath()}`);
178
178
  logger$8.log("\nYou can now use deploy commands without setting DOKPLOY_API_TOKEN.");
179
179
  }
180
+ if (provider === "godaddy") {
181
+ await loginGoDaddy(options);
182
+ return;
183
+ }
180
184
  if (provider === "hostinger") {
181
185
  logger$8.log("\n🔐 Logging in to Hostinger...\n");
182
186
  let token = providedToken;
@@ -199,15 +203,50 @@ async function loginCommand(options) {
199
203
  }
200
204
  }
201
205
  /**
206
+ * Store a GoDaddy Personal Access Token. Not validated: the only call that
207
+ * proves a token without a domain is an account call (`GET /v1/domains`),
208
+ * which a token scoped to `domains.dns:update` alone may not make — the first
209
+ * `gkm setup` that writes a record is where a bad token reports itself.
210
+ */
211
+ async function loginGoDaddy(options) {
212
+ logger$8.log("\n🔐 Logging in to GoDaddy...\n");
213
+ let token = options.token;
214
+ if (!token) {
215
+ 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");
216
+ token = await prompt("Personal Access Token: ", {
217
+ hidden: true,
218
+ instead: LOGIN_INSTEAD
219
+ });
220
+ }
221
+ if (!token) {
222
+ logger$8.error("Token is required");
223
+ process.exit(1);
224
+ }
225
+ const where = options.home ? { home: options.home } : void 0;
226
+ await storeGoDaddyToken(token, where);
227
+ logger$8.log("\n✓ GoDaddy token stored.");
228
+ logger$8.log(` Token: ${maskToken(token)}`);
229
+ logger$8.log(` Credentials stored in: ${getCredentialsPath(where)}`);
230
+ 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.");
231
+ logger$8.log("\nYou can now use it as a DNS provider without setting GODADDY_API_TOKEN.");
232
+ }
233
+ /**
202
234
  * Logout from a service
203
235
  */
204
236
  async function logoutCommand(options) {
205
237
  const { provider = "dokploy" } = options;
206
238
  if (provider === "all") {
207
- if (await removeDokployCredentials()) logger$8.log("\n✓ Logged out from all services");
239
+ const dokployRemoved = await removeDokployCredentials();
240
+ const godaddyRemoved = await removeGoDaddyCredentials();
241
+ if (dokployRemoved || godaddyRemoved) logger$8.log("\n✓ Logged out from all services");
208
242
  else logger$8.log("\nNo stored credentials found");
209
243
  return;
210
244
  }
245
+ if (provider === "godaddy") {
246
+ const removed = await removeGoDaddyCredentials();
247
+ logger$8.log(removed ? "\n✓ Logged out from GoDaddy" : "\nNo GoDaddy credentials found");
248
+ return;
249
+ }
211
250
  if (provider === "dokploy") {
212
251
  if (await removeDokployCredentials()) logger$8.log("\n✓ Logged out from Dokploy");
213
252
  else logger$8.log("\nNo Dokploy credentials found");
@@ -224,6 +263,8 @@ async function whoamiCommand() {
224
263
  logger$8.log(` Endpoint: ${dokploy.endpoint}`);
225
264
  logger$8.log(` Token: ${maskToken(dokploy.token)}`);
226
265
  } else logger$8.log(" Dokploy: Not logged in");
266
+ const godaddy = (await readCredentials()).godaddy;
267
+ logger$8.log(godaddy ? ` GoDaddy:\n Token: ${maskToken(godaddy.token)}` : " GoDaddy: Not logged in");
227
268
  logger$8.log(`\n Credentials file: ${getCredentialsPath()}`);
228
269
  }
229
270
  /**
@@ -2283,9 +2324,9 @@ async function workspaceDevCommand(configured, options) {
2283
2324
  for (const { id, port } of fakes) logger$5.log(`🎭 ${id} fake: http://localhost:${port}`);
2284
2325
  logger$5.log(options.migrate || options.seed ? "🗄️ Migrating the databases" : "🗄️ Checking for pending migrations");
2285
2326
  if (options.migrate || options.seed) {
2286
- const { prepareDevDatabases } = await import("./migrate-ggkPVJRC.mjs");
2327
+ const { prepareDevDatabases } = await import("./migrate-CKLJ73OO.mjs");
2287
2328
  await prepareDevDatabases(workspace, reconciled.env, { seed: !!options.seed });
2288
- } else await import("./migrate-ggkPVJRC.mjs").then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
2329
+ } else await import("./migrate-CKLJ73OO.mjs").then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
2289
2330
  logger$5.log(`⚠️ Could not check for pending migrations: ${error instanceof Error ? error.message : String(error)}`);
2290
2331
  });
2291
2332
  const appUrls = {};
@@ -3338,7 +3379,7 @@ async function buildApp(input) {
3338
3379
  ...production,
3339
3380
  ...telemetry ? { telemetry } : {}
3340
3381
  });
3341
- const { bundleServer } = await import("./bundler-BMo-JP5s.mjs");
3382
+ const { bundleServer } = await import("./bundler-C_fCgcVO.mjs");
3342
3383
  await bundleServer({
3343
3384
  entryPoint,
3344
3385
  outputDir: join(outputDir, "dist"),
@@ -3483,7 +3524,7 @@ async function buildWorkers(input) {
3483
3524
  });
3484
3525
  logger$4.log(`Generated worker ${worker.id}: ${crons.length} crons, ${queues.length} queues, ${subscribers.length} subscribers`);
3485
3526
  if (!input.bundle) continue;
3486
- const { bundleServer } = await import("./bundler-BMo-JP5s.mjs");
3527
+ const { bundleServer } = await import("./bundler-C_fCgcVO.mjs");
3487
3528
  const outfile = workerBundleName(worker.id);
3488
3529
  await bundleServer({
3489
3530
  entryPoint,
@@ -3569,7 +3610,7 @@ async function buildForTarget(target, context, appRoot, workspaceRoot, endpointG
3569
3610
  let masterKey;
3570
3611
  if (context.production?.bundle && !skipBundle) {
3571
3612
  logger$4.log(`\n📦 Bundling production server...`);
3572
- const { bundleServer } = await import("./bundler-BMo-JP5s.mjs");
3613
+ const { bundleServer } = await import("./bundler-C_fCgcVO.mjs");
3573
3614
  const allConstructs = [
3574
3615
  ...endpoints.map((e) => e.construct),
3575
3616
  ...functions.map((f) => f.construct),
@@ -3863,6 +3904,7 @@ async function composeCommand(options, deps = {}) {
3863
3904
  ...options.dryRun ? { dryRun: true } : {},
3864
3905
  ...options.push ? { buildOnly: true } : {},
3865
3906
  ...options.allowDevServices ? { allowDevServices: true } : {},
3907
+ ...options.skipDnsCheck ? { skipDnsCheck: true } : {},
3866
3908
  logger: {
3867
3909
  info: (message) => console.log(message),
3868
3910
  warn: (message) => console.warn(message),
@@ -5270,25 +5312,25 @@ function loadPackageJson() {
5270
5312
  * Run: pnpm --filter @geekmidas/cli sync-versions
5271
5313
  */
5272
5314
  const GEEKMIDAS_VERSIONS = {
5273
- "@geekmidas/audit": "~10.0.0-alpha.88",
5274
- "@geekmidas/auth": "~10.0.0-alpha.88",
5275
- "@geekmidas/cache": "~10.0.0-alpha.88",
5276
- "@geekmidas/client": "~10.0.0-alpha.88",
5277
- "@geekmidas/cloud": "~10.0.0-alpha.88",
5278
- "@geekmidas/constructs": "~10.0.0-alpha.88",
5279
- "@geekmidas/db": "~10.0.0-alpha.88",
5280
- "@geekmidas/emailkit": "~10.0.0-alpha.88",
5281
- "@geekmidas/envkit": "~10.0.0-alpha.88",
5282
- "@geekmidas/errors": "~10.0.0-alpha.88",
5283
- "@geekmidas/events": "~10.0.0-alpha.88",
5284
- "@geekmidas/logger": "~10.0.0-alpha.88",
5285
- "@geekmidas/manifest": "~10.0.0-alpha.88",
5286
- "@geekmidas/rate-limit": "~10.0.0-alpha.88",
5287
- "@geekmidas/schema": "~10.0.0-alpha.88",
5288
- "@geekmidas/services": "~10.0.0-alpha.88",
5289
- "@geekmidas/storage": "~10.0.0-alpha.88",
5290
- "@geekmidas/telescope": "~10.0.0-alpha.88",
5291
- "@geekmidas/testkit": "~10.0.0-alpha.88",
5315
+ "@geekmidas/audit": "~10.0.0-alpha.89",
5316
+ "@geekmidas/auth": "~10.0.0-alpha.89",
5317
+ "@geekmidas/cache": "~10.0.0-alpha.89",
5318
+ "@geekmidas/client": "~10.0.0-alpha.89",
5319
+ "@geekmidas/cloud": "~10.0.0-alpha.89",
5320
+ "@geekmidas/constructs": "~10.0.0-alpha.89",
5321
+ "@geekmidas/db": "~10.0.0-alpha.89",
5322
+ "@geekmidas/emailkit": "~10.0.0-alpha.89",
5323
+ "@geekmidas/envkit": "~10.0.0-alpha.89",
5324
+ "@geekmidas/errors": "~10.0.0-alpha.89",
5325
+ "@geekmidas/events": "~10.0.0-alpha.89",
5326
+ "@geekmidas/logger": "~10.0.0-alpha.89",
5327
+ "@geekmidas/manifest": "~10.0.0-alpha.89",
5328
+ "@geekmidas/rate-limit": "~10.0.0-alpha.89",
5329
+ "@geekmidas/schema": "~10.0.0-alpha.89",
5330
+ "@geekmidas/services": "~10.0.0-alpha.89",
5331
+ "@geekmidas/storage": "~10.0.0-alpha.89",
5332
+ "@geekmidas/telescope": "~10.0.0-alpha.89",
5333
+ "@geekmidas/testkit": "~10.0.0-alpha.89",
5292
5334
  "@geekmidas/cli": `~${loadPackageJson().version}`
5293
5335
  };
5294
5336
  //#endregion
@@ -5689,7 +5731,7 @@ const COMMIT = /^[0-9a-f]{40}$/;
5689
5731
  * The `uses:` value for the stages action, with a comment saying which CLI
5690
5732
  * release the pinned commit is.
5691
5733
  */
5692
- function stagesActionUses(commit = "5bd5a7422c74b30cb3c285d0717da882171c103a", version = cliVersion()) {
5734
+ function stagesActionUses(commit = "e1be097c3e5909843479a2dcd97f06e952f5b1aa", version = cliVersion()) {
5693
5735
  return commit && COMMIT.test(commit) ? `${STAGES_ACTION}@${commit} # @geekmidas/cli ${version}` : `${STAGES_ACTION}@main # pin to a commit SHA: see the action's README`;
5694
5736
  }
5695
5737
  //#endregion
@@ -10971,6 +11013,135 @@ function maskUrl(url) {
10971
11013
  }
10972
11014
  }
10973
11015
  //#endregion
11016
+ //#region src/providers/dns.ts
11017
+ /** Whether the workspace deploys through the compose target. */
11018
+ function deploysWithCompose(workspace) {
11019
+ return workspace.deploy?.default === "compose" || Object.values(workspace.apps).some((app) => app.resolvedDeployTarget === "compose");
11020
+ }
11021
+ /**
11022
+ * A compose stage that serves a domain has its server's address in its
11023
+ * secrets — checked before `gkm setup --stage` does anything else.
11024
+ *
11025
+ * @throws {ServerAddressMissing} for a compose stage with a domain and none
11026
+ * @throws {ServerAddressInvalid} for a value that is not an address
11027
+ */
11028
+ function assertStageServer(workspace, stage, secrets) {
11029
+ if (stage === workspace.stages.local) return void 0;
11030
+ if (!deploysWithCompose(workspace)) return serverAddress(stage, secrets?.custom);
11031
+ return requiredServerAddress(stage, workspace.domains?.[stage], secrets?.custom);
11032
+ }
11033
+ /**
11034
+ * The hosts a compose stage serves: its stack composed as a deploy would —
11035
+ * with the secrets it would generate made up in memory, never written — and
11036
+ * every route's host read off it.
11037
+ */
11038
+ async function composeStageHosts(options) {
11039
+ const { workspace, stage } = options;
11040
+ const runnables = options.runnables ?? {};
11041
+ const background = options.background ?? {};
11042
+ const manifest = options.manifest ?? await discover({
11043
+ patterns: constructGlobs(workspace),
11044
+ cwd: workspace.root,
11045
+ runnables,
11046
+ background
11047
+ });
11048
+ const stored = await (await secretsStoreFor(workspace, stage, {
11049
+ ...options.profile ? { profile: options.profile } : {},
11050
+ ...options.home ? { home: options.home } : {}
11051
+ })).read(stage);
11052
+ const { deployedStackSecrets } = await import("./compose-Dn0oAgQ0.mjs").then((n) => n.l);
11053
+ const { composeStack } = await import("./compose-Dn0oAgQ0.mjs").then((n) => n.c);
11054
+ const { secrets } = deployedStackSecrets(workspace, stage, stored, manifest);
11055
+ const stack = composeStack({
11056
+ workspace,
11057
+ manifest,
11058
+ runnables,
11059
+ background,
11060
+ stage,
11061
+ identity: deployIdentity(workspace, stage),
11062
+ images: {
11063
+ mode: "pull",
11064
+ tag: "dns",
11065
+ ...workspace.deploy?.registry ? { registry: workspace.deploy.registry } : {}
11066
+ },
11067
+ secrets,
11068
+ buildOnly: true,
11069
+ allowDevServices: true
11070
+ });
11071
+ return stackHosts(stack);
11072
+ }
11073
+ /**
11074
+ * `GKM_SERVER_IPV4` from the stage's secrets and `dns`: each public host's
11075
+ * records, created or corrected. A dry run reads and prints, and writes
11076
+ * nothing.
11077
+ */
11078
+ async function provisionStageDns(options) {
11079
+ const { workspace, stage } = options;
11080
+ const log = options.log ?? ((line) => console.log(line));
11081
+ if (stage === workspace.stages.local || !workspace.dns || !deploysWithCompose(workspace)) return {
11082
+ mode: "none",
11083
+ hosts: [],
11084
+ changes: []
11085
+ };
11086
+ const store = await secretsStoreFor(workspace, stage, {
11087
+ ...options.profile ? { profile: options.profile } : {},
11088
+ ...options.home ? { home: options.home } : {}
11089
+ });
11090
+ const server = serverAddress(stage, (await store.read(stage))?.custom);
11091
+ if (!server) {
11092
+ log(`\n🌐 DNS for '${stage}': no GKM_SERVER_IPV4 in its secrets, so no records — ${serverAddressHint(stage)}`);
11093
+ return {
11094
+ mode: "none",
11095
+ hosts: [],
11096
+ changes: []
11097
+ };
11098
+ }
11099
+ const hosts = [...options.hosts ?? await composeStageHosts({
11100
+ workspace,
11101
+ stage,
11102
+ ...options.profile ? { profile: options.profile } : {},
11103
+ ...options.home ? { home: options.home } : {},
11104
+ ...options.manifest ? { manifest: options.manifest } : {},
11105
+ ...options.runnables ? { runnables: options.runnables } : {},
11106
+ ...options.background ? { background: options.background } : {}
11107
+ })];
11108
+ log(`\n🌐 DNS for '${stage}' → ${server.ipv4}${server.ipv6 ? ` / ${server.ipv6}` : ""}${options.dryRun ? " (dry run — nothing is written)" : ""}`);
11109
+ const plan = planStackDns({
11110
+ stage,
11111
+ hosts,
11112
+ server,
11113
+ dns: workspace.dns
11114
+ });
11115
+ try {
11116
+ return {
11117
+ mode: "records",
11118
+ hosts,
11119
+ changes: await applyStackDns(plan, {
11120
+ ...options.dryRun ? { dryRun: true } : {},
11121
+ log,
11122
+ credentials: {
11123
+ env: options.env ?? process.env,
11124
+ ...options.home ? { home: options.home } : {},
11125
+ log
11126
+ },
11127
+ ...options.providerFor ? { providerFor: options.providerFor } : {}
11128
+ })
11129
+ };
11130
+ } catch (error) {
11131
+ if (error instanceof MissingCredential) {
11132
+ log(` ⚠ ${error.message}`);
11133
+ log(" Until then, create these records yourself:");
11134
+ 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})`);
11135
+ return {
11136
+ mode: "records",
11137
+ hosts,
11138
+ changes: []
11139
+ };
11140
+ }
11141
+ throw error;
11142
+ }
11143
+ }
11144
+ //#endregion
10974
11145
  //#region src/setup/index.ts
10975
11146
  var setup_exports = /* @__PURE__ */ __exportAll({
10976
11147
  createFreshWorkspaceSecrets: () => createFreshWorkspaceSecrets,
@@ -11004,6 +11175,7 @@ async function setupCommand(options = {}) {
11004
11175
  logger$1.log(`📦 Workspace: ${workspace.name}`);
11005
11176
  logger$1.log(`📱 Apps: ${Object.keys(workspace.apps).join(", ")}`);
11006
11177
  logger$1.log(`🔑 Stage: ${stage}\n`);
11178
+ if (!local) assertStageServer(workspace, stage, await (await secretsStoreFor(workspace, stage, { ...options.profile ? { profile: options.profile } : {} })).read(stage));
11007
11179
  if (!local && options.dryRun) {
11008
11180
  await provisionDeployed(workspace, stage, options);
11009
11181
  return;
@@ -11037,11 +11209,16 @@ async function provisionDeployed(workspace, stage, options) {
11037
11209
  ...options.retireOldKeys ? { retireOldKeys: true } : {},
11038
11210
  log: (line) => logger$1.log(line)
11039
11211
  })).filter((r) => r.mode === "provider");
11040
- if (configured.length === 0) {
11041
- 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 ${provisionCommand(stage)} create it.`);
11042
- return;
11043
- }
11044
- const changes = configured.reduce((n, r) => n + r.actions.length, 0);
11212
+ 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 ${provisionCommand(stage)} create it.`);
11213
+ const dns = await provisionStageDns({
11214
+ workspace,
11215
+ stage,
11216
+ ...options.dryRun ? { dryRun: true } : {},
11217
+ ...options.profile ? { profile: options.profile } : {},
11218
+ log: (line) => logger$1.log(line)
11219
+ });
11220
+ const changes = configured.reduce((n, r) => n + r.actions.length, 0) + dns.changes.filter((c) => c.action !== "unchanged" && c.action !== "manual").length;
11221
+ if (configured.length === 0 && dns.mode === "none") return;
11045
11222
  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"})`}`);
11046
11223
  }
11047
11224
  /**
@@ -11396,7 +11573,7 @@ function testDatabases(reconciled) {
11396
11573
  * starts without the reference data the app needs.
11397
11574
  */
11398
11575
  async function migrateTestStage(workspace, env) {
11399
- const { migrateAndSeed } = await import("./migrate-ggkPVJRC.mjs");
11576
+ const { migrateAndSeed } = await import("./migrate-CKLJ73OO.mjs");
11400
11577
  const { discover } = await import("./discover-BPelzeGW.mjs").then((n) => n.i);
11401
11578
  const sources = {};
11402
11579
  const manifest = await discover({
@@ -11840,7 +12017,7 @@ program.command("migrate").description("Apply each database construct's migratio
11840
12017
  try {
11841
12018
  const globalOptions = program.opts();
11842
12019
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11843
- const { migrateCommand } = await import("./migrate-ggkPVJRC.mjs");
12020
+ const { migrateCommand } = await import("./migrate-CKLJ73OO.mjs");
11844
12021
  await migrateCommand({
11845
12022
  ...options,
11846
12023
  ...construct ? { construct } : {}
@@ -11854,7 +12031,7 @@ program.command("seed").description("Migrate, then run each database construct's
11854
12031
  try {
11855
12032
  const globalOptions = program.opts();
11856
12033
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11857
- const { seedCommand } = await import("./migrate-ggkPVJRC.mjs");
12034
+ const { seedCommand } = await import("./migrate-CKLJ73OO.mjs");
11858
12035
  await seedCommand({
11859
12036
  ...options,
11860
12037
  ...construct ? { construct } : {}
@@ -11868,7 +12045,7 @@ program.command("migration").description("Write a construct's next migration: an
11868
12045
  try {
11869
12046
  const globalOptions = program.opts();
11870
12047
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11871
- const { migrationCommand } = await import("./migrate-ggkPVJRC.mjs");
12048
+ const { migrationCommand } = await import("./migrate-CKLJ73OO.mjs");
11872
12049
  await migrationCommand({
11873
12050
  construct,
11874
12051
  ...name ? { name } : {}
@@ -11917,7 +12094,7 @@ program.command("docker").description("Generate Docker deployment files").option
11917
12094
  process.exit(1);
11918
12095
  }
11919
12096
  });
11920
- 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) => {
12097
+ 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) => {
11921
12098
  try {
11922
12099
  const globalOptions = program.opts();
11923
12100
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
@@ -11976,7 +12153,7 @@ program.command("secrets:add").description("Build the keys a stage must be given
11976
12153
  try {
11977
12154
  const globalOptions = program.opts();
11978
12155
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11979
- const { secretsAddCommand } = await import("./add-D_jNqnfZ.mjs");
12156
+ const { secretsAddCommand } = await import("./add-v3tCbrpE.mjs");
11980
12157
  await secretsAddCommand(options);
11981
12158
  } catch (error) {
11982
12159
  console.error(formatError(error));
@@ -11987,7 +12164,7 @@ program.command("encryption:rotate").description("Add a new current key to an En
11987
12164
  try {
11988
12165
  const globalOptions = program.opts();
11989
12166
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11990
- const { encryptionRotateCommand } = await import("./encryption-C-8Tt5Hh.mjs");
12167
+ const { encryptionRotateCommand } = await import("./encryption-BQmhq9_y.mjs");
11991
12168
  await encryptionRotateCommand(construct, options);
11992
12169
  } catch (error) {
11993
12170
  console.error(formatError(error));
@@ -11998,7 +12175,7 @@ program.command("encryption:retire").description("Remove an old key from an Encr
11998
12175
  try {
11999
12176
  const globalOptions = program.opts();
12000
12177
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
12001
- const { encryptionRetireCommand } = await import("./encryption-C-8Tt5Hh.mjs");
12178
+ const { encryptionRetireCommand } = await import("./encryption-BQmhq9_y.mjs");
12002
12179
  await encryptionRetireCommand(construct, key, options);
12003
12180
  } catch (error) {
12004
12181
  console.error(formatError(error));
@@ -12040,8 +12217,8 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
12040
12217
  const globalOptions = program.opts();
12041
12218
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
12042
12219
  const { loadWorkspaceConfig } = await import("./config.mjs");
12043
- const { reconcileMissingSecrets } = await import("./reconcile--I7V4Klj.mjs");
12044
- const { secretsStoreFor } = await import("./seeds-BYdrtZsC.mjs").then((n) => n.An);
12220
+ const { reconcileMissingSecrets } = await import("./reconcile-Dh1Jk7WE.mjs");
12221
+ const { secretsStoreFor } = await import("./seeds-perzdN81.mjs").then((n) => n.Pn);
12045
12222
  const { workspace } = await loadWorkspaceConfig();
12046
12223
  const stage = options.stage ?? workspace.stages.local;
12047
12224
  const store = await secretsStoreFor(workspace, stage);
@@ -12050,7 +12227,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
12050
12227
  console.error(`No secrets found for stage "${stage}". Run "gkm secrets:init --stage ${stage}" first.`);
12051
12228
  process.exit(1);
12052
12229
  }
12053
- const { derivedContainers } = await import("./seeds-BYdrtZsC.mjs").then((n) => n.dt);
12230
+ const { derivedContainers } = await import("./seeds-perzdN81.mjs").then((n) => n.ht);
12054
12231
  const result = reconcileMissingSecrets(secrets, workspace, await derivedContainers(workspace, stage));
12055
12232
  if (!result) {
12056
12233
  console.log(`\n✓ Secrets for stage "${stage}" are up-to-date`);
@@ -12068,15 +12245,15 @@ program.command("secrets:migrate").description("Copy a deployed stage's secrets
12068
12245
  try {
12069
12246
  const globalOptions = program.opts();
12070
12247
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
12071
- const { secretsMigrateCommand } = await import("./migrate-Dn7nK6sh.mjs");
12248
+ const { secretsMigrateCommand } = await import("./migrate-CpmO5qnl.mjs");
12072
12249
  await secretsMigrateCommand(options);
12073
12250
  } catch (error) {
12074
12251
  console.error(formatError(error));
12075
12252
  process.exit(1);
12076
12253
  }
12077
12254
  });
12078
- 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) => {
12079
- const { deployCli } = await import("./cli-7edNFwGk.mjs");
12255
+ 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) => {
12256
+ const { deployCli } = await import("./cli-REdO9X5b.mjs");
12080
12257
  const globalOptions = program.opts();
12081
12258
  const code = await deployCli({
12082
12259
  cwd: resolve(globalOptions.cwd ?? process.cwd()),
@@ -12087,14 +12264,15 @@ program.command("deploy").description("Deploy a stage through its target").optio
12087
12264
  ...options.json ? { json: true } : {},
12088
12265
  ...options.dryRun ? { dryRun: true } : {},
12089
12266
  ...options.atomic ? { atomic: true } : {},
12090
- ...options.allowDevServices ? { allowDevServices: true } : {}
12267
+ ...options.allowDevServices ? { allowDevServices: true } : {},
12268
+ ...options.skipDnsCheck ? { skipDnsCheck: true } : {}
12091
12269
  });
12092
12270
  if (code !== 0) process.exit(code);
12093
12271
  });
12094
12272
  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) => {
12095
12273
  try {
12096
- const { rollbackStage } = await import("./rollback-CEE6dse4.mjs").then((n) => n.a);
12097
- const { terminalCredentials } = await import("./terminal-BTbZlrFV.mjs");
12274
+ const { rollbackStage } = await import("./rollback-DpSU2DsD.mjs").then((n) => n.a);
12275
+ const { terminalCredentials } = await import("./terminal-D8TPK7o9.mjs");
12098
12276
  const globalOptions = program.opts();
12099
12277
  await rollbackStage({
12100
12278
  cwd: resolve(globalOptions.cwd ?? process.cwd()),
@@ -12129,7 +12307,7 @@ program.command("deploy:github").description("Let GitHub Actions deploy a stage:
12129
12307
  try {
12130
12308
  const globalOptions = program.opts();
12131
12309
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
12132
- const { deployGithubCommand } = await import("./github-CZHAtwPT.mjs");
12310
+ const { deployGithubCommand } = await import("./github-xzg99wz8.mjs");
12133
12311
  await deployGithubCommand(options);
12134
12312
  } catch (error) {
12135
12313
  console.error(formatError(error));
@@ -12140,7 +12318,7 @@ program.command("stages").description("The workspace's stages from gkm.config.ts
12140
12318
  try {
12141
12319
  const globalOptions = program.opts();
12142
12320
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
12143
- const { stagesCommand } = await import("./stages-DoHHz6pS.mjs");
12321
+ const { stagesCommand } = await import("./stages-CnZRYmkI.mjs");
12144
12322
  await stagesCommand(options);
12145
12323
  } catch (error) {
12146
12324
  console.error(formatError(error));
@@ -12174,13 +12352,17 @@ program.command("deploy:list").description("List Dokploy resources (projects, re
12174
12352
  process.exit(1);
12175
12353
  }
12176
12354
  });
12177
- 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) => {
12355
+ 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) => {
12178
12356
  try {
12179
12357
  const globalOptions = program.opts();
12180
12358
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
12181
12359
  const provider = options.service ?? options.provider;
12182
- if (!["dokploy", "hostinger"].includes(provider)) {
12183
- console.error(`Unknown provider: ${provider}. Supported: dokploy, hostinger`);
12360
+ if (![
12361
+ "dokploy",
12362
+ "hostinger",
12363
+ "godaddy"
12364
+ ].includes(provider)) {
12365
+ console.error(`Unknown provider: ${provider}. Supported: dokploy, hostinger, godaddy`);
12184
12366
  process.exit(1);
12185
12367
  }
12186
12368
  await loginCommand({
@@ -12193,7 +12375,7 @@ program.command("login").description("Authenticate with a deployment or DNS prov
12193
12375
  process.exit(1);
12194
12376
  }
12195
12377
  });
12196
- 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) => {
12378
+ 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) => {
12197
12379
  try {
12198
12380
  const globalOptions = program.opts();
12199
12381
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
@@ -12281,6 +12463,6 @@ try {
12281
12463
  }
12282
12464
  program.parse();
12283
12465
  //#endregion
12284
- export { validateDokployToken as a, formatError as i, slug as n, canPrompt as o, stamp as r, prompt as s, generateFullstackCustomSecrets as t };
12466
+ export { formatError as a, prompt as c, stamp as i, generateFullstackCustomSecrets as n, validateDokployToken as o, slug as r, canPrompt as s, deploysWithCompose as t };
12285
12467
 
12286
12468
  //# sourceMappingURL=index.mjs.map