@geekmidas/cli 10.0.0-alpha.83 → 10.0.0-alpha.84

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 (167) hide show
  1. package/dist/{EndpointGenerator-DtnIGafh.mjs → EndpointGenerator-CVc6Oi1Y.mjs} +185 -82
  2. package/dist/EndpointGenerator-CVc6Oi1Y.mjs.map +1 -0
  3. package/dist/{EndpointGenerator-cKlnllIu.cjs → EndpointGenerator-CwLjBCFE.cjs} +203 -82
  4. package/dist/EndpointGenerator-CwLjBCFE.cjs.map +1 -0
  5. package/dist/{LegacyStateStore-DFO3aJgs.mjs → LegacyStateStore-CTsUFLNQ.mjs} +2 -2
  6. package/dist/{LegacyStateStore-DFO3aJgs.mjs.map → LegacyStateStore-CTsUFLNQ.mjs.map} +1 -1
  7. package/dist/{LegacyStateStore-iUWVxrXU.cjs → LegacyStateStore-EDT2TUSe.cjs} +2 -2
  8. package/dist/{LegacyStateStore-iUWVxrXU.cjs.map → LegacyStateStore-EDT2TUSe.cjs.map} +1 -1
  9. package/dist/{LocalStateStore-BsFHdSeA.cjs → LocalStateStore-CdpzTvPn.cjs} +2 -2
  10. package/dist/{LocalStateStore-BsFHdSeA.cjs.map → LocalStateStore-CdpzTvPn.cjs.map} +1 -1
  11. package/dist/{LocalStateStore-DIfuh0Z1.mjs → LocalStateStore-D1VfxRuK.mjs} +2 -2
  12. package/dist/{LocalStateStore-DIfuh0Z1.mjs.map → LocalStateStore-D1VfxRuK.mjs.map} +1 -1
  13. package/dist/{OpenApiTsGenerator-CdUM6Hvv.cjs → OpenApiTsGenerator-B--HV-sW.cjs} +2 -2
  14. package/dist/{OpenApiTsGenerator-CdUM6Hvv.cjs.map → OpenApiTsGenerator-B--HV-sW.cjs.map} +1 -1
  15. package/dist/{OpenApiTsGenerator-ByRPMbBN.mjs → OpenApiTsGenerator-CkvsPdgg.mjs} +2 -2
  16. package/dist/{OpenApiTsGenerator-ByRPMbBN.mjs.map → OpenApiTsGenerator-CkvsPdgg.mjs.map} +1 -1
  17. package/dist/{S3StateStore-ytvpIiv8.cjs → S3StateStore-BPM74zwv.cjs} +2 -2
  18. package/dist/{S3StateStore-ytvpIiv8.cjs.map → S3StateStore-BPM74zwv.cjs.map} +1 -1
  19. package/dist/{S3StateStore-DR2f78Dj.mjs → S3StateStore-DVZ1YuGJ.mjs} +2 -2
  20. package/dist/{S3StateStore-DR2f78Dj.mjs.map → S3StateStore-DVZ1YuGJ.mjs.map} +1 -1
  21. package/dist/{SSMStateStore-BZ3XL0Mr.mjs → SSMStateStore-DLvnGyyl.mjs} +2 -2
  22. package/dist/{SSMStateStore-BZ3XL0Mr.mjs.map → SSMStateStore-DLvnGyyl.mjs.map} +1 -1
  23. package/dist/{SSMStateStore-C1JruCD9.cjs → SSMStateStore-qerm5c36.cjs} +2 -2
  24. package/dist/{SSMStateStore-C1JruCD9.cjs.map → SSMStateStore-qerm5c36.cjs.map} +1 -1
  25. package/dist/{SubscriberGenerator-DQZeGkDW.mjs → SubscriberGenerator-BPqQf8fB.mjs} +2 -2
  26. package/dist/{SubscriberGenerator-DQZeGkDW.mjs.map → SubscriberGenerator-BPqQf8fB.mjs.map} +1 -1
  27. package/dist/{SubscriberGenerator-CYriX5BV.cjs → SubscriberGenerator-BVn7cQ-2.cjs} +2 -2
  28. package/dist/{SubscriberGenerator-CYriX5BV.cjs.map → SubscriberGenerator-BVn7cQ-2.cjs.map} +1 -1
  29. package/dist/{add-Bwddb4KD.cjs → add-BQ8v1ZII.cjs} +3 -3
  30. package/dist/{add-Bwddb4KD.cjs.map → add-BQ8v1ZII.cjs.map} +1 -1
  31. package/dist/{add-DkBEZ5_s.mjs → add-DbnzC7Kl.mjs} +3 -3
  32. package/dist/{add-DkBEZ5_s.mjs.map → add-DbnzC7Kl.mjs.map} +1 -1
  33. package/dist/{bundler-B8TGsunu.mjs → bundler-D4030Afw.mjs} +5 -5
  34. package/dist/{bundler-B8TGsunu.mjs.map → bundler-D4030Afw.mjs.map} +1 -1
  35. package/dist/{bundler-BkH1kPEX.cjs → bundler-DjrRffko.cjs} +5 -5
  36. package/dist/{bundler-BkH1kPEX.cjs.map → bundler-DjrRffko.cjs.map} +1 -1
  37. package/dist/{cli-DO7DQqCq.cjs → cli-D8YQAYUX.cjs} +3 -3
  38. package/dist/{cli-DO7DQqCq.cjs.map → cli-D8YQAYUX.cjs.map} +1 -1
  39. package/dist/{cli-BgDd4cZB.mjs → cli-DwTa9d_8.mjs} +3 -3
  40. package/dist/{cli-BgDd4cZB.mjs.map → cli-DwTa9d_8.mjs.map} +1 -1
  41. package/dist/{compose-BPJ9bUKp.mjs → compose-C5wz8mf9.mjs} +64 -24
  42. package/dist/compose-C5wz8mf9.mjs.map +1 -0
  43. package/dist/{compose-CGyxYe-h.cjs → compose-DqWh1TaO.cjs} +64 -24
  44. package/dist/compose-DqWh1TaO.cjs.map +1 -0
  45. package/dist/{config-DMdzdO5u.d.cts → config-BzIfP8a-.d.cts} +16 -3
  46. package/dist/config-BzIfP8a-.d.cts.map +1 -0
  47. package/dist/{config-BBFiH4qk.d.mts → config-DhdzmndX.d.mts} +16 -3
  48. package/dist/config-DhdzmndX.d.mts.map +1 -0
  49. package/dist/config.cjs +1 -1
  50. package/dist/config.d.cts +3 -3
  51. package/dist/config.d.mts +3 -3
  52. package/dist/config.mjs +1 -1
  53. package/dist/deploy/public.cjs +6 -6
  54. package/dist/deploy/public.d.cts +3 -3
  55. package/dist/deploy/public.d.cts.map +1 -1
  56. package/dist/deploy/public.d.mts +3 -3
  57. package/dist/deploy/public.d.mts.map +1 -1
  58. package/dist/deploy/public.mjs +6 -6
  59. package/dist/{deploy-0XpZDYAr.mjs → deploy-BwIKGxWH.mjs} +14 -5
  60. package/dist/deploy-BwIKGxWH.mjs.map +1 -0
  61. package/dist/{deploy-BlZx6J5x.cjs → deploy-C8sWg81_.cjs} +14 -5
  62. package/dist/deploy-C8sWg81_.cjs.map +1 -0
  63. package/dist/{dokploy-rjXmkuwH.cjs → dokploy-BkRxJbfi.cjs} +2 -2
  64. package/dist/{dokploy-rjXmkuwH.cjs.map → dokploy-BkRxJbfi.cjs.map} +1 -1
  65. package/dist/{dokploy-Crh4uDmP.mjs → dokploy-ijjms1-h.mjs} +2 -2
  66. package/dist/{dokploy-Crh4uDmP.mjs.map → dokploy-ijjms1-h.mjs.map} +1 -1
  67. package/dist/{drivers-B4RP2B2O.mjs → drivers-DTZzxeIl.mjs} +2 -2
  68. package/dist/{drivers-B4RP2B2O.mjs.map → drivers-DTZzxeIl.mjs.map} +1 -1
  69. package/dist/{drivers-CJx76mcb.cjs → drivers-LYSdQDmd.cjs} +2 -2
  70. package/dist/{drivers-CJx76mcb.cjs.map → drivers-LYSdQDmd.cjs.map} +1 -1
  71. package/dist/{encryption-0eo9aY_H.mjs → encryption-BRcBAmjL.mjs} +3 -3
  72. package/dist/{encryption-0eo9aY_H.mjs.map → encryption-BRcBAmjL.mjs.map} +1 -1
  73. package/dist/{encryption-CxTfRx4h.cjs → encryption-g6PzwwfL.cjs} +3 -3
  74. package/dist/{encryption-CxTfRx4h.cjs.map → encryption-g6PzwwfL.cjs.map} +1 -1
  75. package/dist/{engine-DxWswfXe.mjs → engine-BP0CZ5fh.mjs} +33 -13
  76. package/dist/engine-BP0CZ5fh.mjs.map +1 -0
  77. package/dist/{engine-CMzSebbs.cjs → engine-DLEJsZ3i.cjs} +33 -13
  78. package/dist/engine-DLEJsZ3i.cjs.map +1 -0
  79. package/dist/{github-Dukt5cJe.cjs → github-B8YjwdLK.cjs} +3 -3
  80. package/dist/{github-Dukt5cJe.cjs.map → github-B8YjwdLK.cjs.map} +1 -1
  81. package/dist/{github-HOfOpFI_.mjs → github-Zs-dVJbR.mjs} +3 -3
  82. package/dist/{github-HOfOpFI_.mjs.map → github-Zs-dVJbR.mjs.map} +1 -1
  83. package/dist/{index-Wuqpf316.d.mts → index-D1ODeM9s.d.cts} +2 -2
  84. package/dist/{index-DFrbhRwg.d.cts.map → index-D1ODeM9s.d.cts.map} +1 -1
  85. package/dist/{index-DFrbhRwg.d.cts → index-f77HdqN5.d.mts} +2 -2
  86. package/dist/{index-Wuqpf316.d.mts.map → index-f77HdqN5.d.mts.map} +1 -1
  87. package/dist/index.cjs +173 -70
  88. package/dist/index.cjs.map +1 -1
  89. package/dist/index.mjs +173 -70
  90. package/dist/index.mjs.map +1 -1
  91. package/dist/{migrate-BgPWVnAZ.cjs → migrate-BfZN1S32.cjs} +3 -3
  92. package/dist/{migrate-BgPWVnAZ.cjs.map → migrate-BfZN1S32.cjs.map} +1 -1
  93. package/dist/{migrate-1dGEzuJ-.mjs → migrate-CdXcX0XR.mjs} +3 -3
  94. package/dist/{migrate-1dGEzuJ-.mjs.map → migrate-CdXcX0XR.mjs.map} +1 -1
  95. package/dist/{migrate-C14NNbFx.mjs → migrate-DOMU4uKe.mjs} +3 -3
  96. package/dist/{migrate-C14NNbFx.mjs.map → migrate-DOMU4uKe.mjs.map} +1 -1
  97. package/dist/{migrate-Bemd4tkz.cjs → migrate-FoL_mZIz.cjs} +3 -3
  98. package/dist/{migrate-Bemd4tkz.cjs.map → migrate-FoL_mZIz.cjs.map} +1 -1
  99. package/dist/openapi.cjs +3 -3
  100. package/dist/openapi.d.cts +1 -1
  101. package/dist/openapi.d.mts +1 -1
  102. package/dist/openapi.mjs +3 -3
  103. package/dist/{ready-4kx2pAhm.cjs → ready-BpNbORRB.cjs} +5 -5
  104. package/dist/{ready-4kx2pAhm.cjs.map → ready-BpNbORRB.cjs.map} +1 -1
  105. package/dist/{ready-DhZbZtFw.mjs → ready-b6vm0-W-.mjs} +5 -5
  106. package/dist/{ready-DhZbZtFw.mjs.map → ready-b6vm0-W-.mjs.map} +1 -1
  107. package/dist/reconcile/public.d.cts +1 -1
  108. package/dist/reconcile/public.d.mts +1 -1
  109. package/dist/{resolve-DCTcD823.cjs → resolve-T2I-5FcT.cjs} +3 -3
  110. package/dist/{resolve-DCTcD823.cjs.map → resolve-T2I-5FcT.cjs.map} +1 -1
  111. package/dist/{resolve-y1PkSZrF.mjs → resolve-r7PAs6ng.mjs} +3 -3
  112. package/dist/{resolve-y1PkSZrF.mjs.map → resolve-r7PAs6ng.mjs.map} +1 -1
  113. package/dist/{rollback-CwVhG_xa.mjs → rollback-BSdxnW3X.mjs} +5 -5
  114. package/dist/{rollback-CwVhG_xa.mjs.map → rollback-BSdxnW3X.mjs.map} +1 -1
  115. package/dist/{rollback-BVQFDjxr.cjs → rollback-CPSDjGse.cjs} +5 -5
  116. package/dist/{rollback-BVQFDjxr.cjs.map → rollback-CPSDjGse.cjs.map} +1 -1
  117. package/dist/{runtime-ekxfPNM-.d.mts → runtime-CNu2C2hB.d.mts} +2 -2
  118. package/dist/{runtime-D6A-C6zh.d.cts.map → runtime-CNu2C2hB.d.mts.map} +1 -1
  119. package/dist/{runtime-D6A-C6zh.d.cts → runtime-DMLgL26v.d.cts} +2 -2
  120. package/dist/{runtime-ekxfPNM-.d.mts.map → runtime-DMLgL26v.d.cts.map} +1 -1
  121. package/dist/{seeds-BoKQ74Od.mjs → seeds-BK8caVMm.mjs} +1707 -1612
  122. package/dist/seeds-BK8caVMm.mjs.map +1 -0
  123. package/dist/{seeds-Ccju3zGl.cjs → seeds-DQ0FG57Z.cjs} +2558 -2421
  124. package/dist/seeds-DQ0FG57Z.cjs.map +1 -0
  125. package/dist/{sniffer-6oYI-MpT.mjs → sniffer-CqE_KTTp.mjs} +6 -6
  126. package/dist/{sniffer-6oYI-MpT.mjs.map → sniffer-CqE_KTTp.mjs.map} +1 -1
  127. package/dist/{sniffer-DeyYI9Iv.cjs → sniffer-hSf5mRgV.cjs} +6 -6
  128. package/dist/{sniffer-DeyYI9Iv.cjs.map → sniffer-hSf5mRgV.cjs.map} +1 -1
  129. package/dist/{stages-CwrYVX9u.cjs → stages-CS1sjcRb.cjs} +2 -2
  130. package/dist/{stages-CwrYVX9u.cjs.map → stages-CS1sjcRb.cjs.map} +1 -1
  131. package/dist/{stages-CHF9RFog.mjs → stages-CSXt7N2b.mjs} +2 -2
  132. package/dist/{stages-CHF9RFog.mjs.map → stages-CSXt7N2b.mjs.map} +1 -1
  133. package/dist/target/public.cjs +1 -1
  134. package/dist/target/public.d.cts +2 -2
  135. package/dist/target/public.d.mts +2 -2
  136. package/dist/target/public.mjs +1 -1
  137. package/dist/{types-BzCavjGt.d.mts → types-BZn-8ssD.d.mts} +75 -21
  138. package/dist/types-BZn-8ssD.d.mts.map +1 -0
  139. package/dist/{types-DZtj9jeI.d.cts → types-DiZj6hqp.d.cts} +75 -21
  140. package/dist/types-DiZj6hqp.d.cts.map +1 -0
  141. package/dist/vitest.cjs +1 -1
  142. package/dist/vitest.mjs +1 -1
  143. package/dist/workspace/index.cjs +1 -1
  144. package/dist/workspace/index.d.cts +3 -3
  145. package/dist/workspace/index.d.mts +3 -3
  146. package/dist/workspace/index.mjs +1 -1
  147. package/dist/{workspace-4i6Jwsoa.cjs → workspace-Bic_R3tz.cjs} +324 -98
  148. package/dist/workspace-Bic_R3tz.cjs.map +1 -0
  149. package/dist/{workspace-DD9mtPy8.mjs → workspace-Drz4jsvy.mjs} +305 -97
  150. package/dist/workspace-Drz4jsvy.mjs.map +1 -0
  151. package/package.json +15 -15
  152. package/dist/EndpointGenerator-DtnIGafh.mjs.map +0 -1
  153. package/dist/EndpointGenerator-cKlnllIu.cjs.map +0 -1
  154. package/dist/compose-BPJ9bUKp.mjs.map +0 -1
  155. package/dist/compose-CGyxYe-h.cjs.map +0 -1
  156. package/dist/config-BBFiH4qk.d.mts.map +0 -1
  157. package/dist/config-DMdzdO5u.d.cts.map +0 -1
  158. package/dist/deploy-0XpZDYAr.mjs.map +0 -1
  159. package/dist/deploy-BlZx6J5x.cjs.map +0 -1
  160. package/dist/engine-CMzSebbs.cjs.map +0 -1
  161. package/dist/engine-DxWswfXe.mjs.map +0 -1
  162. package/dist/seeds-BoKQ74Od.mjs.map +0 -1
  163. package/dist/seeds-Ccju3zGl.cjs.map +0 -1
  164. package/dist/types-BzCavjGt.d.mts.map +0 -1
  165. package/dist/types-DZtj9jeI.d.cts.map +0 -1
  166. package/dist/workspace-4i6Jwsoa.cjs.map +0 -1
  167. package/dist/workspace-DD9mtPy8.mjs.map +0 -1
