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

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 (94) hide show
  1. package/dist/{LegacyStateStore-D_78eaHM.cjs → LegacyStateStore-BFnXUFlx.cjs} +2 -2
  2. package/dist/{LegacyStateStore-D_78eaHM.cjs.map → LegacyStateStore-BFnXUFlx.cjs.map} +1 -1
  3. package/dist/{LegacyStateStore-DTo7z924.mjs → LegacyStateStore-cpt3K1vx.mjs} +2 -2
  4. package/dist/{LegacyStateStore-DTo7z924.mjs.map → LegacyStateStore-cpt3K1vx.mjs.map} +1 -1
  5. package/dist/{LocalStateStore-CNjgkRk4.mjs → LocalStateStore-RH9F2ZEy.mjs} +2 -2
  6. package/dist/{LocalStateStore-CNjgkRk4.mjs.map → LocalStateStore-RH9F2ZEy.mjs.map} +1 -1
  7. package/dist/{LocalStateStore-BhrlQIXD.cjs → LocalStateStore-zQGZ9b4J.cjs} +2 -2
  8. package/dist/{LocalStateStore-BhrlQIXD.cjs.map → LocalStateStore-zQGZ9b4J.cjs.map} +1 -1
  9. package/dist/{S3StateStore-oCxRs6HM.cjs → S3StateStore-CT-ZMlQY.cjs} +2 -2
  10. package/dist/{S3StateStore-oCxRs6HM.cjs.map → S3StateStore-CT-ZMlQY.cjs.map} +1 -1
  11. package/dist/{S3StateStore-g2P7T_Mo.mjs → S3StateStore-DBeBc0c0.mjs} +2 -2
  12. package/dist/{S3StateStore-g2P7T_Mo.mjs.map → S3StateStore-DBeBc0c0.mjs.map} +1 -1
  13. package/dist/{SSMStateStore-DXp0m7XI.cjs → SSMStateStore-HmsH3c4v.cjs} +2 -2
  14. package/dist/{SSMStateStore-DXp0m7XI.cjs.map → SSMStateStore-HmsH3c4v.cjs.map} +1 -1
  15. package/dist/{SSMStateStore-CYenunmK.mjs → SSMStateStore-rnzNfOaV.mjs} +2 -2
  16. package/dist/{SSMStateStore-CYenunmK.mjs.map → SSMStateStore-rnzNfOaV.mjs.map} +1 -1
  17. package/dist/{add-Djrr12Xc.cjs → add-CHBin8TF.cjs} +2 -2
  18. package/dist/{add-Djrr12Xc.cjs.map → add-CHBin8TF.cjs.map} +1 -1
  19. package/dist/{add-BTH7WaH3.mjs → add-Cvzdw8cf.mjs} +2 -2
  20. package/dist/{add-BTH7WaH3.mjs.map → add-Cvzdw8cf.mjs.map} +1 -1
  21. package/dist/{bundler-utHuESvL.cjs → bundler-_8AEZhrs.cjs} +5 -5
  22. package/dist/{bundler-utHuESvL.cjs.map → bundler-_8AEZhrs.cjs.map} +1 -1
  23. package/dist/{bundler-BUojOkof.mjs → bundler-xjp5RwRS.mjs} +5 -5
  24. package/dist/{bundler-BUojOkof.mjs.map → bundler-xjp5RwRS.mjs.map} +1 -1
  25. package/dist/{cli-Bx0sUzxH.cjs → cli-B4ktxAsM.cjs} +3 -3
  26. package/dist/{cli-Bx0sUzxH.cjs.map → cli-B4ktxAsM.cjs.map} +1 -1
  27. package/dist/{cli-CyYceKTS.mjs → cli-BTGfA0B7.mjs} +3 -3
  28. package/dist/{cli-CyYceKTS.mjs.map → cli-BTGfA0B7.mjs.map} +1 -1
  29. package/dist/{compose-DZp8DJ0A.mjs → compose-DdH2JQJD.mjs} +219 -152
  30. package/dist/compose-DdH2JQJD.mjs.map +1 -0
  31. package/dist/{compose-iuw8wfHk.cjs → compose-UKyv_1yU.cjs} +241 -150
  32. package/dist/compose-UKyv_1yU.cjs.map +1 -0
  33. package/dist/deploy/public.cjs +7 -6
  34. package/dist/deploy/public.d.cts +11 -0
  35. package/dist/deploy/public.d.cts.map +1 -1
  36. package/dist/deploy/public.d.mts +11 -0
  37. package/dist/deploy/public.d.mts.map +1 -1
  38. package/dist/deploy/public.mjs +7 -7
  39. package/dist/{deploy-C17K7Imy.mjs → deploy-CuSsiFIc.mjs} +21 -5
  40. package/dist/deploy-CuSsiFIc.mjs.map +1 -0
  41. package/dist/{deploy-eWorhvQp.cjs → deploy-XUZoA1us.cjs} +26 -4
  42. package/dist/deploy-XUZoA1us.cjs.map +1 -0
  43. package/dist/{dokploy-DKzcI-RL.cjs → dokploy-Cvgg_pID.cjs} +2 -2
  44. package/dist/{dokploy-DKzcI-RL.cjs.map → dokploy-Cvgg_pID.cjs.map} +1 -1
  45. package/dist/{dokploy-DKa49Nqm.mjs → dokploy-DZXTQX10.mjs} +2 -2
  46. package/dist/{dokploy-DKa49Nqm.mjs.map → dokploy-DZXTQX10.mjs.map} +1 -1
  47. package/dist/{encryption-sTMz3aWi.mjs → encryption-JkeMPugf.mjs} +2 -2
  48. package/dist/{encryption-sTMz3aWi.mjs.map → encryption-JkeMPugf.mjs.map} +1 -1
  49. package/dist/{encryption-DSkJdoyk.cjs → encryption-w-Ehh9DW.cjs} +2 -2
  50. package/dist/{encryption-DSkJdoyk.cjs.map → encryption-w-Ehh9DW.cjs.map} +1 -1
  51. package/dist/{engine-B1b4I34Z.mjs → engine-CmozkHxq.mjs} +192 -4
  52. package/dist/engine-CmozkHxq.mjs.map +1 -0
  53. package/dist/{engine-Bh76sAHy.cjs → engine-zpWBMsQq.cjs} +195 -7
  54. package/dist/engine-zpWBMsQq.cjs.map +1 -0
  55. package/dist/{github-BvN3CfxM.cjs → github-BGdJ-Lnm.cjs} +2 -2
  56. package/dist/{github-BvN3CfxM.cjs.map → github-BGdJ-Lnm.cjs.map} +1 -1
  57. package/dist/{github-C9ODoyZU.mjs → github-BNngHoId.mjs} +2 -2
  58. package/dist/{github-C9ODoyZU.mjs.map → github-BNngHoId.mjs.map} +1 -1
  59. package/dist/index.cjs +70 -45
  60. package/dist/index.cjs.map +1 -1
  61. package/dist/index.mjs +69 -44
  62. package/dist/index.mjs.map +1 -1
  63. package/dist/{migrate-CTtJhGV9.mjs → migrate-BLL1RTAj.mjs} +2 -2
  64. package/dist/{migrate-CTtJhGV9.mjs.map → migrate-BLL1RTAj.mjs.map} +1 -1
  65. package/dist/{migrate-B0FCZNkp.cjs → migrate-CgjlYeun.cjs} +2 -2
  66. package/dist/{migrate-B0FCZNkp.cjs.map → migrate-CgjlYeun.cjs.map} +1 -1
  67. package/dist/{resolve-DSAXj_47.mjs → resolve-DZNx7rLy.mjs} +3 -3
  68. package/dist/{resolve-DSAXj_47.mjs.map → resolve-DZNx7rLy.mjs.map} +1 -1
  69. package/dist/{resolve-D_BU-wKA.cjs → resolve-fevXn-wZ.cjs} +3 -3
  70. package/dist/{resolve-D_BU-wKA.cjs.map → resolve-fevXn-wZ.cjs.map} +1 -1
  71. package/dist/{rollback-CWYTUhfW.mjs → rollback-CLi5Pln_.mjs} +4 -4
  72. package/dist/{rollback-CWYTUhfW.mjs.map → rollback-CLi5Pln_.mjs.map} +1 -1
  73. package/dist/{rollback-DJy3t696.cjs → rollback-Dw-FW3X2.cjs} +4 -4
  74. package/dist/{rollback-DJy3t696.cjs.map → rollback-Dw-FW3X2.cjs.map} +1 -1
  75. package/dist/{sniffer-BFmdZpZ2.mjs → sniffer-BmCvVyhq.mjs} +59 -7
  76. package/dist/sniffer-BmCvVyhq.mjs.map +1 -0
  77. package/dist/{sniffer-C-T7dSMN.cjs → sniffer-bMzrX4cO.cjs} +75 -5
  78. package/dist/{sniffer-C-T7dSMN.cjs.map → sniffer-bMzrX4cO.cjs.map} +1 -1
  79. package/dist/{state-DpkxSwzI.mjs → state-BrWIOce_.mjs} +46 -284
  80. package/dist/state-BrWIOce_.mjs.map +1 -0
  81. package/dist/{state-DCwRWyh-.cjs → state-kA4Fkufx.cjs} +56 -312
  82. package/dist/state-kA4Fkufx.cjs.map +1 -0
  83. package/dist/target/public.cjs +1 -1
  84. package/dist/target/public.mjs +1 -1
  85. package/package.json +17 -17
  86. package/dist/compose-DZp8DJ0A.mjs.map +0 -1
  87. package/dist/compose-iuw8wfHk.cjs.map +0 -1
  88. package/dist/deploy-C17K7Imy.mjs.map +0 -1
  89. package/dist/deploy-eWorhvQp.cjs.map +0 -1
  90. package/dist/engine-B1b4I34Z.mjs.map +0 -1
  91. package/dist/engine-Bh76sAHy.cjs.map +0 -1
  92. package/dist/sniffer-BFmdZpZ2.mjs.map +0 -1
  93. package/dist/state-DCwRWyh-.cjs.map +0 -1
  94. package/dist/state-DpkxSwzI.mjs.map +0 -1
