@geekmidas/cli 10.0.0-alpha.68 → 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 (136) 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-C1pnNrR0.cjs → bundler-CSR2nM4m.cjs} +5 -5
  26. package/dist/{bundler-C1pnNrR0.cjs.map → bundler-CSR2nM4m.cjs.map} +1 -1
  27. package/dist/{bundler-C-w7aGoZ.mjs → bundler-Cn0JF5G0.mjs} +5 -5
  28. package/dist/{bundler-C-w7aGoZ.mjs.map → bundler-Cn0JF5G0.mjs.map} +1 -1
  29. package/dist/{cli-BLyD4c0O.cjs → cli-IoM2-x48.cjs} +4 -4
  30. package/dist/{cli-BLyD4c0O.cjs.map → cli-IoM2-x48.cjs.map} +1 -1
  31. package/dist/{cli-Ce4pLL5O.mjs → cli-ij8Lwlww.mjs} +4 -4
  32. package/dist/{cli-Ce4pLL5O.mjs.map → cli-ij8Lwlww.mjs.map} +1 -1
  33. package/dist/{compose-DFxuYhn6.mjs → compose-CZtinmtw.mjs} +12 -11
  34. package/dist/compose-CZtinmtw.mjs.map +1 -0
  35. package/dist/{compose-DvsgumY2.cjs → compose-DfIioFX0.cjs} +12 -11
  36. package/dist/compose-DfIioFX0.cjs.map +1 -0
  37. package/dist/config.cjs +3 -3
  38. package/dist/config.mjs +3 -3
  39. package/dist/credentialSchemas-BcNL1N5R.cjs +271 -0
  40. package/dist/credentialSchemas-BcNL1N5R.cjs.map +1 -0
  41. package/dist/credentialSchemas-BmYxnEz_.mjs +236 -0
  42. package/dist/credentialSchemas-BmYxnEz_.mjs.map +1 -0
  43. package/dist/deploy/public.cjs +7 -7
  44. package/dist/deploy/public.d.cts.map +1 -1
  45. package/dist/deploy/public.d.mts.map +1 -1
  46. package/dist/deploy/public.mjs +7 -7
  47. package/dist/{deploy-D-EVOWvu.mjs → deploy-BzqbkJ3o.mjs} +6 -6
  48. package/dist/{deploy-D-EVOWvu.mjs.map → deploy-BzqbkJ3o.mjs.map} +1 -1
  49. package/dist/{deploy-C08GONYW.cjs → deploy-Dpz9raPM.cjs} +6 -6
  50. package/dist/{deploy-C08GONYW.cjs.map → deploy-Dpz9raPM.cjs.map} +1 -1
  51. package/dist/{discover-OEfZ9OkA.cjs → discover-B4VjaFJk.cjs} +2 -2
  52. package/dist/{discover-OEfZ9OkA.cjs.map → discover-B4VjaFJk.cjs.map} +1 -1
  53. package/dist/{discover-BFoJWKGD.mjs → discover-Buwf1z4P.mjs} +2 -2
  54. package/dist/{discover-BFoJWKGD.mjs.map → discover-Buwf1z4P.mjs.map} +1 -1
  55. package/dist/{dokploy-CZ6nfSV9.cjs → dokploy-B6O-J1fb.cjs} +2 -2
  56. package/dist/{dokploy-CZ6nfSV9.cjs.map → dokploy-B6O-J1fb.cjs.map} +1 -1
  57. package/dist/{dokploy-DU-XJsoT.mjs → dokploy-DkwcORbv.mjs} +2 -2
  58. package/dist/{dokploy-DU-XJsoT.mjs.map → dokploy-DkwcORbv.mjs.map} +1 -1
  59. package/dist/{encryption-DSiLau1-.mjs → encryption-7m1mKcRy.mjs} +3 -3
  60. package/dist/{encryption-DSiLau1-.mjs.map → encryption-7m1mKcRy.mjs.map} +1 -1
  61. package/dist/{encryption-CCcBSLZs.cjs → encryption-C8Ic5t0C.cjs} +3 -3
  62. package/dist/{encryption-CCcBSLZs.cjs.map → encryption-C8Ic5t0C.cjs.map} +1 -1
  63. package/dist/{engine-llWnMZH5.mjs → engine-62Kl70Pj.mjs} +14 -6
  64. package/dist/{engine-llWnMZH5.mjs.map → engine-62Kl70Pj.mjs.map} +1 -1
  65. package/dist/{engine-BM9Dy_DT.cjs → engine-BR9qlS7A.cjs} +14 -6
  66. package/dist/engine-BR9qlS7A.cjs.map +1 -0
  67. package/dist/{github-ZoMam0OH.cjs → github-CmGIZjhu.cjs} +3 -3
  68. package/dist/{github-ZoMam0OH.cjs.map → github-CmGIZjhu.cjs.map} +1 -1
  69. package/dist/{github-yy6WpHIl.mjs → github-DtymyOcH.mjs} +3 -3
  70. package/dist/{github-yy6WpHIl.mjs.map → github-DtymyOcH.mjs.map} +1 -1
  71. package/dist/index.cjs +86 -47
  72. package/dist/index.cjs.map +1 -1
  73. package/dist/index.mjs +86 -47
  74. package/dist/index.mjs.map +1 -1
  75. package/dist/{migrate-BWPuwiXk.mjs → migrate-CEzq6DjL.mjs} +4 -4
  76. package/dist/{migrate-BWPuwiXk.mjs.map → migrate-CEzq6DjL.mjs.map} +1 -1
  77. package/dist/{migrate-tOwxQBTI.cjs → migrate-CYC-hBOU.cjs} +4 -4
  78. package/dist/{migrate-tOwxQBTI.cjs.map → migrate-CYC-hBOU.cjs.map} +1 -1
  79. package/dist/openapi.cjs +1 -1
  80. package/dist/openapi.mjs +1 -1
  81. package/dist/{ready-2s3-CndS.mjs → ready-DeYaSoNN.mjs} +3 -3
  82. package/dist/{ready-2s3-CndS.mjs.map → ready-DeYaSoNN.mjs.map} +1 -1
  83. package/dist/{ready-B6uHr4sm.cjs → ready-QGgjmcuN.cjs} +3 -3
  84. package/dist/{ready-B6uHr4sm.cjs.map → ready-QGgjmcuN.cjs.map} +1 -1
  85. package/dist/reconcile/public.cjs +1 -1
  86. package/dist/reconcile/public.mjs +1 -1
  87. package/dist/{resolve-BymzGtuT.cjs → resolve-BDsMffvz.cjs} +3 -3
  88. package/dist/{resolve-BymzGtuT.cjs.map → resolve-BDsMffvz.cjs.map} +1 -1
  89. package/dist/{resolve-pIvXlZ1h.mjs → resolve-Dn5wGf1r.mjs} +3 -3
  90. package/dist/{resolve-pIvXlZ1h.mjs.map → resolve-Dn5wGf1r.mjs.map} +1 -1
  91. package/dist/{rollback-zdfi6Reg.cjs → rollback-5XHaBDxW.cjs} +5 -5
  92. package/dist/{rollback-zdfi6Reg.cjs.map → rollback-5XHaBDxW.cjs.map} +1 -1
  93. package/dist/{rollback-ZlsbQOvj.mjs → rollback-DDfaqv7P.mjs} +5 -5
  94. package/dist/{rollback-ZlsbQOvj.mjs.map → rollback-DDfaqv7P.mjs.map} +1 -1
  95. package/dist/sandbox/credentials-worker.cjs +54 -0
  96. package/dist/sandbox/credentials-worker.cjs.map +1 -0
  97. package/dist/sandbox/credentials-worker.d.cts +1 -0
  98. package/dist/sandbox/credentials-worker.d.mts +1 -0
  99. package/dist/sandbox/credentials-worker.mjs +55 -0
  100. package/dist/sandbox/credentials-worker.mjs.map +1 -0
  101. package/dist/sandbox/discover-worker.cjs +1 -1
  102. package/dist/sandbox/discover-worker.mjs +1 -1
  103. package/dist/sandbox/migrate-worker.cjs +1 -1
  104. package/dist/sandbox/migrate-worker.mjs +1 -1
  105. package/dist/{schemas-RUlKHu27.cjs → schemas-BObwxB_t.cjs} +164 -3
  106. package/dist/schemas-BObwxB_t.cjs.map +1 -0
  107. package/dist/{schemas-Cfhtpdo0.mjs → schemas-D-xeKJDD.mjs} +153 -4
  108. package/dist/schemas-D-xeKJDD.mjs.map +1 -0
  109. package/dist/{sniffer-D66HIvi9.cjs → sniffer-Bc0nNBDF.cjs} +7 -7
  110. package/dist/{sniffer-D66HIvi9.cjs.map → sniffer-Bc0nNBDF.cjs.map} +1 -1
  111. package/dist/{sniffer-BdFeLSmA.mjs → sniffer-DMqi2b1q.mjs} +7 -7
  112. package/dist/{sniffer-BdFeLSmA.mjs.map → sniffer-DMqi2b1q.mjs.map} +1 -1
  113. package/dist/{state-CHZqCDRC.cjs → state-8RgXeX5Y.cjs} +116 -62
  114. package/dist/{state-CHZqCDRC.cjs.map → state-8RgXeX5Y.cjs.map} +1 -1
  115. package/dist/{state-Bn5JDMFT.mjs → state-DClnPZt5.mjs} +105 -63
  116. package/dist/{state-Bn5JDMFT.mjs.map → state-DClnPZt5.mjs.map} +1 -1
  117. package/dist/target/public.cjs +1 -1
  118. package/dist/target/public.mjs +1 -1
  119. package/dist/{terminal-C3cv-OQu.mjs → terminal-C6TBo_SA.mjs} +2 -2
  120. package/dist/{terminal-C3cv-OQu.mjs.map → terminal-C6TBo_SA.mjs.map} +1 -1
  121. package/dist/{terminal-DjzgLu6m.cjs → terminal-CFO3xWoF.cjs} +2 -2
  122. package/dist/{terminal-DjzgLu6m.cjs.map → terminal-CFO3xWoF.cjs.map} +1 -1
  123. package/dist/vitest.cjs +1 -1
  124. package/dist/vitest.mjs +1 -1
  125. package/dist/workspace/index.cjs +1 -1
  126. package/dist/workspace/index.mjs +1 -1
  127. package/dist/{workspace-ON-bqiJz.cjs → workspace-8NuAjaXJ.cjs} +2 -2
  128. package/dist/{workspace-ON-bqiJz.cjs.map → workspace-8NuAjaXJ.cjs.map} +1 -1
  129. package/dist/{workspace-Be6uBhlF.mjs → workspace-B2UK_rVP.mjs} +2 -2
  130. package/dist/{workspace-Be6uBhlF.mjs.map → workspace-B2UK_rVP.mjs.map} +1 -1
  131. package/package.json +16 -13
  132. package/dist/compose-DFxuYhn6.mjs.map +0 -1
  133. package/dist/compose-DvsgumY2.cjs.map +0 -1
  134. package/dist/engine-BM9Dy_DT.cjs.map +0 -1
  135. package/dist/schemas-Cfhtpdo0.mjs.map +0 -1
  136. package/dist/schemas-RUlKHu27.cjs.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 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
