@geekmidas/cli 10.0.0-alpha.66 → 10.0.0-alpha.68

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 (151) hide show
  1. package/README.md +110 -178
  2. package/dist/{HostingerProvider-CY_VpVud.mjs → HostingerProvider-D85ayzTi.mjs} +2 -2
  3. package/dist/{HostingerProvider-CY_VpVud.mjs.map → HostingerProvider-D85ayzTi.mjs.map} +1 -1
  4. package/dist/{HostingerProvider-BznqRC2S.cjs → HostingerProvider-dxkwynSs.cjs} +2 -2
  5. package/dist/{HostingerProvider-BznqRC2S.cjs.map → HostingerProvider-dxkwynSs.cjs.map} +1 -1
  6. package/dist/{LegacyStateStore-BFcTT2QL.cjs → LegacyStateStore-BZiO9-Lw.cjs} +2 -2
  7. package/dist/{LegacyStateStore-BFcTT2QL.cjs.map → LegacyStateStore-BZiO9-Lw.cjs.map} +1 -1
  8. package/dist/{LegacyStateStore-CFheFo62.mjs → LegacyStateStore-C39UKwmf.mjs} +2 -2
  9. package/dist/{LegacyStateStore-CFheFo62.mjs.map → LegacyStateStore-C39UKwmf.mjs.map} +1 -1
  10. package/dist/{LocalStateStore-BVUexSvu.cjs → LocalStateStore-DHVsZLyF.cjs} +2 -2
  11. package/dist/{LocalStateStore-BVUexSvu.cjs.map → LocalStateStore-DHVsZLyF.cjs.map} +1 -1
  12. package/dist/{LocalStateStore-Bm3x9oOg.mjs → LocalStateStore-Dk3Wbvzk.mjs} +2 -2
  13. package/dist/{LocalStateStore-Bm3x9oOg.mjs.map → LocalStateStore-Dk3Wbvzk.mjs.map} +1 -1
  14. package/dist/{S3StateStore-CoXBhILd.cjs → S3StateStore--4tYVMAL.cjs} +2 -2
  15. package/dist/{S3StateStore-CoXBhILd.cjs.map → S3StateStore--4tYVMAL.cjs.map} +1 -1
  16. package/dist/{S3StateStore-BFHuctWM.mjs → S3StateStore-B_ZF9eHt.mjs} +2 -2
  17. package/dist/{S3StateStore-BFHuctWM.mjs.map → S3StateStore-B_ZF9eHt.mjs.map} +1 -1
  18. package/dist/{SSMStateStore-BqCA9TP2.cjs → SSMStateStore-ACZ8hRvZ.cjs} +2 -2
  19. package/dist/{SSMStateStore-BqCA9TP2.cjs.map → SSMStateStore-ACZ8hRvZ.cjs.map} +1 -1
  20. package/dist/{SSMStateStore-C1kvHScY.mjs → SSMStateStore-DjPuKqrm.mjs} +2 -2
  21. package/dist/{SSMStateStore-C1kvHScY.mjs.map → SSMStateStore-DjPuKqrm.mjs.map} +1 -1
  22. package/dist/{bundler-Dvaiud0h.mjs → bundler-C-w7aGoZ.mjs} +20 -5
  23. package/dist/bundler-C-w7aGoZ.mjs.map +1 -0
  24. package/dist/{bundler-orRqUJNZ.cjs → bundler-C1pnNrR0.cjs} +20 -5
  25. package/dist/bundler-C1pnNrR0.cjs.map +1 -0
  26. package/dist/{cli-D1JkkOwg.cjs → cli-BLyD4c0O.cjs} +14 -5
  27. package/dist/cli-BLyD4c0O.cjs.map +1 -0
  28. package/dist/{cli-CfHm0AO7.mjs → cli-Ce4pLL5O.mjs} +14 -5
  29. package/dist/cli-Ce4pLL5O.mjs.map +1 -0
  30. package/dist/{compose-CNQL8BnO.mjs → compose-DFxuYhn6.mjs} +291 -152
  31. package/dist/compose-DFxuYhn6.mjs.map +1 -0
  32. package/dist/{compose-jrLy7KGO.cjs → compose-DvsgumY2.cjs} +298 -159
  33. package/dist/compose-DvsgumY2.cjs.map +1 -0
  34. package/dist/{config-4XFxX1al.d.cts → config-BnA0kPTY.d.cts} +3 -3
  35. package/dist/{config-4XFxX1al.d.cts.map → config-BnA0kPTY.d.cts.map} +1 -1
  36. package/dist/{config-UtKzhpFb.d.mts → config-CxEp_g7j.d.mts} +3 -3
  37. package/dist/{config-UtKzhpFb.d.mts.map → config-CxEp_g7j.d.mts.map} +1 -1
  38. package/dist/config.d.cts +3 -3
  39. package/dist/config.d.mts +3 -3
  40. package/dist/{credentials-Bzbg23n8.cjs → credentials-BVs7mrtw.cjs} +239 -3
  41. package/dist/credentials-BVs7mrtw.cjs.map +1 -0
  42. package/dist/{credentials-Dq1MnWQf.mjs → credentials-pAtB70k3.mjs} +223 -5
  43. package/dist/credentials-pAtB70k3.mjs.map +1 -0
  44. package/dist/deploy/public.cjs +21 -17
  45. package/dist/deploy/public.cjs.map +1 -1
  46. package/dist/deploy/public.d.cts +15 -4
  47. package/dist/deploy/public.d.cts.map +1 -1
  48. package/dist/deploy/public.d.mts +15 -4
  49. package/dist/deploy/public.d.mts.map +1 -1
  50. package/dist/deploy/public.mjs +10 -10
  51. package/dist/{deploy-B7aJi_Ah.cjs → deploy-C08GONYW.cjs} +14 -10
  52. package/dist/deploy-C08GONYW.cjs.map +1 -0
  53. package/dist/{deploy-DWn7YfIc.mjs → deploy-D-EVOWvu.mjs} +11 -7
  54. package/dist/deploy-D-EVOWvu.mjs.map +1 -0
  55. package/dist/{dokploy-B4LcYG1E.cjs → dokploy-CZ6nfSV9.cjs} +2 -2
  56. package/dist/{dokploy-B4LcYG1E.cjs.map → dokploy-CZ6nfSV9.cjs.map} +1 -1
  57. package/dist/{dokploy-DalwLML5.mjs → dokploy-DU-XJsoT.mjs} +2 -2
  58. package/dist/{dokploy-DalwLML5.mjs.map → dokploy-DU-XJsoT.mjs.map} +1 -1
  59. package/dist/{encryption-3KlGS1sl.cjs → encryption-CCcBSLZs.cjs} +2 -2
  60. package/dist/{encryption-3KlGS1sl.cjs.map → encryption-CCcBSLZs.cjs.map} +1 -1
  61. package/dist/{encryption-CPfENwWO.mjs → encryption-DSiLau1-.mjs} +2 -2
  62. package/dist/{encryption-CPfENwWO.mjs.map → encryption-DSiLau1-.mjs.map} +1 -1
  63. package/dist/{engine-DR6KurWX.cjs → engine-BM9Dy_DT.cjs} +141 -209
  64. package/dist/engine-BM9Dy_DT.cjs.map +1 -0
  65. package/dist/{engine-CunvOG3s.mjs → engine-llWnMZH5.mjs} +137 -205
  66. package/dist/engine-llWnMZH5.mjs.map +1 -0
  67. package/dist/{github-BJ5gh9bw.cjs → github-ZoMam0OH.cjs} +2 -2
  68. package/dist/{github-BJ5gh9bw.cjs.map → github-ZoMam0OH.cjs.map} +1 -1
  69. package/dist/{github-MXA9v7Ge.mjs → github-yy6WpHIl.mjs} +2 -2
  70. package/dist/{github-MXA9v7Ge.mjs.map → github-yy6WpHIl.mjs.map} +1 -1
  71. package/dist/{index-DD1FfUHh.d.mts → index-CkX89m6S.d.mts} +2 -2
  72. package/dist/{index-CyApaHVe.d.cts.map → index-CkX89m6S.d.mts.map} +1 -1
  73. package/dist/{index-CyApaHVe.d.cts → index-EvZBkycu.d.cts} +2 -2
  74. package/dist/{index-DD1FfUHh.d.mts.map → index-EvZBkycu.d.cts.map} +1 -1
  75. package/dist/index.cjs +59 -70
  76. package/dist/index.cjs.map +1 -1
  77. package/dist/index.mjs +55 -66
  78. package/dist/index.mjs.map +1 -1
  79. package/dist/{migrate-BJBcm4sG.mjs → migrate-BWPuwiXk.mjs} +2 -2
  80. package/dist/{migrate-BJBcm4sG.mjs.map → migrate-BWPuwiXk.mjs.map} +1 -1
  81. package/dist/{migrate-CF4J4GQS.cjs → migrate-tOwxQBTI.cjs} +2 -2
  82. package/dist/{migrate-CF4J4GQS.cjs.map → migrate-tOwxQBTI.cjs.map} +1 -1
  83. package/dist/openapi.d.cts +1 -1
  84. package/dist/openapi.d.mts +1 -1
  85. package/dist/reconcile/public.d.cts +1 -1
  86. package/dist/reconcile/public.d.mts +1 -1
  87. package/dist/{resolve-CVmch0wI.cjs → resolve-BymzGtuT.cjs} +4 -4
  88. package/dist/{resolve-CVmch0wI.cjs.map → resolve-BymzGtuT.cjs.map} +1 -1
  89. package/dist/{resolve-Db0tNlrW.mjs → resolve-pIvXlZ1h.mjs} +4 -4
  90. package/dist/{resolve-Db0tNlrW.mjs.map → resolve-pIvXlZ1h.mjs.map} +1 -1
  91. package/dist/{rollback-DvAo4OKS.mjs → rollback-ZlsbQOvj.mjs} +5 -6
  92. package/dist/{rollback-DvAo4OKS.mjs.map → rollback-ZlsbQOvj.mjs.map} +1 -1
  93. package/dist/{rollback-DxJK84hy.cjs → rollback-zdfi6Reg.cjs} +6 -7
  94. package/dist/{rollback-DxJK84hy.cjs.map → rollback-zdfi6Reg.cjs.map} +1 -1
  95. package/dist/run-BJLIerMM.mjs +133 -0
  96. package/dist/run-BJLIerMM.mjs.map +1 -0
  97. package/dist/run-fVZ-rLnc.cjs +174 -0
  98. package/dist/run-fVZ-rLnc.cjs.map +1 -0
  99. package/dist/{runtime-BRqFOvPM.d.cts → runtime-B3jNgeP-.d.mts} +2 -2
  100. package/dist/{runtime-BRqFOvPM.d.cts.map → runtime-B3jNgeP-.d.mts.map} +1 -1
  101. package/dist/{runtime-CEk5n4VH.d.mts → runtime-DWThEP-r.d.cts} +2 -2
  102. package/dist/{runtime-CEk5n4VH.d.mts.map → runtime-DWThEP-r.d.cts.map} +1 -1
  103. package/dist/{sniffer-BAQhLEsI.mjs → sniffer-BdFeLSmA.mjs} +8 -60
  104. package/dist/sniffer-BdFeLSmA.mjs.map +1 -0
  105. package/dist/{sniffer-5xmrkh2a.cjs → sniffer-D66HIvi9.cjs} +7 -77
  106. package/dist/sniffer-D66HIvi9.cjs.map +1 -0
  107. package/dist/{sst-B2HbrDR3.mjs → sst-DRi3H5TB.mjs} +3 -3
  108. package/dist/{sst-B2HbrDR3.mjs.map → sst-DRi3H5TB.mjs.map} +1 -1
  109. package/dist/{sst-DcfsVH6x.cjs → sst-hBrKouBy.cjs} +5 -5
  110. package/dist/{sst-DcfsVH6x.cjs.map → sst-hBrKouBy.cjs.map} +1 -1
  111. package/dist/{state-uuYqnRVO.mjs → state-Bn5JDMFT.mjs} +1717 -1334
  112. package/dist/state-Bn5JDMFT.mjs.map +1 -0
  113. package/dist/{state-Y6ATakMX.cjs → state-CHZqCDRC.cjs} +2863 -2354
  114. package/dist/state-CHZqCDRC.cjs.map +1 -0
  115. package/dist/target/public.cjs +1 -1
  116. package/dist/target/public.d.cts +2 -2
  117. package/dist/target/public.d.mts +2 -2
  118. package/dist/target/public.mjs +1 -1
  119. package/dist/{terminal-DUhcZ1ND.mjs → terminal-C3cv-OQu.mjs} +2 -2
  120. package/dist/{terminal-DUhcZ1ND.mjs.map → terminal-C3cv-OQu.mjs.map} +1 -1
  121. package/dist/{terminal-CHy_MdjG.cjs → terminal-DjzgLu6m.cjs} +2 -2
  122. package/dist/{terminal-CHy_MdjG.cjs.map → terminal-DjzgLu6m.cjs.map} +1 -1
  123. package/dist/{types-CSw2w69a.d.mts → types-CZdCxUCK.d.cts} +64 -2
  124. package/dist/types-CZdCxUCK.d.cts.map +1 -0
  125. package/dist/{types-D5WIxRDP.d.cts → types-Da0E3Qv7.d.mts} +63 -3
  126. package/dist/types-Da0E3Qv7.d.mts.map +1 -0
  127. package/dist/workspace/index.d.cts +2 -2
  128. package/dist/workspace/index.d.mts +2 -2
  129. package/package.json +13 -13
  130. package/dist/bundler-Dvaiud0h.mjs.map +0 -1
  131. package/dist/bundler-orRqUJNZ.cjs.map +0 -1
  132. package/dist/cli-CfHm0AO7.mjs.map +0 -1
  133. package/dist/cli-D1JkkOwg.cjs.map +0 -1
  134. package/dist/compose-CNQL8BnO.mjs.map +0 -1
  135. package/dist/compose-jrLy7KGO.cjs.map +0 -1
  136. package/dist/credentials-Bzbg23n8.cjs.map +0 -1
  137. package/dist/credentials-Dq1MnWQf.mjs.map +0 -1
  138. package/dist/deploy-B7aJi_Ah.cjs.map +0 -1
  139. package/dist/deploy-DWn7YfIc.mjs.map +0 -1
  140. package/dist/engine-CunvOG3s.mjs.map +0 -1
  141. package/dist/engine-DR6KurWX.cjs.map +0 -1
  142. package/dist/local-BdH4XN0E.cjs +0 -409
  143. package/dist/local-BdH4XN0E.cjs.map +0 -1
  144. package/dist/local-CWR4Y_kW.mjs +0 -350
  145. package/dist/local-CWR4Y_kW.mjs.map +0 -1
  146. package/dist/sniffer-5xmrkh2a.cjs.map +0 -1
  147. package/dist/sniffer-BAQhLEsI.mjs.map +0 -1
  148. package/dist/state-Y6ATakMX.cjs.map +0 -1
  149. package/dist/state-uuYqnRVO.mjs.map +0 -1
  150. package/dist/types-CSw2w69a.d.mts.map +0 -1
  151. package/dist/types-D5WIxRDP.d.cts.map +0 -1
