@geekmidas/cli 10.0.0-alpha.67 → 10.0.0-alpha.69

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 (175) hide show
  1. package/dist/{LegacyStateStore-C39UKwmf.mjs → LegacyStateStore-BE1Et8RS.mjs} +2 -2
  2. package/dist/{LegacyStateStore-C39UKwmf.mjs.map → LegacyStateStore-BE1Et8RS.mjs.map} +1 -1
  3. package/dist/{LegacyStateStore-BZiO9-Lw.cjs → LegacyStateStore-LS_uTO8D.cjs} +2 -2
  4. package/dist/{LegacyStateStore-BZiO9-Lw.cjs.map → LegacyStateStore-LS_uTO8D.cjs.map} +1 -1
  5. package/dist/{LocalStateStore-DHVsZLyF.cjs → LocalStateStore-CV6phNMZ.cjs} +2 -2
  6. package/dist/{LocalStateStore-DHVsZLyF.cjs.map → LocalStateStore-CV6phNMZ.cjs.map} +1 -1
  7. package/dist/{LocalStateStore-Dk3Wbvzk.mjs → LocalStateStore-DAnFc708.mjs} +2 -2
  8. package/dist/{LocalStateStore-Dk3Wbvzk.mjs.map → LocalStateStore-DAnFc708.mjs.map} +1 -1
  9. package/dist/{OpenApiTsGenerator-BmUAcR7d.mjs → OpenApiTsGenerator-CSaXs-dB.mjs} +2 -2
  10. package/dist/{OpenApiTsGenerator-BmUAcR7d.mjs.map → OpenApiTsGenerator-CSaXs-dB.mjs.map} +1 -1
  11. package/dist/{OpenApiTsGenerator-B2zrdyP4.cjs → OpenApiTsGenerator-CxB8mqXz.cjs} +2 -2
  12. package/dist/{OpenApiTsGenerator-B2zrdyP4.cjs.map → OpenApiTsGenerator-CxB8mqXz.cjs.map} +1 -1
  13. package/dist/{S3StateStore-B_ZF9eHt.mjs → S3StateStore-8kJEGnTh.mjs} +2 -2
  14. package/dist/{S3StateStore-B_ZF9eHt.mjs.map → S3StateStore-8kJEGnTh.mjs.map} +1 -1
  15. package/dist/{S3StateStore--4tYVMAL.cjs → S3StateStore-dA34LAYm.cjs} +2 -2
  16. package/dist/{S3StateStore--4tYVMAL.cjs.map → S3StateStore-dA34LAYm.cjs.map} +1 -1
  17. package/dist/{SSMStateStore-ACZ8hRvZ.cjs → SSMStateStore-DBzlfc-S.cjs} +2 -2
  18. package/dist/{SSMStateStore-ACZ8hRvZ.cjs.map → SSMStateStore-DBzlfc-S.cjs.map} +1 -1
  19. package/dist/{SSMStateStore-DjPuKqrm.mjs → SSMStateStore-Dkdw-fPL.mjs} +2 -2
  20. package/dist/{SSMStateStore-DjPuKqrm.mjs.map → SSMStateStore-Dkdw-fPL.mjs.map} +1 -1
  21. package/dist/add-CoIr2wgv.cjs +568 -0
  22. package/dist/add-CoIr2wgv.cjs.map +1 -0
  23. package/dist/add-Dzk23476.mjs +566 -0
  24. package/dist/add-Dzk23476.mjs.map +1 -0
  25. package/dist/{bundler-pyLj-gS0.cjs → bundler-CSR2nM4m.cjs} +5 -5
  26. package/dist/{bundler-pyLj-gS0.cjs.map → bundler-CSR2nM4m.cjs.map} +1 -1
  27. package/dist/{bundler-Bq3HaLOZ.mjs → bundler-Cn0JF5G0.mjs} +5 -5
  28. package/dist/{bundler-Bq3HaLOZ.mjs.map → bundler-Cn0JF5G0.mjs.map} +1 -1
  29. package/dist/{cli-DR7B2_fX.cjs → cli-IoM2-x48.cjs} +13 -4
  30. package/dist/cli-IoM2-x48.cjs.map +1 -0
  31. package/dist/{cli-C2Tjbn27.mjs → cli-ij8Lwlww.mjs} +13 -4
  32. package/dist/cli-ij8Lwlww.mjs.map +1 -0
  33. package/dist/{compose-BjToENzG.mjs → compose-CZtinmtw.mjs} +173 -58
  34. package/dist/compose-CZtinmtw.mjs.map +1 -0
  35. package/dist/{compose-5oNHAKNT.cjs → compose-DfIioFX0.cjs} +173 -58
  36. package/dist/compose-DfIioFX0.cjs.map +1 -0
  37. package/dist/{config-4XFxX1al.d.cts → config-BnA0kPTY.d.cts} +3 -3
  38. package/dist/{config-4XFxX1al.d.cts.map → config-BnA0kPTY.d.cts.map} +1 -1
  39. package/dist/{config-UtKzhpFb.d.mts → config-CxEp_g7j.d.mts} +3 -3
  40. package/dist/{config-UtKzhpFb.d.mts.map → config-CxEp_g7j.d.mts.map} +1 -1
  41. package/dist/config.cjs +3 -3
  42. package/dist/config.d.cts +3 -3
  43. package/dist/config.d.mts +3 -3
  44. package/dist/config.mjs +3 -3
  45. package/dist/credentialSchemas-BcNL1N5R.cjs +271 -0
  46. package/dist/credentialSchemas-BcNL1N5R.cjs.map +1 -0
  47. package/dist/credentialSchemas-BmYxnEz_.mjs +236 -0
  48. package/dist/credentialSchemas-BmYxnEz_.mjs.map +1 -0
  49. package/dist/deploy/public.cjs +11 -7
  50. package/dist/deploy/public.d.cts +15 -4
  51. package/dist/deploy/public.d.cts.map +1 -1
  52. package/dist/deploy/public.d.mts +15 -4
  53. package/dist/deploy/public.d.mts.map +1 -1
  54. package/dist/deploy/public.mjs +8 -8
  55. package/dist/{deploy-DRAwTG72.mjs → deploy-BzqbkJ3o.mjs} +11 -7
  56. package/dist/deploy-BzqbkJ3o.mjs.map +1 -0
  57. package/dist/{deploy-BucRfbvX.cjs → deploy-Dpz9raPM.cjs} +11 -7
  58. package/dist/deploy-Dpz9raPM.cjs.map +1 -0
  59. package/dist/{discover-OEfZ9OkA.cjs → discover-B4VjaFJk.cjs} +2 -2
  60. package/dist/{discover-OEfZ9OkA.cjs.map → discover-B4VjaFJk.cjs.map} +1 -1
  61. package/dist/{discover-BFoJWKGD.mjs → discover-Buwf1z4P.mjs} +2 -2
  62. package/dist/{discover-BFoJWKGD.mjs.map → discover-Buwf1z4P.mjs.map} +1 -1
  63. package/dist/{dokploy-m345Zx02.cjs → dokploy-B6O-J1fb.cjs} +2 -2
  64. package/dist/{dokploy-m345Zx02.cjs.map → dokploy-B6O-J1fb.cjs.map} +1 -1
  65. package/dist/{dokploy-DIt1IZl1.mjs → dokploy-DkwcORbv.mjs} +2 -2
  66. package/dist/{dokploy-DIt1IZl1.mjs.map → dokploy-DkwcORbv.mjs.map} +1 -1
  67. package/dist/{encryption-Ccbahik7.mjs → encryption-7m1mKcRy.mjs} +3 -3
  68. package/dist/{encryption-Ccbahik7.mjs.map → encryption-7m1mKcRy.mjs.map} +1 -1
  69. package/dist/{encryption-rZ3BghXy.cjs → encryption-C8Ic5t0C.cjs} +3 -3
  70. package/dist/{encryption-rZ3BghXy.cjs.map → encryption-C8Ic5t0C.cjs.map} +1 -1
  71. package/dist/{engine-Gs0abjuj.mjs → engine-62Kl70Pj.mjs} +146 -28
  72. package/dist/engine-62Kl70Pj.mjs.map +1 -0
  73. package/dist/{engine-Cx_dvx9q.cjs → engine-BR9qlS7A.cjs} +146 -28
  74. package/dist/engine-BR9qlS7A.cjs.map +1 -0
  75. package/dist/{github-CrcGFkfD.cjs → github-CmGIZjhu.cjs} +3 -3
  76. package/dist/{github-CrcGFkfD.cjs.map → github-CmGIZjhu.cjs.map} +1 -1
  77. package/dist/{github-CJANTYqi.mjs → github-DtymyOcH.mjs} +3 -3
  78. package/dist/{github-CJANTYqi.mjs.map → github-DtymyOcH.mjs.map} +1 -1
  79. package/dist/{index-DD1FfUHh.d.mts → index-CkX89m6S.d.mts} +2 -2
  80. package/dist/{index-CyApaHVe.d.cts.map → index-CkX89m6S.d.mts.map} +1 -1
  81. package/dist/{index-CyApaHVe.d.cts → index-EvZBkycu.d.cts} +2 -2
  82. package/dist/{index-DD1FfUHh.d.mts.map → index-EvZBkycu.d.cts.map} +1 -1
  83. package/dist/index.cjs +94 -52
  84. package/dist/index.cjs.map +1 -1
  85. package/dist/index.mjs +94 -52
  86. package/dist/index.mjs.map +1 -1
  87. package/dist/{migrate-DCVo5gLS.mjs → migrate-CEzq6DjL.mjs} +4 -4
  88. package/dist/{migrate-DCVo5gLS.mjs.map → migrate-CEzq6DjL.mjs.map} +1 -1
  89. package/dist/{migrate-CQdSpttI.cjs → migrate-CYC-hBOU.cjs} +4 -4
  90. package/dist/{migrate-CQdSpttI.cjs.map → migrate-CYC-hBOU.cjs.map} +1 -1
  91. package/dist/openapi.cjs +1 -1
  92. package/dist/openapi.d.cts +1 -1
  93. package/dist/openapi.d.mts +1 -1
  94. package/dist/openapi.mjs +1 -1
  95. package/dist/{ready-2s3-CndS.mjs → ready-DeYaSoNN.mjs} +3 -3
  96. package/dist/{ready-2s3-CndS.mjs.map → ready-DeYaSoNN.mjs.map} +1 -1
  97. package/dist/{ready-B6uHr4sm.cjs → ready-QGgjmcuN.cjs} +3 -3
  98. package/dist/{ready-B6uHr4sm.cjs.map → ready-QGgjmcuN.cjs.map} +1 -1
  99. package/dist/reconcile/public.cjs +1 -1
  100. package/dist/reconcile/public.d.cts +1 -1
  101. package/dist/reconcile/public.d.mts +1 -1
  102. package/dist/reconcile/public.mjs +1 -1
  103. package/dist/{resolve-BexmDcsN.cjs → resolve-BDsMffvz.cjs} +3 -3
  104. package/dist/{resolve-BexmDcsN.cjs.map → resolve-BDsMffvz.cjs.map} +1 -1
  105. package/dist/{resolve-DhZgtvZe.mjs → resolve-Dn5wGf1r.mjs} +3 -3
  106. package/dist/{resolve-DhZgtvZe.mjs.map → resolve-Dn5wGf1r.mjs.map} +1 -1
  107. package/dist/{rollback-BnY7KuG_.cjs → rollback-5XHaBDxW.cjs} +5 -5
  108. package/dist/{rollback-BnY7KuG_.cjs.map → rollback-5XHaBDxW.cjs.map} +1 -1
  109. package/dist/{rollback-m4Yeym5x.mjs → rollback-DDfaqv7P.mjs} +5 -5
  110. package/dist/{rollback-m4Yeym5x.mjs.map → rollback-DDfaqv7P.mjs.map} +1 -1
  111. package/dist/{runtime-CEk5n4VH.d.mts → runtime-B3jNgeP-.d.mts} +2 -2
  112. package/dist/{runtime-BRqFOvPM.d.cts.map → runtime-B3jNgeP-.d.mts.map} +1 -1
  113. package/dist/{runtime-BRqFOvPM.d.cts → runtime-DWThEP-r.d.cts} +2 -2
  114. package/dist/{runtime-CEk5n4VH.d.mts.map → runtime-DWThEP-r.d.cts.map} +1 -1
  115. package/dist/sandbox/credentials-worker.cjs +54 -0
  116. package/dist/sandbox/credentials-worker.cjs.map +1 -0
  117. package/dist/sandbox/credentials-worker.d.cts +1 -0
  118. package/dist/sandbox/credentials-worker.d.mts +1 -0
  119. package/dist/sandbox/credentials-worker.mjs +55 -0
  120. package/dist/sandbox/credentials-worker.mjs.map +1 -0
  121. package/dist/sandbox/discover-worker.cjs +1 -1
  122. package/dist/sandbox/discover-worker.mjs +1 -1
  123. package/dist/sandbox/migrate-worker.cjs +1 -1
  124. package/dist/sandbox/migrate-worker.mjs +1 -1
  125. package/dist/{schemas-RUlKHu27.cjs → schemas-BObwxB_t.cjs} +164 -3
  126. package/dist/schemas-BObwxB_t.cjs.map +1 -0
  127. package/dist/{schemas-Cfhtpdo0.mjs → schemas-D-xeKJDD.mjs} +153 -4
  128. package/dist/schemas-D-xeKJDD.mjs.map +1 -0
  129. package/dist/{sniffer-D66HIvi9.cjs → sniffer-Bc0nNBDF.cjs} +7 -7
  130. package/dist/sniffer-Bc0nNBDF.cjs.map +1 -0
  131. package/dist/{sniffer-BdFeLSmA.mjs → sniffer-DMqi2b1q.mjs} +7 -7
  132. package/dist/sniffer-DMqi2b1q.mjs.map +1 -0
  133. package/dist/{state-DgmM4EKq.cjs → state-8RgXeX5Y.cjs} +398 -8
  134. package/dist/state-8RgXeX5Y.cjs.map +1 -0
  135. package/dist/{state-DkUStoqJ.mjs → state-DClnPZt5.mjs} +291 -9
  136. package/dist/state-DClnPZt5.mjs.map +1 -0
  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-C3cv-OQu.mjs → terminal-C6TBo_SA.mjs} +2 -2
  142. package/dist/{terminal-C3cv-OQu.mjs.map → terminal-C6TBo_SA.mjs.map} +1 -1
  143. package/dist/{terminal-DjzgLu6m.cjs → terminal-CFO3xWoF.cjs} +2 -2
  144. package/dist/{terminal-DjzgLu6m.cjs.map → terminal-CFO3xWoF.cjs.map} +1 -1
  145. package/dist/{types-CSw2w69a.d.mts → types-CZdCxUCK.d.cts} +64 -2
  146. package/dist/types-CZdCxUCK.d.cts.map +1 -0
  147. package/dist/{types-D5WIxRDP.d.cts → types-Da0E3Qv7.d.mts} +63 -3
  148. package/dist/types-Da0E3Qv7.d.mts.map +1 -0
  149. package/dist/vitest.cjs +1 -1
  150. package/dist/vitest.mjs +1 -1
  151. package/dist/workspace/index.cjs +1 -1
  152. package/dist/workspace/index.d.cts +2 -2
  153. package/dist/workspace/index.d.mts +2 -2
  154. package/dist/workspace/index.mjs +1 -1
  155. package/dist/{workspace-ON-bqiJz.cjs → workspace-8NuAjaXJ.cjs} +2 -2
  156. package/dist/{workspace-ON-bqiJz.cjs.map → workspace-8NuAjaXJ.cjs.map} +1 -1
  157. package/dist/{workspace-Be6uBhlF.mjs → workspace-B2UK_rVP.mjs} +2 -2
  158. package/dist/{workspace-Be6uBhlF.mjs.map → workspace-B2UK_rVP.mjs.map} +1 -1
  159. package/package.json +16 -13
  160. package/dist/cli-C2Tjbn27.mjs.map +0 -1
  161. package/dist/cli-DR7B2_fX.cjs.map +0 -1
  162. package/dist/compose-5oNHAKNT.cjs.map +0 -1
  163. package/dist/compose-BjToENzG.mjs.map +0 -1
  164. package/dist/deploy-BucRfbvX.cjs.map +0 -1
  165. package/dist/deploy-DRAwTG72.mjs.map +0 -1
  166. package/dist/engine-Cx_dvx9q.cjs.map +0 -1
  167. package/dist/engine-Gs0abjuj.mjs.map +0 -1
  168. package/dist/schemas-Cfhtpdo0.mjs.map +0 -1
  169. package/dist/schemas-RUlKHu27.cjs.map +0 -1
  170. package/dist/sniffer-BdFeLSmA.mjs.map +0 -1
  171. package/dist/sniffer-D66HIvi9.cjs.map +0 -1
  172. package/dist/state-DgmM4EKq.cjs.map +0 -1
  173. package/dist/state-DkUStoqJ.mjs.map +0 -1
  174. package/dist/types-CSw2w69a.d.mts.map +0 -1
  175. package/dist/types-D5WIxRDP.d.cts.map +0 -1
