@geekmidas/cli 10.0.0-alpha.113 → 10.0.0-alpha.115

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 (123) hide show
  1. package/dist/{GoDaddyProvider-DWrDIXzQ.cjs → GoDaddyProvider-BDvIMTO-.cjs} +2 -2
  2. package/dist/{GoDaddyProvider-DWrDIXzQ.cjs.map → GoDaddyProvider-BDvIMTO-.cjs.map} +1 -1
  3. package/dist/{GoDaddyProvider-CPabc3XW.mjs → GoDaddyProvider-eW1mre1g.mjs} +2 -2
  4. package/dist/{GoDaddyProvider-CPabc3XW.mjs.map → GoDaddyProvider-eW1mre1g.mjs.map} +1 -1
  5. package/dist/{LegacyStateStore-BdXoAlYY.mjs → LegacyStateStore-Ba1_x0cr.mjs} +3 -3
  6. package/dist/{LegacyStateStore-BdXoAlYY.mjs.map → LegacyStateStore-Ba1_x0cr.mjs.map} +1 -1
  7. package/dist/{LegacyStateStore-fsyPGBWu.cjs → LegacyStateStore-DFeykTd8.cjs} +3 -3
  8. package/dist/{LegacyStateStore-fsyPGBWu.cjs.map → LegacyStateStore-DFeykTd8.cjs.map} +1 -1
  9. package/dist/{LocalStateStore-BrAX5yy7.mjs → LocalStateStore-C1rUUvBr.mjs} +2 -2
  10. package/dist/{LocalStateStore-BrAX5yy7.mjs.map → LocalStateStore-C1rUUvBr.mjs.map} +1 -1
  11. package/dist/{LocalStateStore-AtviUBky.cjs → LocalStateStore-CV-04jpI.cjs} +2 -2
  12. package/dist/{LocalStateStore-AtviUBky.cjs.map → LocalStateStore-CV-04jpI.cjs.map} +1 -1
  13. package/dist/{S3StateStore-tn5g80Sx.cjs → S3StateStore-CqYi-1sb.cjs} +2 -2
  14. package/dist/{S3StateStore-tn5g80Sx.cjs.map → S3StateStore-CqYi-1sb.cjs.map} +1 -1
  15. package/dist/{S3StateStore-Cx7njkBz.mjs → S3StateStore-Dszt4fN5.mjs} +2 -2
  16. package/dist/{S3StateStore-Cx7njkBz.mjs.map → S3StateStore-Dszt4fN5.mjs.map} +1 -1
  17. package/dist/{SSMStateStore-sqZ3oDmn.mjs → SSMStateStore-BYRUyMkE.mjs} +2 -2
  18. package/dist/{SSMStateStore-sqZ3oDmn.mjs.map → SSMStateStore-BYRUyMkE.mjs.map} +1 -1
  19. package/dist/{SSMStateStore-CAFde-Fq.cjs → SSMStateStore-zpHjDCAW.cjs} +2 -2
  20. package/dist/{SSMStateStore-CAFde-Fq.cjs.map → SSMStateStore-zpHjDCAW.cjs.map} +1 -1
  21. package/dist/{add-Cs8yT5iH.cjs → add-0XI8_HOf.cjs} +3 -3
  22. package/dist/{add-Cs8yT5iH.cjs.map → add-0XI8_HOf.cjs.map} +1 -1
  23. package/dist/{add-DJE7zqJ4.mjs → add-DXdJjp0b.mjs} +3 -3
  24. package/dist/{add-DJE7zqJ4.mjs.map → add-DXdJjp0b.mjs.map} +1 -1
  25. package/dist/{bundler-DrySVbXF.mjs → bundler-B2ysiCTa.mjs} +5 -5
  26. package/dist/{bundler-DrySVbXF.mjs.map → bundler-B2ysiCTa.mjs.map} +1 -1
  27. package/dist/{bundler-NrtItVBp.cjs → bundler-hvCgi0EG.cjs} +5 -5
  28. package/dist/{bundler-NrtItVBp.cjs.map → bundler-hvCgi0EG.cjs.map} +1 -1
  29. package/dist/{cli-CHzpFBh-.cjs → cli-5k6kV_i4.cjs} +2 -2
  30. package/dist/{cli-CHzpFBh-.cjs.map → cli-5k6kV_i4.cjs.map} +1 -1
  31. package/dist/{cli-DDY3jfTt.mjs → cli-H0uB_znq.mjs} +2 -2
  32. package/dist/{cli-DDY3jfTt.mjs.map → cli-H0uB_znq.mjs.map} +1 -1
  33. package/dist/{compose-CDC2bCme.mjs → compose-BEiJWrB7.mjs} +3 -3
  34. package/dist/{compose-CDC2bCme.mjs.map → compose-BEiJWrB7.mjs.map} +1 -1
  35. package/dist/{compose-ByIbIrzs.cjs → compose-CYeMW2_o.cjs} +3 -3
  36. package/dist/{compose-ByIbIrzs.cjs.map → compose-CYeMW2_o.cjs.map} +1 -1
  37. package/dist/deploy/public.cjs +6 -6
  38. package/dist/deploy/public.mjs +6 -6
  39. package/dist/{deploy-DLq9-m6H.mjs → deploy-Cyx5fSb7.mjs} +5 -5
  40. package/dist/{deploy-DLq9-m6H.mjs.map → deploy-Cyx5fSb7.mjs.map} +1 -1
  41. package/dist/{deploy-Dl_NavYE.cjs → deploy-Q5qo1OP-.cjs} +5 -5
  42. package/dist/{deploy-Dl_NavYE.cjs.map → deploy-Q5qo1OP-.cjs.map} +1 -1
  43. package/dist/{dns-pzftumxg.mjs → dns-CsApfzLc.mjs} +2 -2
  44. package/dist/{dns-pzftumxg.mjs.map → dns-CsApfzLc.mjs.map} +1 -1
  45. package/dist/{dns-C2TGXUF4.cjs → dns-v9viladZ.cjs} +2 -2
  46. package/dist/{dns-C2TGXUF4.cjs.map → dns-v9viladZ.cjs.map} +1 -1
  47. package/dist/{dokploy-B7-OwY2s.mjs → dokploy-DfUo_QRw.mjs} +2 -2
  48. package/dist/{dokploy-B7-OwY2s.mjs.map → dokploy-DfUo_QRw.mjs.map} +1 -1
  49. package/dist/{dokploy-OqBh8G4g.cjs → dokploy-Di7rC2z0.cjs} +2 -2
  50. package/dist/{dokploy-OqBh8G4g.cjs.map → dokploy-Di7rC2z0.cjs.map} +1 -1
  51. package/dist/{eas-Cne743nQ.cjs → eas-CIvNT6qa.cjs} +2 -2
  52. package/dist/{eas-Cne743nQ.cjs.map → eas-CIvNT6qa.cjs.map} +1 -1
  53. package/dist/{eas-DEpwISrQ.mjs → eas-CTfRmndW.mjs} +2 -2
  54. package/dist/{eas-DEpwISrQ.mjs.map → eas-CTfRmndW.mjs.map} +1 -1
  55. package/dist/{encryption-DoVnVU82.cjs → encryption--U4NsK7N.cjs} +2 -2
  56. package/dist/{encryption-DoVnVU82.cjs.map → encryption--U4NsK7N.cjs.map} +1 -1
  57. package/dist/{encryption-DJv_jEXi.mjs → encryption-BpTPmd7h.mjs} +2 -2
  58. package/dist/{encryption-DJv_jEXi.mjs.map → encryption-BpTPmd7h.mjs.map} +1 -1
  59. package/dist/{engine-Db71-OZL.mjs → engine-BFmHfek1.mjs} +3 -3
  60. package/dist/{engine-Db71-OZL.mjs.map → engine-BFmHfek1.mjs.map} +1 -1
  61. package/dist/{engine-CJhQb50j.cjs → engine-Ovl1PB6i.cjs} +3 -3
  62. package/dist/{engine-CJhQb50j.cjs.map → engine-Ovl1PB6i.cjs.map} +1 -1
  63. package/dist/{github-C3gblUvr.cjs → github-CTlPQ5Ra.cjs} +4 -4
  64. package/dist/{github-C3gblUvr.cjs.map → github-CTlPQ5Ra.cjs.map} +1 -1
  65. package/dist/{github-BMakI-k3.mjs → github-tWAGuR9i.mjs} +4 -4
  66. package/dist/{github-BMakI-k3.mjs.map → github-tWAGuR9i.mjs.map} +1 -1
  67. package/dist/{googlePlay-B6uiHi65.cjs → googlePlay-BNH729It.cjs} +3 -3
  68. package/dist/{googlePlay-B6uiHi65.cjs.map → googlePlay-BNH729It.cjs.map} +1 -1
  69. package/dist/{googlePlay-BYZ-J5sC.mjs → googlePlay-m1De-qIJ.mjs} +3 -3
  70. package/dist/{googlePlay-BYZ-J5sC.mjs.map → googlePlay-m1De-qIJ.mjs.map} +1 -1
  71. package/dist/index.cjs +104 -68
  72. package/dist/index.cjs.map +1 -1
  73. package/dist/index.mjs +104 -68
  74. package/dist/index.mjs.map +1 -1
  75. package/dist/{migrate-CQUGbptv.mjs → migrate-4B4RgAjU.mjs} +2 -2
  76. package/dist/{migrate-CQUGbptv.mjs.map → migrate-4B4RgAjU.mjs.map} +1 -1
  77. package/dist/{migrate-bDQzFvBN.cjs → migrate-BYEmpoIg.cjs} +2 -2
  78. package/dist/{migrate-bDQzFvBN.cjs.map → migrate-BYEmpoIg.cjs.map} +1 -1
  79. package/dist/{migrate-GLBZlrlJ.cjs → migrate-DZ2--SaO.cjs} +2 -2
  80. package/dist/{migrate-GLBZlrlJ.cjs.map → migrate-DZ2--SaO.cjs.map} +1 -1
  81. package/dist/{migrate-xHYaeBkd.mjs → migrate-X0Y7fz3N.mjs} +2 -2
  82. package/dist/{migrate-xHYaeBkd.mjs.map → migrate-X0Y7fz3N.mjs.map} +1 -1
  83. package/dist/{publish-SDG1WfYn.cjs → publish-BUvYjiZH.cjs} +2 -2
  84. package/dist/{publish-SDG1WfYn.cjs.map → publish-BUvYjiZH.cjs.map} +1 -1
  85. package/dist/{publish-CSctCNf4.mjs → publish-hhgraEhO.mjs} +2 -2
  86. package/dist/{publish-CSctCNf4.mjs.map → publish-hhgraEhO.mjs.map} +1 -1
  87. package/dist/{resolve-wG49Woex.cjs → resolve-DdFKTx8l.cjs} +3 -3
  88. package/dist/{resolve-wG49Woex.cjs.map → resolve-DdFKTx8l.cjs.map} +1 -1
  89. package/dist/{resolve-CxDqDmCD.mjs → resolve-DotGHvtX.mjs} +3 -3
  90. package/dist/{resolve-CxDqDmCD.mjs.map → resolve-DotGHvtX.mjs.map} +1 -1
  91. package/dist/{rollback-BQgEdr_p.mjs → rollback-9t9G3c_u.mjs} +4 -4
  92. package/dist/{rollback-BQgEdr_p.mjs.map → rollback-9t9G3c_u.mjs.map} +1 -1
  93. package/dist/{rollback-Cw-Z0mWn.cjs → rollback-D4xeUQvG.cjs} +4 -4
  94. package/dist/{rollback-Cw-Z0mWn.cjs.map → rollback-D4xeUQvG.cjs.map} +1 -1
  95. package/dist/{seeds-CIk0l4SC.mjs → seeds-CRkKeyW0.mjs} +19 -6
  96. package/dist/seeds-CRkKeyW0.mjs.map +1 -0
  97. package/dist/{seeds-Dk8YkLkM.cjs → seeds-DbKNcs3o.cjs} +19 -6
  98. package/dist/seeds-DbKNcs3o.cjs.map +1 -0
  99. package/dist/{serverSetup-BCbD8ksJ.cjs → serverSetup-CcWgNtiC.cjs} +93 -21
  100. package/dist/serverSetup-CcWgNtiC.cjs.map +1 -0
  101. package/dist/{serverSetup--O61SRvg.mjs → serverSetup-DlRKRfTi.mjs} +93 -21
  102. package/dist/serverSetup-DlRKRfTi.mjs.map +1 -0
  103. package/dist/{sniffer-2aK7cB2u.cjs → sniffer-B6T6za4n.cjs} +6 -6
  104. package/dist/{sniffer-2aK7cB2u.cjs.map → sniffer-B6T6za4n.cjs.map} +1 -1
  105. package/dist/{sniffer-CABMO-Bh.mjs → sniffer-CakkKKqQ.mjs} +6 -6
  106. package/dist/{sniffer-CABMO-Bh.mjs.map → sniffer-CakkKKqQ.mjs.map} +1 -1
  107. package/dist/{stage-ClKTHQoM.mjs → stage-Mp6qQIoD.mjs} +4 -4
  108. package/dist/{stage-ClKTHQoM.mjs.map → stage-Mp6qQIoD.mjs.map} +1 -1
  109. package/dist/{stage-DrCS0vKD.cjs → stage-W3PUt7ar.cjs} +4 -4
  110. package/dist/{stage-DrCS0vKD.cjs.map → stage-W3PUt7ar.cjs.map} +1 -1
  111. package/dist/{stages-DJrOYLZ-.mjs → stages-Cb9rqRbN.mjs} +16 -2
  112. package/dist/stages-Cb9rqRbN.mjs.map +1 -0
  113. package/dist/{stages-_3RVNG83.cjs → stages-D4SnG5yl.cjs} +16 -2
  114. package/dist/stages-D4SnG5yl.cjs.map +1 -0
  115. package/dist/target/public.cjs +1 -1
  116. package/dist/target/public.mjs +1 -1
  117. package/package.json +15 -15
  118. package/dist/seeds-CIk0l4SC.mjs.map +0 -1
  119. package/dist/seeds-Dk8YkLkM.cjs.map +0 -1
  120. package/dist/serverSetup--O61SRvg.mjs.map +0 -1
  121. package/dist/serverSetup-BCbD8ksJ.cjs.map +0 -1
  122. package/dist/stages-DJrOYLZ-.mjs.map +0 -1
  123. package/dist/stages-_3RVNG83.cjs.map +0 -1