package/dist/index.mjs CHANGED
@@ -6,18 +6,18 @@ 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-DpkxSwzI.mjs";
9
+ import { $ as LOCAL_CA_PATH, Bt as loadSecretsForApp, Dt as eventsBackendFor, Et as cacheBackendFor, Ft as createCredentialsPreload, G as QueueGenerator, Gt as FileSecretsStore, H as WorkerGenerator, It as createEntryWrapper, J as backendsOf$1, Jt as projectKey, K as CronGenerator, Kt as getKeyPath, L as parseDevServices, Lt as findAvailablePort, Mt as fakeKey, Ot as providerOf, Pt as primaryPortKey, Rt as isPortAvailable, U as workerBundleName, Ut as secretsStoreFor, V as workerUnits, Vt as prepareEntryCredentials, W as workerEntryDir, X as derivedContainers, Y as constructGlobs, Z as reconcileWorkspace, Zt as deployIdentity, an as maskPassword, at as postgresDatabaseNames, cn as withCustomSecret, et as forgetState, jt as describeServices, q as FAKE_ENV, sn as toEmbeddableSecrets, st as quoteIdentifier, ut as pgClient, v as dockerCommand, zt as loadEnvFiles } from "./state-BrWIOce_.mjs";
10
10
  import { i as telemetryFor, n as runtimeFor, t as EndpointGenerator } from "./EndpointGenerator-DftalLYg.mjs";