package/dist/index.mjs CHANGED
@@ -1,21 +1,21 @@
1
1
  #!/usr/bin/env -S npx tsx
2
2
  import { n as __require, t as __exportAll } from "./rolldown-runtime-BhDjJH2R.mjs";
3
- import { i as CommandFailed, o as DEFAULT_TIMEOUT_MS, t as LocalSandbox } from "./local-CWR4Y_kW.mjs";
4
- import { a as getDokployCredentials, d as storeHostingerToken, i as getCredentialsPath, l as removeDokployCredentials, o as getDokployRegistryId, s as getDokployToken, u as storeDokployCredentials } from "./credentials-Dq1MnWQf.mjs";
3
+ import { r as DEFAULT_TIMEOUT_MS, t as CommandFailed } from "./run-BJLIerMM.mjs";
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
5
  import { l as withOwningTsconfigJsx, r as discover, u as ConstructGenerator } from "./discover-BFoJWKGD.mjs";
6
6
  import { t as appKey } from "./derive-B4vDpzgP.mjs";
7
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";
8
8
  import { ConfigNotFound, NotABackendApp, NotInAnApp, loadAppConfig, loadConfig, loadWorkspaceConfig, loadWorkspaceSettings, parseModuleConfig } from "./config.mjs";
9
- import { $ as describeServices, A as reconcileWorkspace, At as withCustomSecret, D as backendsOf$1, Dt as maskPassword, E as FAKE_ENV, F as postgresDatabaseNames, J as cacheBackendFor, L as quoteIdentifier, M as LOCAL_CA_PATH, N as forgetState, O as constructGlobs, X as providerOf, at as findAvailablePort, ct as loadSecretsForApp, dt as secretsStoreFor, et as fakeKey, gt as projectKey, it as createEntryWrapper, k as derivedContainers, kt as toEmbeddableSecrets, lt as prepareEntryCredentials, mt as getKeyPath, nt as primaryPortKey, ot as isPortAvailable, pt as FileSecretsStore, rt as createCredentialsPreload, st as loadEnvFiles, v as dockerCommand, yt as deployIdentity, z as pgClient } from "./state-uuYqnRVO.mjs";
9
+ import { $ as quoteIdentifier, At as prepareEntryCredentials, B as backendsOf$1, Bt as deployIdentity, Ct as primaryPortKey, Dt as isPortAvailable, Et as findAvailablePort, Ft as getKeyPath, G as LOCAL_CA_PATH, H as derivedContainers, Jt as maskPassword, K as forgetState, Lt as projectKey, Mt as secretsStoreFor, Ot as loadEnvFiles, P as parseDevServices, Pt as FileSecretsStore, R as keyFingerprint, Tt as createEntryWrapper, U as reconcileWorkspace, V as constructGlobs, Xt as toEmbeddableSecrets, Z as postgresDatabaseNames, Zt as withCustomSecret, _t as providerOf, bt as describeServices, ht as cacheBackendFor, kt as loadSecretsForApp, nt as pgClient, wt as createCredentialsPreload, xt as fakeKey, y as dockerCommand, z as FAKE_ENV } from "./state-Bn5JDMFT.mjs";
10
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, x as keyFingerprint } from "./sniffer-BAQhLEsI.mjs";
11
+ import { g as createStateStore, n as sniffAppEnvironment, o as DokployApi } from "./sniffer-BdFeLSmA.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
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";
15
15
  import { n as withCompute, r as withRoutes, t as manifestModule } from "./emit-C1e8qD08.mjs";