package/dist/index.cjs CHANGED
@@ -4,25 +4,25 @@ const require_rolldown_runtime = require("./rolldown-runtime-C0BPl7ul.cjs");
4
4
  const require_errors = require("./errors-DMC4Umsb.cjs");
5
5
  const require_run = require("./run-fVZ-rLnc.cjs");
6
6
  const require_credentials = require("./credentials-Zqr3QQYB.cjs");
7
- const require_compose = require("./compose-ByIbIrzs.cjs");
7
+ const require_compose = require("./compose-CYeMW2_o.cjs");
8
8
  const require_workspace = require("./workspace-BwqQnool.cjs");
9
- const require_dns = require("./dns-C2TGXUF4.cjs");
10
- const require_seeds = require("./seeds-Dk8YkLkM.cjs");
9
+ const require_dns = require("./dns-v9viladZ.cjs");
10
+ const require_seeds = require("./seeds-DbKNcs3o.cjs");
11
11
  const require_derive = require("./derive-DAbo49sm.cjs");
12
12
  const require_SubscriberGenerator = require("./SubscriberGenerator-CeH7wbYt.cjs");
13
13
  const require_identity = require("./identity-CbLfgQNT.cjs");
14
14
  const require_EndpointGenerator = require("./EndpointGenerator-BwbYTMtB.cjs");