11
- import { g as createStateStore, n as sniffAppEnvironment, o as DokployApi } from "./sniffer-BFmdZpZ2.mjs";
11
+ import { g as createStateStore, n as sniffAppEnvironment, o as DokployApi, x as keyFingerprint } from "./sniffer-BmCvVyhq.mjs";
12
12
  import { generateOpenApi, openapiCommand, resolveOpenApiConfig } from "./openapi.mjs";
13
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
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-C17K7Imy.mjs";
18
- import { a as stackDir, i as composeProject, o as dockerCompose, r as stackOverrideFile, t as composeTarget } from "./compose-DZp8DJ0A.mjs";
17
+ import { t as deploy$1 } from "./deploy-CuSsiFIc.mjs";
18
+ import { a as stackOverrideFile, c as parseDigests, i as ComposePushNeedsBuild, l as pinnedRef, o as composeProject, r as ComposePinNeedsPull, s as stackDir, t as composeTarget, u as dockerCompose } from "./compose-DdH2JQJD.mjs";
19
19
  import { o as loadCredentialSchemas, t as CredentialsInvalid } from "./credentialSchemas-BJqRJNK4.mjs";
20
- import { t as LocalStateStore } from "./LocalStateStore-CNjgkRk4.mjs";
20
+ import { t as LocalStateStore } from "./LocalStateStore-RH9F2ZEy.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
22
  import { a as writeTestHarness, i as TEST_MANIFEST_ENV, n as TEST_READY_FILE, t as TEST_READY_ENV } from "./ready-ZZoNskrr.mjs";