- 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-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";
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.68";
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-BWPuwiXk.mjs");
2039
+ const { prepareDevDatabases } = await import("./migrate-CEzq6DjL.mjs");
2039
2040
  await prepareDevDatabases(workspace, reconciled.env, { seed: !!options.seed });
2040
- } else await import("./migrate-BWPuwiXk.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-C-w7aGoZ.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-C-w7aGoZ.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),
@@ -5252,25 +5253,25 @@ function loadPackageJson() {
5252
5253
  * Run: pnpm --filter @geekmidas/cli sync-versions
5253
5254
  */
5254
5255
  const GEEKMIDAS_VERSIONS = {
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",
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",
5274
5275
  "@geekmidas/cli": `~${loadPackageJson().version}`
5275
5276
  };
5276
5277
  //#endregion
@@ -10501,10 +10502,37 @@ async function secretsSetCommand(key, value, options) {
10501
10502
  logger$2.error(`Secrets not found for stage "${stage}". Run "gkm secrets:init --stage ${stage}" first.`);
10502
10503
  process.exit(1);
10503
10504
  }
10505
+ await assertCredentialValue(key, secretValue, stage);
10504
10506
  await store.write(stage, withCustomSecret(secrets, key, secretValue));
10505
10507
  logger$2.log(`\n✓ Secret "${key}" set for stage "${stage}" (${store.name})`);
10506
10508
  }
10507
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
+ /**
10508
10536
  * Show secrets for a stage.
10509
10537
  */
10510
10538
  async function secretsShowCommand(options) {
@@ -11033,8 +11061,8 @@ function testDatabases(reconciled) {
11033
11061
  * starts without the reference data the app needs.
11034
11062
  */
11035
11063
  async function migrateTestStage(workspace, env) {
11036
- const { migrateAndSeed } = await import("./migrate-BWPuwiXk.mjs");
11037
- 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);
11038
11066
  const sources = {};
11039
11067
  const manifest = await discover({
11040
11068
  patterns: constructGlobs(workspace),
@@ -11464,7 +11492,7 @@ program.command("migrate").description("Apply each database construct's migratio
11464
11492
  try {
11465
11493
  const globalOptions = program.opts();
11466
11494
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11467
- const { migrateCommand } = await import("./migrate-BWPuwiXk.mjs");
11495
+ const { migrateCommand } = await import("./migrate-CEzq6DjL.mjs");
11468
11496
  await migrateCommand({
11469
11497
  ...options,
11470
11498
  ...construct ? { construct } : {}
@@ -11478,7 +11506,7 @@ program.command("seed").description("Migrate, then run each database construct's
11478
11506
  try {
11479
11507
  const globalOptions = program.opts();
11480
11508
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11481
- const { seedCommand } = await import("./migrate-BWPuwiXk.mjs");
11509
+ const { seedCommand } = await import("./migrate-CEzq6DjL.mjs");
11482
11510
  await seedCommand({
11483
11511
  ...options,
11484
11512
  ...construct ? { construct } : {}
@@ -11492,7 +11520,7 @@ program.command("migration").description("Write a construct's next migration: an
11492
11520
  try {
11493
11521
  const globalOptions = program.opts();
11494
11522
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11495
- const { migrationCommand } = await import("./migrate-BWPuwiXk.mjs");
11523
+ const { migrationCommand } = await import("./migrate-CEzq6DjL.mjs");
11496
11524
  await migrationCommand({
11497
11525
  construct,
11498
11526
  ...name ? { name } : {}
@@ -11582,11 +11610,22 @@ program.command("secrets:set").description("Set a custom secret for a stage").ar
11582
11610
  process.exit(1);
11583
11611
  }
11584
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
+ });
11585
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) => {
11586
11625
  try {
11587
11626
  const globalOptions = program.opts();
11588
11627
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11589
- const { encryptionRotateCommand } = await import("./encryption-DSiLau1-.mjs");
11628
+ const { encryptionRotateCommand } = await import("./encryption-7m1mKcRy.mjs");
11590
11629
  await encryptionRotateCommand(construct, options);
11591
11630
  } catch (error) {
11592
11631
  console.error(formatError(error));
@@ -11597,7 +11636,7 @@ program.command("encryption:retire").description("Remove an old key from an Encr
11597
11636
  try {
11598
11637
  const globalOptions = program.opts();
11599
11638
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11600
- const { encryptionRetireCommand } = await import("./encryption-DSiLau1-.mjs");
11639
+ const { encryptionRetireCommand } = await import("./encryption-7m1mKcRy.mjs");
11601
11640
  await encryptionRetireCommand(construct, key, options);
11602
11641
  } catch (error) {
11603
11642
  console.error(formatError(error));
@@ -11640,7 +11679,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
11640
11679
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11641
11680
  const { loadWorkspaceConfig } = await import("./config.mjs");
11642
11681
  const { reconcileMissingSecrets } = await import("./reconcile--I7V4Klj.mjs");
11643
- const { secretsStoreFor } = await import("./state-Bn5JDMFT.mjs").then((n) => n.Nt);
11682
+ const { secretsStoreFor } = await import("./state-DClnPZt5.mjs").then((n) => n.Ft);
11644
11683
  const { workspace } = await loadWorkspaceConfig();
11645
11684
  const stage = options.stage ?? workspace.stages.local;
11646
11685
  const store = await secretsStoreFor(workspace, stage);
@@ -11649,7 +11688,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
11649
11688
  console.error(`No secrets found for stage "${stage}". Run "gkm secrets:init --stage ${stage}" first.`);
11650
11689
  process.exit(1);
11651
11690
  }
11652
- const { derivedContainers } = await import("./state-Bn5JDMFT.mjs").then((n) => n.W);
11691
+ const { derivedContainers } = await import("./state-DClnPZt5.mjs").then((n) => n.K);
11653
11692
  const result = reconcileMissingSecrets(secrets, workspace, await derivedContainers(workspace, stage));
11654
11693
  if (!result) {
11655
11694
  console.log(`\n✓ Secrets for stage "${stage}" are up-to-date`);
@@ -11664,7 +11703,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
11664
11703
  }
11665
11704
  });
11666
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) => {
11667
- const { deployCli } = await import("./cli-Ce4pLL5O.mjs");
11706
+ const { deployCli } = await import("./cli-ij8Lwlww.mjs");
11668
11707
  const globalOptions = program.opts();
11669
11708
  const code = await deployCli({
11670
11709
  cwd: resolve(globalOptions.cwd ?? process.cwd()),
@@ -11681,8 +11720,8 @@ program.command("deploy").description("Deploy a stage through its target").optio
11681
11720
  });
11682
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) => {
11683
11722
  try {
11684
- const { rollbackStage } = await import("./rollback-ZlsbQOvj.mjs").then((n) => n.a);
11685
- 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");
11686
11725
  const globalOptions = program.opts();
11687
11726
  await rollbackStage({
11688
11727
  cwd: resolve(globalOptions.cwd ?? process.cwd()),
@@ -11717,7 +11756,7 @@ program.command("deploy:github").description("Let GitHub Actions deploy a stage:
11717
11756
  try {
11718
11757
  const globalOptions = program.opts();
11719
11758
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11720
- const { deployGithubCommand } = await import("./github-yy6WpHIl.mjs");
11759
+ const { deployGithubCommand } = await import("./github-DtymyOcH.mjs");
11721
11760
  await deployGithubCommand(options);
11722
11761
  } catch (error) {
11723
11762
  console.error(formatError(error));