@geekmidas/cli 10.0.0-alpha.50 → 10.0.0-alpha.51

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 (55) hide show
  1. package/dist/{config-CsYSyUya.cjs → config-Cvr5fCbn.cjs} +3 -2
  2. package/dist/config-Cvr5fCbn.cjs.map +1 -0
  3. package/dist/{config-D8J5rrTb.mjs → config-SOkDH-n1.mjs} +3 -2
  4. package/dist/config-SOkDH-n1.mjs.map +1 -0
  5. package/dist/config.cjs +2 -2
  6. package/dist/config.d.cts +2 -2
  7. package/dist/config.d.mts +2 -2
  8. package/dist/config.mjs +2 -2
  9. package/dist/{encryption-C7OGMve_.cjs → encryption-Bt8SHRI6.cjs} +3 -3
  10. package/dist/{encryption-C7OGMve_.cjs.map → encryption-Bt8SHRI6.cjs.map} +1 -1
  11. package/dist/{encryption-DyQnPsZN.mjs → encryption-DRCXp-U4.mjs} +3 -3
  12. package/dist/{encryption-DyQnPsZN.mjs.map → encryption-DRCXp-U4.mjs.map} +1 -1
  13. package/dist/{github-BrI1tv6u.cjs → github-BGx4U61b.cjs} +3 -3
  14. package/dist/{github-BrI1tv6u.cjs.map → github-BGx4U61b.cjs.map} +1 -1
  15. package/dist/{github-BfpadQWQ.mjs → github-U_frvZgD.mjs} +3 -3
  16. package/dist/{github-BfpadQWQ.mjs.map → github-U_frvZgD.mjs.map} +1 -1
  17. package/dist/{index-BQhJXpaQ.d.mts → index-DYh5TrsZ.d.mts} +2 -2
  18. package/dist/{index-BQhJXpaQ.d.mts.map → index-DYh5TrsZ.d.mts.map} +1 -1
  19. package/dist/{index-DHJePE0y.d.cts → index-fU3qHy7c.d.cts} +2 -2
  20. package/dist/{index-DHJePE0y.d.cts.map → index-fU3qHy7c.d.cts.map} +1 -1
  21. package/dist/index.cjs +72 -74
  22. package/dist/index.cjs.map +1 -1
  23. package/dist/index.mjs +72 -74
  24. package/dist/index.mjs.map +1 -1
  25. package/dist/{migrate-CNlew9Ek.cjs → migrate-dx4I0epp.cjs} +4 -4
  26. package/dist/{migrate-CNlew9Ek.cjs.map → migrate-dx4I0epp.cjs.map} +1 -1
  27. package/dist/{migrate-B00XpVaO.mjs → migrate-soUQtku3.mjs} +4 -4
  28. package/dist/{migrate-B00XpVaO.mjs.map → migrate-soUQtku3.mjs.map} +1 -1
  29. package/dist/openapi.cjs +1 -1
  30. package/dist/openapi.d.cts +1 -1
  31. package/dist/openapi.d.mts +1 -1
  32. package/dist/openapi.mjs +1 -1
  33. package/dist/reconcile/public.d.cts +1 -1
  34. package/dist/reconcile/public.d.mts +1 -1
  35. package/dist/{types-BbrNu83u.d.mts → types-CT0ymlBk.d.mts} +25 -24
  36. package/dist/{types-BbrNu83u.d.mts.map → types-CT0ymlBk.d.mts.map} +1 -1
  37. package/dist/{types-DNqEsctD.d.cts → types-DYDT4FfE.d.cts} +25 -24
  38. package/dist/{types-DNqEsctD.d.cts.map → types-DYDT4FfE.d.cts.map} +1 -1
  39. package/dist/workspace/index.cjs +1 -1
  40. package/dist/workspace/index.d.cts +2 -2
  41. package/dist/workspace/index.d.mts +2 -2
  42. package/dist/workspace/index.mjs +1 -1
  43. package/dist/{workspace-DEibcoBe.cjs → workspace-BcCiLzTO.cjs} +4 -4
  44. package/dist/{workspace-DEibcoBe.cjs.map → workspace-BcCiLzTO.cjs.map} +1 -1
  45. package/dist/{workspace-BsbxbqV-.mjs → workspace-Dp2zK_Nk.mjs} +15 -4
  46. package/dist/workspace-Dp2zK_Nk.mjs.map +1 -0
  47. package/dist/{workspace-j6ZxvJqq.cjs → workspace-GBzR_hID.cjs} +15 -4
  48. package/dist/workspace-GBzR_hID.cjs.map +1 -0
  49. package/dist/{workspace-DNzWgM1J.mjs → workspace-bOsks1uk.mjs} +4 -4
  50. package/dist/{workspace-DNzWgM1J.mjs.map → workspace-bOsks1uk.mjs.map} +1 -1
  51. package/package.json +14 -14
  52. package/dist/config-CsYSyUya.cjs.map +0 -1
  53. package/dist/config-D8J5rrTb.mjs.map +0 -1
  54. package/dist/workspace-BsbxbqV-.mjs.map +0 -1
  55. package/dist/workspace-j6ZxvJqq.cjs.map +0 -1