23
23
  import { createRequire } from "node:module";
@@ -47,7 +47,7 @@ import crypto from "crypto";
47
47
  import { Function } from "@geekmidas/constructs/functions";
48
48
  import { Topic } from "@geekmidas/constructs/topic";
49
49
  //#region package.json
50
- var version = "10.0.0-alpha.74";
50
+ var version = "10.0.0-alpha.75";
51
51
  //#endregion
52
52
  //#region src/prompt.ts
53
53
  /**
@@ -130,7 +130,7 @@ const logger$8 = console;
130
130
  * Validate Dokploy token by making a test API call
131
131
  */
132
132
  async function validateDokployToken(endpoint, token) {
133
- const { DokployApi } = await import("./sniffer-BFmdZpZ2.mjs").then((n) => n.c);
133
+ const { DokployApi } = await import("./sniffer-BmCvVyhq.mjs").then((n) => n.c);
134
134
  return new DokployApi({
135
135
  baseUrl: endpoint,
136
136
  token
@@ -2036,9 +2036,9 @@ async function workspaceDevCommand(configured, options) {
2036
2036
  for (const { id, port } of fakes) logger$5.log(`🎭 ${id} fake: http://localhost:${port}`);
2037
2037
  logger$5.log(options.migrate || options.seed ? "🗄️ Migrating the databases" : "🗄️ Checking for pending migrations");
2038
2038
  if (options.migrate || options.seed) {
2039
- const { prepareDevDatabases } = await import("./migrate-CTtJhGV9.mjs");
2039
+ const { prepareDevDatabases } = await import("./migrate-BLL1RTAj.mjs");
2040
2040
  await prepareDevDatabases(workspace, reconciled.env, { seed: !!options.seed });
2041
- } else await import("./migrate-CTtJhGV9.mjs").then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
2041
+ } else await import("./migrate-BLL1RTAj.mjs").then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
2042
2042
  logger$5.log(`⚠️ Could not check for pending migrations: ${error instanceof Error ? error.message : String(error)}`);
2043
2043
  });
2044
2044
  const appUrls = {};
@@ -3046,7 +3046,7 @@ async function buildApp(input) {
3046
3046
  if (production?.bundle && !input.skipBundle) {
3047
3047
  const outputDir = join(appRoot, ".gkm", "server");
3048
3048
  const entryPoint = await writeSurfaceServer(outputDir, production);
3049
- const { bundleServer } = await import("./bundler-BUojOkof.mjs");
3049
+ const { bundleServer } = await import("./bundler-xjp5RwRS.mjs");
3050
3050
  await bundleServer({
3051
3051
  entryPoint,
3052
3052
  outputDir: join(outputDir, "dist"),
@@ -3170,7 +3170,7 @@ async function buildWorkers(input) {
3170
3170
  });
3171
3171
  logger$4.log(`Generated worker ${worker.id}: ${crons.length} crons, ${queues.length} queues, ${subscribers.length} subscribers`);
3172
3172
  if (!input.bundle) continue;
3173
- const { bundleServer } = await import("./bundler-BUojOkof.mjs");
3173
+ const { bundleServer } = await import("./bundler-xjp5RwRS.mjs");
3174
3174
  const outfile = workerBundleName(worker.id);
3175
3175
  await bundleServer({
3176
3176
  entryPoint,
@@ -3240,7 +3240,7 @@ async function buildForTarget(target, context, appRoot, workspaceRoot, endpointG
3240
3240
  let masterKey;
3241
3241
  if (context.production?.bundle && !skipBundle) {
3242
3242
  logger$4.log(`\n📦 Bundling production server...`);
3243
- const { bundleServer } = await import("./bundler-BUojOkof.mjs");
3243
+ const { bundleServer } = await import("./bundler-xjp5RwRS.mjs");
3244
3244
  const allConstructs = [
3245
3245
  ...endpoints.map((e) => e.construct),
3246
3246
  ...functions.map((f) => f.construct),
@@ -3484,9 +3484,16 @@ var ComposeModeConflict = class extends Error {
3484
3484
  this.name = "ComposeModeConflict";
3485
3485
  }
3486
3486
  };
3487
+ /** Each pushed image as `<ref>@sha256:…`, by app. */
3488
+ function pushedDigests(run) {
3489
+ return Object.fromEntries(Object.entries(run.images).filter(([, image]) => image.digest).sort(([a], [b]) => a.localeCompare(b)).map(([app, image]) => [app, pinnedRef(image.ref, image.digest)]));
3490
+ }
3487
3491
  /** `gkm compose`. */
3488
3492
  async function composeCommand(options, deps = {}) {
3489
3493
  if (options.build && options.pull) throw new ComposeModeConflict();
3494
+ if (options.push && !options.build) throw new ComposePushNeedsBuild();
3495
+ const pulls = !options.build && (options.pull || options.tag !== void 0);
3496
+ if (options.digestsFile && !options.push && !pulls) throw new ComposePinNeedsPull();
3490
3497
  const allowDevServices = parseDevServices(options.allowDevServices);
3491
3498
  const cwd = resolve(options.cwd ?? process.cwd());
3492
3499
  const { workspace } = await loadWorkspaceConfig(cwd);
@@ -3506,6 +3513,10 @@ async function composeCommand(options, deps = {}) {
3506
3513
  let finished;
3507
3514
  const mode = options.build ? "build" : options.pull ? "pull" : void 0;
3508
3515
  const tag = options.tag ?? (options.pull ? "latest" : void 0);
3516
+ const pin = options.digestsFile && pulls ? {
3517
+ file: options.digestsFile,
3518
+ digests: parseDigests(options.digestsFile, await readFile(resolve(cwd, options.digestsFile), "utf-8"))
3519
+ } : void 0;
3509
3520
  const result = await deploy$1({
3510
3521
  cwd,
3511
3522
  stage,
@@ -3513,12 +3524,15 @@ async function composeCommand(options, deps = {}) {
3513
3524
  targets: { compose: composeTarget({
3514
3525
  ...deps,
3515
3526
  ...mode ? { mode } : {},
3527
+ ...options.push ? { push: true } : {},
3528
+ ...pin ? { pin } : {},
3516
3529
  report: (done) => {
3517
3530
  finished = done;
3518
3531
  }
3519
3532
  }) },
3520
3533
  ...tag ? { tag } : {},
3521
3534
  ...options.dryRun ? { dryRun: true } : {},
3535
+ ...options.push ? { buildOnly: true } : {},
3522
3536
  ...allowDevServices.length > 0 ? { allowDevServices } : {},
3523
3537
  logger: {
3524
3538
  info: (message) => console.log(message),
@@ -3527,6 +3541,17 @@ async function composeCommand(options, deps = {}) {
3527
3541
  }
3528
3542
  }).result;
3529
3543
  if (!finished) return void 0;
3544
+ if (options.push && !options.dryRun) {
3545
+ const digests = pushedDigests(finished);
3546
+ console.log(`\n✅ Pushed ${Object.keys(digests).length} image(s):`);
3547
+ for (const [app, ref] of Object.entries(digests)) console.log(` ${app.padEnd(12)} ${ref}`);
3548
+ if (options.digestsFile) {
3549
+ const file = resolve(cwd, options.digestsFile);
3550
+ await mkdir(dirname(file), { recursive: true });
3551
+ await writeFile(file, `${JSON.stringify(digests, null, 2)}\n`);
3552
+ console.log(`\n📝 Wrote the digests to ${options.digestsFile}`);
3553
+ }
3554
+ }
3530
3555
  return {
3531
3556
  stack: finished.stack,
3532
3557
  files: finished.files,
@@ -4939,25 +4964,25 @@ function loadPackageJson() {
4939
4964
  * Run: pnpm --filter @geekmidas/cli sync-versions
4940
4965
  */
4941
4966
  const GEEKMIDAS_VERSIONS = {
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",
4967
+ "@geekmidas/audit": "~10.0.0-alpha.75",
4968
+ "@geekmidas/auth": "~10.0.0-alpha.75",
4969
+ "@geekmidas/cache": "~10.0.0-alpha.75",
4970
+ "@geekmidas/client": "~10.0.0-alpha.75",
4971
+ "@geekmidas/cloud": "~10.0.0-alpha.75",
4972
+ "@geekmidas/constructs": "~10.0.0-alpha.75",
4973
+ "@geekmidas/db": "~10.0.0-alpha.75",
4974
+ "@geekmidas/emailkit": "~10.0.0-alpha.75",
4975
+ "@geekmidas/envkit": "~10.0.0-alpha.75",
4976
+ "@geekmidas/errors": "~10.0.0-alpha.75",
4977
+ "@geekmidas/events": "~10.0.0-alpha.75",
4978
+ "@geekmidas/logger": "~10.0.0-alpha.75",
4979
+ "@geekmidas/manifest": "~10.0.0-alpha.75",
4980
+ "@geekmidas/rate-limit": "~10.0.0-alpha.75",
4981
+ "@geekmidas/schema": "~10.0.0-alpha.75",
4982
+ "@geekmidas/services": "~10.0.0-alpha.75",
4983
+ "@geekmidas/storage": "~10.0.0-alpha.75",
4984
+ "@geekmidas/telescope": "~10.0.0-alpha.75",
4985
+ "@geekmidas/testkit": "~10.0.0-alpha.75",
4961
4986
  "@geekmidas/cli": `~${loadPackageJson().version}`
4962
4987
  };
4963
4988
  //#endregion
@@ -10748,7 +10773,7 @@ function testDatabases(reconciled) {
10748
10773
  * starts without the reference data the app needs.
10749
10774
  */
10750
10775
  async function migrateTestStage(workspace, env) {
10751
- const { migrateAndSeed } = await import("./migrate-CTtJhGV9.mjs");
10776
+ const { migrateAndSeed } = await import("./migrate-BLL1RTAj.mjs");
10752
10777
  const { discover } = await import("./discover-BPelzeGW.mjs").then((n) => n.i);
10753
10778
  const sources = {};
10754
10779
  const manifest = await discover({
@@ -11181,7 +11206,7 @@ program.command("migrate").description("Apply each database construct's migratio
11181
11206
  try {
11182
11207
  const globalOptions = program.opts();
11183
11208
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11184
- const { migrateCommand } = await import("./migrate-CTtJhGV9.mjs");
11209
+ const { migrateCommand } = await import("./migrate-BLL1RTAj.mjs");
11185
11210
  await migrateCommand({
11186
11211
  ...options,
11187
11212
  ...construct ? { construct } : {}
@@ -11195,7 +11220,7 @@ program.command("seed").description("Migrate, then run each database construct's
11195
11220
  try {
11196
11221
  const globalOptions = program.opts();
11197
11222
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11198
- const { seedCommand } = await import("./migrate-CTtJhGV9.mjs");
11223
+ const { seedCommand } = await import("./migrate-BLL1RTAj.mjs");
11199
11224
  await seedCommand({
11200
11225
  ...options,
11201
11226
  ...construct ? { construct } : {}
@@ -11209,7 +11234,7 @@ program.command("migration").description("Write a construct's next migration: an
11209
11234
  try {
11210
11235
  const globalOptions = program.opts();
11211
11236
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11212
- const { migrationCommand } = await import("./migrate-CTtJhGV9.mjs");
11237
+ const { migrationCommand } = await import("./migrate-BLL1RTAj.mjs");
11213
11238
  await migrationCommand({
11214
11239
  construct,
11215
11240
  ...name ? { name } : {}
@@ -11254,7 +11279,7 @@ program.command("docker").description("Generate Docker deployment files").option
11254
11279
  process.exit(1);
11255
11280
  }
11256
11281
  });
11257
- program.command("compose").description("Run the workspace's APIs and sites for a stage as one Docker Compose stack behind Caddy").requiredOption("--stage <stage>", "Stage to run — always named, so a stack is never a deployed stage by accident").option("--tag <tag>", "Run the images CI pushed at this tag (sites: <tag>-<stage>); nothing is built").option("--build", "Build images from this checkout, tagged with the commit").option("--pull", "Pull images (at --tag, or latest) rather than build them").option("--dry-run", "Write the files and print the plan; start nothing").option("--down", "Stop the stage's stack (its volumes are kept)").option("--allow-dev-services <list>", "Deployed stage: run MinIO and/or Mailpit (minio,mailpit) for mail and buckets the stage's secrets don't configure. Not production-grade").action(async (options) => {
11282
+ program.command("compose").description("Run the workspace's APIs and sites for a stage as one Docker Compose stack behind Caddy").requiredOption("--stage <stage>", "Stage to run — always named, so a stack is never a deployed stage by accident").option("--tag <tag>", "Run the images CI pushed at this tag (sites: <tag>-<stage>); nothing is built").option("--build", "Build images from this checkout, tagged with the commit").option("--pull", "Pull images (at --tag, or latest) rather than build them").option("--push", "With --build: push every image to deploy.registry and start nothing (for CI)").option("--digests-file <path>", "With --push: write each image as <ref>@sha256:… (JSON). With --tag: run the images at those digests").option("--dry-run", "Write the files and print the plan; start nothing").option("--down", "Stop the stage's stack (its volumes are kept)").option("--allow-dev-services <list>", "Deployed stage: run MinIO and/or Mailpit (minio,mailpit) for mail and buckets the stage's secrets don't configure. Not production-grade").action(async (options) => {
11258
11283
  try {
11259
11284
  const globalOptions = program.opts();
11260
11285
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
@@ -11303,7 +11328,7 @@ program.command("secrets:add").description("Build the keys a stage must be given
11303
11328
  try {
11304
11329
  const globalOptions = program.opts();
11305
11330
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11306
- const { secretsAddCommand } = await import("./add-BTH7WaH3.mjs");
11331
+ const { secretsAddCommand } = await import("./add-Cvzdw8cf.mjs");
11307
11332
  await secretsAddCommand(options);
11308
11333
  } catch (error) {
11309
11334
  console.error(formatError(error));
@@ -11314,7 +11339,7 @@ program.command("encryption:rotate").description("Add a new current key to an En
11314
11339
  try {
11315
11340
  const globalOptions = program.opts();
11316
11341
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11317
- const { encryptionRotateCommand } = await import("./encryption-sTMz3aWi.mjs");
11342
+ const { encryptionRotateCommand } = await import("./encryption-JkeMPugf.mjs");
11318
11343
  await encryptionRotateCommand(construct, options);
11319
11344
  } catch (error) {
11320
11345
  console.error(formatError(error));
@@ -11325,7 +11350,7 @@ program.command("encryption:retire").description("Remove an old key from an Encr
11325
11350
  try {
11326
11351
  const globalOptions = program.opts();
11327
11352
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11328
- const { encryptionRetireCommand } = await import("./encryption-sTMz3aWi.mjs");
11353
+ const { encryptionRetireCommand } = await import("./encryption-JkeMPugf.mjs");
11329
11354
  await encryptionRetireCommand(construct, key, options);
11330
11355
  } catch (error) {
11331
11356
  console.error(formatError(error));
@@ -11368,7 +11393,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
11368
11393
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11369
11394
  const { loadWorkspaceConfig } = await import("./config.mjs");
11370
11395
  const { reconcileMissingSecrets } = await import("./reconcile--I7V4Klj.mjs");
11371
- const { secretsStoreFor } = await import("./state-DpkxSwzI.mjs").then((n) => n.qt);
11396
+ const { secretsStoreFor } = await import("./state-BrWIOce_.mjs").then((n) => n.Wt);
11372
11397
  const { workspace } = await loadWorkspaceConfig();
11373
11398
  const stage = options.stage ?? workspace.stages.local;
11374
11399
  const store = await secretsStoreFor(workspace, stage);
@@ -11377,7 +11402,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
11377
11402
  console.error(`No secrets found for stage "${stage}". Run "gkm secrets:init --stage ${stage}" first.`);
11378
11403
  process.exit(1);
11379
11404
  }
11380
- const { derivedContainers } = await import("./state-DpkxSwzI.mjs").then((n) => n.nt);
11405
+ const { derivedContainers } = await import("./state-BrWIOce_.mjs").then((n) => n.Q);
11381
11406
  const result = reconcileMissingSecrets(secrets, workspace, await derivedContainers(workspace, stage));
11382
11407
  if (!result) {
11383
11408
  console.log(`\n✓ Secrets for stage "${stage}" are up-to-date`);
@@ -11392,7 +11417,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
11392
11417
  }
11393
11418
  });
11394
11419
  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) => {
11395
- const { deployCli } = await import("./cli-CyYceKTS.mjs");
11420
+ const { deployCli } = await import("./cli-BTGfA0B7.mjs");
11396
11421
  const globalOptions = program.opts();
11397
11422
  const code = await deployCli({
11398
11423
  cwd: resolve(globalOptions.cwd ?? process.cwd()),
@@ -11409,7 +11434,7 @@ program.command("deploy").description("Deploy a stage through its target").optio
11409
11434
  });
11410
11435
  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) => {
11411
11436
  try {
11412
- const { rollbackStage } = await import("./rollback-CWYTUhfW.mjs").then((n) => n.a);
11437
+ const { rollbackStage } = await import("./rollback-CLi5Pln_.mjs").then((n) => n.a);
11413
11438
  const { terminalCredentials } = await import("./terminal-BdvrmkaC.mjs");
11414
11439
  const globalOptions = program.opts();
11415
11440
  await rollbackStage({
@@ -11445,7 +11470,7 @@ program.command("deploy:github").description("Let GitHub Actions deploy a stage:
11445
11470
  try {
11446
11471
  const globalOptions = program.opts();
11447
11472
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11448
- const { deployGithubCommand } = await import("./github-C9ODoyZU.mjs");
11473
+ const { deployGithubCommand } = await import("./github-BNngHoId.mjs");
11449
11474
  await deployGithubCommand(options);
11450
11475
  } catch (error) {
11451
11476
  console.error(formatError(error));