package/dist/index.mjs CHANGED
@@ -2,20 +2,21 @@
2
2
  import { n as __require, t as __exportAll } from "./rolldown-runtime-BhDjJH2R.mjs";
3
3
  import { r as DEFAULT_TIMEOUT_MS, t as CommandFailed } from "./run-BJLIerMM.mjs";
4
4
  import { c as getDokployCredentials, f as removeDokployCredentials, i as LocalSandbox, l as getDokployRegistryId, m as storeHostingerToken, p as storeDokployCredentials, s as getCredentialsPath, u as getDokployToken } from "./credentials-pAtB70k3.mjs";
5
- import { l as withOwningTsconfigJsx, r as discover, u as ConstructGenerator } from "./discover-BFoJWKGD.mjs";
5
+ import { l as withOwningTsconfigJsx, r as discover, u as ConstructGenerator } from "./discover-Buwf1z4P.mjs";
6
6
  import { t as appKey } from "./derive-B4vDpzgP.mjs";
7
- import { A as deployedProblems, D as InvalidStages, O as TEST_STAGE, c as getAppGkmConfig, j as stageProblems, n as allConstructGlobs, s as getAppBuildOrder } from "./workspace-Be6uBhlF.mjs";
7
+ import { A as deployedProblems, D as InvalidStages, O as TEST_STAGE, c as getAppGkmConfig, j as stageProblems, n as allConstructGlobs, s as getAppBuildOrder } from "./workspace-B2UK_rVP.mjs";
8
8
  import { ConfigNotFound, NotABackendApp, NotInAnApp, loadAppConfig, loadConfig, loadWorkspaceConfig, loadWorkspaceSettings, parseModuleConfig } from "./config.mjs";