package/dist/index.mjs CHANGED
@@ -4,22 +4,22 @@ 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
5
  import { l as withOwningTsconfigJsx, r as discover, u as ConstructGenerator } from "./discover-BPelzeGW.mjs";
6
6
  import { t as appKey } from "./derive-B4vDpzgP.mjs";
7
- import { M as deployedProblems, N as stageProblems, O as InvalidStages, R as resolveLogs, c as getAppBuildOrder, k as TEST_STAGE, l as getAppGkmConfig, r as allConstructGlobs } from "./workspace-DD9mtPy8.mjs";
7
+ 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-Drz4jsvy.mjs";
8
8
  import { ConfigNotFound, NotABackendApp, NotInAnApp, loadAppConfig, loadConfig, loadWorkspaceConfig, loadWorkspaceSettings, parseModuleConfig } from "./config.mjs";
9
- import { B as WorkerGenerator, Ct as postgresDatabaseNames, F as parseDevServices, Fn as withCustomSecret, G as FAKE_ENV, Gt as imageBuildCredentials, H as workerEntryDir, J as derivedContainers, Jt as eventsBackendFor, K as backendsOf$1, Kt as isImageBuild, Mn as maskPassword, Pn as toEmbeddableSecrets, Tt as quoteIdentifier, U as QueueGenerator, V as workerBundleName, W as CronGenerator, Y as reconcileWorkspace, Yt as providerOf, Zt as CLUSTER_DATABASE, _t as LOCAL_CA_PATH, an as primaryPortKey, cn as findAvailablePort, dn as loadPortState, et as readLocalCredentials, fn as loadSecretsForApp, hn as secretsStoreFor, in as portsOf, kt as pgClient, ln as isPortAvailable, nn as fakeKey, on as createCredentialsPreload, pn as prepareEntryCredentials, q as constructGlobs, qt as cacheBackendFor, sn as createEntryWrapper, tn as describeServices, un as loadEnvFiles, vn as FileSecretsStore, vt as forgetState, wn as deployIdentity, x as dockerCommand, xn as projectKey, yn as getKeyPath, z as workerUnits } from "./seeds-BoKQ74Od.mjs";
10
- import { a as parseTelemetryFlag, i as telemetryFor, n as runtimeFor, t as EndpointGenerator } from "./EndpointGenerator-DtnIGafh.mjs";
9
+ import { $t as describeServices, An as maskPassword, B as WorkerGenerator, F as parseDevServices, Ft as cacheBackendFor, G as FAKE_ENV, H as workerEntryDir, Ht as TELEMETRY_CONTAINER, It as eventsBackendFor, J as derivedContainers, Jt as scopeTelemetryEnv, K as backendsOf$1, Kt as appTelemetry, Lt as providerOf, Mn as toEmbeddableSecrets, Nn as withCustomSecret, Nt as imageBuildCredentials, Pn as LOCAL_LOGS_EMAIL, Pt as isImageBuild, Sn as deployIdentity, U as QueueGenerator, V as workerBundleName, W as CronGenerator, Xt as telemetryOf, Y as reconcileWorkspace, Yt as surfaceClientTraced, _n as getKeyPath, an as createEntryWrapper, bt as pgClient, cn as loadEnvFiles, ct as LOCAL_CA_PATH, dn as prepareEntryCredentials, en as fakeKey, et as readLocalCredentials, gn as FileSecretsStore, gt as quoteIdentifier, in as createCredentialsPreload, ln as loadPortState, lt as forgetState, mt as postgresDatabaseNames, nn as portsOf, on as findAvailablePort, pn as secretsStoreFor, q as constructGlobs, rn as primaryPortKey, sn as isPortAvailable, un as loadSecretsForApp, x as dockerCommand, yn as projectKey, z as workerUnits, zt as CLUSTER_DATABASE } from "./seeds-BK8caVMm.mjs";
10
+ 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";
11
11
  import { generateOpenApi, openapiCommand, resolveOpenApiConfig } from "./openapi.mjs";
