@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.mjs CHANGED
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env -S npx tsx
2
2
  import { n as __require, t as __exportAll } from "./rolldown-runtime-BhDjJH2R.mjs";
3
3
  import { i as ConstructGenerator, t as discover } from "./discover-Cf2jAcgF.mjs";
4
- import { d as parseModuleConfig, f as appKey, l as loadWorkspaceConfig, n as NotABackendApp, o as loadAppConfig, p as derivedApps, r as NotInAnApp, s as loadConfig, t as ConfigNotFound, u as loadWorkspaceSettings } from "./config-D8J5rrTb.mjs";
5
- import { D as assertDeployedStage, E as TEST_STAGE, O as deployedProblems, T as InvalidStages, a as getAppBuildOrder, b as getDeployTargetError, k as stageProblems, m as stripPublicPrefix, o as getAppGkmConfig, p as getPublicEnvPrefix, t as allConstructGlobs, x as isDeployTargetSupported } from "./workspace-DNzWgM1J.mjs";
4
+ import { d as parseModuleConfig, f as appKey, l as loadWorkspaceConfig, n as NotABackendApp, o as loadAppConfig, p as derivedApps, r as NotInAnApp, s as loadConfig, t as ConfigNotFound, u as loadWorkspaceSettings } from "./config-SOkDH-n1.mjs";
5
+ import { D as assertDeployedStage, E as TEST_STAGE, O as deployedProblems, T as InvalidStages, a as getAppBuildOrder, b as getDeployTargetError, k as stageProblems, m as stripPublicPrefix, o as getAppGkmConfig, p as getPublicEnvPrefix, t as allConstructGlobs, x as isDeployTargetSupported } from "./workspace-bOsks1uk.mjs";
6
6
  import { a as withCustomSecret, i as toEmbeddableSecrets, n as maskPassword, t as initStageSecrets } from "./storage-BzaUxmqe.mjs";
7
7
  import { a as getKeyPath, i as FileSecretsStore, n as secretsStoreFor } from "./store-DeGATCS-.mjs";
8
- import { C as loadEnvFiles, S as isPortAvailable, T as prepareEntryCredentials, _ as fakeKey, a as reconcileWorkspace, b as createEntryWrapper, c as LOCAL_CA_PATH, d as postgresDatabaseNames, f as quoteIdentifier, g as describeServices, h as rootSite, i as derivedContainers, l as forgetState, m as resourceName, n as backendsOf$1, p as pgClient, r as constructGlobs, s as COMPOSE_PATH, t as FAKE_ENV, u as applyPostgres, v as primaryPortKey, w as loadSecretsForApp, x as findAvailablePort, y as createCredentialsPreload } from "./workspace-BsbxbqV-.mjs";
8
+ import { C as loadEnvFiles, S as isPortAvailable, T as prepareEntryCredentials, _ as fakeKey, a as reconcileWorkspace, b as createEntryWrapper, c as LOCAL_CA_PATH, d as postgresDatabaseNames, f as quoteIdentifier, g as describeServices, h as rootSite, i as derivedContainers, l as forgetState, m as resourceName, n as backendsOf$1, p as pgClient, r as constructGlobs, s as COMPOSE_PATH, t as FAKE_ENV, u as applyPostgres, v as primaryPortKey, w as loadSecretsForApp, x as findAvailablePort, y as createCredentialsPreload } from "./workspace-Dp2zK_Nk.mjs";
9
9
  import { n as EndpointGenerator, r as runtimeFor } from "./OpenApiTsGenerator-BzIGy8KE.mjs";
10
10
  import { generateOpenApi, openapiCommand, resolveOpenApiConfig } from "./openapi.mjs";
11
11
  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-WfT-eWlm.mjs";
@@ -42,7 +42,7 @@ import { Queue } from "@geekmidas/constructs/queue";
42
42
  import { Topic } from "@geekmidas/constructs/topic";
43
43
  import { lookup } from "node:dns/promises";
44
44
  //#region package.json
45
- var version = "10.0.0-alpha.50";
45
+ var version = "10.0.0-alpha.51";
46
46
  //#endregion
47
47
  //#region src/auth/credentials.ts
