@geekmidas/cli 10.0.0-alpha.73 → 10.0.0-alpha.74

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 (111) hide show
  1. package/dist/{SubscriberGenerator-DZk_pKDh.mjs → SubscriberGenerator-5looQ3gB.mjs} +18 -2
  2. package/dist/SubscriberGenerator-5looQ3gB.mjs.map +1 -0
  3. package/dist/{SubscriberGenerator-Bixm28fN.cjs → SubscriberGenerator-CajwOa5W.cjs} +29 -1
  4. package/dist/SubscriberGenerator-CajwOa5W.cjs.map +1 -0
  5. package/dist/{add-BiPlBUq3.mjs → add-BTH7WaH3.mjs} +2 -2
  6. package/dist/{add-BiPlBUq3.mjs.map → add-BTH7WaH3.mjs.map} +1 -1
  7. package/dist/{add-C1ojB2Yy.cjs → add-Djrr12Xc.cjs} +2 -2
  8. package/dist/{add-C1ojB2Yy.cjs.map → add-Djrr12Xc.cjs.map} +1 -1
  9. package/dist/{bundler-C2LZoLdP.mjs → bundler-BUojOkof.mjs} +5 -5
  10. package/dist/{bundler-C2LZoLdP.mjs.map → bundler-BUojOkof.mjs.map} +1 -1
  11. package/dist/{bundler-C35h0WKt.cjs → bundler-utHuESvL.cjs} +5 -5
  12. package/dist/{bundler-C35h0WKt.cjs.map → bundler-utHuESvL.cjs.map} +1 -1
  13. package/dist/{cli-DJVL2sL9.cjs → cli-Bx0sUzxH.cjs} +3 -3
  14. package/dist/{cli-DJVL2sL9.cjs.map → cli-Bx0sUzxH.cjs.map} +1 -1
  15. package/dist/{cli-BfdfyTF6.mjs → cli-CyYceKTS.mjs} +3 -3
  16. package/dist/{cli-BfdfyTF6.mjs.map → cli-CyYceKTS.mjs.map} +1 -1
  17. package/dist/{compose-9II-0IsK.mjs → compose-DZp8DJ0A.mjs} +202 -10
  18. package/dist/compose-DZp8DJ0A.mjs.map +1 -0
  19. package/dist/{compose-CNnw8meq.cjs → compose-iuw8wfHk.cjs} +202 -10
  20. package/dist/compose-iuw8wfHk.cjs.map +1 -0
  21. package/dist/{config-RLuR2o9A.d.cts → config-B38YWicj.d.cts} +3 -3
  22. package/dist/{config-B8OR_TrO.d.mts.map → config-B38YWicj.d.cts.map} +1 -1
  23. package/dist/{config-B8OR_TrO.d.mts → config-DA0kRTQe.d.mts} +3 -3
  24. package/dist/{config-RLuR2o9A.d.cts.map → config-DA0kRTQe.d.mts.map} +1 -1
  25. package/dist/config.d.cts +3 -3
  26. package/dist/config.d.mts +3 -3
  27. package/dist/deploy/public.cjs +5 -5
  28. package/dist/deploy/public.d.cts +3 -3
  29. package/dist/deploy/public.d.mts +3 -3
  30. package/dist/deploy/public.mjs +5 -5
  31. package/dist/{deploy-nmov4j0B.mjs → deploy-C17K7Imy.mjs} +3 -3
  32. package/dist/{deploy-nmov4j0B.mjs.map → deploy-C17K7Imy.mjs.map} +1 -1
  33. package/dist/{deploy-BitZLdnY.cjs → deploy-eWorhvQp.cjs} +3 -3
  34. package/dist/{deploy-BitZLdnY.cjs.map → deploy-eWorhvQp.cjs.map} +1 -1
  35. package/dist/{dokploy-CZ1vZt21.mjs → dokploy-DKa49Nqm.mjs} +2 -2
  36. package/dist/{dokploy-CZ1vZt21.mjs.map → dokploy-DKa49Nqm.mjs.map} +1 -1
  37. package/dist/{dokploy-Ce_VTytN.cjs → dokploy-DKzcI-RL.cjs} +2 -2
  38. package/dist/{dokploy-Ce_VTytN.cjs.map → dokploy-DKzcI-RL.cjs.map} +1 -1
  39. package/dist/drivers-BdvtCKc7.cjs +200 -0
  40. package/dist/drivers-BdvtCKc7.cjs.map +1 -0
  41. package/dist/drivers-Ch1rJitn.mjs +177 -0
  42. package/dist/drivers-Ch1rJitn.mjs.map +1 -0
  43. package/dist/{encryption-CDGRdcMr.cjs → encryption-DSkJdoyk.cjs} +2 -2
  44. package/dist/{encryption-CDGRdcMr.cjs.map → encryption-DSkJdoyk.cjs.map} +1 -1
  45. package/dist/{encryption-CmfPICSN.mjs → encryption-sTMz3aWi.mjs} +2 -2
  46. package/dist/{encryption-CmfPICSN.mjs.map → encryption-sTMz3aWi.mjs.map} +1 -1
  47. package/dist/{engine-B37qBO5W.mjs → engine-B1b4I34Z.mjs} +2 -2
  48. package/dist/{engine-B37qBO5W.mjs.map → engine-B1b4I34Z.mjs.map} +1 -1
  49. package/dist/{engine-DL2-PW6m.cjs → engine-Bh76sAHy.cjs} +2 -2
  50. package/dist/{engine-DL2-PW6m.cjs.map → engine-Bh76sAHy.cjs.map} +1 -1
  51. package/dist/{github-C6qF8kHg.cjs → github-BvN3CfxM.cjs} +2 -2
  52. package/dist/{github-C6qF8kHg.cjs.map → github-BvN3CfxM.cjs.map} +1 -1
  53. package/dist/{github-hjHHm7jM.mjs → github-C9ODoyZU.mjs} +2 -2
  54. package/dist/{github-hjHHm7jM.mjs.map → github-C9ODoyZU.mjs.map} +1 -1
  55. package/dist/{index-DHyTqGG3.d.mts → index-B-1lLGzy.d.mts} +2 -2
  56. package/dist/{index-DHyTqGG3.d.mts.map → index-B-1lLGzy.d.mts.map} +1 -1
  57. package/dist/{index-Dg-UZ4Hm.d.cts → index-vMidfqhU.d.cts} +2 -2
  58. package/dist/{index-Dg-UZ4Hm.d.cts.map → index-vMidfqhU.d.cts.map} +1 -1
  59. package/dist/index.cjs +59 -47
  60. package/dist/index.cjs.map +1 -1
  61. package/dist/index.mjs +57 -45
  62. package/dist/index.mjs.map +1 -1
  63. package/dist/{migrate-kA_j1TPK.cjs → migrate-B0FCZNkp.cjs} +2 -2
  64. package/dist/{migrate-kA_j1TPK.cjs.map → migrate-B0FCZNkp.cjs.map} +1 -1
  65. package/dist/{migrate-CFFC3esE.mjs → migrate-CTtJhGV9.mjs} +2 -2
  66. package/dist/{migrate-CFFC3esE.mjs.map → migrate-CTtJhGV9.mjs.map} +1 -1
  67. package/dist/openapi.d.cts +1 -1
  68. package/dist/openapi.d.mts +1 -1
  69. package/dist/{ready-BIuMw6wH.cjs → ready-BB9xS4S9.cjs} +6 -188
  70. package/dist/ready-BB9xS4S9.cjs.map +1 -0
  71. package/dist/{ready-C0U0NYfB.mjs → ready-ZZoNskrr.mjs} +5 -169
  72. package/dist/ready-ZZoNskrr.mjs.map +1 -0
  73. package/dist/reconcile/public.d.cts +1 -1
  74. package/dist/reconcile/public.d.mts +1 -1
  75. package/dist/{resolve-CV4eQkDa.mjs → resolve-DSAXj_47.mjs} +3 -3
  76. package/dist/{resolve-CV4eQkDa.mjs.map → resolve-DSAXj_47.mjs.map} +1 -1
  77. package/dist/{resolve-E5RfY0bm.cjs → resolve-D_BU-wKA.cjs} +3 -3
  78. package/dist/{resolve-E5RfY0bm.cjs.map → resolve-D_BU-wKA.cjs.map} +1 -1
  79. package/dist/{rollback-C-V-Rf4a.mjs → rollback-CWYTUhfW.mjs} +3 -3
  80. package/dist/{rollback-C-V-Rf4a.mjs.map → rollback-CWYTUhfW.mjs.map} +1 -1
  81. package/dist/{rollback-QGwomD64.cjs → rollback-DJy3t696.cjs} +3 -3
  82. package/dist/{rollback-QGwomD64.cjs.map → rollback-DJy3t696.cjs.map} +1 -1
  83. package/dist/{runtime-CWYLIeCU.d.mts → runtime-BzZD5HHi.d.cts} +2 -2
  84. package/dist/{runtime-CWYLIeCU.d.mts.map → runtime-BzZD5HHi.d.cts.map} +1 -1
  85. package/dist/{runtime-CmuQOT6A.d.cts → runtime-Cm6J6L7n.d.mts} +2 -2
  86. package/dist/{runtime-CmuQOT6A.d.cts.map → runtime-Cm6J6L7n.d.mts.map} +1 -1
  87. package/dist/{state-DMjFPOhf.cjs → state-DCwRWyh-.cjs} +16 -11
  88. package/dist/state-DCwRWyh-.cjs.map +1 -0
  89. package/dist/{state-DtS2HEfi.mjs → state-DpkxSwzI.mjs} +16 -11
  90. package/dist/state-DpkxSwzI.mjs.map +1 -0
  91. package/dist/target/public.cjs +1 -1
  92. package/dist/target/public.d.cts +2 -2
  93. package/dist/target/public.d.mts +2 -2
  94. package/dist/target/public.mjs +1 -1
  95. package/dist/{types-BLdCL4fB.d.mts → types-Dp9lgx_S.d.mts} +6 -2
  96. package/dist/{types-BLdCL4fB.d.mts.map → types-Dp9lgx_S.d.mts.map} +1 -1
  97. package/dist/{types-DwCQCkC-.d.cts → types-TzCChNrA.d.cts} +6 -2
  98. package/dist/{types-DwCQCkC-.d.cts.map → types-TzCChNrA.d.cts.map} +1 -1
  99. package/dist/vitest.cjs +1 -1
  100. package/dist/vitest.mjs +1 -1
  101. package/dist/workspace/index.d.cts +2 -2
  102. package/dist/workspace/index.d.mts +2 -2
  103. package/package.json +15 -15
  104. package/dist/SubscriberGenerator-Bixm28fN.cjs.map +0 -1
  105. package/dist/SubscriberGenerator-DZk_pKDh.mjs.map +0 -1
  106. package/dist/compose-9II-0IsK.mjs.map +0 -1
  107. package/dist/compose-CNnw8meq.cjs.map +0 -1
  108. package/dist/ready-BIuMw6wH.cjs.map +0 -1
  109. package/dist/ready-C0U0NYfB.mjs.map +0 -1
  110. package/dist/state-DMjFPOhf.cjs.map +0 -1
  111. package/dist/state-DtS2HEfi.mjs.map +0 -1