15
15
  const require_discover = require("./discover-Bsr7HjqJ.cjs");
16
16
  const require_config = require("./config.cjs");
17
- const require_deploy = require("./deploy-Dl_NavYE.cjs");
17
+ const require_deploy = require("./deploy-Q5qo1OP-.cjs");
18
18
  const require_openapi = require("./openapi.cjs");
19
19
  const require_appPorts = require("./appPorts-IW-OZmRi.cjs");
20
20
  const require_drivers = require("./drivers-GKaA6ITM.cjs");
21
21
  const require_emit = require("./emit-Dmc1nvdS.cjs");
22
22
  const require_local = require("./local-DNhnkugT.cjs");
23
- const require_sniffer = require("./sniffer-2aK7cB2u.cjs");
23
+ const require_sniffer = require("./sniffer-B6T6za4n.cjs");
24
24
  const require_credentialSchemas = require("./credentialSchemas-D_VUCDUh.cjs");
25
- const require_LocalStateStore = require("./LocalStateStore-AtviUBky.cjs");
25
+ const require_LocalStateStore = require("./LocalStateStore-CV-04jpI.cjs");
26
26
  const require_utils = require("./utils-D2Nk1Nv2.cjs");
27
27
  const require_ready = require("./ready-BMFjxBYA.cjs");
28
28
  let node_path = require("node:path");
@@ -57,7 +57,7 @@ crypto = require_rolldown_runtime.__toESM(crypto, 1);
57
57
  let _geekmidas_constructs_functions = require("@geekmidas/constructs/functions");
58
58
  let _geekmidas_constructs_topic = require("@geekmidas/constructs/topic");
59
59
  //#region package.json
60
- var version = "10.0.0-alpha.113";
60
+ var version = "10.0.0-alpha.115";
61
61
  //#endregion
62
62
  //#region src/prompt.ts
63
63
  /**
@@ -140,7 +140,7 @@ const logger$8 = console;
140
140
  * Validate Dokploy token by making a test API call
141
141
  */