48
48
  /**
@@ -1725,9 +1725,9 @@ async function workspaceDevCommand(configured, options) {
1725
1725
  for (const { id, port } of fakes) logger$9.log(`🎭 ${id} fake: http://localhost:${port}`);
1726
1726
  logger$9.log(options.migrate || options.seed ? "🗄️ Migrating the databases" : "🗄️ Checking for pending migrations");
1727
1727
  if (options.migrate || options.seed) {
1728
- const { prepareDevDatabases } = await import("./migrate-B00XpVaO.mjs");
1728
+ const { prepareDevDatabases } = await import("./migrate-soUQtku3.mjs");
1729
1729
  await prepareDevDatabases(workspace, reconciled.env, { seed: !!options.seed });
1730
- } else await import("./migrate-B00XpVaO.mjs").then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
1730
+ } else await import("./migrate-soUQtku3.mjs").then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
1731
1731
  logger$9.log(`⚠️ Could not check for pending migrations: ${error instanceof Error ? error.message : String(error)}`);
1732
1732
  });
1733
1733
  const appUrls = {};
@@ -3991,7 +3991,7 @@ async function provisionDeclared(options) {
3991
3991
  cache: cacheBackendFor(providerOf(workspace)),
3992
3992
  events: eventsBackendFor(providerOf(workspace)),
3993
3993
  storage: storageBackendFor(providerOf(workspace)),
3994
- addresses: surfaceAddresses(workspace, manifest, options.appUrls),
3994
+ addresses: surfaceAddresses(manifest, options.appUrls),
3995
3995
  seed: options.seed,
3996
3996
  ...options.supplied ? { supplied: options.supplied } : {},
3997
3997
  deferred: [],
@@ -4053,25 +4053,20 @@ function carriersLast(ordered, manifest) {
4053
4053
  return [...ordered.filter((id) => !carries(id)), ...ordered.filter(carries)];
4054
4054
  }
4055
4055
  /**
4056
- * Where each declared surface answers.
4056
+ * Where each declared surface answers: its own app's address.
4057
4057
  *
4058
- * Every `rest-api` in a process answers on that process's address, so an app
4059
- * serving both its own API and an auth server publishes one address twice —
4060
- * which is exactly what it does at runtime, and the same rule the local target
4061
- * applies.
4062
- *
4063
- * A workspace with two backends is the case this does not answer, and the
4064
- * manifest cannot yet: which surface belongs to which app is what §2's endpoint
4065
- * merge would record. Until then the first backend's address is used, and a
4066
- * second backend's surfaces would be wrong rather than missing — worth knowing
4067
- * before relying on it.
4058
+ * Every surface is an app of its own, keyed by its id the way the derivation
4059
+ * keyed it — `Api` is `api`, `Webhooks` is `webhooks` — and answers on that
4060
+ * app's host, `{subdomain}.{domain}`. It used to be handed the first backend's
4061
+ * address, so a workspace with two APIs pointed both at the same one.
4068
4062
  */