package/dist/index.mjs CHANGED
@@ -6,22 +6,23 @@ import { l as withOwningTsconfigJsx, r as discover, u as ConstructGenerator } fr
6
6
  import { t as appKey } from "./derive-B4vDpzgP.mjs";
7
7
  import { A as deployedProblems, D as InvalidStages, O as TEST_STAGE, c as getAppGkmConfig, j as stageProblems, n as allConstructGlobs, s as getAppBuildOrder } from "./workspace-C7NqCsQF.mjs";
8
8
  import { ConfigNotFound, NotABackendApp, NotInAnApp, loadAppConfig, loadConfig, loadWorkspaceConfig, loadWorkspaceSettings, parseModuleConfig } from "./config.mjs";
9
- import { $ as constructGlobs, At as eventsBackendFor, Bt as findAvailablePort, Ft as fakeKey, G as keyFingerprint, H as workerUnits, Ht as loadEnvFiles, J as workerEntryDir, Jt as FileSecretsStore, K as WorkerGenerator, Kt as secretsStoreFor, Lt as primaryPortKey, Pt as describeServices, Q as backendsOf$1, R as parseDevServices, Rt as createCredentialsPreload, Ut as loadSecretsForApp, Vt as isPortAvailable, Wt as prepareEntryCredentials, X as CronGenerator, Y as QueueGenerator, Yt as getKeyPath, Z as FAKE_ENV, Zt as projectKey, cn as maskPassword, dn as withCustomSecret, dt as quoteIdentifier, en as deployIdentity, et as derivedContainers, it as forgetState, jt as providerOf, kt as cacheBackendFor, lt as postgresDatabaseNames, mt as pgClient, q as workerBundleName, rt as LOCAL_CA_PATH, tt as reconcileWorkspace, un as toEmbeddableSecrets, y as dockerCommand, zt as createEntryWrapper } from "./state-DtS2HEfi.mjs";
9
+ import { $ as constructGlobs, At as eventsBackendFor, Bt as findAvailablePort, Ft as fakeKey, G as keyFingerprint, H as workerUnits, Ht as loadEnvFiles, J as workerEntryDir, Jt as FileSecretsStore, K as WorkerGenerator, Kt as secretsStoreFor, Lt as primaryPortKey, Pt as describeServices, Q as backendsOf$1, R as parseDevServices, Rt as createCredentialsPreload, Ut as loadSecretsForApp, Vt as isPortAvailable, Wt as prepareEntryCredentials, X as CronGenerator, Y as QueueGenerator, Yt as getKeyPath, Z as FAKE_ENV, Zt as projectKey, cn as maskPassword, dn as withCustomSecret, dt as quoteIdentifier, en as deployIdentity, et as derivedContainers, it as forgetState, jt as providerOf, kt as cacheBackendFor, lt as postgresDatabaseNames, mt as pgClient, q as workerBundleName, rt as LOCAL_CA_PATH, tt as reconcileWorkspace, un as toEmbeddableSecrets, y as dockerCommand, zt as createEntryWrapper } from "./state-DpkxSwzI.mjs";
10
10
  import { i as telemetryFor, n as runtimeFor, t as EndpointGenerator } from "./EndpointGenerator-DftalLYg.mjs";