12
- import { s as isCacheBackend, t as SubscriberGenerator } from "./SubscriberGenerator-DQZeGkDW.mjs";
12
+ import { s as isCacheBackend, t as SubscriberGenerator } from "./SubscriberGenerator-BPqQf8fB.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 { n as driversFor, r as eventsBackendsIn, t as cacheBackendsIn } from "./drivers-B4RP2B2O.mjs";
14
+ import { n as driversFor, r as eventsBackendsIn, t as cacheBackendsIn } from "./drivers-DTZzxeIl.mjs";
15
15
  import { n as withCompute, r as withRoutes, t as manifestModule } from "./emit-C1e8qD08.mjs";
16
- import { g as createStateStore, n as sniffAppEnvironment, o as DokployApi, x as keyFingerprint } from "./sniffer-6oYI-MpT.mjs";
17
- import { t as deploy$1 } from "./deploy-0XpZDYAr.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-BPJ9bUKp.mjs";
16
+ import { g as createStateStore, n as sniffAppEnvironment, o as DokployApi, x as keyFingerprint } from "./sniffer-CqE_KTTp.mjs";
17
+ import { t as deploy$1 } from "./deploy-BwIKGxWH.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-C5wz8mf9.mjs";
19
19
  import { o as loadCredentialSchemas, t as CredentialsInvalid } from "./credentialSchemas-BJqRJNK4.mjs";