16
- import { t as deploy$1 } from "./deploy-DWn7YfIc.mjs";
17
- import { a as dockerCompose, i as stackDir, r as composeProject, t as composeTarget } from "./compose-CNQL8BnO.mjs";
18
- import { t as LocalStateStore } from "./LocalStateStore-Bm3x9oOg.mjs";
16
+ import { t as deploy$1 } from "./deploy-D-EVOWvu.mjs";
17
+ import { a as dockerCompose, i as stackDir, r as composeProject, t as composeTarget } from "./compose-DFxuYhn6.mjs";
18
+ import { t as LocalStateStore } from "./LocalStateStore-Dk3Wbvzk.mjs";
19
19
  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
20
  import { createRequire } from "node:module";
21
21
  import { basename, dirname, isAbsolute, join, relative, resolve } from "node:path";
@@ -46,7 +46,7 @@ import { Function } from "@geekmidas/constructs/functions";
46
46
  import { Queue } from "@geekmidas/constructs/queue";
47
47
  import { Topic } from "@geekmidas/constructs/topic";
48
48
  //#region package.json
49
- var version = "10.0.0-alpha.66";
49
+ var version = "10.0.0-alpha.68";
50
50
  //#endregion
51
51
  //#region src/prompt.ts
52
52
  /**
@@ -129,7 +129,7 @@ const logger$8 = console;
129
129
  * Validate Dokploy token by making a test API call
130
130
  */