9
- import { $ as cacheBackendFor, A as derivedContainers, B as pgClient, D as FAKE_ENV, E as keyFingerprint, Ft as withCustomSecret, I as postgresDatabaseNames, Mt as maskPassword, N as LOCAL_CA_PATH, O as backendsOf$1, P as forgetState, Pt as toEmbeddableSecrets, R as quoteIdentifier, at as fakeKey, ct as createCredentialsPreload, dt as isPortAvailable, ft as loadEnvFiles, gt as secretsStoreFor, it as describeServices, j as reconcileWorkspace, k as constructGlobs, lt as createEntryWrapper, mt as prepareEntryCredentials, pt as loadSecretsForApp, st as primaryPortKey, tt as providerOf, ut as findAvailablePort, vt as FileSecretsStore, wt as deployIdentity, xt as projectKey, y as dockerCommand, yt as getKeyPath } from "./state-DkUStoqJ.mjs";
10
- import { i as telemetryFor, n as EndpointGenerator, r as runtimeFor } from "./OpenApiTsGenerator-BmUAcR7d.mjs";
11
- import { g as createStateStore, n as sniffAppEnvironment, o as DokployApi } from "./sniffer-BdFeLSmA.mjs";
9
+ import { $ as postgresDatabaseNames, $t as withCustomSecret, At as loadEnvFiles, B as keyFingerprint, Ct as fakeKey, Dt as createEntryWrapper, Et as createCredentialsPreload, G as reconcileWorkspace, H as backendsOf$1, Ht as deployIdentity, It as FileSecretsStore, J as forgetState, Lt as getKeyPath, Mt as prepareEntryCredentials, Ot as findAvailablePort, P as parseDevServices, Pt as secretsStoreFor, Qt as toEmbeddableSecrets, St as describeServices, Tt as primaryPortKey, U as constructGlobs, V as FAKE_ENV, W as derivedContainers, Xt as maskPassword, _t as cacheBackendFor, it as pgClient, jt as loadSecretsForApp, kt as isPortAvailable, q as LOCAL_CA_PATH, tt as quoteIdentifier, y as dockerCommand, yt as providerOf, zt as projectKey } from "./state-DClnPZt5.mjs";
10
+ import { i as telemetryFor, n as EndpointGenerator, r as runtimeFor } from "./OpenApiTsGenerator-CSaXs-dB.mjs";
11
+ import { g as createStateStore, n as sniffAppEnvironment, o as DokployApi } from "./sniffer-DMqi2b1q.mjs";
12
12
  import { generateOpenApi, openapiCommand, resolveOpenApiConfig } from "./openapi.mjs";