package/dist/index.cjs CHANGED
@@ -2,11 +2,11 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const require_rolldown_runtime = require("./rolldown-runtime-C0BPl7ul.cjs");
4
4
  const require_discover = require("./discover-DXNviAh-.cjs");
5
- const require_config = require("./config-CsYSyUya.cjs");
6
- const require_workspace = require("./workspace-DEibcoBe.cjs");
5
+ const require_config = require("./config-Cvr5fCbn.cjs");
6
+ const require_workspace = require("./workspace-BcCiLzTO.cjs");
7
7
  const require_storage = require("./storage-CSGoC3bK.cjs");
8
8
  const require_store = require("./store-DQgxT_WR.cjs");
9
- const require_workspace$1 = require("./workspace-j6ZxvJqq.cjs");
9
+ const require_workspace$1 = require("./workspace-GBzR_hID.cjs");
10
10
  const require_OpenApiTsGenerator = require("./OpenApiTsGenerator-BN0PIZxd.cjs");
11
11
  const require_openapi = require("./openapi.cjs");
12
12
  const require_ready = require("./ready-lr2Fm-ep.cjs");
@@ -48,7 +48,7 @@ let _geekmidas_constructs_queue = require("@geekmidas/constructs/queue");
48
48
  let _geekmidas_constructs_topic = require("@geekmidas/constructs/topic");
49
49
  let node_dns_promises = require("node:dns/promises");
50
50
  //#region package.json
51
- var version = "10.0.0-alpha.50";
51
+ var version = "10.0.0-alpha.51";
52
52
  //#endregion
53
53
  //#region src/auth/credentials.ts
54
54
  /**
@@ -1731,9 +1731,9 @@ async function workspaceDevCommand(configured, options) {
1731
1731
  for (const { id, port } of fakes) logger$9.log(`🎭 ${id} fake: http://localhost:${port}`);
1732
1732
  logger$9.log(options.migrate || options.seed ? "🗄️ Migrating the databases" : "🗄️ Checking for pending migrations");
1733
1733
  if (options.migrate || options.seed) {
1734
- const { prepareDevDatabases } = await Promise.resolve().then(() => require("./migrate-CNlew9Ek.cjs"));
1734
+ const { prepareDevDatabases } = await Promise.resolve().then(() => require("./migrate-dx4I0epp.cjs"));
1735
1735
  await prepareDevDatabases(workspace, reconciled.env, { seed: !!options.seed });
1736
- } else await Promise.resolve().then(() => require("./migrate-CNlew9Ek.cjs")).then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
1736
+ } else await Promise.resolve().then(() => require("./migrate-dx4I0epp.cjs")).then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
1737
1737
  logger$9.log(`⚠️ Could not check for pending migrations: ${error instanceof Error ? error.message : String(error)}`);
1738
1738
  });
1739
1739
  const appUrls = {};
@@ -3997,7 +3997,7 @@ async function provisionDeclared(options) {
3997
3997
  cache: require_backends.cacheBackendFor(require_backends.providerOf(workspace)),
3998
3998
  events: require_backends.eventsBackendFor(require_backends.providerOf(workspace)),
3999
3999
  storage: require_backends.storageBackendFor(require_backends.providerOf(workspace)),
4000
- addresses: surfaceAddresses(workspace, manifest, options.appUrls),
4000
+ addresses: surfaceAddresses(manifest, options.appUrls),
4001
4001
  seed: options.seed,
4002
4002
  ...options.supplied ? { supplied: options.supplied } : {},
4003
4003
  deferred: [],
@@ -4059,25 +4059,20 @@ function carriersLast(ordered, manifest) {
4059
4059
  return [...ordered.filter((id) => !carries(id)), ...ordered.filter(carries)];
4060
4060
  }
4061
4061
  /**
4062
- * Where each declared surface answers.
4062
+ * Where each declared surface answers: its own app's address.
4063
4063
  *
4064
- * Every `rest-api` in a process answers on that process's address, so an app
4065
- * serving both its own API and an auth server publishes one address twice —
4066
- * which is exactly what it does at runtime, and the same rule the local target
4067
- * applies.
4068
- *
4069
- * A workspace with two backends is the case this does not answer, and the
4070
- * manifest cannot yet: which surface belongs to which app is what §2's endpoint
4071
- * merge would record. Until then the first backend's address is used, and a
4072
- * second backend's surfaces would be wrong rather than missing — worth knowing
4073
- * before relying on it.
4064
+ * Every surface is an app of its own, keyed by its id the way the derivation
4065
+ * keyed it — `Api` is `api`, `Webhooks` is `webhooks` — and answers on that
4066
+ * app's host, `{subdomain}.{domain}`. It used to be handed the first backend's
4067
+ * address, so a workspace with two APIs pointed both at the same one.
4074
4068
  */