11
11
  import { g as createStateStore, n as sniffAppEnvironment, o as DokployApi } from "./sniffer-BFmdZpZ2.mjs";
12
12
  import { generateOpenApi, openapiCommand, resolveOpenApiConfig } from "./openapi.mjs";
13
- import { t as SubscriberGenerator } from "./SubscriberGenerator-DZk_pKDh.mjs";
13
+ import { s as isCacheBackend, t as SubscriberGenerator } from "./SubscriberGenerator-5looQ3gB.mjs";
14
14
  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";
15
- import { a as writeTestHarness, c as eventsBackendsIn, i as TEST_MANIFEST_ENV, n as TEST_READY_FILE, o as cacheBackendsIn, s as driversFor, t as TEST_READY_ENV } from "./ready-C0U0NYfB.mjs";
15
+ import { n as driversFor, r as eventsBackendsIn, t as cacheBackendsIn } from "./drivers-Ch1rJitn.mjs";
16
16
  import { n as withCompute, r as withRoutes, t as manifestModule } from "./emit-C1e8qD08.mjs";
17
- import { t as deploy$1 } from "./deploy-nmov4j0B.mjs";
18
- import { a as stackDir, i as composeProject, o as dockerCompose, r as stackOverrideFile, t as composeTarget } from "./compose-9II-0IsK.mjs";
17
+ import { t as deploy$1 } from "./deploy-C17K7Imy.mjs";
18
+ import { a as stackDir, i as composeProject, o as dockerCompose, r as stackOverrideFile, t as composeTarget } from "./compose-DZp8DJ0A.mjs";
19
19
  import { o as loadCredentialSchemas, t as CredentialsInvalid } from "./credentialSchemas-BJqRJNK4.mjs";