13
13
  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";
14
- import { a as writeTestHarness, c as driversFor, i as TEST_MANIFEST_ENV, n as TEST_READY_FILE, o as SubscriberGenerator, s as cacheBackendsIn, t as TEST_READY_ENV } from "./ready-2s3-CndS.mjs";
14
+ import { a as writeTestHarness, c as driversFor, i as TEST_MANIFEST_ENV, n as TEST_READY_FILE, o as SubscriberGenerator, s as cacheBackendsIn, t as TEST_READY_ENV } from "./ready-DeYaSoNN.mjs";
15
15
  import { n as withCompute, r as withRoutes, t as manifestModule } from "./emit-C1e8qD08.mjs";
16
- import { t as deploy$1 } from "./deploy-DRAwTG72.mjs";
17
- import { a as dockerCompose, i as stackDir, r as composeProject, t as composeTarget } from "./compose-BjToENzG.mjs";
18
- import { t as LocalStateStore } from "./LocalStateStore-Dk3Wbvzk.mjs";
16
+ import { t as deploy$1 } from "./deploy-BzqbkJ3o.mjs";
17
+ import { a as dockerCompose, i as stackDir, r as composeProject, t as composeTarget } from "./compose-CZtinmtw.mjs";
18
+ import { o as loadCredentialSchemas, t as CredentialsInvalid } from "./credentialSchemas-BmYxnEz_.mjs";
19
+ import { t as LocalStateStore } from "./LocalStateStore-DAnFc708.mjs";
19
20
  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";