4069
- function surfaceAddresses(workspace, manifest, appUrls) {
4063
+ function surfaceAddresses(manifest, appUrls) {
4070
4064
  const addresses = {};
4071
- const backend = Object.entries(workspace.apps).find(([, app]) => app.type === "backend");
4072
- const url = backend ? appUrls[backend[0]] : void 0;
4073
- if (!url) return addresses;
4074
- for (const [id, declaration] of Object.entries(manifest)) if (declaration.kind === "rest-api") addresses[id] = url;
4065
+ for (const [id, declaration] of Object.entries(manifest)) {
4066
+ if (declaration.kind !== "rest-api") continue;
4067
+ const url = appUrls[appKey(id)];
4068
+ if (url) addresses[id] = url;
4069
+ }
4075
4070
  return addresses;
4076
4071
  }
4077
4072
  //#endregion
@@ -4550,32 +4545,34 @@ async function verifyDnsRecords(appHostnames, serverIp, state) {
4550
4545
  }
4551
4546
  //#endregion
4552
4547
  //#region src/deploy/domain.ts
4548
+ /** A stage was deployed that `deploy.domains` gives no domain. */
4549
+ var NoDomainForStage = class extends Error {
4550
+ stage;
4551
+ constructor(stage) {
4552
+ super(`No domain for stage "${stage}". Add it to gkm.config.ts: deploy: { domains: { ${stage}: 'example.com' } }.`);
4553
+ this.stage = stage;
4554
+ this.name = "NoDomainForStage";
4555
+ }
4556
+ };
4553
4557
  /**
4554
- * Resolve the hostname for an app based on stage configuration.
4558
+ * The hostname an app answers on for a stage.
4555
4559
  *
4556
- * Domain resolution priority:
4557
- * 1. Explicit app.domain override (string or stage-specific)
4558
- * 2. Default pattern based on app type:
4559
- * - Main frontend app gets base domain (e.g., 'myapp.com')
4560
- * - Other apps get prefixed domain (e.g., 'api.myapp.com')
4560
+ * 1. An explicit `app.domain` — a string, or one per stage — wins.
4561
+ * 2. Otherwise from the stage's base domain in `deploy.domains`: the root site
4562
+ * answers on the domain itself, and every other app on
4563
+ * `{subdomain}.{domain}` — its declaration's `subdomain`, or its own name.
4561
4564
  *
4562
- * @param appName - The name of the app
4563
- * @param app - The normalized app configuration
4564
- * @param stage - The deployment stage (e.g., 'production', 'development')
4565
- * @param dokployConfig - Dokploy workspace configuration with domain mappings
4566
- * @param isMainFrontend - Whether this is the main frontend app
4567
- * @returns The resolved hostname for the app
4568
- * @throws Error if no domain configuration is found for the stage
4565
+ * @throws {NoDomainForStage} when `deploy.domains` names no domain for it
4569
4566
  */
4570
- function resolveHost(appName, app, stage, dokployConfig, isMainFrontend) {
4567
+ function resolveHost(appName, app, stage, domains, isMainFrontend) {
4571
4568
  if (app.domain) {
4572
4569
  if (typeof app.domain === "string") return app.domain;
4573
4570
  if (app.domain[stage]) return app.domain[stage];
4574
4571
  }
4575
- const baseDomain = dokployConfig?.domains?.[stage];
4576
- if (!baseDomain) throw new Error(`No domain configured for stage "${stage}". Add deploy.dokploy.domains.${stage} to gkm.config.ts`);
4572
+ const baseDomain = domains?.[stage];
4573
+ if (!baseDomain) throw new NoDomainForStage(stage);
4577
4574
  if (isMainFrontend) return baseDomain;
4578
- return `${appName}.${baseDomain}`;
4575
+ return `${app.subdomain ?? appName}.${baseDomain}`;
4579
4576
  }
4580
4577
  /**
4581
4578
  * Whether this app is the site the base domain points at — see `rootSite`,
@@ -7600,7 +7597,6 @@ async function workspaceDeployCommand(configured, options) {
7600
7597
  if (skippedMobileApps.length > 0) logger$4.log(`\n📱 Skipping ${skippedMobileApps.length} mobile app(s) — deploy via framework toolchain: ${skippedMobileApps.join(", ")}`);
7601
7598
  const backendApps = appsToDeployNames.filter((name) => workspace.apps[name].type === "backend");
7602
7599
  const frontendApps = appsToDeployNames.filter((name) => workspace.apps[name].type === "web");
7603
- const dokployConfig = workspace.deploy.dokploy;
7604
7600
  let declaredEnv = {};
7605
7601
  let declaredClusters = {};
7606
7602
  {
@@ -7609,7 +7605,7 @@ async function workspaceDeployCommand(configured, options) {
7609
7605
  for (const appName of backendApps) {
7610
7606
  const app = workspace.apps[appName];
7611
7607
  if (!app) continue;
7612
- appUrls[appName] = `https://${resolveHost(appName, app, stage, dokployConfig, false)}`;
7608
+ appUrls[appName] = `https://${resolveHost(appName, app, stage, workspace.deploy?.domains, false)}`;
7613
7609
  }
7614
7610
  const declared = await provisionDeclared({
7615
7611
  api,
@@ -7673,7 +7669,8 @@ async function workspaceDeployCommand(configured, options) {
7673
7669
  const frontendUrls = [];
7674
7670
  for (const appName of frontendApps) {
7675
7671
  const app = workspace.apps[appName];
7676
- const hostname = resolveHost(appName, app, stage, dokployConfig, isMainFrontendApp(appName, app, workspace.apps));
7672
+ const isMainFrontend = isMainFrontendApp(appName, app, workspace.apps);
7673
+ const hostname = resolveHost(appName, app, stage, workspace.deploy?.domains, isMainFrontend);
7677
7674
  frontendUrls.push(`https://${hostname}`);
7678
7675
  }
7679
7676
  if (backendApps.length > 0) {
@@ -7719,7 +7716,7 @@ async function workspaceDeployCommand(configured, options) {
7719
7716
  },
7720
7717
  buildArgs
7721
7718
  });
7722
- const backendHost = resolveHost(appName, app, stage, dokployConfig, false);
7719
+ const backendHost = resolveHost(appName, app, stage, workspace.deploy?.domains, false);
7723
7720
  const dependencyUrls = {};
7724
7721
  if (app.dependencies) {
7725
7722
  for (const dep of app.dependencies) if (publicUrls[dep]) dependencyUrls[dep] = publicUrls[dep];
@@ -7824,7 +7821,8 @@ async function workspaceDeployCommand(configured, options) {
7824
7821
  if (app.dependencies) {
7825
7822
  for (const dep of app.dependencies) if (publicUrls[dep]) dependencyUrls[dep] = publicUrls[dep];
7826
7823
  }
7827
- const frontendHost = resolveHost(appName, app, stage, dokployConfig, isMainFrontendApp(appName, app, workspace.apps));
7824
+ const isMainFrontend = isMainFrontendApp(appName, app, workspace.apps);
7825
+ const frontendHost = resolveHost(appName, app, stage, workspace.deploy?.domains, isMainFrontend);
7828
7826
  const envContext = {
7829
7827
  app,
7830
7828
  appName,
@@ -9316,26 +9314,26 @@ function loadPackageJson() {
9316
9314
  * Run: pnpm --filter @geekmidas/cli sync-versions
9317
9315
  */
9318
9316
  const GEEKMIDAS_VERSIONS = {
9319
- "@geekmidas/audit": "~10.0.0-alpha.50",
9320
- "@geekmidas/auth": "~10.0.0-alpha.50",
9321
- "@geekmidas/cache": "~10.0.0-alpha.50",
9322
- "@geekmidas/client": "~10.0.0-alpha.50",
9323
- "@geekmidas/cloud": "~10.0.0-alpha.50",
9324
- "@geekmidas/constructs": "~10.0.0-alpha.50",
9325
- "@geekmidas/db": "~10.0.0-alpha.50",
9326
- "@geekmidas/emailkit": "~10.0.0-alpha.50",
9327
- "@geekmidas/envkit": "~10.0.0-alpha.50",
9328
- "@geekmidas/errors": "~10.0.0-alpha.50",
9329
- "@geekmidas/events": "~10.0.0-alpha.50",
9330
- "@geekmidas/logger": "~10.0.0-alpha.50",
9331
- "@geekmidas/manifest": "~10.0.0-alpha.50",
9332
- "@geekmidas/rate-limit": "~10.0.0-alpha.50",
9333
- "@geekmidas/schema": "~10.0.0-alpha.50",
9334
- "@geekmidas/services": "~10.0.0-alpha.50",
9335
- "@geekmidas/storage": "~10.0.0-alpha.50",
9336
- "@geekmidas/studio": "~10.0.0-alpha.50",
9337
- "@geekmidas/telescope": "~10.0.0-alpha.50",
9338
- "@geekmidas/testkit": "~10.0.0-alpha.50",
9317
+ "@geekmidas/audit": "~10.0.0-alpha.51",
9318
+ "@geekmidas/auth": "~10.0.0-alpha.51",
9319
+ "@geekmidas/cache": "~10.0.0-alpha.51",
9320
+ "@geekmidas/client": "~10.0.0-alpha.51",
9321
+ "@geekmidas/cloud": "~10.0.0-alpha.51",
9322
+ "@geekmidas/constructs": "~10.0.0-alpha.51",
9323
+ "@geekmidas/db": "~10.0.0-alpha.51",
9324
+ "@geekmidas/emailkit": "~10.0.0-alpha.51",
9325
+ "@geekmidas/envkit": "~10.0.0-alpha.51",
9326
+ "@geekmidas/errors": "~10.0.0-alpha.51",
9327
+ "@geekmidas/events": "~10.0.0-alpha.51",
9328
+ "@geekmidas/logger": "~10.0.0-alpha.51",
9329
+ "@geekmidas/manifest": "~10.0.0-alpha.51",
9330
+ "@geekmidas/rate-limit": "~10.0.0-alpha.51",
9331
+ "@geekmidas/schema": "~10.0.0-alpha.51",
9332
+ "@geekmidas/services": "~10.0.0-alpha.51",
9333
+ "@geekmidas/storage": "~10.0.0-alpha.51",
9334
+ "@geekmidas/studio": "~10.0.0-alpha.51",
9335
+ "@geekmidas/telescope": "~10.0.0-alpha.51",
9336
+ "@geekmidas/testkit": "~10.0.0-alpha.51",
9339
9337
  "@geekmidas/cli": `~${loadPackageJson().version}`
9340
9338
  };
9341
9339
  //#endregion
@@ -10890,7 +10888,7 @@ function generateDeployFiles(options) {
10890
10888
  // VPC with NAT is a monthly cost in an account that may already
10891
10889
  // have one — replace it with \`sst.aws.Vpc.get(…)\` if so.
10892
10890
  ${db.id}: { vpc },`] : [], ...options.constructs.mail ? [` // Every provider rejects an unverified sender, so there is no
10893
- // default; the synth stops with \`EmailNeedsSender\` until it is set.
10891
+ // default — \`fromManifest\` requires it, by the manifest's types.
10894
10892
  ${mail.id}: { from: process.env.MAIL_FROM as string },`] : []];
10895
10893
  return [{
10896
10894
  path: "sst.config.ts",
@@ -16078,7 +16076,7 @@ function testDatabases(reconciled) {
16078
16076
  * starts without the reference data the app needs.
16079
16077
  */
16080
16078
  async function migrateTestStage(workspace, env) {
16081
- const { migrateAndSeed } = await import("./migrate-B00XpVaO.mjs");
16079
+ const { migrateAndSeed } = await import("./migrate-soUQtku3.mjs");
16082
16080
  const { discover } = await import("./discover-Cf2jAcgF.mjs").then((n) => n.n);
16083
16081
  const sources = {};
16084
16082
  const manifest = await discover({
@@ -16509,7 +16507,7 @@ program.command("migrate").description("Apply each database construct's migratio
16509
16507
  try {
16510
16508
  const globalOptions = program.opts();
16511
16509
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16512
- const { migrateCommand } = await import("./migrate-B00XpVaO.mjs");
16510
+ const { migrateCommand } = await import("./migrate-soUQtku3.mjs");
16513
16511
  await migrateCommand({
16514
16512
  ...options,
16515
16513
  ...construct ? { construct } : {}
@@ -16523,7 +16521,7 @@ program.command("seed").description("Migrate, then run each database construct's
16523
16521
  try {
16524
16522
  const globalOptions = program.opts();
16525
16523
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16526
- const { seedCommand } = await import("./migrate-B00XpVaO.mjs");
16524
+ const { seedCommand } = await import("./migrate-soUQtku3.mjs");
16527
16525
  await seedCommand({
16528
16526
  ...options,
16529
16527
  ...construct ? { construct } : {}
@@ -16537,7 +16535,7 @@ program.command("migration").description("Write a construct's next migration: an
16537
16535
  try {
16538
16536
  const globalOptions = program.opts();
16539
16537
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16540
- const { migrationCommand } = await import("./migrate-B00XpVaO.mjs");
16538
+ const { migrationCommand } = await import("./migrate-soUQtku3.mjs");
16541
16539
  await migrationCommand({
16542
16540
  construct,
16543
16541
  ...name ? { name } : {}
@@ -16635,7 +16633,7 @@ program.command("encryption:rotate").description("Add a new current key to an En
16635
16633
  try {
16636
16634
  const globalOptions = program.opts();
16637
16635
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16638
- const { encryptionRotateCommand } = await import("./encryption-DyQnPsZN.mjs");
16636
+ const { encryptionRotateCommand } = await import("./encryption-DRCXp-U4.mjs");
16639
16637
  await encryptionRotateCommand(construct, options);
16640
16638
  } catch (error) {
16641
16639
  console.error(formatError(error));
@@ -16646,7 +16644,7 @@ program.command("encryption:retire").description("Remove an old key from an Encr
16646
16644
  try {
16647
16645
  const globalOptions = program.opts();
16648
16646
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16649
- const { encryptionRetireCommand } = await import("./encryption-DyQnPsZN.mjs");
16647
+ const { encryptionRetireCommand } = await import("./encryption-DRCXp-U4.mjs");
16650
16648
  await encryptionRetireCommand(construct, key, options);
16651
16649
  } catch (error) {
16652
16650
  console.error(formatError(error));
@@ -16698,7 +16696,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
16698
16696
  console.error(`No secrets found for stage "${stage}". Run "gkm secrets:init --stage ${stage}" first.`);
16699
16697
  process.exit(1);
16700
16698
  }
16701
- const { derivedContainers } = await import("./workspace-BsbxbqV-.mjs").then((n) => n.o);
16699
+ const { derivedContainers } = await import("./workspace-Dp2zK_Nk.mjs").then((n) => n.o);
16702
16700
  const result = reconcileMissingSecrets(secrets, workspace, await derivedContainers(workspace, stage));
16703
16701
  if (!result) {
16704
16702
  console.log(`\n✓ Secrets for stage "${stage}" are up-to-date`);
@@ -16757,7 +16755,7 @@ program.command("deploy:github").description("Let GitHub Actions deploy a stage:
16757
16755
  try {
16758
16756
  const globalOptions = program.opts();
16759
16757
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16760
- const { deployGithubCommand } = await import("./github-BfpadQWQ.mjs");
16758
+ const { deployGithubCommand } = await import("./github-U_frvZgD.mjs");
16761
16759
  await deployGithubCommand(options);
16762
16760
  } catch (error) {
16763
16761
  console.error(formatError(error));