20
20
  import { t as LocalStateStore } from "./LocalStateStore-CNjgkRk4.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-ZZoNskrr.mjs";
22
23
  import { createRequire } from "node:module";
23
24
  import { basename, dirname, isAbsolute, join, relative, resolve } from "node:path";
24
- import { Command } from "commander";
25
+ import { Command, Option } from "commander";
25
26
  import { stdin, stdout } from "node:process";
26
27
  import * as readline from "node:readline/promises";
27
28
  import { existsSync, linkSync, mkdirSync, readFileSync, readdirSync, renameSync, unlinkSync, writeFileSync } from "node:fs";
@@ -46,7 +47,7 @@ import crypto from "crypto";
46
47
  import { Function } from "@geekmidas/constructs/functions";
47
48
  import { Topic } from "@geekmidas/constructs/topic";
48
49
  //#region package.json
49
- var version = "10.0.0-alpha.73";
50
+ var version = "10.0.0-alpha.74";
50
51
  //#endregion
51
52
  //#region src/prompt.ts
52
53
  /**
@@ -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-CFFC3esE.mjs");
2039
+ const { prepareDevDatabases } = await import("./migrate-CTtJhGV9.mjs");
2039
2040
  await prepareDevDatabases(workspace, reconciled.env, { seed: !!options.seed });
2040
- } else await import("./migrate-CFFC3esE.mjs").then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
2041
+ } else await import("./migrate-CTtJhGV9.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 = {};
@@ -2897,6 +2898,15 @@ var UnknownBuildProvider = class extends Error {
2897
2898
  this.name = "UnknownBuildProvider";
2898
2899
  }
2899
2900
  };
2901
+ /** `--cache` named something that is not a cache backend. */
2902
+ var UnknownCacheBackend = class extends Error {
2903
+ backend;
2904
+ constructor(backend) {
2905
+ super(`'${backend}' is not a cache backend. Pass --cache upstash, elasticache, db or redis, or leave it out to register the deploy target's.`);
2906
+ this.backend = backend;
2907
+ this.name = "UnknownCacheBackend";
2908
+ }
2909
+ };
2900
2910
  async function buildCommand(options) {
2901
2911
  const loadedConfig = await loadWorkspaceConfig();
2902
2912
  if (loadedConfig.type === "workspace") {
@@ -2949,7 +2959,7 @@ function backendsOf(workspace) {
2949
2959
  /** One app's build, from its config and the command's options. */
2950
2960
  async function buildOneApp(input) {
2951
2961
  const { config, options, workspace, appRoot, target } = input;
2952
- const cacheBackend = cacheBackendFor(providerOf(workspace));
2962
+ const cacheBackend = options.cache ?? cacheBackendFor(providerOf(workspace));
2953
2963
  const eventsBackend = eventsBackendFor(providerOf(workspace));
2954
2964
  const production = normalizeProductionConfig(options.production ?? false);
2955
2965
  if (production) logger$4.log(`🏭 Building for PRODUCTION`);
@@ -3036,7 +3046,7 @@ async function buildApp(input) {
3036
3046
  if (production?.bundle && !input.skipBundle) {
3037
3047
  const outputDir = join(appRoot, ".gkm", "server");
3038
3048
  const entryPoint = await writeSurfaceServer(outputDir, production);
3039
- const { bundleServer } = await import("./bundler-C2LZoLdP.mjs");
3049
+ const { bundleServer } = await import("./bundler-BUojOkof.mjs");
3040
3050
  await bundleServer({
3041
3051
  entryPoint,
3042
3052
  outputDir: join(outputDir, "dist"),
@@ -3160,7 +3170,7 @@ async function buildWorkers(input) {
3160
3170
  });
3161
3171
  logger$4.log(`Generated worker ${worker.id}: ${crons.length} crons, ${queues.length} queues, ${subscribers.length} subscribers`);
3162
3172
  if (!input.bundle) continue;
3163
- const { bundleServer } = await import("./bundler-C2LZoLdP.mjs");
3173
+ const { bundleServer } = await import("./bundler-BUojOkof.mjs");
3164
3174
  const outfile = workerBundleName(worker.id);
3165
3175
  await bundleServer({
3166
3176
  entryPoint,
@@ -3230,7 +3240,7 @@ async function buildForTarget(target, context, appRoot, workspaceRoot, endpointG
3230
3240
  let masterKey;
3231
3241
  if (context.production?.bundle && !skipBundle) {
3232
3242
  logger$4.log(`\n📦 Bundling production server...`);
3233
- const { bundleServer } = await import("./bundler-C2LZoLdP.mjs");
3243
+ const { bundleServer } = await import("./bundler-BUojOkof.mjs");
3234
3244
  const allConstructs = [
3235
3245
  ...endpoints.map((e) => e.construct),
3236
3246
  ...functions.map((f) => f.construct),
@@ -4929,25 +4939,25 @@ function loadPackageJson() {
4929
4939
  * Run: pnpm --filter @geekmidas/cli sync-versions
4930
4940
  */
4931
4941
  const GEEKMIDAS_VERSIONS = {
4932
- "@geekmidas/audit": "~10.0.0-alpha.73",
4933
- "@geekmidas/auth": "~10.0.0-alpha.73",
4934
- "@geekmidas/cache": "~10.0.0-alpha.73",
4935
- "@geekmidas/client": "~10.0.0-alpha.73",
4936
- "@geekmidas/cloud": "~10.0.0-alpha.73",
4937
- "@geekmidas/constructs": "~10.0.0-alpha.73",
4938
- "@geekmidas/db": "~10.0.0-alpha.73",
4939
- "@geekmidas/emailkit": "~10.0.0-alpha.73",
4940
- "@geekmidas/envkit": "~10.0.0-alpha.73",
4941
- "@geekmidas/errors": "~10.0.0-alpha.73",
4942
- "@geekmidas/events": "~10.0.0-alpha.73",
4943
- "@geekmidas/logger": "~10.0.0-alpha.73",
4944
- "@geekmidas/manifest": "~10.0.0-alpha.73",
4945
- "@geekmidas/rate-limit": "~10.0.0-alpha.73",
4946
- "@geekmidas/schema": "~10.0.0-alpha.73",
4947
- "@geekmidas/services": "~10.0.0-alpha.73",
4948
- "@geekmidas/storage": "~10.0.0-alpha.73",
4949
- "@geekmidas/telescope": "~10.0.0-alpha.73",
4950
- "@geekmidas/testkit": "~10.0.0-alpha.73",
4942
+ "@geekmidas/audit": "~10.0.0-alpha.74",
4943
+ "@geekmidas/auth": "~10.0.0-alpha.74",
4944
+ "@geekmidas/cache": "~10.0.0-alpha.74",
4945
+ "@geekmidas/client": "~10.0.0-alpha.74",
4946
+ "@geekmidas/cloud": "~10.0.0-alpha.74",
4947
+ "@geekmidas/constructs": "~10.0.0-alpha.74",
4948
+ "@geekmidas/db": "~10.0.0-alpha.74",
4949
+ "@geekmidas/emailkit": "~10.0.0-alpha.74",
4950
+ "@geekmidas/envkit": "~10.0.0-alpha.74",
4951
+ "@geekmidas/errors": "~10.0.0-alpha.74",
4952
+ "@geekmidas/events": "~10.0.0-alpha.74",
4953
+ "@geekmidas/logger": "~10.0.0-alpha.74",
4954
+ "@geekmidas/manifest": "~10.0.0-alpha.74",
4955
+ "@geekmidas/rate-limit": "~10.0.0-alpha.74",
4956
+ "@geekmidas/schema": "~10.0.0-alpha.74",
4957
+ "@geekmidas/services": "~10.0.0-alpha.74",
4958
+ "@geekmidas/storage": "~10.0.0-alpha.74",
4959
+ "@geekmidas/telescope": "~10.0.0-alpha.74",
4960
+ "@geekmidas/testkit": "~10.0.0-alpha.74",
4951
4961
  "@geekmidas/cli": `~${loadPackageJson().version}`
4952
4962
  };
4953
4963
  //#endregion
@@ -10738,7 +10748,7 @@ function testDatabases(reconciled) {
10738
10748
  * starts without the reference data the app needs.
10739
10749
  */
10740
10750
  async function migrateTestStage(workspace, env) {
10741
- const { migrateAndSeed } = await import("./migrate-CFFC3esE.mjs");
10751
+ const { migrateAndSeed } = await import("./migrate-CTtJhGV9.mjs");
10742
10752
  const { discover } = await import("./discover-BPelzeGW.mjs").then((n) => n.i);
10743
10753
  const sources = {};
10744
10754
  const manifest = await discover({
@@ -11104,13 +11114,15 @@ program.command("setup").description("Reconcile declared constructs — containe
11104
11114
  process.exit(1);
11105
11115
  }
11106
11116
  });
11107
- program.command("build").description("Build handlers and the manifest from declared constructs").option("--provider <provider>", "Build for aws or server (default: where gkm.config.ts deploys)").option("--enable-openapi", "Enable OpenAPI documentation generation for server builds").option("--production", "Build for production (no dev tools, bundled output)").option("--skip-bundle", "Skip bundling step in production build").option("--stage <stage>", "Inject encrypted secrets for deployment stage").option("--mark-optional", "Suffix optional env vars with ? in manifest envVars field (e.g. PORT?)").action(async (options) => {
11117
+ program.command("build").description("Build handlers and the manifest from declared constructs").option("--provider <provider>", "Build for aws or server (default: where gkm.config.ts deploys)").option("--enable-openapi", "Enable OpenAPI documentation generation for server builds").option("--production", "Build for production (no dev tools, bundled output)").option("--skip-bundle", "Skip bundling step in production build").option("--stage <stage>", "Inject encrypted secrets for deployment stage").option("--mark-optional", "Suffix optional env vars with ? in manifest envVars field (e.g. PORT?)").addOption(new Option("--cache <backend>", "Register the drivers for this cache backend rather than the target default").hideHelp()).action(async (options) => {
11108
11118
  try {
11109
11119
  const globalOptions = program.opts();
11110
11120
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11111
11121
  if (options.provider !== void 0 && !isMainProvider(options.provider)) throw new UnknownBuildProvider(options.provider);
11122
+ if (options.cache !== void 0 && !isCacheBackend(options.cache)) throw new UnknownCacheBackend(options.cache);
11112
11123
  await buildCommand({
11113
11124
  ...options.provider ? { provider: options.provider } : {},
11125
+ ...options.cache ? { cache: options.cache } : {},
11114
11126
  enableOpenApi: options.enableOpenapi || false,
11115
11127
  production: options.production || false,
11116
11128
  skipBundle: options.skipBundle || false,
@@ -11169,7 +11181,7 @@ program.command("migrate").description("Apply each database construct's migratio
11169
11181
  try {
11170
11182
  const globalOptions = program.opts();
11171
11183
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11172
- const { migrateCommand } = await import("./migrate-CFFC3esE.mjs");
11184
+ const { migrateCommand } = await import("./migrate-CTtJhGV9.mjs");
11173
11185
  await migrateCommand({
11174
11186
  ...options,
11175
11187
  ...construct ? { construct } : {}
@@ -11183,7 +11195,7 @@ program.command("seed").description("Migrate, then run each database construct's
11183
11195
  try {
11184
11196
  const globalOptions = program.opts();
11185
11197
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11186
- const { seedCommand } = await import("./migrate-CFFC3esE.mjs");
11198
+ const { seedCommand } = await import("./migrate-CTtJhGV9.mjs");
11187
11199
  await seedCommand({
11188
11200
  ...options,
11189
11201
  ...construct ? { construct } : {}
@@ -11197,7 +11209,7 @@ program.command("migration").description("Write a construct's next migration: an
11197
11209
  try {
11198
11210
  const globalOptions = program.opts();
11199
11211
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11200
- const { migrationCommand } = await import("./migrate-CFFC3esE.mjs");
11212
+ const { migrationCommand } = await import("./migrate-CTtJhGV9.mjs");
11201
11213
  await migrationCommand({
11202
11214
  construct,
11203
11215
  ...name ? { name } : {}
@@ -11291,7 +11303,7 @@ program.command("secrets:add").description("Build the keys a stage must be given
11291
11303
  try {
11292
11304
  const globalOptions = program.opts();
11293
11305
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11294
- const { secretsAddCommand } = await import("./add-BiPlBUq3.mjs");
11306
+ const { secretsAddCommand } = await import("./add-BTH7WaH3.mjs");
11295
11307
  await secretsAddCommand(options);
11296
11308
  } catch (error) {
11297
11309
  console.error(formatError(error));
@@ -11302,7 +11314,7 @@ program.command("encryption:rotate").description("Add a new current key to an En
11302
11314
  try {
11303
11315
  const globalOptions = program.opts();
11304
11316
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11305
- const { encryptionRotateCommand } = await import("./encryption-CmfPICSN.mjs");
11317
+ const { encryptionRotateCommand } = await import("./encryption-sTMz3aWi.mjs");
11306
11318
  await encryptionRotateCommand(construct, options);
11307
11319
  } catch (error) {
11308
11320
  console.error(formatError(error));
@@ -11313,7 +11325,7 @@ program.command("encryption:retire").description("Remove an old key from an Encr
11313
11325
  try {
11314
11326
  const globalOptions = program.opts();
11315
11327
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11316
- const { encryptionRetireCommand } = await import("./encryption-CmfPICSN.mjs");
11328
+ const { encryptionRetireCommand } = await import("./encryption-sTMz3aWi.mjs");
11317
11329
  await encryptionRetireCommand(construct, key, options);
11318
11330
  } catch (error) {
11319
11331
  console.error(formatError(error));
@@ -11356,7 +11368,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
11356
11368
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11357
11369
  const { loadWorkspaceConfig } = await import("./config.mjs");
11358
11370
  const { reconcileMissingSecrets } = await import("./reconcile--I7V4Klj.mjs");
11359
- const { secretsStoreFor } = await import("./state-DtS2HEfi.mjs").then((n) => n.qt);
11371
+ const { secretsStoreFor } = await import("./state-DpkxSwzI.mjs").then((n) => n.qt);
11360
11372
  const { workspace } = await loadWorkspaceConfig();
11361
11373
  const stage = options.stage ?? workspace.stages.local;
11362
11374
  const store = await secretsStoreFor(workspace, stage);
@@ -11365,7 +11377,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
11365
11377
  console.error(`No secrets found for stage "${stage}". Run "gkm secrets:init --stage ${stage}" first.`);
11366
11378
  process.exit(1);
11367
11379
  }
11368
- const { derivedContainers } = await import("./state-DtS2HEfi.mjs").then((n) => n.nt);
11380
+ const { derivedContainers } = await import("./state-DpkxSwzI.mjs").then((n) => n.nt);
11369
11381
  const result = reconcileMissingSecrets(secrets, workspace, await derivedContainers(workspace, stage));
11370
11382
  if (!result) {
11371
11383
  console.log(`\n✓ Secrets for stage "${stage}" are up-to-date`);
@@ -11380,7 +11392,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
11380
11392
  }
11381
11393
  });
11382
11394
  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) => {
11383
- const { deployCli } = await import("./cli-BfdfyTF6.mjs");
11395
+ const { deployCli } = await import("./cli-CyYceKTS.mjs");
11384
11396
  const globalOptions = program.opts();
11385
11397
  const code = await deployCli({
11386
11398
  cwd: resolve(globalOptions.cwd ?? process.cwd()),
@@ -11397,7 +11409,7 @@ program.command("deploy").description("Deploy a stage through its target").optio
11397
11409
  });
11398
11410
  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) => {
11399
11411
  try {
11400
- const { rollbackStage } = await import("./rollback-C-V-Rf4a.mjs").then((n) => n.a);
11412
+ const { rollbackStage } = await import("./rollback-CWYTUhfW.mjs").then((n) => n.a);
11401
11413
  const { terminalCredentials } = await import("./terminal-BdvrmkaC.mjs");
11402
11414
  const globalOptions = program.opts();
11403
11415
  await rollbackStage({
@@ -11433,7 +11445,7 @@ program.command("deploy:github").description("Let GitHub Actions deploy a stage:
11433
11445
  try {
11434
11446
  const globalOptions = program.opts();
11435
11447
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11436
- const { deployGithubCommand } = await import("./github-hjHHm7jM.mjs");
11448
+ const { deployGithubCommand } = await import("./github-C9ODoyZU.mjs");
11437
11449
  await deployGithubCommand(options);
11438
11450
  } catch (error) {
11439
11451
  console.error(formatError(error));