20
- import { t as LocalStateStore } from "./LocalStateStore-DIfuh0Z1.mjs";
20
+ import { t as LocalStateStore } from "./LocalStateStore-D1VfxRuK.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
- import { a as writeTestHarness, i as TEST_MANIFEST_ENV, n as TEST_READY_FILE, t as TEST_READY_ENV } from "./ready-DhZbZtFw.mjs";
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";
24
24
  import { basename, dirname, isAbsolute, join, relative, resolve } from "node:path";
25
25
  import { Command, Option } from "commander";
@@ -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.83";
50
+ var version = "10.0.0-alpha.84";
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-6oYI-MpT.mjs").then((n) => n.c);
133
+ const { DokployApi } = await import("./sniffer-CqE_KTTp.mjs").then((n) => n.c);
134
134
  return new DokployApi({
135
135
  baseUrl: endpoint,
136
136
  token
@@ -530,10 +530,9 @@ var NoLocalCredentials = class extends Error {
530
530
  /** The logins of every service the workspace last published. */
531
531
  function devCredentials(workspace, credentials, ports) {
532
532
  const containers = SIGNED_IN.filter((container) => portsOf(container).some((port) => ports[port.key] !== void 0));
533
- const logs = resolveLogs(workspace.deploy?.compose?.logs);
534
- const local = logs ? {
535
- url: logs.public ? `https://logs.${workspace.name}.localhost` : `http://localhost:${logs.port}`,
536
- via: `gkm compose --stage ${workspace.stages.local}`
533
+ const local = ports.openobserve !== void 0 ? {
534
+ url: `http://localhost:${ports.openobserve}`,
535
+ via: "gkm dev"
537
536
  } : void 0;
538
537
  return {
539
538
  workspace: workspace.name,
@@ -753,6 +752,7 @@ async function collect(records) {
753
752
  root,
754
753
  stage: lead.workspace.stage,
755
754
  manifest: group.find((r) => r.manifest)?.manifest ?? null,
755
+ telemetry: group.find((r) => r.telemetry)?.telemetry ?? null,
756
756
  apps: discovered,
757
757
  allowedOrigins: [...new Set(group.flatMap((r) => r.allowedOrigins))]
758
758
  });
@@ -1097,6 +1097,7 @@ var DiscoverySession = class DiscoverySession {
1097
1097
  workspace: options.workspace,
1098
1098
  allowedOrigins: [...options.allowedOrigins ?? []],
1099
1099
  ...options.manifest ? { manifest: options.manifest } : {},
1100
+ ...options.telemetry ? { telemetry: options.telemetry } : {},
1100
1101
  apps: options.apps
1101
1102
  };
1102
1103
  writeRecord(registry, record);
@@ -1850,7 +1851,8 @@ async function devCommand(options) {
1850
1851
  hooks,
1851
1852
  skipBundle: true,
1852
1853
  bustCache,
1853
- serveEmpty: true
1854
+ serveEmpty: true,
1855
+ workspaceName: workspace.name
1854
1856
  }));
1855
1857
  logger$5.log(`🔨 Building ${workspaceAppName ?? "the app"}`);
1856
1858
  const initial = await build();
@@ -1858,6 +1860,7 @@ async function devCommand(options) {
1858
1860
  let secretsJsonPath;
1859
1861
  let publicUrl;
1860
1862
  let manifest;
1863
+ let telemetryUi;
1861
1864
  const appSecrets = await loadSecretsForApp(workspace ? await secretsStoreFor(workspace, config.stages.local) : new FileSecretsStore(secretsRoot), config.stages.local);
1862
1865
  if (workspace) {
1863
1866
  const reconciled = await reconcileWorkspace(workspace, {
@@ -1869,10 +1872,25 @@ async function devCommand(options) {
1869
1872
  logger$5.log("🐳 Services");
1870
1873
  for (const line of describeServices(reconciled.services)) logger$5.log(line);
1871
1874
  }
1875
+ if (!process.env["GKM_DISCOVERY_QUIET"] && reconciled.credentials && reconciled.ports) {
1876
+ const { services: logins } = devCredentials(workspace, reconciled.credentials, reconciled.ports);
1877
+ if (logins.length > 0) {
1878
+ logger$5.log("🔑 Logins (again any time: gkm dev:credentials)");
1879
+ for (const line of describeLogins(logins)) logger$5.log(line);
1880
+ }
1881
+ }
1872
1882
  Object.assign(appSecrets, reconciled.env);
1883
+ const scoped = scopeTelemetryEnv(appSecrets, {
1884
+ uses: reconciled.manifest !== void 0 && appTelemetry(reconciled.manifest, workspaceAppName) !== void 0,
1885
+ serviceName: workspaceAppName,
1886
+ telemetry: reconciled.env
1887
+ });
1888
+ for (const key of Object.keys(appSecrets)) if (!(key in scoped)) delete appSecrets[key];
1889
+ Object.assign(appSecrets, scoped);
1873
1890
  const own = reconciled.plan.resources.find((r) => (r.kind === "rest-api" || r.kind === "site") && appKey(r.id) === workspaceAppName);
1874
1891
  publicUrl = own ? reconciled.env[own.envKey] : void 0;
1875
1892
  manifest = reconciled.manifest;
1893
+ telemetryUi = telemetryUiOf(reconciled.services);
1876
1894
  }
1877
1895
  if (Object.keys(appSecrets).length > 0) {
1878
1896
  const secretsDir = join(secretsRoot, ".gkm");
@@ -1895,6 +1913,7 @@ async function devCommand(options) {
1895
1913
  },
1896
1914
  allowedOrigins: workspace.dev?.allowedOrigins ?? [],
1897
1915
  ...manifest ? { manifest } : {},
1916
+ ...telemetryUi ? { telemetry: telemetryUi } : {},
1898
1917
  apps: [{
1899
1918
  name: workspaceAppName,
1900
1919
  type: "backend",
@@ -2203,17 +2222,20 @@ async function workspaceDevCommand(configured, options) {
2203
2222
  logger$5.log("🔑 Logins (again any time: gkm dev:credentials)");
2204
2223
  for (const line of describeLogins(logins)) logger$5.log(line);
2205
2224
  }
2206
- const secretsEnv = {
2225
+ const secretsEnv = scopeTelemetryEnv({
2207
2226
  ...rawSecrets,
2208
2227
  ...reconciled.env
2209
- };
2228
+ }, {
2229
+ uses: false,
2230
+ serviceName: workspace.name
2231
+ });
2210
2232
  const fakes = options.fake ? await serveFakes(reconciled.fakes, reconciled.ports) : [];
2211
2233
  for (const { id, port } of fakes) logger$5.log(`🎭 ${id} fake: http://localhost:${port}`);
2212
2234
  logger$5.log(options.migrate || options.seed ? "🗄️ Migrating the databases" : "🗄️ Checking for pending migrations");
2213
2235
  if (options.migrate || options.seed) {
2214
- const { prepareDevDatabases } = await import("./migrate-1dGEzuJ-.mjs");
2236
+ const { prepareDevDatabases } = await import("./migrate-CdXcX0XR.mjs");
2215
2237
  await prepareDevDatabases(workspace, reconciled.env, { seed: !!options.seed });
2216
- } else await import("./migrate-1dGEzuJ-.mjs").then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
2238
+ } else await import("./migrate-CdXcX0XR.mjs").then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
2217
2239
  logger$5.log(`⚠️ Could not check for pending migrations: ${error instanceof Error ? error.message : String(error)}`);
2218
2240
  });
2219
2241
  const appUrls = {};
@@ -2268,6 +2290,7 @@ async function workspaceDevCommand(configured, options) {
2268
2290
  break;
2269
2291
  }
2270
2292
  }
2293
+ const workspaceTelemetry = telemetryUiOf(reconciled.services);
2271
2294
  const discovery = await joinDiscovery({
2272
2295
  role: "workspace",
2273
2296
  port: discoveryPort(workspace.dev),
@@ -2278,6 +2301,7 @@ async function workspaceDevCommand(configured, options) {
2278
2301
  },
2279
2302
  allowedOrigins: workspace.dev?.allowedOrigins ?? [],
2280
2303
  ...reconciled.manifest ? { manifest: reconciled.manifest } : {},
2304
+ ...workspaceTelemetry ? { telemetry: workspaceTelemetry } : {},
2281
2305
  apps: buildOrder.flatMap((name) => {
2282
2306
  const app = workspace.apps[name];
2283
2307
  if (!app) return [];
@@ -2475,6 +2499,18 @@ var EntryRunner = class {
2475
2499
  }
2476
2500
  };
2477
2501
  /**
2502
+ * Where the local OpenObserve is, and who signs in to it, when reconcile runs
2503
+ * one — for the discovery endpoint, which is told no password.
2504
+ */
2505
+ function telemetryUiOf(services) {
2506
+ const ui = services.find((s) => s.container === TELEMETRY_CONTAINER);
2507
+ if (!ui) return void 0;
2508
+ return {
2509
+ url: ui.address,
2510
+ email: LOCAL_LOGS_EMAIL
2511
+ };
2512
+ }
2513
+ /**
2478
2514
  * Generate the content of the dev server entry file (server.ts).
2479
2515
  * Uses dynamic import for createApp so Credentials are populated
2480
2516
  * before any app modules evaluate.
@@ -2520,6 +2556,7 @@ if (existsSync(secretsPath)) {
2520
2556
  injectWs(server);
2521
2557
  console.log('🔌 Telescope real-time updates enabled');
2522
2558
  }`;
2559
+ const telemetry = startTelemetryCode(["/health", "/ready"]);
2523
2560
  if (selfServing) return `#!/usr/bin/env node
2524
2561
  /**
2525
2562
  * Development server entry point for a surface that serves itself
@@ -2529,8 +2566,17 @@ ${credentialsInjection}${parentWatch}const port = process.argv.includes('--port'
2529
2566
  ? Number.parseInt(process.argv[process.argv.indexOf('--port') + 1])
2530
2567
  : 3000;
2531
2568
 
2569
+ ${telemetry}
2532
2570
  // Dynamic import so Credentials are populated before the surface evaluates
2533
- const { app } = await import('${appImportPath}');
2571
+ const { app: surface } = await import('${appImportPath}');
2572
+
2573
+ // Behind the request spans when there are any, as the production server is.
2574
+ const { Hono } = await import('hono');
2575
+ const app = requestSpans ? new Hono() : surface;
2576
+ if (requestSpans) {
2577
+ ${mountRequestSpansCode("app").trim().replace(/\n/g, "\n ")}
2578
+ app.route('/', surface);
2579
+ }
2534
2580
 
2535
2581
  ${serveCode.replace(/^ {4}/gm, "")}
2536
2582
  `;
@@ -2543,11 +2589,16 @@ ${credentialsInjection}${parentWatch}const port = process.argv.includes('--port'
2543
2589
  ? Number.parseInt(process.argv[process.argv.indexOf('--port') + 1])
2544
2590
  : 3000;
2545
2591
 
2592
+ ${telemetry}
2546
2593
  // Dynamic import so Credentials are populated before env.ts evaluates
2547
2594
  const { createApp } = await import('${appImportPath}');
2548
2595
 
2596
+ // The span middleware first, as the production server mounts it.
2597
+ const { Hono } = await import('hono');
2598
+ const root = new Hono();
2599
+ ${mountRequestSpansCode("root")}
2549
2600
  // createApp is async to support optional WebSocket setup
2550
- const { app, start } = await createApp(undefined, ${enableOpenApi});
2601
+ const { app, start } = await createApp(root, ${enableOpenApi});
2551
2602
 
2552
2603
  // Start the server
2553
2604
  start({
@@ -2989,6 +3040,7 @@ export default app;
2989
3040
  */
2990
3041
  async function writeSurfaceServer(outputDir, options) {
2991
3042
  await mkdir(outputDir, { recursive: true });
3043
+ await writeTelemetryModule(outputDir, options.telemetry);
2992
3044
  const shutdown = options.gracefulShutdown ? `
2993
3045
  // Stop taking requests, let in-flight ones finish, then close what the
2994
3046
  // construct opened — bounded by GKM_SHUTDOWN_TIMEOUT_MS, under Docker's 10s
@@ -3015,12 +3067,14 @@ process.on('SIGINT', shutdown);
3015
3067
  */
3016
3068
  import { serve } from '@hono/node-server';
3017
3069
  import { Hono } from 'hono';
3018
- ${options.gracefulShutdown ? "import { runShutdownHooks } from '@geekmidas/constructs';\n" : ""}import { app as surface } from './app.js';
3070
+ ${options.gracefulShutdown ? "import { runShutdownHooks } from '@geekmidas/constructs';\n" : ""}
3071
+ ${startTelemetryCode([options.healthCheck])}
3072
+ const { app: surface } = await import('./app.js');
3019
3073
 
3020
3074
  const port = Number(process.env.PORT) || 3000;
3021
3075
 
3022
3076
  const app = new Hono();
3023
- // First, so a probe is answered without reaching the surface's own routes.
3077
+ ${mountRequestSpansCode("app")}// First, so a probe is answered without reaching the surface's own routes.
3024
3078
  app.get(${JSON.stringify(options.healthCheck)}, (c) =>
3025
3079
  c.json({ status: 'ok', timestamp: Date.now() }),
3026
3080
  );
@@ -3217,11 +3271,23 @@ async function buildApp(input) {
3217
3271
  });
3218
3272
  if (selfServing) {
3219
3273
  await writeSurfaceEntry(join(appRoot, ".gkm", "server"), selfServing.source);
3274
+ const telemetry = telemetryFor({
3275
+ node: telemetryOf(declared, selfServing.id),
3276
+ appRoot,
3277
+ app: appNameOf(input),
3278
+ cwd: workspaceRoot,
3279
+ serviceName: selfServing.id,
3280
+ ...input.workspaceName && { workspaceName: input.workspaceName }
3281
+ });
3282
+ await writeTelemetryModule(join(appRoot, ".gkm", "server"), telemetry);
3220
3283
  logger$4.log(`Generated a server for ${selfServing.id} from its own declaration`);
3221
3284
  if (production?.bundle && !input.skipBundle) {
3222
3285
  const outputDir = join(appRoot, ".gkm", "server");
3223
- const entryPoint = await writeSurfaceServer(outputDir, production);
3224
- const { bundleServer } = await import("./bundler-B8TGsunu.mjs");
3286
+ const entryPoint = await writeSurfaceServer(outputDir, {
3287
+ ...production,
3288
+ ...telemetry ? { telemetry } : {}
3289
+ });
3290
+ const { bundleServer } = await import("./bundler-D4030Afw.mjs");
3225
3291
  await bundleServer({
3226
3292
  entryPoint,
3227
3293
  outputDir: join(outputDir, "dist"),
@@ -3256,12 +3322,7 @@ async function buildApp(input) {
3256
3322
  events: eventsBackends
3257
3323
  }),
3258
3324
  eventsBackends,
3259
- markOptional: input.markOptional ?? false,
3260
- ...production && { telemetry: telemetryFor({
3261
- appRoot,
3262
- surfaceId: derived.surface?.id,
3263
- workspaceName: input.workspaceName
3264
- }) }
3325
+ markOptional: input.markOptional ?? false
3265
3326
  };
3266
3327
  const endpointGenerator = new EndpointGenerator();
3267
3328
  const functionGenerator = new FunctionGenerator();
@@ -3279,6 +3340,15 @@ async function buildApp(input) {
3279
3340
  topicGenerator.load(code, appRoot, bustCache)
3280
3341
  ]);
3281
3342
  const allEndpoints = servedBy(loadedEndpoints, derived.surface);
3343
+ if (target === "server") buildContext.telemetry = telemetryFor({
3344
+ node: derived.surface ? telemetryOf(declared, derived.surface.id) : void 0,
3345
+ appRoot,
3346
+ app: appNameOf(input),
3347
+ cwd: workspaceRoot,
3348
+ serviceName: derived.surface?.id ?? basename(appRoot),
3349
+ ...input.workspaceName && { workspaceName: input.workspaceName },
3350
+ routes: routeTelemetry(allEndpoints.map(({ construct }) => construct))
3351
+ });
3282
3352
  logger$4.log(`Found ${allEndpoints.length} endpoints`);
3283
3353
  logger$4.log(`Found ${allFunctions.length} functions`);
3284
3354
  logger$4.log(`Found ${allCrons.length} crons`);
@@ -3306,6 +3376,14 @@ async function buildApp(input) {
3306
3376
  const appName = Object.entries(input.workspace.apps).find(([, app]) => resolve(input.workspace.root, app.path) === resolve(appRoot))?.[0];
3307
3377
  await buildWorkers({
3308
3378
  context: buildContext,
3379
+ telemetry: (workerId) => telemetryFor({
3380
+ node: telemetryOf(declared, workerId),
3381
+ appRoot,
3382
+ app: appNameOf(input),
3383
+ cwd: workspaceRoot,
3384
+ serviceName: workerId,
3385
+ ...input.workspaceName && { workspaceName: input.workspaceName }
3386
+ }),
3309
3387
  workers: workerUnits(input.workspace, declared, background).filter((unit) => unit.app === appName),
3310
3388
  serverDir: join(appRoot, ".gkm", "server"),
3311
3389
  crons: allCrons,
@@ -3317,7 +3395,14 @@ async function buildApp(input) {
3317
3395
  }
3318
3396
  await generateOpenApi(allEndpoints.map(({ construct }) => construct), {
3319
3397
  openapi: config.openapi,
3320
- root: workspaceRoot
3398
+ root: workspaceRoot,
3399
+ ...derived.surface ? clientTelemetry({
3400
+ manifest: declared,
3401
+ surfaceId: derived.surface.id,
3402
+ telemetry: input.workspace?.deploy?.telemetry,
3403
+ stage: input.stage,
3404
+ localStage: input.workspace?.stages.local ?? config.stages?.local
3405
+ }) : {}
3321
3406
  });
3322
3407
  return {
3323
3408
  ...result,
@@ -3335,9 +3420,11 @@ async function buildWorkers(input) {
3335
3420
  const crons = owned(input.crons);
3336
3421
  const queues = owned(input.queues);
3337
3422
  const subscribers = owned(input.subscribers);
3423
+ const telemetry = input.telemetry(worker.id);
3338
3424
  const entryPoint = await generator.build({
3339
3425
  context: input.context,
3340
3426
  workerId: worker.id,
3427
+ ...telemetry ? { telemetry } : {},
3341
3428
  outputDir: workerEntryDir(input.serverDir, worker.id),
3342
3429
  crons,
3343
3430
  queues,
@@ -3345,7 +3432,7 @@ async function buildWorkers(input) {
3345
3432
  });
3346
3433
  logger$4.log(`Generated worker ${worker.id}: ${crons.length} crons, ${queues.length} queues, ${subscribers.length} subscribers`);
3347
3434
  if (!input.bundle) continue;
3348
- const { bundleServer } = await import("./bundler-B8TGsunu.mjs");
3435
+ const { bundleServer } = await import("./bundler-D4030Afw.mjs");
3349
3436
  const outfile = workerBundleName(worker.id);
3350
3437
  await bundleServer({
3351
3438
  entryPoint,
@@ -3364,6 +3451,22 @@ async function buildWorkers(input) {
3364
3451
  logger$4.log(`✅ Bundle complete: .gkm/server/dist/${outfile}`);
3365
3452
  }
3366
3453
  }
3454
+ /**
3455
+ * Whether the surface's generated client propagates trace context, and at
3456
+ * what rate: on when a site that calls it has an edge to a `Telemetry`
3457
+ * construct, at the stage's sample rate — every trace locally, and on a build
3458
+ * for no stage. Off for a stage that sends no telemetry.
3459
+ */
3460
+ function clientTelemetry(options) {
3461
+ if (!surfaceClientTraced(options.manifest, options.surfaceId)) return {};
3462
+ const local = !options.stage || options.stage === options.localStage;
3463
+ const sampleRate = stageSampleRate(options.telemetry, options.stage ?? "", local);
3464
+ return sampleRate === void 0 ? {} : { telemetry: { sampleRate } };
3465
+ }
3466
+ /** The app being built, by its workspace name or its directory's. */
3467
+ function appNameOf(input) {
3468
+ return (input.workspace ? Object.entries(input.workspace.apps).find(([, app]) => resolve(input.workspace.root, app.path) === resolve(input.appRoot))?.[0] : void 0) ?? basename(input.appRoot);
3469
+ }
3367
3470
  async function buildForTarget(target, context, appRoot, workspaceRoot, endpointGenerator, functionGenerator, cronGenerator, subscriberGenerator, queueGenerator, topicGenerator, endpoints, functions, crons, subscribers, queues, topics, enableOpenApi, skipBundle, stage) {
3368
3471
  const outputDir = join(appRoot, ".gkm", target);
3369
3472
  await Promise.all([...SUPERSEDED_OUTPUT.map((dir) => join(appRoot, ".gkm", dir)), ...appRoot === workspaceRoot ? [] : [join(appRoot, ".gkm", "manifest")]].map((dir) => rm(dir, {
@@ -3415,7 +3518,7 @@ async function buildForTarget(target, context, appRoot, workspaceRoot, endpointG
3415
3518
  let masterKey;
3416
3519
  if (context.production?.bundle && !skipBundle) {
3417
3520
  logger$4.log(`\n📦 Bundling production server...`);
3418
- const { bundleServer } = await import("./bundler-B8TGsunu.mjs");
3521
+ const { bundleServer } = await import("./bundler-D4030Afw.mjs");
3419
3522
  const allConstructs = [
3420
3523
  ...endpoints.map((e) => e.construct),
3421
3524
  ...functions.map((f) => f.construct),
@@ -5117,25 +5220,25 @@ function loadPackageJson() {
5117
5220
  * Run: pnpm --filter @geekmidas/cli sync-versions
5118
5221
  */
5119
5222
  const GEEKMIDAS_VERSIONS = {
5120
- "@geekmidas/audit": "~10.0.0-alpha.83",
5121
- "@geekmidas/auth": "~10.0.0-alpha.83",
5122
- "@geekmidas/cache": "~10.0.0-alpha.83",
5123
- "@geekmidas/client": "~10.0.0-alpha.83",
5124
- "@geekmidas/cloud": "~10.0.0-alpha.83",
5125
- "@geekmidas/constructs": "~10.0.0-alpha.83",
5126
- "@geekmidas/db": "~10.0.0-alpha.83",
5127
- "@geekmidas/emailkit": "~10.0.0-alpha.83",
5128
- "@geekmidas/envkit": "~10.0.0-alpha.83",
5129
- "@geekmidas/errors": "~10.0.0-alpha.83",
5130
- "@geekmidas/events": "~10.0.0-alpha.83",
5131
- "@geekmidas/logger": "~10.0.0-alpha.83",
5132
- "@geekmidas/manifest": "~10.0.0-alpha.83",
5133
- "@geekmidas/rate-limit": "~10.0.0-alpha.83",
5134
- "@geekmidas/schema": "~10.0.0-alpha.83",
5135
- "@geekmidas/services": "~10.0.0-alpha.83",
5136
- "@geekmidas/storage": "~10.0.0-alpha.83",
5137
- "@geekmidas/telescope": "~10.0.0-alpha.83",
5138
- "@geekmidas/testkit": "~10.0.0-alpha.83",
5223
+ "@geekmidas/audit": "~10.0.0-alpha.84",
5224
+ "@geekmidas/auth": "~10.0.0-alpha.84",
5225
+ "@geekmidas/cache": "~10.0.0-alpha.84",
5226
+ "@geekmidas/client": "~10.0.0-alpha.84",
5227
+ "@geekmidas/cloud": "~10.0.0-alpha.84",
5228
+ "@geekmidas/constructs": "~10.0.0-alpha.84",
5229
+ "@geekmidas/db": "~10.0.0-alpha.84",
5230
+ "@geekmidas/emailkit": "~10.0.0-alpha.84",
5231
+ "@geekmidas/envkit": "~10.0.0-alpha.84",
5232
+ "@geekmidas/errors": "~10.0.0-alpha.84",
5233
+ "@geekmidas/events": "~10.0.0-alpha.84",
5234
+ "@geekmidas/logger": "~10.0.0-alpha.84",
5235
+ "@geekmidas/manifest": "~10.0.0-alpha.84",
5236
+ "@geekmidas/rate-limit": "~10.0.0-alpha.84",
5237
+ "@geekmidas/schema": "~10.0.0-alpha.84",
5238
+ "@geekmidas/services": "~10.0.0-alpha.84",
5239
+ "@geekmidas/storage": "~10.0.0-alpha.84",
5240
+ "@geekmidas/telescope": "~10.0.0-alpha.84",
5241
+ "@geekmidas/testkit": "~10.0.0-alpha.84",
5139
5242
  "@geekmidas/cli": `~${loadPackageJson().version}`
5140
5243
  };
5141
5244
  //#endregion
@@ -5536,7 +5639,7 @@ const COMMIT = /^[0-9a-f]{40}$/;
5536
5639
  * The `uses:` value for the stages action, with a comment saying which CLI
5537
5640
  * release the pinned commit is.
5538
5641
  */
5539
- function stagesActionUses(commit = "4dee60bc593ffdfbaa59bbf8d8fe9e3e64f23d41", version = cliVersion()) {
5642
+ function stagesActionUses(commit = "1a6631b7e6dc71b7dd7b7afb8ca5b82225454826", version = cliVersion()) {
5540
5643
  return commit && COMMIT.test(commit) ? `${STAGES_ACTION}@${commit} # @geekmidas/cli ${version}` : `${STAGES_ACTION}@main # pin to a commit SHA: see the action's README`;
5541
5644
  }
5542
5645
  //#endregion
@@ -11208,7 +11311,7 @@ function testDatabases(reconciled) {
11208
11311
  * starts without the reference data the app needs.
11209
11312
  */
11210
11313
  async function migrateTestStage(workspace, env) {
11211
- const { migrateAndSeed } = await import("./migrate-1dGEzuJ-.mjs");
11314
+ const { migrateAndSeed } = await import("./migrate-CdXcX0XR.mjs");
11212
11315
  const { discover } = await import("./discover-BPelzeGW.mjs").then((n) => n.i);
11213
11316
  const sources = {};
11214
11317
  const manifest = await discover({
@@ -11652,7 +11755,7 @@ program.command("migrate").description("Apply each database construct's migratio
11652
11755
  try {
11653
11756
  const globalOptions = program.opts();
11654
11757
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11655
- const { migrateCommand } = await import("./migrate-1dGEzuJ-.mjs");
11758
+ const { migrateCommand } = await import("./migrate-CdXcX0XR.mjs");
11656
11759
  await migrateCommand({
11657
11760
  ...options,
11658
11761
  ...construct ? { construct } : {}
@@ -11666,7 +11769,7 @@ program.command("seed").description("Migrate, then run each database construct's
11666
11769
  try {
11667
11770
  const globalOptions = program.opts();
11668
11771
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11669
- const { seedCommand } = await import("./migrate-1dGEzuJ-.mjs");
11772
+ const { seedCommand } = await import("./migrate-CdXcX0XR.mjs");
11670
11773
  await seedCommand({
11671
11774
  ...options,
11672
11775
  ...construct ? { construct } : {}
@@ -11680,7 +11783,7 @@ program.command("migration").description("Write a construct's next migration: an
11680
11783
  try {
11681
11784
  const globalOptions = program.opts();
11682
11785
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11683
- const { migrationCommand } = await import("./migrate-1dGEzuJ-.mjs");
11786
+ const { migrationCommand } = await import("./migrate-CdXcX0XR.mjs");
11684
11787
  await migrationCommand({
11685
11788
  construct,
11686
11789
  ...name ? { name } : {}
@@ -11788,7 +11891,7 @@ program.command("secrets:add").description("Build the keys a stage must be given
11788
11891
  try {
11789
11892
  const globalOptions = program.opts();
11790
11893
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11791
- const { secretsAddCommand } = await import("./add-DkBEZ5_s.mjs");
11894
+ const { secretsAddCommand } = await import("./add-DbnzC7Kl.mjs");
11792
11895
  await secretsAddCommand(options);
11793
11896
  } catch (error) {
11794
11897
  console.error(formatError(error));
@@ -11799,7 +11902,7 @@ program.command("encryption:rotate").description("Add a new current key to an En
11799
11902
  try {
11800
11903
  const globalOptions = program.opts();
11801
11904
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11802
- const { encryptionRotateCommand } = await import("./encryption-0eo9aY_H.mjs");
11905
+ const { encryptionRotateCommand } = await import("./encryption-BRcBAmjL.mjs");
11803
11906
  await encryptionRotateCommand(construct, options);
11804
11907
  } catch (error) {
11805
11908
  console.error(formatError(error));
@@ -11810,7 +11913,7 @@ program.command("encryption:retire").description("Remove an old key from an Encr
11810
11913
  try {
11811
11914
  const globalOptions = program.opts();
11812
11915
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11813
- const { encryptionRetireCommand } = await import("./encryption-0eo9aY_H.mjs");
11916
+ const { encryptionRetireCommand } = await import("./encryption-BRcBAmjL.mjs");
11814
11917
  await encryptionRetireCommand(construct, key, options);
11815
11918
  } catch (error) {
11816
11919
  console.error(formatError(error));
@@ -11853,7 +11956,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
11853
11956
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11854
11957
  const { loadWorkspaceConfig } = await import("./config.mjs");
11855
11958
  const { reconcileMissingSecrets } = await import("./reconcile--I7V4Klj.mjs");
11856
- const { secretsStoreFor } = await import("./seeds-BoKQ74Od.mjs").then((n) => n._n);
11959
+ const { secretsStoreFor } = await import("./seeds-BK8caVMm.mjs").then((n) => n.hn);
11857
11960
  const { workspace } = await loadWorkspaceConfig();
11858
11961
  const stage = options.stage ?? workspace.stages.local;
11859
11962
  const store = await secretsStoreFor(workspace, stage);
@@ -11862,7 +11965,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
11862
11965
  console.error(`No secrets found for stage "${stage}". Run "gkm secrets:init --stage ${stage}" first.`);
11863
11966
  process.exit(1);
11864
11967
  }
11865
- const { derivedContainers } = await import("./seeds-BoKQ74Od.mjs").then((n) => n.X);
11968
+ const { derivedContainers } = await import("./seeds-BK8caVMm.mjs").then((n) => n.X);
11866
11969
  const result = reconcileMissingSecrets(secrets, workspace, await derivedContainers(workspace, stage));
11867
11970
  if (!result) {
11868
11971
  console.log(`\n✓ Secrets for stage "${stage}" are up-to-date`);
@@ -11880,7 +11983,7 @@ program.command("secrets:migrate").description("Copy a deployed stage's secrets
11880
11983
  try {
11881
11984
  const globalOptions = program.opts();
11882
11985
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11883
- const { secretsMigrateCommand } = await import("./migrate-C14NNbFx.mjs");
11986
+ const { secretsMigrateCommand } = await import("./migrate-DOMU4uKe.mjs");
11884
11987
  await secretsMigrateCommand(options);
11885
11988
  } catch (error) {
11886
11989
  console.error(formatError(error));
@@ -11888,7 +11991,7 @@ program.command("secrets:migrate").description("Copy a deployed stage's secrets
11888
11991
  }
11889
11992
  });
11890
11993
  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) => {
11891
- const { deployCli } = await import("./cli-BgDd4cZB.mjs");
11994
+ const { deployCli } = await import("./cli-DwTa9d_8.mjs");
11892
11995
  const globalOptions = program.opts();
11893
11996
  const code = await deployCli({
11894
11997
  cwd: resolve(globalOptions.cwd ?? process.cwd()),
@@ -11905,7 +12008,7 @@ program.command("deploy").description("Deploy a stage through its target").optio
11905
12008
  });
11906
12009
  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) => {
11907
12010
  try {
11908
- const { rollbackStage } = await import("./rollback-CwVhG_xa.mjs").then((n) => n.a);
12011
+ const { rollbackStage } = await import("./rollback-BSdxnW3X.mjs").then((n) => n.a);
11909
12012
  const { terminalCredentials } = await import("./terminal-BdvrmkaC.mjs");
11910
12013
  const globalOptions = program.opts();
11911
12014
  await rollbackStage({
@@ -11941,7 +12044,7 @@ program.command("deploy:github").description("Let GitHub Actions deploy a stage:
11941
12044
  try {
11942
12045
  const globalOptions = program.opts();
11943
12046
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11944
- const { deployGithubCommand } = await import("./github-HOfOpFI_.mjs");
12047
+ const { deployGithubCommand } = await import("./github-Zs-dVJbR.mjs");
11945
12048
  await deployGithubCommand(options);
11946
12049
  } catch (error) {
11947
12050
  console.error(formatError(error));
@@ -11952,7 +12055,7 @@ program.command("stages").description("The workspace's stages from gkm.config.ts
11952
12055
  try {
11953
12056
  const globalOptions = program.opts();
11954
12057
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11955
- const { stagesCommand } = await import("./stages-CHF9RFog.mjs");
12058
+ const { stagesCommand } = await import("./stages-CSXt7N2b.mjs");
11956
12059
  await stagesCommand(options);
11957
12060
  } catch (error) {
11958
12061
  console.error(formatError(error));