131
131
  async function validateDokployToken(endpoint, token) {
132
- const { DokployApi } = await import("./sniffer-BAQhLEsI.mjs").then((n) => n.c);
132
+ const { DokployApi } = await import("./sniffer-BdFeLSmA.mjs").then((n) => n.c);
133
133
  return new DokployApi({
134
134
  baseUrl: endpoint,
135
135
  token
@@ -2035,9 +2035,9 @@ async function workspaceDevCommand(configured, options) {
2035
2035
  for (const { id, port } of fakes) logger$5.log(`🎭 ${id} fake: http://localhost:${port}`);
2036
2036
  logger$5.log(options.migrate || options.seed ? "🗄️ Migrating the databases" : "🗄️ Checking for pending migrations");
2037
2037
  if (options.migrate || options.seed) {
2038
- const { prepareDevDatabases } = await import("./migrate-BJBcm4sG.mjs");
2038
+ const { prepareDevDatabases } = await import("./migrate-BWPuwiXk.mjs");
2039
2039
  await prepareDevDatabases(workspace, reconciled.env, { seed: !!options.seed });
2040
- } else await import("./migrate-BJBcm4sG.mjs").then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
2040
+ } else await import("./migrate-BWPuwiXk.mjs").then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
2041
2041
  logger$5.log(`⚠️ Could not check for pending migrations: ${error instanceof Error ? error.message : String(error)}`);
2042
2042
  });
2043
2043
  const appUrls = {};
@@ -3417,7 +3417,7 @@ async function buildApp(input) {
3417
3417
  if (production?.bundle && !input.skipBundle) {
3418
3418
  const outputDir = join(appRoot, ".gkm", "server");
3419
3419
  const entryPoint = await writeSurfaceServer(outputDir, production);
3420
- const { bundleServer } = await import("./bundler-Dvaiud0h.mjs");
3420
+ const { bundleServer } = await import("./bundler-C-w7aGoZ.mjs");
3421
3421
  await bundleServer({
3422
3422
  entryPoint,
3423
3423
  outputDir: join(outputDir, "dist"),
@@ -3555,7 +3555,7 @@ async function buildForTarget(target, context, appRoot, workspaceRoot, endpointG
3555
3555
  let masterKey;
3556
3556
  if (context.production?.bundle && !skipBundle) {
3557
3557
  logger$4.log(`\n📦 Bundling production server...`);
3558
- const { bundleServer } = await import("./bundler-Dvaiud0h.mjs");
3558
+ const { bundleServer } = await import("./bundler-C-w7aGoZ.mjs");
3559
3559
  const allConstructs = [
3560
3560
  ...endpoints.map((e) => e.construct),
3561
3561
  ...functions.map((f) => f.construct),
@@ -3800,11 +3800,12 @@ var ComposeModeConflict = class extends Error {
3800
3800
  }
3801
3801
  };
3802
3802
  /** `gkm compose`. */
3803
- async function composeCommand(options = {}, deps = {}) {
3803
+ async function composeCommand(options, deps = {}) {
3804
3804
  if (options.build && options.pull) throw new ComposeModeConflict();
3805
+ const allowDevServices = parseDevServices(options.allowDevServices);
3805
3806
  const cwd = resolve(options.cwd ?? process.cwd());
3806
3807
  const { workspace } = await loadWorkspaceConfig(cwd);
3807
- const stage = options.stage ?? workspace.stages.local;
3808
+ const { stage } = options;
3808
3809
  if (options.down) {
3809
3810
  const ref = {
3810
3811
  project: composeProject(deployIdentity(workspace, stage)),
@@ -3831,6 +3832,7 @@ async function composeCommand(options = {}, deps = {}) {
3831
3832
  }) },
3832
3833
  ...tag ? { tag } : {},
3833
3834
  ...options.dryRun ? { dryRun: true } : {},
3835
+ ...allowDevServices.length > 0 ? { allowDevServices } : {},
3834
3836
  logger: {
3835
3837
  info: (message) => console.log(message),
3836
3838
  warn: (message) => console.warn(message),
@@ -5250,25 +5252,25 @@ function loadPackageJson() {
5250
5252
  * Run: pnpm --filter @geekmidas/cli sync-versions
5251
5253
  */
5252
5254
  const GEEKMIDAS_VERSIONS = {
5253
- "@geekmidas/audit": "~10.0.0-alpha.66",
5254
- "@geekmidas/auth": "~10.0.0-alpha.66",
5255
- "@geekmidas/cache": "~10.0.0-alpha.66",
5256
- "@geekmidas/client": "~10.0.0-alpha.66",
5257
- "@geekmidas/cloud": "~10.0.0-alpha.66",
5258
- "@geekmidas/constructs": "~10.0.0-alpha.66",
5259
- "@geekmidas/db": "~10.0.0-alpha.66",
5260
- "@geekmidas/emailkit": "~10.0.0-alpha.66",
5261
- "@geekmidas/envkit": "~10.0.0-alpha.66",
5262
- "@geekmidas/errors": "~10.0.0-alpha.66",
5263
- "@geekmidas/events": "~10.0.0-alpha.66",
5264
- "@geekmidas/logger": "~10.0.0-alpha.66",
5265
- "@geekmidas/manifest": "~10.0.0-alpha.66",
5266
- "@geekmidas/rate-limit": "~10.0.0-alpha.66",
5267
- "@geekmidas/schema": "~10.0.0-alpha.66",
5268
- "@geekmidas/services": "~10.0.0-alpha.66",
5269
- "@geekmidas/storage": "~10.0.0-alpha.66",
5270
- "@geekmidas/telescope": "~10.0.0-alpha.66",
5271
- "@geekmidas/testkit": "~10.0.0-alpha.66",
5255
+ "@geekmidas/audit": "~10.0.0-alpha.68",
5256
+ "@geekmidas/auth": "~10.0.0-alpha.68",
5257
+ "@geekmidas/cache": "~10.0.0-alpha.68",
5258
+ "@geekmidas/client": "~10.0.0-alpha.68",
5259
+ "@geekmidas/cloud": "~10.0.0-alpha.68",
5260
+ "@geekmidas/constructs": "~10.0.0-alpha.68",
5261
+ "@geekmidas/db": "~10.0.0-alpha.68",
5262
+ "@geekmidas/emailkit": "~10.0.0-alpha.68",
5263
+ "@geekmidas/envkit": "~10.0.0-alpha.68",
5264
+ "@geekmidas/errors": "~10.0.0-alpha.68",
5265
+ "@geekmidas/events": "~10.0.0-alpha.68",
5266
+ "@geekmidas/logger": "~10.0.0-alpha.68",
5267
+ "@geekmidas/manifest": "~10.0.0-alpha.68",
5268
+ "@geekmidas/rate-limit": "~10.0.0-alpha.68",
5269
+ "@geekmidas/schema": "~10.0.0-alpha.68",
5270
+ "@geekmidas/services": "~10.0.0-alpha.68",
5271
+ "@geekmidas/storage": "~10.0.0-alpha.68",
5272
+ "@geekmidas/telescope": "~10.0.0-alpha.68",
5273
+ "@geekmidas/testkit": "~10.0.0-alpha.68",
5272
5274
  "@geekmidas/cli": `~${loadPackageJson().version}`
5273
5275
  };
5274
5276
  //#endregion
@@ -11031,7 +11033,7 @@ function testDatabases(reconciled) {
11031
11033
  * starts without the reference data the app needs.
11032
11034
  */
11033
11035
  async function migrateTestStage(workspace, env) {
11034
- const { migrateAndSeed } = await import("./migrate-BJBcm4sG.mjs");
11036
+ const { migrateAndSeed } = await import("./migrate-BWPuwiXk.mjs");
11035
11037
  const { discover } = await import("./discover-BFoJWKGD.mjs").then((n) => n.i);
11036
11038
  const sources = {};
11037
11039
  const manifest = await discover({
@@ -11462,7 +11464,7 @@ program.command("migrate").description("Apply each database construct's migratio
11462
11464
  try {
11463
11465
  const globalOptions = program.opts();
11464
11466
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11465
- const { migrateCommand } = await import("./migrate-BJBcm4sG.mjs");
11467
+ const { migrateCommand } = await import("./migrate-BWPuwiXk.mjs");
11466
11468
  await migrateCommand({
11467
11469
  ...options,
11468
11470
  ...construct ? { construct } : {}
@@ -11476,7 +11478,7 @@ program.command("seed").description("Migrate, then run each database construct's
11476
11478
  try {
11477
11479
  const globalOptions = program.opts();
11478
11480
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11479
- const { seedCommand } = await import("./migrate-BJBcm4sG.mjs");
11481
+ const { seedCommand } = await import("./migrate-BWPuwiXk.mjs");
11480
11482
  await seedCommand({
11481
11483
  ...options,
11482
11484
  ...construct ? { construct } : {}
@@ -11490,7 +11492,7 @@ program.command("migration").description("Write a construct's next migration: an
11490
11492
  try {
11491
11493
  const globalOptions = program.opts();
11492
11494
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11493
- const { migrationCommand } = await import("./migrate-BJBcm4sG.mjs");
11495
+ const { migrationCommand } = await import("./migrate-BWPuwiXk.mjs");
11494
11496
  await migrationCommand({
11495
11497
  construct,
11496
11498
  ...name ? { name } : {}
@@ -11525,7 +11527,7 @@ program.command("openapi").description("Generate OpenAPI specification from endp
11525
11527
  process.exit(1);
11526
11528
  }
11527
11529
  });
11528
- program.command("docker").description("Generate Docker deployment files").option("--build", "Build Docker image after generating files").option("--push", "Push image to registry after building").option("--tag <tag>", "Image tag", "latest").option("--registry <registry>", "Container registry URL").option("--slim", "Use slim Dockerfile (assumes pre-built bundle exists)").option("--turbo", "Use turbo prune for monorepo optimization").option("--turbo-package <name>", "Package name for turbo prune").action(async (options) => {
11530
+ program.command("docker").description("Generate Docker deployment files").option("--build", "Build Docker image after generating files").option("--push", "Push image to registry after building").option("--tag <tag>", "Image tag", "latest").option("--registry <registry>", "Container registry URL").action(async (options) => {
11529
11531
  try {
11530
11532
  const globalOptions = program.opts();
11531
11533
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
@@ -11535,7 +11537,7 @@ program.command("docker").description("Generate Docker deployment files").option
11535
11537
  process.exit(1);
11536
11538
  }
11537
11539
  });
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) => {
11540
+ 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
11541
  try {
11540
11542
  const globalOptions = program.opts();
11541
11543
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
@@ -11545,30 +11547,16 @@ program.command("compose").description("Run the workspace's APIs and sites for a
11545
11547
  process.exit(1);
11546
11548
  }
11547
11549
  });
11548
- program.command("prepack").description("Generate Docker files for production deployment").option("--build", "Build Docker image after generating files").option("--push", "Push image to registry after building").option("--tag <tag>", "Image tag", "latest").option("--registry <registry>", "Container registry URL").option("--slim", "Build locally first, then use slim Dockerfile").option("--skip-bundle", "Skip bundling step (only with --slim)").option("--turbo", "Use turbo prune for monorepo optimization").option("--turbo-package <name>", "Package name for turbo prune").action(async (options) => {
11550
+ program.command("prepack").description("Generate Docker files for production deployment").option("--build", "Build Docker image after generating files").option("--push", "Push image to registry after building").option("--tag <tag>", "Image tag", "latest").option("--registry <registry>", "Container registry URL").action(async (options) => {
11549
11551
  try {
11550
11552
  const globalOptions = program.opts();
11551
11553
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11552
- if (options.slim) await buildCommand({
11553
- provider: "server",
11554
- production: true,
11555
- skipBundle: options.skipBundle
11556
- });
11557
11554
  await dockerCommand({
11558
11555
  build: options.build,
11559
11556
  push: options.push,
11560
11557
  tag: options.tag,
11561
- registry: options.registry,
11562
- slim: options.slim,
11563
- turbo: options.turbo,
11564
- turboPackage: options.turboPackage
11558
+ registry: options.registry
11565
11559
  });
11566
- if (options.slim) {}
11567
- if (options.build) {
11568
- const tag = options.tag ?? "latest";
11569
- const registry = options.registry;
11570
- registry ? `${registry}${tag}` : `${tag}`;
11571
- }
11572
11560
  } catch (error) {
11573
11561
  console.error(formatError(error));
11574
11562
  process.exit(1);
@@ -11598,7 +11586,7 @@ program.command("encryption:rotate").description("Add a new current key to an En
11598
11586
  try {
11599
11587
  const globalOptions = program.opts();
11600
11588
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11601
- const { encryptionRotateCommand } = await import("./encryption-CPfENwWO.mjs");
11589
+ const { encryptionRotateCommand } = await import("./encryption-DSiLau1-.mjs");
11602
11590
  await encryptionRotateCommand(construct, options);
11603
11591
  } catch (error) {
11604
11592
  console.error(formatError(error));
@@ -11609,7 +11597,7 @@ program.command("encryption:retire").description("Remove an old key from an Encr
11609
11597
  try {
11610
11598
  const globalOptions = program.opts();
11611
11599
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11612
- const { encryptionRetireCommand } = await import("./encryption-CPfENwWO.mjs");
11600
+ const { encryptionRetireCommand } = await import("./encryption-DSiLau1-.mjs");
11613
11601
  await encryptionRetireCommand(construct, key, options);
11614
11602
  } catch (error) {
11615
11603
  console.error(formatError(error));
@@ -11652,7 +11640,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
11652
11640
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11653
11641
  const { loadWorkspaceConfig } = await import("./config.mjs");
11654
11642
  const { reconcileMissingSecrets } = await import("./reconcile--I7V4Klj.mjs");
11655
- const { secretsStoreFor } = await import("./state-uuYqnRVO.mjs").then((n) => n.ft);
11643
+ const { secretsStoreFor } = await import("./state-Bn5JDMFT.mjs").then((n) => n.Nt);
11656
11644
  const { workspace } = await loadWorkspaceConfig();
11657
11645
  const stage = options.stage ?? workspace.stages.local;
11658
11646
  const store = await secretsStoreFor(workspace, stage);
@@ -11661,7 +11649,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
11661
11649
  console.error(`No secrets found for stage "${stage}". Run "gkm secrets:init --stage ${stage}" first.`);
11662
11650
  process.exit(1);
11663
11651
  }
11664
- const { derivedContainers } = await import("./state-uuYqnRVO.mjs").then((n) => n.j);
11652
+ const { derivedContainers } = await import("./state-Bn5JDMFT.mjs").then((n) => n.W);
11665
11653
  const result = reconcileMissingSecrets(secrets, workspace, await derivedContainers(workspace, stage));
11666
11654
  if (!result) {
11667
11655
  console.log(`\n✓ Secrets for stage "${stage}" are up-to-date`);
@@ -11675,8 +11663,8 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
11675
11663
  process.exit(1);
11676
11664
  }
11677
11665
  });
11678
- 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) => {
11679
- const { deployCli } = await import("./cli-CfHm0AO7.mjs");
11666
+ 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) => {
11667
+ const { deployCli } = await import("./cli-Ce4pLL5O.mjs");
11680
11668
  const globalOptions = program.opts();
11681
11669
  const code = await deployCli({
11682
11670
  cwd: resolve(globalOptions.cwd ?? process.cwd()),
@@ -11686,14 +11674,15 @@ program.command("deploy").description("Deploy a stage through its target").optio
11686
11674
  ...options.tag ? { tag: options.tag } : {},
11687
11675
  ...options.json ? { json: true } : {},
11688
11676
  ...options.dryRun ? { dryRun: true } : {},
11689
- ...options.atomic ? { atomic: true } : {}
11677
+ ...options.atomic ? { atomic: true } : {},
11678
+ ...options.allowDevServices ? { allowDevServices: options.allowDevServices } : {}
11690
11679
  });
11691
11680
  if (code !== 0) process.exit(code);
11692
11681
  });
11693
11682
  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) => {
11694
11683
  try {
11695
- const { rollbackStage } = await import("./rollback-DvAo4OKS.mjs").then((n) => n.a);
11696
- const { terminalCredentials } = await import("./terminal-DUhcZ1ND.mjs");
11684
+ const { rollbackStage } = await import("./rollback-ZlsbQOvj.mjs").then((n) => n.a);
11685
+ const { terminalCredentials } = await import("./terminal-C3cv-OQu.mjs");
11697
11686
  const globalOptions = program.opts();
11698
11687
  await rollbackStage({
11699
11688
  cwd: resolve(globalOptions.cwd ?? process.cwd()),
@@ -11728,7 +11717,7 @@ program.command("deploy:github").description("Let GitHub Actions deploy a stage:
11728
11717
  try {
11729
11718
  const globalOptions = program.opts();
11730
11719
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11731
- const { deployGithubCommand } = await import("./github-MXA9v7Ge.mjs");
11720
+ const { deployGithubCommand } = await import("./github-yy6WpHIl.mjs");
11732
11721
  await deployGithubCommand(options);
11733
11722
  } catch (error) {
11734
11723
  console.error(formatError(error));