142
142
  async function validateDokployToken(endpoint, token) {
143
- const { DokployApi } = await Promise.resolve().then(() => require("./sniffer-2aK7cB2u.cjs")).then((n) => n.dokploy_api_exports);
143
+ const { DokployApi } = await Promise.resolve().then(() => require("./sniffer-B6T6za4n.cjs")).then((n) => n.dokploy_api_exports);
144
144
  return new DokployApi({
145
145
  baseUrl: endpoint,
146
146
  token
@@ -2180,7 +2180,7 @@ async function execCommand(commandArgs, options = {}, stageDeps) {
2180
2180
  const cwd = options.cwd ?? process.cwd();
2181
2181
  if (!commandArgs[0]) throw new NoCommandSpecified();
2182
2182
  if (options.stage && !require_seeds.isImageBuild()) {
2183
- const { execOnStage } = await Promise.resolve().then(() => require("./stage-DrCS0vKD.cjs")).then((n) => n.stage_exports);
2183
+ const { execOnStage } = await Promise.resolve().then(() => require("./stage-W3PUt7ar.cjs")).then((n) => n.stage_exports);
2184
2184
  const { loadWorkspaceConfig } = await Promise.resolve().then(() => require("./config.cjs"));
2185
2185
  const { workspace } = await loadWorkspaceConfig(cwd);
2186
2186
  if (options.stage !== workspace.stages.local) {
@@ -2753,9 +2753,9 @@ async function workspaceDevCommand(configured, options) {
2753
2753
  for (const { id, port } of fakes) logger$5.log(`🎭 ${id} fake: http://localhost:${port}`);
2754
2754
  logger$5.log(options.migrate || options.seed ? "🗄️ Migrating the databases" : "🗄️ Checking for pending migrations");
2755
2755
  if (options.migrate || options.seed) {
2756
- const { prepareDevDatabases } = await Promise.resolve().then(() => require("./migrate-bDQzFvBN.cjs"));
2756
+ const { prepareDevDatabases } = await Promise.resolve().then(() => require("./migrate-BYEmpoIg.cjs"));
2757
2757
  await prepareDevDatabases(workspace, reconciled.env, { seed: !!options.seed });
2758
- } else await Promise.resolve().then(() => require("./migrate-bDQzFvBN.cjs")).then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
2758
+ } else await Promise.resolve().then(() => require("./migrate-BYEmpoIg.cjs")).then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
2759
2759
  logger$5.log(`⚠️ Could not check for pending migrations: ${error instanceof Error ? error.message : String(error)}`);
2760
2760
  });
2761
2761
  const appUrls = {};
@@ -3831,7 +3831,7 @@ async function buildApp(input) {
3831
3831
  ...production,
3832
3832
  ...telemetry ? { telemetry } : {}
3833
3833
  });
3834
- const { bundleServer } = await Promise.resolve().then(() => require("./bundler-NrtItVBp.cjs"));
3834
+ const { bundleServer } = await Promise.resolve().then(() => require("./bundler-hvCgi0EG.cjs"));
3835
3835
  await bundleServer({
3836
3836
  entryPoint,
3837
3837
  outputDir: (0, node_path.join)(outputDir, "dist"),
@@ -4030,7 +4030,7 @@ async function buildWorkers(input) {
4030
4030
  });
4031
4031
  logger$4.log(`Generated worker ${worker.id}: ${crons.length} crons, ${queues.length} queues, ${subscribers.length} subscribers`);
4032
4032
  if (!input.bundle) continue;
4033
- const { bundleServer } = await Promise.resolve().then(() => require("./bundler-NrtItVBp.cjs"));
4033
+ const { bundleServer } = await Promise.resolve().then(() => require("./bundler-hvCgi0EG.cjs"));
4034
4034
  const outfile = require_seeds.workerBundleName(worker.id);
4035
4035
  await bundleServer({
4036
4036
  entryPoint,
@@ -4116,7 +4116,7 @@ async function buildForTarget(target, context, appRoot, workspaceRoot, endpointG
4116
4116
  let masterKey;
4117
4117
  if (context.production?.bundle && !skipBundle) {
4118
4118
  logger$4.log(`\n📦 Bundling production server...`);
4119
- const { bundleServer } = await Promise.resolve().then(() => require("./bundler-NrtItVBp.cjs"));
4119
+ const { bundleServer } = await Promise.resolve().then(() => require("./bundler-hvCgi0EG.cjs"));
4120
4120
  const allConstructs = [
4121
4121
  ...endpoints.map((e) => e.construct),
4122
4122
  ...functions.map((f) => f.construct),
@@ -5839,6 +5839,7 @@ const DEPENDENCY_VERSIONS = {
5839
5839
  "better-auth": "~1.7.6",
5840
5840
  hono: "~4.13.9",
5841
5841
  "@hono/node-server": "~1.19.17",
5842
+ "@hono/node-ws": "~1.3.1",
5842
5843
  kysely: "~0.29.6",
5843
5844
  pg: "~8.23.0",
5844
5845
  pino: "~10.3.1",
@@ -5949,25 +5950,25 @@ function loadPackageJson() {
5949
5950
  * Run: pnpm --filter @geekmidas/cli sync-versions
5950
5951
  */
5951
5952
  const GEEKMIDAS_VERSIONS = {
5952
- "@geekmidas/audit": "~10.0.0-alpha.113",
5953
- "@geekmidas/auth": "~10.0.0-alpha.113",
5954
- "@geekmidas/cache": "~10.0.0-alpha.113",
5955
- "@geekmidas/client": "~10.0.0-alpha.113",
5956
- "@geekmidas/cloud": "~10.0.0-alpha.113",
5957
- "@geekmidas/constructs": "~10.0.0-alpha.113",
5958
- "@geekmidas/db": "~10.0.0-alpha.113",
5959
- "@geekmidas/emailkit": "~10.0.0-alpha.113",
5960
- "@geekmidas/envkit": "~10.0.0-alpha.113",
5961
- "@geekmidas/errors": "~10.0.0-alpha.113",
5962
- "@geekmidas/events": "~10.0.0-alpha.113",
5963
- "@geekmidas/logger": "~10.0.0-alpha.113",
5964
- "@geekmidas/manifest": "~10.0.0-alpha.113",
5965
- "@geekmidas/rate-limit": "~10.0.0-alpha.113",
5966
- "@geekmidas/schema": "~10.0.0-alpha.113",
5967
- "@geekmidas/services": "~10.0.0-alpha.113",
5968
- "@geekmidas/storage": "~10.0.0-alpha.113",
5969
- "@geekmidas/telescope": "~10.0.0-alpha.113",
5970
- "@geekmidas/testkit": "~10.0.0-alpha.113",
5953
+ "@geekmidas/audit": "~10.0.0-alpha.115",
5954
+ "@geekmidas/auth": "~10.0.0-alpha.115",
5955
+ "@geekmidas/cache": "~10.0.0-alpha.115",
5956
+ "@geekmidas/client": "~10.0.0-alpha.115",
5957
+ "@geekmidas/cloud": "~10.0.0-alpha.115",
5958
+ "@geekmidas/constructs": "~10.0.0-alpha.115",
5959
+ "@geekmidas/db": "~10.0.0-alpha.115",
5960
+ "@geekmidas/emailkit": "~10.0.0-alpha.115",
5961
+ "@geekmidas/envkit": "~10.0.0-alpha.115",
5962
+ "@geekmidas/errors": "~10.0.0-alpha.115",
5963
+ "@geekmidas/events": "~10.0.0-alpha.115",
5964
+ "@geekmidas/logger": "~10.0.0-alpha.115",
5965
+ "@geekmidas/manifest": "~10.0.0-alpha.115",
5966
+ "@geekmidas/rate-limit": "~10.0.0-alpha.115",
5967
+ "@geekmidas/schema": "~10.0.0-alpha.115",
5968
+ "@geekmidas/services": "~10.0.0-alpha.115",
5969
+ "@geekmidas/storage": "~10.0.0-alpha.115",
5970
+ "@geekmidas/telescope": "~10.0.0-alpha.115",
5971
+ "@geekmidas/testkit": "~10.0.0-alpha.115",
5971
5972
  "@geekmidas/cli": `~${loadPackageJson().version}`
5972
5973
  };
5973
5974
  //#endregion
@@ -7160,7 +7161,7 @@ const COMMIT = /^[0-9a-f]{40}$/;
7160
7161
  * The `uses:` value for the stages action, with a comment saying which CLI
7161
7162
  * release the pinned commit is.
7162
7163
  */
7163
- function stagesActionUses(commit = "18d6b7860652d3db231d361933ee2d5ec10f0941", version = cliVersion()) {
7164
+ function stagesActionUses(commit = "f1cb336edfa0ad66598783740950d96f53f1108c", version = cliVersion()) {
7164
7165
  return commit && COMMIT.test(commit) ? `${STAGES_ACTION}@${commit} # @geekmidas/cli ${version}` : `${STAGES_ACTION}@main # pin to a commit SHA: see the action's README`;
7165
7166
  }
7166
7167
  //#endregion
@@ -7412,6 +7413,7 @@ function stagesJob(options) {
7412
7413
  has-build: \${{ steps.stages.outputs.has-build }}
7413
7414
  has-deploy: \${{ steps.stages.outputs.has-deploy }}
7414
7415
  aws-region: \${{ steps.stages.outputs.aws-region }}
7416
+ registry: \${{ steps.stages.outputs.registry }}
7415
7417
  steps:
7416
7418
  - uses: actions/checkout@v4
7417
7419
 
@@ -7430,17 +7432,25 @@ ${pm.setup}
7430
7432
  `;
7431
7433
  }
7432
7434
  /**
7433
- * The registry login a compose build pushes with: GitHub's own token on
7434
- * ghcr.io, otherwise a username variable and a password secret.
7435
+ * The registry login a compose build pushes with, and a deploy pulls with.
7436
+ * The host is `deploy.registry`'s, read from gkm.config.ts by the stages
7437
+ * job at run time — never written here, so the workflow follows the config:
7438
+ * GitHub's own token on ghcr.io, otherwise the stage environment's
7439
+ * `REGISTRY_USERNAME` variable and `REGISTRY_PASSWORD` secret.
7435
7440
  */
7436
- function registryLogin(registry) {
7437
- const host = registry.split("/")[0];
7438
- const ghcr = host === "ghcr.io";
7439
- return ` - uses: docker/login-action@v3
7441
+ function registryLogin() {
7442
+ const ghcr = "needs.stages.outputs.registry == 'ghcr.io'";
7443
+ return ` # deploy.registry in gkm.config.ts: GitHub's registry with this
7444
+ # workflow's own token (the job's \`packages\` permission decides push
7445
+ # or pull), any other with the stage's REGISTRY_USERNAME variable and
7446
+ # REGISTRY_PASSWORD secret.
7447
+ - name: Log in to the registry
7448
+ if: needs.stages.outputs.registry != ''
7449
+ uses: docker/login-action@v3
7440
7450
  with:
7441
- registry: ${host}
7442
- username: ${ghcr ? "${{ github.actor }}" : "${{ vars.REGISTRY_USERNAME }}"}
7443
- password: ${ghcr ? "${{ secrets.GITHUB_TOKEN }}" : "${{ secrets.REGISTRY_PASSWORD }}"}
7451
+ registry: \${{ needs.stages.outputs.registry }}
7452
+ username: \${{ ${ghcr} && github.actor || vars.REGISTRY_USERNAME }}
7453
+ password: \${{ ${ghcr} && secrets.GITHUB_TOKEN || secrets.REGISTRY_PASSWORD }}
7444
7454
  `;
7445
7455
  }
7446
7456
  /**
@@ -7459,8 +7469,14 @@ function registryLogin(registry) {
7459
7469
  */
7460
7470
  function composeDeploy(options) {
7461
7471
  const pm = tooling(options);
7462
- const registry = options.registry ?? "";
7463
7472
  return `${deployHeader(true)}
7473
+ # A push to main builds main's newest commit: a later push cancels an earlier
7474
+ # push's run, so several merges in a row build once. A release or a manual
7475
+ # run shares no group (its run id is in the name), and is never cancelled.
7476
+ concurrency:
7477
+ group: \${{ github.workflow }}-\${{ github.event_name == 'push' && github.ref || github.run_id }}
7478
+ cancel-in-progress: \${{ github.event_name == 'push' }}
7479
+
7464
7480
  jobs:
7465
7481
  ${stagesJob(options)}
7466
7482
  build:
@@ -7479,13 +7495,22 @@ ${stagesJob(options)}
7479
7495
  packages: write
7480
7496
  id-token: write
7481
7497
  steps:
7498
+ # The runner's preinstalled toolchains, none of them used here: with
7499
+ # them, building every image of a workspace runs out of disk.
7500
+ - name: Free disk space
7501
+ run: |
7502
+ sudo rm -rf /usr/local/lib/android /usr/share/dotnet /opt/ghc \\
7503
+ /usr/local/.ghcup /opt/hostedtoolcache/CodeQL
7504
+ sudo docker image prune --all --force
7505
+ df -h /
7506
+
7482
7507
  - uses: actions/checkout@v4
7483
7508
 
7484
7509
  ${pm.setup}
7485
7510
  - name: Install
7486
7511
  run: ${pm.install}
7487
7512
 
7488
- ${registryLogin(registry)}
7513
+ ${registryLogin()}
7489
7514
  # A site's public URLs are built into it, so the build reads the stage's
7490
7515
  # secrets store. With secrets.store on S3, SSM or Secrets Manager the job
7491
7516
  # assumes the stage's role (AWS_ROLE_ARN, set by gkm deploy:github);
@@ -7511,6 +7536,7 @@ ${registryLogin(registry)}
7511
7536
  with:
7512
7537
  name: digests-\${{ matrix.stage }}
7513
7538
  path: digests.json
7539
+ if-no-files-found: error
7514
7540
  retention-days: 90
7515
7541
 
7516
7542
  deploy:
@@ -7544,8 +7570,14 @@ ${registryLogin(registry)}
7544
7570
  workflow_dispatch) ref="\${REF:-$SHA}" ;;
7545
7571
  *) ref="$SHA" ;;
7546
7572
  esac
7547
- sha=$(gh api "repos/$REPO/commits/$ref" --jq .sha)
7548
- echo "Deploying $sha"
7573
+ case "$ref" in
7574
+ ''|-*) echo "::error::Not a tag or commit: '$ref'"; exit 1 ;;
7575
+ esac
7576
+ if ! sha=$(gh api "repos/$REPO/commits/$ref" --jq .sha); then
7577
+ echo "::error::'$ref' is not a tag, branch or commit in this repository"
7578
+ exit 1
7579
+ fi
7580
+ echo "Deploying $ref = $sha"
7549
7581
  echo "sha=$sha" >> "$GITHUB_OUTPUT"
7550
7582
  env:
7551
7583
  GH_TOKEN: \${{ github.token }}
@@ -7566,7 +7598,7 @@ ${pm.setup}
7566
7598
 
7567
7599
  # The server's engine pulls with the login docker sends from here: it
7568
7600
  # holds none of its own.
7569
- ${registryLogin(registry)}
7601
+ ${registryLogin()}
7570
7602
  # The stage's secrets and deploy state are read and written here, with
7571
7603
  # the stage's role (AWS_ROLE_ARN, set by gkm deploy:github). With the
7572
7604
  # default 'file' secrets store there is no role, and no secrets file in
@@ -10675,7 +10707,10 @@ function generatePackageJson(options, template) {
10675
10707
  const devDependencies = { ...template.devDependencies };
10676
10708
  const scripts = { ...template.scripts };
10677
10709
  if (options.loggerType === "pino") dependencies.pino = DEPENDENCY_VERSIONS.pino;
10678
- if (telescope) dependencies["@geekmidas/telescope"] = GEEKMIDAS_VERSIONS["@geekmidas/telescope"];
10710
+ if (telescope) {
10711
+ dependencies["@geekmidas/telescope"] = GEEKMIDAS_VERSIONS["@geekmidas/telescope"];
10712
+ dependencies["@hono/node-ws"] = DEPENDENCY_VERSIONS["@hono/node-ws"];
10713
+ }
10679
10714
  const declares = !monorepo;
10680
10715
  if (declares && (database || uploads || cache || mail)) dependencies["@geekmidas/manifest"] = GEEKMIDAS_VERSIONS["@geekmidas/manifest"];
10681
10716
  if (declares && uploads) dependencies["@geekmidas/storage"] = GEEKMIDAS_VERSIONS["@geekmidas/storage"];
@@ -13046,6 +13081,7 @@ export default function RootLayout({
13046
13081
  `;
13047
13082
  const pages = app.key === "admin" ? adminPages() : webPages(options);
13048
13083
  const gitignore = `.next/
13084
+ next-env.d.ts
13049
13085
  node_modules/
13050
13086
  .env.local
13051
13087
  *.log
@@ -15996,7 +16032,7 @@ function testDatabases(reconciled) {
15996
16032
  * starts without the reference data the app needs.
15997
16033
  */
15998
16034
  async function migrateTestStage(workspace, env) {
15999
- const { migrateAndSeed } = await Promise.resolve().then(() => require("./migrate-bDQzFvBN.cjs"));
16035
+ const { migrateAndSeed } = await Promise.resolve().then(() => require("./migrate-BYEmpoIg.cjs"));
16000
16036
  const { discover } = await Promise.resolve().then(() => require("./discover-Bsr7HjqJ.cjs")).then((n) => n.discover_exports);
16001
16037
  const sources = {};
16002
16038
  const manifest = await discover({
@@ -16420,7 +16456,7 @@ program.command("eas:sync").description("Set up a mobile app's EAS project for a
16420
16456
  try {
16421
16457
  const globalOptions = program.opts();
16422
16458
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16423
- const { easSync } = await Promise.resolve().then(() => require("./eas-Cne743nQ.cjs"));
16459
+ const { easSync } = await Promise.resolve().then(() => require("./eas-CIvNT6qa.cjs"));
16424
16460
  await easSync(options);
16425
16461
  } catch (error) {
16426
16462
  exitWithError(error);
@@ -16430,7 +16466,7 @@ program.command("publish").description("Ship a mobile app for a deployed stage:
16430
16466
  try {
16431
16467
  const globalOptions = program.opts();
16432
16468
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16433
- const { publish, PublishModeConflict } = await Promise.resolve().then(() => require("./publish-SDG1WfYn.cjs"));
16469
+ const { publish, PublishModeConflict } = await Promise.resolve().then(() => require("./publish-BUvYjiZH.cjs"));
16434
16470
  if (options.build && options.update) throw new PublishModeConflict();
16435
16471
  const { build, update, ...rest } = options;
16436
16472
  await publish({
@@ -16446,7 +16482,7 @@ program.command("deploy:google-play").description("Let EAS Submit publish a mobi
16446
16482
  try {
16447
16483
  const globalOptions = program.opts();
16448
16484
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16449
- const { deployGooglePlay } = await Promise.resolve().then(() => require("./googlePlay-B6uiHi65.cjs"));
16485
+ const { deployGooglePlay } = await Promise.resolve().then(() => require("./googlePlay-BNH729It.cjs"));
16450
16486
  await deployGooglePlay(options);
16451
16487
  } catch (error) {
16452
16488
  exitWithError(error);
@@ -16468,7 +16504,7 @@ program.command("migrate").description("Apply each database construct's migratio
16468
16504
  try {
16469
16505
  const globalOptions = program.opts();
16470
16506
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16471
- const { migrateCommand } = await Promise.resolve().then(() => require("./migrate-bDQzFvBN.cjs"));
16507
+ const { migrateCommand } = await Promise.resolve().then(() => require("./migrate-BYEmpoIg.cjs"));
16472
16508
  await migrateCommand({
16473
16509
  ...options,
16474
16510
  ...construct ? { construct } : {}
@@ -16481,7 +16517,7 @@ program.command("seed").description("Migrate, then run each database construct's
16481
16517
  try {
16482
16518
  const globalOptions = program.opts();
16483
16519
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16484
- const { seedCommand } = await Promise.resolve().then(() => require("./migrate-bDQzFvBN.cjs"));
16520
+ const { seedCommand } = await Promise.resolve().then(() => require("./migrate-BYEmpoIg.cjs"));
16485
16521
  await seedCommand({
16486
16522
  ...options,
16487
16523
  ...construct ? { construct } : {}
@@ -16494,7 +16530,7 @@ program.command("migration").description("Write a construct's next migration: an
16494
16530
  try {
16495
16531
  const globalOptions = program.opts();
16496
16532
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16497
- const { migrationCommand } = await Promise.resolve().then(() => require("./migrate-bDQzFvBN.cjs"));
16533
+ const { migrationCommand } = await Promise.resolve().then(() => require("./migrate-BYEmpoIg.cjs"));
16498
16534
  await migrationCommand({
16499
16535
  construct,
16500
16536
  ...name ? { name } : {}
@@ -16594,7 +16630,7 @@ program.command("secrets:add").description("Build the keys a stage must be given
16594
16630
  try {
16595
16631
  const globalOptions = program.opts();
16596
16632
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16597
- const { secretsAddCommand } = await Promise.resolve().then(() => require("./add-Cs8yT5iH.cjs"));
16633
+ const { secretsAddCommand } = await Promise.resolve().then(() => require("./add-0XI8_HOf.cjs"));
16598
16634
  await secretsAddCommand(options);
16599
16635
  } catch (error) {
16600
16636
  exitWithError(error);
@@ -16604,7 +16640,7 @@ program.command("encryption:rotate").description("Add a new current key to an En
16604
16640
  try {
16605
16641
  const globalOptions = program.opts();
16606
16642
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16607
- const { encryptionRotateCommand } = await Promise.resolve().then(() => require("./encryption-DoVnVU82.cjs"));
16643
+ const { encryptionRotateCommand } = await Promise.resolve().then(() => require("./encryption--U4NsK7N.cjs"));
16608
16644
  await encryptionRotateCommand(construct, options);
16609
16645
  } catch (error) {
16610
16646
  exitWithError(error);
@@ -16614,7 +16650,7 @@ program.command("encryption:retire").description("Remove an old key from an Encr
16614
16650
  try {
16615
16651
  const globalOptions = program.opts();
16616
16652
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16617
- const { encryptionRetireCommand } = await Promise.resolve().then(() => require("./encryption-DoVnVU82.cjs"));
16653
+ const { encryptionRetireCommand } = await Promise.resolve().then(() => require("./encryption--U4NsK7N.cjs"));
16618
16654
  await encryptionRetireCommand(construct, key, options);
16619
16655
  } catch (error) {
16620
16656
  exitWithError(error);
@@ -16653,7 +16689,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
16653
16689
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16654
16690
  const { loadWorkspaceConfig } = await Promise.resolve().then(() => require("./config.cjs"));
16655
16691
  const { reconcileMissingSecrets } = await Promise.resolve().then(() => require("./reconcile-CuCQBa5-.cjs"));
16656
- const { secretsStoreFor } = await Promise.resolve().then(() => require("./seeds-Dk8YkLkM.cjs")).then((n) => n.store_exports);
16692
+ const { secretsStoreFor } = await Promise.resolve().then(() => require("./seeds-DbKNcs3o.cjs")).then((n) => n.store_exports);
16657
16693
  const { workspace } = await loadWorkspaceConfig();
16658
16694
  const stage = options.stage ?? workspace.stages.local;
16659
16695
  const store = await secretsStoreFor(workspace, stage);
@@ -16662,7 +16698,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
16662
16698
  console.error(`No secrets found for stage "${stage}". Run "gkm secrets:init --stage ${stage}" first.`);
16663
16699
  process.exit(1);
16664
16700
  }
16665
- const { derivedContainers } = await Promise.resolve().then(() => require("./seeds-Dk8YkLkM.cjs")).then((n) => n.workspace_exports);
16701
+ const { derivedContainers } = await Promise.resolve().then(() => require("./seeds-DbKNcs3o.cjs")).then((n) => n.workspace_exports);
16666
16702
  const result = reconcileMissingSecrets(secrets, workspace, await derivedContainers(workspace, stage));
16667
16703
  if (!result) {
16668
16704
  console.log(`\n✓ Secrets for stage "${stage}" are up-to-date`);
@@ -16679,14 +16715,14 @@ program.command("secrets:migrate").description("Copy a deployed stage's secrets
16679
16715
  try {
16680
16716
  const globalOptions = program.opts();
16681
16717
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16682
- const { secretsMigrateCommand } = await Promise.resolve().then(() => require("./migrate-GLBZlrlJ.cjs"));
16718
+ const { secretsMigrateCommand } = await Promise.resolve().then(() => require("./migrate-DZ2--SaO.cjs"));
16683
16719
  await secretsMigrateCommand(options);
16684
16720
  } catch (error) {
16685
16721
  exitWithError(error);
16686
16722
  }
16687
16723
  });
16688
16724
  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", "Server targets: run the dev service (MinIO, Mailpit) for every bucket and mail the stage doesn't account for. Not production-grade").option("--skip-dns", "Compose: neither write the public hosts' DNS records nor check they point at GKM_SERVER_IPV4 (a CDN or proxy in front, or records written elsewhere)").option("--rotate-keys", "Deployed stage: each provider issues its runtime keys a successor (the old one is deleted by the next deploy)").option("--retire-old-keys", "Deployed stage: delete a rotated-out key now instead of on the next deploy").action(async (options) => {
16689
- const { deployCli } = await Promise.resolve().then(() => require("./cli-CHzpFBh-.cjs"));
16725
+ const { deployCli } = await Promise.resolve().then(() => require("./cli-5k6kV_i4.cjs"));
16690
16726
  const globalOptions = program.opts();
16691
16727
  const code = await deployCli({
16692
16728
  cwd: (0, node_path.resolve)(globalOptions.cwd ?? process.cwd()),
@@ -16706,7 +16742,7 @@ program.command("deploy").description("Deploy a stage through its target").optio
16706
16742
  });
16707
16743
  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) => {
16708
16744
  try {
16709
- const { rollbackStage } = await Promise.resolve().then(() => require("./rollback-Cw-Z0mWn.cjs")).then((n) => n.rollback_exports);
16745
+ const { rollbackStage } = await Promise.resolve().then(() => require("./rollback-D4xeUQvG.cjs")).then((n) => n.rollback_exports);
16710
16746
  const { terminalCredentials } = await Promise.resolve().then(() => require("./terminal-D_NRPW4W.cjs"));
16711
16747
  const globalOptions = program.opts();
16712
16748
  await rollbackStage({
@@ -16721,11 +16757,11 @@ program.command("deploy:rollback").description("Put a stage's app back on its pr
16721
16757
  exitWithError(error);
16722
16758
  }
16723
16759
  });
16724
- program.command("compose:server").description("Set up a stage's server for compose deploys: harden it (SSH keys only, no root login, firewall, security updates, fail2ban), install Docker, create the deploy user, and give its key to GitHub").requiredOption("--stage <stage>", "A deployed stage from gkm.config.ts").option("--admin <user>", "The sudo user you log in to the server as — never root (asked when absent)").option("--key-file <path>", "The deploy key pair (default: ~/.ssh/gkm-<project>-<stage>)").option("--repo <owner/name>", "GitHub repository (default: this one)").option("--no-github", "Leave the GitHub environment's key and host alone").option("--yes", "Set the server up without asking first").option("--dry-run", "Print the plan and the script; connect to nothing").action(async (options) => {
16760
+ program.command("compose:server").description("Set up a stage's server for compose deploys: harden it (SSH keys only, no root login, firewall, security updates, fail2ban), install Docker, create the deploy user, and give its key to GitHub").requiredOption("--stage <stage>", "A deployed stage from gkm.config.ts").option("--admin <user>", "The sudo user you log in to the server as — never root (default: ssh's own user for the host)").option("--identity <path>", "The SSH key the admin logs in with (default: ssh's own choice)").option("--key-file <path>", "The deploy key pair (default: ~/.ssh/gkm-<project>-<stage>)").option("--repo <owner/name>", "GitHub repository (default: this one)").option("--no-github", "Leave the GitHub environment's key and host alone").option("--yes", "Set the server up without asking first").option("--dry-run", "Print the plan and the script; connect to nothing").action(async (options) => {
16725
16761
  try {
16726
16762
  const globalOptions = program.opts();
16727
16763
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16728
- const { composeServerCommand } = await Promise.resolve().then(() => require("./serverSetup-BCbD8ksJ.cjs"));
16764
+ const { composeServerCommand } = await Promise.resolve().then(() => require("./serverSetup-CcWgNtiC.cjs"));
16729
16765
  await composeServerCommand(options);
16730
16766
  } catch (error) {
16731
16767
  exitWithError(error);
@@ -16750,7 +16786,7 @@ program.command("deploy:github").description("Let GitHub Actions deploy a stage:
16750
16786
  try {
16751
16787
  const globalOptions = program.opts();
16752
16788
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16753
- const { deployGithubCommand } = await Promise.resolve().then(() => require("./github-C3gblUvr.cjs"));
16789
+ const { deployGithubCommand } = await Promise.resolve().then(() => require("./github-CTlPQ5Ra.cjs"));
16754
16790
  await deployGithubCommand(options);
16755
16791
  } catch (error) {
16756
16792
  exitWithError(error);
@@ -16760,7 +16796,7 @@ program.command("stages").description("The workspace's stages from gkm.config.ts
16760
16796
  try {
16761
16797
  const globalOptions = program.opts();
16762
16798
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16763
- const { stagesCommand } = await Promise.resolve().then(() => require("./stages-_3RVNG83.cjs"));
16799
+ const { stagesCommand } = await Promise.resolve().then(() => require("./stages-D4SnG5yl.cjs"));
16764
16800
  await stagesCommand(options);
16765
16801
  } catch (error) {
16766
16802
  exitWithError(error);