4075
- function surfaceAddresses(workspace, manifest, appUrls) {
4069
+ function surfaceAddresses(manifest, appUrls) {
4076
4070
  const addresses = {};
4077
- const backend = Object.entries(workspace.apps).find(([, app]) => app.type === "backend");
4078
- const url = backend ? appUrls[backend[0]] : void 0;
4079
- if (!url) return addresses;
4080
- for (const [id, declaration] of Object.entries(manifest)) if (declaration.kind === "rest-api") addresses[id] = url;
4071
+ for (const [id, declaration] of Object.entries(manifest)) {
4072
+ if (declaration.kind !== "rest-api") continue;
4073
+ const url = appUrls[require_config.appKey(id)];
4074
+ if (url) addresses[id] = url;
4075
+ }
4081
4076
  return addresses;
4082
4077
  }
4083
4078
  //#endregion
@@ -4562,32 +4557,34 @@ async function verifyDnsRecords(appHostnames, serverIp, state) {
4562
4557
  }
4563
4558
  //#endregion
4564
4559
  //#region src/deploy/domain.ts
4560
+ /** A stage was deployed that `deploy.domains` gives no domain. */
4561
+ var NoDomainForStage = class extends Error {
4562
+ stage;
4563
+ constructor(stage) {
4564
+ super(`No domain for stage "${stage}". Add it to gkm.config.ts: deploy: { domains: { ${stage}: 'example.com' } }.`);
4565
+ this.stage = stage;
4566
+ this.name = "NoDomainForStage";
4567
+ }
4568
+ };
4565
4569
  /**
4566
- * Resolve the hostname for an app based on stage configuration.
4570
+ * The hostname an app answers on for a stage.
4567
4571
  *
4568
- * Domain resolution priority:
4569
- * 1. Explicit app.domain override (string or stage-specific)
4570
- * 2. Default pattern based on app type:
4571
- * - Main frontend app gets base domain (e.g., 'myapp.com')
4572
- * - Other apps get prefixed domain (e.g., 'api.myapp.com')
4572
+ * 1. An explicit `app.domain` — a string, or one per stage — wins.
4573
+ * 2. Otherwise from the stage's base domain in `deploy.domains`: the root site
4574
+ * answers on the domain itself, and every other app on
4575
+ * `{subdomain}.{domain}` — its declaration's `subdomain`, or its own name.
4573
4576
  *
4574
- * @param appName - The name of the app
4575
- * @param app - The normalized app configuration
4576
- * @param stage - The deployment stage (e.g., 'production', 'development')
4577
- * @param dokployConfig - Dokploy workspace configuration with domain mappings
4578
- * @param isMainFrontend - Whether this is the main frontend app
4579
- * @returns The resolved hostname for the app
4580
- * @throws Error if no domain configuration is found for the stage
4577
+ * @throws {NoDomainForStage} when `deploy.domains` names no domain for it
4581
4578
  */
4582
- function resolveHost(appName, app, stage, dokployConfig, isMainFrontend) {
4579
+ function resolveHost(appName, app, stage, domains, isMainFrontend) {
4583
4580
  if (app.domain) {
4584
4581
  if (typeof app.domain === "string") return app.domain;
4585
4582
  if (app.domain[stage]) return app.domain[stage];
4586
4583
  }
4587
- const baseDomain = dokployConfig?.domains?.[stage];
4588
- if (!baseDomain) throw new Error(`No domain configured for stage "${stage}". Add deploy.dokploy.domains.${stage} to gkm.config.ts`);
4584
+ const baseDomain = domains?.[stage];
4585
+ if (!baseDomain) throw new NoDomainForStage(stage);
4589
4586
  if (isMainFrontend) return baseDomain;
4590
- return `${appName}.${baseDomain}`;
4587
+ return `${app.subdomain ?? appName}.${baseDomain}`;
4591
4588
  }
4592
4589
  /**
4593
4590
  * Whether this app is the site the base domain points at — see `rootSite`,
@@ -7612,7 +7609,6 @@ async function workspaceDeployCommand(configured, options) {
7612
7609
  if (skippedMobileApps.length > 0) logger$4.log(`\n📱 Skipping ${skippedMobileApps.length} mobile app(s) — deploy via framework toolchain: ${skippedMobileApps.join(", ")}`);
7613
7610
  const backendApps = appsToDeployNames.filter((name) => workspace.apps[name].type === "backend");
7614
7611
  const frontendApps = appsToDeployNames.filter((name) => workspace.apps[name].type === "web");
7615
- const dokployConfig = workspace.deploy.dokploy;
7616
7612
  let declaredEnv = {};
7617
7613
  let declaredClusters = {};
7618
7614
  {
@@ -7621,7 +7617,7 @@ async function workspaceDeployCommand(configured, options) {
7621
7617
  for (const appName of backendApps) {
7622
7618
  const app = workspace.apps[appName];
7623
7619
  if (!app) continue;
7624
- appUrls[appName] = `https://${resolveHost(appName, app, stage, dokployConfig, false)}`;
7620
+ appUrls[appName] = `https://${resolveHost(appName, app, stage, workspace.deploy?.domains, false)}`;
7625
7621
  }
7626
7622
  const declared = await provisionDeclared({
7627
7623
  api,
@@ -7685,7 +7681,8 @@ async function workspaceDeployCommand(configured, options) {
7685
7681
  const frontendUrls = [];
7686
7682
  for (const appName of frontendApps) {
7687
7683
  const app = workspace.apps[appName];
7688
- const hostname = resolveHost(appName, app, stage, dokployConfig, isMainFrontendApp(appName, app, workspace.apps));
7684
+ const isMainFrontend = isMainFrontendApp(appName, app, workspace.apps);
7685
+ const hostname = resolveHost(appName, app, stage, workspace.deploy?.domains, isMainFrontend);
7689
7686
  frontendUrls.push(`https://${hostname}`);
7690
7687
  }
7691
7688
  if (backendApps.length > 0) {
@@ -7731,7 +7728,7 @@ async function workspaceDeployCommand(configured, options) {
7731
7728
  },
7732
7729
  buildArgs
7733
7730
  });
7734
- const backendHost = resolveHost(appName, app, stage, dokployConfig, false);
7731
+ const backendHost = resolveHost(appName, app, stage, workspace.deploy?.domains, false);
7735
7732
  const dependencyUrls = {};
7736
7733
  if (app.dependencies) {
7737
7734
  for (const dep of app.dependencies) if (publicUrls[dep]) dependencyUrls[dep] = publicUrls[dep];
@@ -7836,7 +7833,8 @@ async function workspaceDeployCommand(configured, options) {
7836
7833
  if (app.dependencies) {
7837
7834
  for (const dep of app.dependencies) if (publicUrls[dep]) dependencyUrls[dep] = publicUrls[dep];
7838
7835
  }
7839
- const frontendHost = resolveHost(appName, app, stage, dokployConfig, isMainFrontendApp(appName, app, workspace.apps));
7836
+ const isMainFrontend = isMainFrontendApp(appName, app, workspace.apps);
7837
+ const frontendHost = resolveHost(appName, app, stage, workspace.deploy?.domains, isMainFrontend);
7840
7838
  const envContext = {
7841
7839
  app,
7842
7840
  appName,
@@ -9328,26 +9326,26 @@ function loadPackageJson() {
9328
9326
  * Run: pnpm --filter @geekmidas/cli sync-versions
9329
9327
  */
9330
9328
  const GEEKMIDAS_VERSIONS = {
9331
- "@geekmidas/audit": "~10.0.0-alpha.50",
9332
- "@geekmidas/auth": "~10.0.0-alpha.50",
9333
- "@geekmidas/cache": "~10.0.0-alpha.50",
9334
- "@geekmidas/client": "~10.0.0-alpha.50",
9335
- "@geekmidas/cloud": "~10.0.0-alpha.50",
9336
- "@geekmidas/constructs": "~10.0.0-alpha.50",
9337
- "@geekmidas/db": "~10.0.0-alpha.50",
9338
- "@geekmidas/emailkit": "~10.0.0-alpha.50",
9339
- "@geekmidas/envkit": "~10.0.0-alpha.50",
9340
- "@geekmidas/errors": "~10.0.0-alpha.50",
9341
- "@geekmidas/events": "~10.0.0-alpha.50",
9342
- "@geekmidas/logger": "~10.0.0-alpha.50",
9343
- "@geekmidas/manifest": "~10.0.0-alpha.50",
9344
- "@geekmidas/rate-limit": "~10.0.0-alpha.50",
9345
- "@geekmidas/schema": "~10.0.0-alpha.50",
9346
- "@geekmidas/services": "~10.0.0-alpha.50",
9347
- "@geekmidas/storage": "~10.0.0-alpha.50",
9348
- "@geekmidas/studio": "~10.0.0-alpha.50",
9349
- "@geekmidas/telescope": "~10.0.0-alpha.50",
9350
- "@geekmidas/testkit": "~10.0.0-alpha.50",
9329
+ "@geekmidas/audit": "~10.0.0-alpha.51",
9330
+ "@geekmidas/auth": "~10.0.0-alpha.51",
9331
+ "@geekmidas/cache": "~10.0.0-alpha.51",
9332
+ "@geekmidas/client": "~10.0.0-alpha.51",
9333
+ "@geekmidas/cloud": "~10.0.0-alpha.51",
9334
+ "@geekmidas/constructs": "~10.0.0-alpha.51",
9335
+ "@geekmidas/db": "~10.0.0-alpha.51",
9336
+ "@geekmidas/emailkit": "~10.0.0-alpha.51",
9337
+ "@geekmidas/envkit": "~10.0.0-alpha.51",
9338
+ "@geekmidas/errors": "~10.0.0-alpha.51",
9339
+ "@geekmidas/events": "~10.0.0-alpha.51",
9340
+ "@geekmidas/logger": "~10.0.0-alpha.51",
9341
+ "@geekmidas/manifest": "~10.0.0-alpha.51",
9342
+ "@geekmidas/rate-limit": "~10.0.0-alpha.51",
9343
+ "@geekmidas/schema": "~10.0.0-alpha.51",
9344
+ "@geekmidas/services": "~10.0.0-alpha.51",
9345
+ "@geekmidas/storage": "~10.0.0-alpha.51",
9346
+ "@geekmidas/studio": "~10.0.0-alpha.51",
9347
+ "@geekmidas/telescope": "~10.0.0-alpha.51",
9348
+ "@geekmidas/testkit": "~10.0.0-alpha.51",
9351
9349
  "@geekmidas/cli": `~${loadPackageJson().version}`
9352
9350
  };
9353
9351
  //#endregion
@@ -10902,7 +10900,7 @@ function generateDeployFiles(options) {
10902
10900
  // VPC with NAT is a monthly cost in an account that may already
10903
10901
  // have one — replace it with \`sst.aws.Vpc.get(…)\` if so.
10904
10902
  ${db.id}: { vpc },`] : [], ...options.constructs.mail ? [` // Every provider rejects an unverified sender, so there is no
10905
- // default; the synth stops with \`EmailNeedsSender\` until it is set.
10903
+ // default — \`fromManifest\` requires it, by the manifest's types.
10906
10904
  ${mail.id}: { from: process.env.MAIL_FROM as string },`] : []];
10907
10905
  return [{
10908
10906
  path: "sst.config.ts",
@@ -16090,7 +16088,7 @@ function testDatabases(reconciled) {
16090
16088
  * starts without the reference data the app needs.
16091
16089
  */
16092
16090
  async function migrateTestStage(workspace, env) {
16093
- const { migrateAndSeed } = await Promise.resolve().then(() => require("./migrate-CNlew9Ek.cjs"));
16091
+ const { migrateAndSeed } = await Promise.resolve().then(() => require("./migrate-dx4I0epp.cjs"));
16094
16092
  const { discover } = await Promise.resolve().then(() => require("./discover-DXNviAh-.cjs")).then((n) => n.discover_exports);
16095
16093
  const sources = {};
16096
16094
  const manifest = await discover({
@@ -16521,7 +16519,7 @@ program.command("migrate").description("Apply each database construct's migratio
16521
16519
  try {
16522
16520
  const globalOptions = program.opts();
16523
16521
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16524
- const { migrateCommand } = await Promise.resolve().then(() => require("./migrate-CNlew9Ek.cjs"));
16522
+ const { migrateCommand } = await Promise.resolve().then(() => require("./migrate-dx4I0epp.cjs"));
16525
16523
  await migrateCommand({
16526
16524
  ...options,
16527
16525
  ...construct ? { construct } : {}
@@ -16535,7 +16533,7 @@ program.command("seed").description("Migrate, then run each database construct's
16535
16533
  try {
16536
16534
  const globalOptions = program.opts();
16537
16535
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16538
- const { seedCommand } = await Promise.resolve().then(() => require("./migrate-CNlew9Ek.cjs"));
16536
+ const { seedCommand } = await Promise.resolve().then(() => require("./migrate-dx4I0epp.cjs"));
16539
16537
  await seedCommand({
16540
16538
  ...options,
16541
16539
  ...construct ? { construct } : {}
@@ -16549,7 +16547,7 @@ program.command("migration").description("Write a construct's next migration: an
16549
16547
  try {
16550
16548
  const globalOptions = program.opts();
16551
16549
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16552
- const { migrationCommand } = await Promise.resolve().then(() => require("./migrate-CNlew9Ek.cjs"));
16550
+ const { migrationCommand } = await Promise.resolve().then(() => require("./migrate-dx4I0epp.cjs"));
16553
16551
  await migrationCommand({
16554
16552
  construct,
16555
16553
  ...name ? { name } : {}
@@ -16647,7 +16645,7 @@ program.command("encryption:rotate").description("Add a new current key to an En
16647
16645
  try {
16648
16646
  const globalOptions = program.opts();
16649
16647
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16650
- const { encryptionRotateCommand } = await Promise.resolve().then(() => require("./encryption-C7OGMve_.cjs"));
16648
+ const { encryptionRotateCommand } = await Promise.resolve().then(() => require("./encryption-Bt8SHRI6.cjs"));
16651
16649
  await encryptionRotateCommand(construct, options);
16652
16650
  } catch (error) {
16653
16651
  console.error(formatError(error));
@@ -16658,7 +16656,7 @@ program.command("encryption:retire").description("Remove an old key from an Encr
16658
16656
  try {
16659
16657
  const globalOptions = program.opts();
16660
16658
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16661
- const { encryptionRetireCommand } = await Promise.resolve().then(() => require("./encryption-C7OGMve_.cjs"));
16659
+ const { encryptionRetireCommand } = await Promise.resolve().then(() => require("./encryption-Bt8SHRI6.cjs"));
16662
16660
  await encryptionRetireCommand(construct, key, options);
16663
16661
  } catch (error) {
16664
16662
  console.error(formatError(error));
@@ -16710,7 +16708,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
16710
16708
  console.error(`No secrets found for stage "${stage}". Run "gkm secrets:init --stage ${stage}" first.`);
16711
16709
  process.exit(1);
16712
16710
  }
16713
- const { derivedContainers } = await Promise.resolve().then(() => require("./workspace-j6ZxvJqq.cjs")).then((n) => n.workspace_exports);
16711
+ const { derivedContainers } = await Promise.resolve().then(() => require("./workspace-GBzR_hID.cjs")).then((n) => n.workspace_exports);
16714
16712
  const result = reconcileMissingSecrets(secrets, workspace, await derivedContainers(workspace, stage));
16715
16713
  if (!result) {
16716
16714
  console.log(`\n✓ Secrets for stage "${stage}" are up-to-date`);
@@ -16769,7 +16767,7 @@ program.command("deploy:github").description("Let GitHub Actions deploy a stage:
16769
16767
  try {
16770
16768
  const globalOptions = program.opts();
16771
16769
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16772
- const { deployGithubCommand } = await Promise.resolve().then(() => require("./github-BrI1tv6u.cjs"));
16770
+ const { deployGithubCommand } = await Promise.resolve().then(() => require("./github-BGx4U61b.cjs"));
16773
16771
  await deployGithubCommand(options);
16774
16772
  } catch (error) {
16775
16773
  console.error(formatError(error));