20
21
  import { createRequire } from "node:module";
21
22
  import { basename, dirname, isAbsolute, join, relative, resolve } from "node:path";
@@ -46,7 +47,7 @@ import { Function } from "@geekmidas/constructs/functions";
46
47
  import { Queue } from "@geekmidas/constructs/queue";
47
48
  import { Topic } from "@geekmidas/constructs/topic";
48
49
  //#region package.json
49
- var version = "10.0.0-alpha.67";
50
+ var version = "10.0.0-alpha.69";
50
51
  //#endregion
51
52
  //#region src/prompt.ts
52
53
  /**
@@ -129,7 +130,7 @@ const logger$8 = console;
129
130
  * Validate Dokploy token by making a test API call
130
131
  */
131
132
  async function validateDokployToken(endpoint, token) {
132
- const { DokployApi } = await import("./sniffer-BdFeLSmA.mjs").then((n) => n.c);
133
+ const { DokployApi } = await import("./sniffer-DMqi2b1q.mjs").then((n) => n.c);
133
134
  return new DokployApi({
134
135
  baseUrl: endpoint,
135
136
  token
@@ -2035,9 +2036,9 @@ async function workspaceDevCommand(configured, options) {
2035
2036
  for (const { id, port } of fakes) logger$5.log(`🎭 ${id} fake: http://localhost:${port}`);
2036
2037
  logger$5.log(options.migrate || options.seed ? "🗄️ Migrating the databases" : "🗄️ Checking for pending migrations");
2037
2038
  if (options.migrate || options.seed) {
2038
- const { prepareDevDatabases } = await import("./migrate-DCVo5gLS.mjs");
2039
+ const { prepareDevDatabases } = await import("./migrate-CEzq6DjL.mjs");
2039
2040
  await prepareDevDatabases(workspace, reconciled.env, { seed: !!options.seed });
2040
- } else await import("./migrate-DCVo5gLS.mjs").then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
2041
+ } else await import("./migrate-CEzq6DjL.mjs").then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
2041
2042
  logger$5.log(`⚠️ Could not check for pending migrations: ${error instanceof Error ? error.message : String(error)}`);
2042
2043
  });
2043
2044
  const appUrls = {};
@@ -3417,7 +3418,7 @@ async function buildApp(input) {
3417
3418
  if (production?.bundle && !input.skipBundle) {
3418
3419
  const outputDir = join(appRoot, ".gkm", "server");
3419
3420
  const entryPoint = await writeSurfaceServer(outputDir, production);
3420
- const { bundleServer } = await import("./bundler-Bq3HaLOZ.mjs");
3421
+ const { bundleServer } = await import("./bundler-Cn0JF5G0.mjs");
3421
3422
  await bundleServer({
3422
3423
  entryPoint,
3423
3424
  outputDir: join(outputDir, "dist"),
@@ -3555,7 +3556,7 @@ async function buildForTarget(target, context, appRoot, workspaceRoot, endpointG
3555
3556
  let masterKey;
3556
3557
  if (context.production?.bundle && !skipBundle) {
3557
3558
  logger$4.log(`\n📦 Bundling production server...`);
3558
- const { bundleServer } = await import("./bundler-Bq3HaLOZ.mjs");
3559
+ const { bundleServer } = await import("./bundler-Cn0JF5G0.mjs");
3559
3560
  const allConstructs = [
3560
3561
  ...endpoints.map((e) => e.construct),
3561
3562
  ...functions.map((f) => f.construct),
@@ -3800,11 +3801,12 @@ var ComposeModeConflict = class extends Error {
3800
3801
  }
3801
3802
  };
3802
3803
  /** `gkm compose`. */
3803
- async function composeCommand(options = {}, deps = {}) {
3804
+ async function composeCommand(options, deps = {}) {
3804
3805
  if (options.build && options.pull) throw new ComposeModeConflict();
3806
+ const allowDevServices = parseDevServices(options.allowDevServices);
3805
3807
  const cwd = resolve(options.cwd ?? process.cwd());
3806
3808
  const { workspace } = await loadWorkspaceConfig(cwd);
3807
- const stage = options.stage ?? workspace.stages.local;
3809
+ const { stage } = options;
3808
3810
  if (options.down) {
3809
3811
  const ref = {
3810
3812
  project: composeProject(deployIdentity(workspace, stage)),
@@ -3831,6 +3833,7 @@ async function composeCommand(options = {}, deps = {}) {
3831
3833
  }) },
3832
3834
  ...tag ? { tag } : {},
3833
3835
  ...options.dryRun ? { dryRun: true } : {},
3836
+ ...allowDevServices.length > 0 ? { allowDevServices } : {},
3834
3837
  logger: {
3835
3838
  info: (message) => console.log(message),
3836
3839
  warn: (message) => console.warn(message),
@@ -5250,25 +5253,25 @@ function loadPackageJson() {
5250
5253
  * Run: pnpm --filter @geekmidas/cli sync-versions
5251
5254
  */
5252
5255
  const GEEKMIDAS_VERSIONS = {
5253
- "@geekmidas/audit": "~10.0.0-alpha.67",
5254
- "@geekmidas/auth": "~10.0.0-alpha.67",
5255
- "@geekmidas/cache": "~10.0.0-alpha.67",
5256
- "@geekmidas/client": "~10.0.0-alpha.67",
5257
- "@geekmidas/cloud": "~10.0.0-alpha.67",
5258
- "@geekmidas/constructs": "~10.0.0-alpha.67",
5259
- "@geekmidas/db": "~10.0.0-alpha.67",
5260
- "@geekmidas/emailkit": "~10.0.0-alpha.67",
5261
- "@geekmidas/envkit": "~10.0.0-alpha.67",
5262
- "@geekmidas/errors": "~10.0.0-alpha.67",
5263
- "@geekmidas/events": "~10.0.0-alpha.67",
5264
- "@geekmidas/logger": "~10.0.0-alpha.67",
5265
- "@geekmidas/manifest": "~10.0.0-alpha.67",
5266
- "@geekmidas/rate-limit": "~10.0.0-alpha.67",
5267
- "@geekmidas/schema": "~10.0.0-alpha.67",
5268
- "@geekmidas/services": "~10.0.0-alpha.67",
5269
- "@geekmidas/storage": "~10.0.0-alpha.67",
5270
- "@geekmidas/telescope": "~10.0.0-alpha.67",
5271
- "@geekmidas/testkit": "~10.0.0-alpha.67",
5256
+ "@geekmidas/audit": "~10.0.0-alpha.69",
5257
+ "@geekmidas/auth": "~10.0.0-alpha.69",
5258
+ "@geekmidas/cache": "~10.0.0-alpha.69",
5259
+ "@geekmidas/client": "~10.0.0-alpha.69",
5260
+ "@geekmidas/cloud": "~10.0.0-alpha.69",
5261
+ "@geekmidas/constructs": "~10.0.0-alpha.69",
5262
+ "@geekmidas/db": "~10.0.0-alpha.69",
5263
+ "@geekmidas/emailkit": "~10.0.0-alpha.69",
5264
+ "@geekmidas/envkit": "~10.0.0-alpha.69",
5265
+ "@geekmidas/errors": "~10.0.0-alpha.69",
5266
+ "@geekmidas/events": "~10.0.0-alpha.69",
5267
+ "@geekmidas/logger": "~10.0.0-alpha.69",
5268
+ "@geekmidas/manifest": "~10.0.0-alpha.69",
5269
+ "@geekmidas/rate-limit": "~10.0.0-alpha.69",
5270
+ "@geekmidas/schema": "~10.0.0-alpha.69",
5271
+ "@geekmidas/services": "~10.0.0-alpha.69",
5272
+ "@geekmidas/storage": "~10.0.0-alpha.69",
5273
+ "@geekmidas/telescope": "~10.0.0-alpha.69",
5274
+ "@geekmidas/testkit": "~10.0.0-alpha.69",
5272
5275
  "@geekmidas/cli": `~${loadPackageJson().version}`
5273
5276
  };
5274
5277
  //#endregion
@@ -10499,10 +10502,37 @@ async function secretsSetCommand(key, value, options) {
10499
10502
  logger$2.error(`Secrets not found for stage "${stage}". Run "gkm secrets:init --stage ${stage}" first.`);
10500
10503
  process.exit(1);
10501
10504
  }
10505
+ await assertCredentialValue(key, secretValue, stage);
10502
10506
  await store.write(stage, withCustomSecret(secrets, key, secretValue));
10503
10507
  logger$2.log(`\n✓ Secret "${key}" set for stage "${stage}" (${store.name})`);
10504
10508
  }
10505
10509
  /**
10510
+ * A third party's credentials, checked against the schema of the construct
10511
+ * that reads them before they are stored — what the app would otherwise
10512
+ * refuse as it starts. Only a `<ID>_CREDENTIALS` key in a workspace is
10513
+ * looked at, so setting anything else loads no construct.
10514
+ *
10515
+ * @throws {CredentialsInvalid} listing each issue; nothing is saved
10516
+ */
10517
+ async function assertCredentialValue(key, value, stage) {
10518
+ if (!key.endsWith("_CREDENTIALS")) return;
10519
+ let workspace;
10520
+ try {
10521
+ workspace = await loadWorkspaceSettings();
10522
+ } catch (error) {
10523
+ if (error instanceof ConfigNotFound) return;
10524
+ throw error;
10525
+ }
10526
+ const check = await (await loadCredentialSchemas({
10527
+ root: workspace.root,
10528
+ patterns: constructGlobs(workspace)
10529
+ })).check(key, value);
10530
+ if (!check.ok) throw new CredentialsInvalid(stage, [{
10531
+ key,
10532
+ issues: check.issues
10533
+ }], "set");
10534
+ }
10535
+ /**
10506
10536
  * Show secrets for a stage.
10507
10537
  */
10508
10538
  async function secretsShowCommand(options) {
@@ -11031,8 +11061,8 @@ function testDatabases(reconciled) {
11031
11061
  * starts without the reference data the app needs.
11032
11062
  */
11033
11063
  async function migrateTestStage(workspace, env) {
11034
- const { migrateAndSeed } = await import("./migrate-DCVo5gLS.mjs");
11035
- const { discover } = await import("./discover-BFoJWKGD.mjs").then((n) => n.i);
11064
+ const { migrateAndSeed } = await import("./migrate-CEzq6DjL.mjs");
11065
+ const { discover } = await import("./discover-Buwf1z4P.mjs").then((n) => n.i);
11036
11066
  const sources = {};
11037
11067
  const manifest = await discover({
11038
11068
  patterns: constructGlobs(workspace),
@@ -11462,7 +11492,7 @@ program.command("migrate").description("Apply each database construct's migratio
11462
11492
  try {
11463
11493
  const globalOptions = program.opts();
11464
11494
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11465
- const { migrateCommand } = await import("./migrate-DCVo5gLS.mjs");
11495
+ const { migrateCommand } = await import("./migrate-CEzq6DjL.mjs");
11466
11496
  await migrateCommand({
11467
11497
  ...options,
11468
11498
  ...construct ? { construct } : {}
@@ -11476,7 +11506,7 @@ program.command("seed").description("Migrate, then run each database construct's
11476
11506
  try {
11477
11507
  const globalOptions = program.opts();
11478
11508
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11479
- const { seedCommand } = await import("./migrate-DCVo5gLS.mjs");
11509
+ const { seedCommand } = await import("./migrate-CEzq6DjL.mjs");
11480
11510
  await seedCommand({
11481
11511
  ...options,
11482
11512
  ...construct ? { construct } : {}
@@ -11490,7 +11520,7 @@ program.command("migration").description("Write a construct's next migration: an
11490
11520
  try {
11491
11521
  const globalOptions = program.opts();
11492
11522
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11493
- const { migrationCommand } = await import("./migrate-DCVo5gLS.mjs");
11523
+ const { migrationCommand } = await import("./migrate-CEzq6DjL.mjs");
11494
11524
  await migrationCommand({
11495
11525
  construct,
11496
11526
  ...name ? { name } : {}
@@ -11535,7 +11565,7 @@ program.command("docker").description("Generate Docker deployment files").option
11535
11565
  process.exit(1);
11536
11566
  }
11537
11567
  });
11538
- program.command("compose").description("Run the workspace's APIs and sites for a stage as one Docker Compose stack behind Caddy").option("--stage <stage>", "Stage to run (default: the local stage)").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("--dry-run", "Write the files and print the plan; start nothing").option("--down", "Stop the stage's stack (its volumes are kept)").action(async (options) => {
11568
+ 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("--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 <list>", "Deployed stage: run MinIO and/or Mailpit (minio,mailpit) for mail and buckets the stage's secrets don't configure. Not production-grade").action(async (options) => {
11539
11569
  try {
11540
11570
  const globalOptions = program.opts();
11541
11571
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
@@ -11580,11 +11610,22 @@ program.command("secrets:set").description("Set a custom secret for a stage").ar
11580
11610
  process.exit(1);
11581
11611
  }
11582
11612
  });
11613
+ program.command("secrets:add").description("Build the keys a stage must be given — buckets, mail, file servers, third parties' credentials — across every app").requiredOption("--stage <stage>", "Stage name").option("--missing", "Only the keys the stage has not set").option("--json", "Print the keys as JSON and ask nothing").action(async (options) => {
11614
+ try {
11615
+ const globalOptions = program.opts();
11616
+ if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11617
+ const { secretsAddCommand } = await import("./add-Dzk23476.mjs");
11618
+ await secretsAddCommand(options);
11619
+ } catch (error) {
11620
+ console.error(formatError(error));
11621
+ process.exit(1);
11622
+ }
11623
+ });
11583
11624
  program.command("encryption:rotate").description("Add a new current key to an Encryption construct's keyring on a server stage").argument("<construct>", "The Encryption construct (e.g. Pii)").requiredOption("--stage <stage>", "A deployed stage").action(async (construct, options) => {
11584
11625
  try {
11585
11626
  const globalOptions = program.opts();
11586
11627
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11587
- const { encryptionRotateCommand } = await import("./encryption-Ccbahik7.mjs");
11628
+ const { encryptionRotateCommand } = await import("./encryption-7m1mKcRy.mjs");
11588
11629
  await encryptionRotateCommand(construct, options);
11589
11630
  } catch (error) {
11590
11631
  console.error(formatError(error));
@@ -11595,7 +11636,7 @@ program.command("encryption:retire").description("Remove an old key from an Encr
11595
11636
  try {
11596
11637
  const globalOptions = program.opts();
11597
11638
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11598
- const { encryptionRetireCommand } = await import("./encryption-Ccbahik7.mjs");
11639
+ const { encryptionRetireCommand } = await import("./encryption-7m1mKcRy.mjs");
11599
11640
  await encryptionRetireCommand(construct, key, options);
11600
11641
  } catch (error) {
11601
11642
  console.error(formatError(error));
@@ -11638,7 +11679,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
11638
11679
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11639
11680
  const { loadWorkspaceConfig } = await import("./config.mjs");
11640
11681
  const { reconcileMissingSecrets } = await import("./reconcile--I7V4Klj.mjs");
11641
- const { secretsStoreFor } = await import("./state-DkUStoqJ.mjs").then((n) => n._t);
11682
+ const { secretsStoreFor } = await import("./state-DClnPZt5.mjs").then((n) => n.Ft);
11642
11683
  const { workspace } = await loadWorkspaceConfig();
11643
11684
  const stage = options.stage ?? workspace.stages.local;
11644
11685
  const store = await secretsStoreFor(workspace, stage);
@@ -11647,7 +11688,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
11647
11688
  console.error(`No secrets found for stage "${stage}". Run "gkm secrets:init --stage ${stage}" first.`);
11648
11689
  process.exit(1);
11649
11690
  }
11650
- const { derivedContainers } = await import("./state-DkUStoqJ.mjs").then((n) => n.M);
11691
+ const { derivedContainers } = await import("./state-DClnPZt5.mjs").then((n) => n.K);
11651
11692
  const result = reconcileMissingSecrets(secrets, workspace, await derivedContainers(workspace, stage));
11652
11693
  if (!result) {
11653
11694
  console.log(`\n✓ Secrets for stage "${stage}" are up-to-date`);
@@ -11661,8 +11702,8 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
11661
11702
  process.exit(1);
11662
11703
  }
11663
11704
  });
11664
- 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").action(async (options) => {
11665
- const { deployCli } = await import("./cli-C2Tjbn27.mjs");
11705
+ 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 <list>", "Server targets: run MinIO and/or Mailpit (minio,mailpit) for mail and buckets the stage's secrets don't configure. Not production-grade").action(async (options) => {
11706
+ const { deployCli } = await import("./cli-ij8Lwlww.mjs");
11666
11707
  const globalOptions = program.opts();
11667
11708
  const code = await deployCli({
11668
11709
  cwd: resolve(globalOptions.cwd ?? process.cwd()),
@@ -11672,14 +11713,15 @@ program.command("deploy").description("Deploy a stage through its target").optio
11672
11713
  ...options.tag ? { tag: options.tag } : {},
11673
11714
  ...options.json ? { json: true } : {},
11674
11715
  ...options.dryRun ? { dryRun: true } : {},
11675
- ...options.atomic ? { atomic: true } : {}
11716
+ ...options.atomic ? { atomic: true } : {},
11717
+ ...options.allowDevServices ? { allowDevServices: options.allowDevServices } : {}
11676
11718
  });
11677
11719
  if (code !== 0) process.exit(code);
11678
11720
  });
11679
11721
  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) => {
11680
11722
  try {
11681
- const { rollbackStage } = await import("./rollback-m4Yeym5x.mjs").then((n) => n.a);
11682
- const { terminalCredentials } = await import("./terminal-C3cv-OQu.mjs");
11723
+ const { rollbackStage } = await import("./rollback-DDfaqv7P.mjs").then((n) => n.a);
11724
+ const { terminalCredentials } = await import("./terminal-C6TBo_SA.mjs");
11683
11725
  const globalOptions = program.opts();
11684
11726
  await rollbackStage({
11685
11727
  cwd: resolve(globalOptions.cwd ?? process.cwd()),
@@ -11714,7 +11756,7 @@ program.command("deploy:github").description("Let GitHub Actions deploy a stage:
11714
11756
  try {
11715
11757
  const globalOptions = program.opts();
11716
11758
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11717
- const { deployGithubCommand } = await import("./github-CJANTYqi.mjs");
11759
+ const { deployGithubCommand } = await import("./github-DtymyOcH.mjs");
11718
11760
  await deployGithubCommand(options);
11719
11761
  } catch (error) {
11720
11762
  console.error(formatError(error));