@geekmidas/cli 10.0.0-alpha.110 → 10.0.0-alpha.111

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 (117) hide show
  1. package/dist/{GoDaddyProvider-CjeOduia.mjs → GoDaddyProvider-CPabc3XW.mjs} +2 -2
  2. package/dist/{GoDaddyProvider-CjeOduia.mjs.map → GoDaddyProvider-CPabc3XW.mjs.map} +1 -1
  3. package/dist/{GoDaddyProvider-qNUzTXI7.cjs → GoDaddyProvider-DWrDIXzQ.cjs} +2 -2
  4. package/dist/{GoDaddyProvider-qNUzTXI7.cjs.map → GoDaddyProvider-DWrDIXzQ.cjs.map} +1 -1
  5. package/dist/{LegacyStateStore-pgscYsiG.mjs → LegacyStateStore-BdXoAlYY.mjs} +3 -3
  6. package/dist/{LegacyStateStore-pgscYsiG.mjs.map → LegacyStateStore-BdXoAlYY.mjs.map} +1 -1
  7. package/dist/{LegacyStateStore-MxiSu7KJ.cjs → LegacyStateStore-fsyPGBWu.cjs} +3 -3
  8. package/dist/{LegacyStateStore-MxiSu7KJ.cjs.map → LegacyStateStore-fsyPGBWu.cjs.map} +1 -1
  9. package/dist/{LocalStateStore-Bm8Vmwjb.cjs → LocalStateStore-AtviUBky.cjs} +2 -2
  10. package/dist/{LocalStateStore-Bm8Vmwjb.cjs.map → LocalStateStore-AtviUBky.cjs.map} +1 -1
  11. package/dist/{LocalStateStore-BcvyKbAw.mjs → LocalStateStore-BrAX5yy7.mjs} +2 -2
  12. package/dist/{LocalStateStore-BcvyKbAw.mjs.map → LocalStateStore-BrAX5yy7.mjs.map} +1 -1
  13. package/dist/{S3StateStore-H2XsAzpJ.mjs → S3StateStore-Cx7njkBz.mjs} +2 -2
  14. package/dist/{S3StateStore-H2XsAzpJ.mjs.map → S3StateStore-Cx7njkBz.mjs.map} +1 -1
  15. package/dist/{S3StateStore-DXHSBVsV.cjs → S3StateStore-tn5g80Sx.cjs} +2 -2
  16. package/dist/{S3StateStore-DXHSBVsV.cjs.map → S3StateStore-tn5g80Sx.cjs.map} +1 -1
  17. package/dist/{SSMStateStore-BLPSNl-U.cjs → SSMStateStore-CAFde-Fq.cjs} +2 -2
  18. package/dist/{SSMStateStore-BLPSNl-U.cjs.map → SSMStateStore-CAFde-Fq.cjs.map} +1 -1
  19. package/dist/{SSMStateStore-CENciQEM.mjs → SSMStateStore-sqZ3oDmn.mjs} +2 -2
  20. package/dist/{SSMStateStore-CENciQEM.mjs.map → SSMStateStore-sqZ3oDmn.mjs.map} +1 -1
  21. package/dist/{add-Cdg1kEqN.cjs → add-Cs8yT5iH.cjs} +3 -3
  22. package/dist/{add-Cdg1kEqN.cjs.map → add-Cs8yT5iH.cjs.map} +1 -1
  23. package/dist/{add-snhdVmR-.mjs → add-DJE7zqJ4.mjs} +3 -3
  24. package/dist/{add-snhdVmR-.mjs.map → add-DJE7zqJ4.mjs.map} +1 -1
  25. package/dist/{bundler-Wd9H4QLJ.mjs → bundler-DrySVbXF.mjs} +5 -5
  26. package/dist/{bundler-Wd9H4QLJ.mjs.map → bundler-DrySVbXF.mjs.map} +1 -1
  27. package/dist/{bundler-B4GDxImV.cjs → bundler-NrtItVBp.cjs} +5 -5
  28. package/dist/{bundler-B4GDxImV.cjs.map → bundler-NrtItVBp.cjs.map} +1 -1
  29. package/dist/{cli-BzrDSNSg.mjs → cli-Br5ApIgR.mjs} +4 -4
  30. package/dist/{cli-BzrDSNSg.mjs.map → cli-Br5ApIgR.mjs.map} +1 -1
  31. package/dist/{cli-BZYz55tO.cjs → cli-CHzpFBh-.cjs} +2 -2
  32. package/dist/{cli-BZYz55tO.cjs.map → cli-CHzpFBh-.cjs.map} +1 -1
  33. package/dist/{compose-DN9zySvQ.cjs → compose-ByIbIrzs.cjs} +20 -5
  34. package/dist/compose-ByIbIrzs.cjs.map +1 -0
  35. package/dist/{compose-Gsd1Nq7R.mjs → compose-CDC2bCme.mjs} +20 -5
  36. package/dist/compose-CDC2bCme.mjs.map +1 -0
  37. package/dist/deploy/public.cjs +6 -6
  38. package/dist/deploy/public.mjs +6 -6
  39. package/dist/{deploy-H2S8_mTx.mjs → deploy-DLq9-m6H.mjs} +5 -5
  40. package/dist/{deploy-H2S8_mTx.mjs.map → deploy-DLq9-m6H.mjs.map} +1 -1
  41. package/dist/{deploy-CFvq8daZ.cjs → deploy-Dl_NavYE.cjs} +5 -5
  42. package/dist/{deploy-CFvq8daZ.cjs.map → deploy-Dl_NavYE.cjs.map} +1 -1
  43. package/dist/{dns-BdETzP10.cjs → dns-C2TGXUF4.cjs} +2 -2
  44. package/dist/{dns-BdETzP10.cjs.map → dns-C2TGXUF4.cjs.map} +1 -1
  45. package/dist/{dns-pFMShDqW.mjs → dns-pzftumxg.mjs} +2 -2
  46. package/dist/{dns-pFMShDqW.mjs.map → dns-pzftumxg.mjs.map} +1 -1
  47. package/dist/{dokploy-oDJbnvCb.mjs → dokploy-B7-OwY2s.mjs} +2 -2
  48. package/dist/{dokploy-oDJbnvCb.mjs.map → dokploy-B7-OwY2s.mjs.map} +1 -1
  49. package/dist/{dokploy-HioAjP7K.cjs → dokploy-OqBh8G4g.cjs} +2 -2
  50. package/dist/{dokploy-HioAjP7K.cjs.map → dokploy-OqBh8G4g.cjs.map} +1 -1
  51. package/dist/eas-6ezdJtry.mjs +316 -0
  52. package/dist/eas-6ezdJtry.mjs.map +1 -0
  53. package/dist/eas-BkLA60P2.cjs +319 -0
  54. package/dist/eas-BkLA60P2.cjs.map +1 -0
  55. package/dist/{encryption-D5pDJyp2.mjs → encryption-DJv_jEXi.mjs} +2 -2
  56. package/dist/{encryption-D5pDJyp2.mjs.map → encryption-DJv_jEXi.mjs.map} +1 -1
  57. package/dist/{encryption-DVCxD-gV.cjs → encryption-DoVnVU82.cjs} +2 -2
  58. package/dist/{encryption-DVCxD-gV.cjs.map → encryption-DoVnVU82.cjs.map} +1 -1
  59. package/dist/{engine-BaJGPzte.cjs → engine-CJhQb50j.cjs} +3 -3
  60. package/dist/{engine-BaJGPzte.cjs.map → engine-CJhQb50j.cjs.map} +1 -1
  61. package/dist/{engine-CfAKgr2_.mjs → engine-Db71-OZL.mjs} +3 -3
  62. package/dist/{engine-CfAKgr2_.mjs.map → engine-Db71-OZL.mjs.map} +1 -1
  63. package/dist/{github-E-ZxqFPq.mjs → github-D2eABlxM.mjs} +4 -4
  64. package/dist/{github-E-ZxqFPq.mjs.map → github-D2eABlxM.mjs.map} +1 -1
  65. package/dist/{github-D902Vwr9.cjs → github-DDOHjdS9.cjs} +4 -4
  66. package/dist/{github-D902Vwr9.cjs.map → github-DDOHjdS9.cjs.map} +1 -1
  67. package/dist/googlePlay-DNgybe5t.cjs +931 -0
  68. package/dist/googlePlay-DNgybe5t.cjs.map +1 -0
  69. package/dist/googlePlay-DY9vZQ1p.mjs +931 -0
  70. package/dist/googlePlay-DY9vZQ1p.mjs.map +1 -0
  71. package/dist/index.cjs +157 -65
  72. package/dist/index.cjs.map +1 -1
  73. package/dist/index.mjs +158 -67
  74. package/dist/index.mjs.map +1 -1
  75. package/dist/{migrate-DCXwHcWX.mjs → migrate-B9GswIAr.mjs} +3 -3
  76. package/dist/{migrate-DCXwHcWX.mjs.map → migrate-B9GswIAr.mjs.map} +1 -1
  77. package/dist/{migrate-BZ0GnSZQ.mjs → migrate-CQUGbptv.mjs} +2 -2
  78. package/dist/{migrate-BZ0GnSZQ.mjs.map → migrate-CQUGbptv.mjs.map} +1 -1
  79. package/dist/{migrate-Df81ew0k.cjs → migrate-GLBZlrlJ.cjs} +2 -2
  80. package/dist/{migrate-Df81ew0k.cjs.map → migrate-GLBZlrlJ.cjs.map} +1 -1
  81. package/dist/{migrate-CTqhWtev.cjs → migrate-bDQzFvBN.cjs} +2 -2
  82. package/dist/{migrate-CTqhWtev.cjs.map → migrate-bDQzFvBN.cjs.map} +1 -1
  83. package/dist/publish-B-EIjfQ0.mjs +123 -0
  84. package/dist/publish-B-EIjfQ0.mjs.map +1 -0
  85. package/dist/publish-CPgSbtcs.cjs +124 -0
  86. package/dist/publish-CPgSbtcs.cjs.map +1 -0
  87. package/dist/{resolve-BMpPd8x3.mjs → resolve-CxDqDmCD.mjs} +3 -3
  88. package/dist/{resolve-BMpPd8x3.mjs.map → resolve-CxDqDmCD.mjs.map} +1 -1
  89. package/dist/{resolve-D043YmW9.cjs → resolve-wG49Woex.cjs} +3 -3
  90. package/dist/{resolve-D043YmW9.cjs.map → resolve-wG49Woex.cjs.map} +1 -1
  91. package/dist/{rollback-CDs_XNb0.mjs → rollback-BQgEdr_p.mjs} +4 -4
  92. package/dist/{rollback-CDs_XNb0.mjs.map → rollback-BQgEdr_p.mjs.map} +1 -1
  93. package/dist/{rollback-CBiYsQ3T.cjs → rollback-Cw-Z0mWn.cjs} +4 -4
  94. package/dist/{rollback-CBiYsQ3T.cjs.map → rollback-Cw-Z0mWn.cjs.map} +1 -1
  95. package/dist/{seeds-BjcO4DDa.mjs → seeds-CIk0l4SC.mjs} +13 -10
  96. package/dist/seeds-CIk0l4SC.mjs.map +1 -0
  97. package/dist/{seeds-DNqRA1aQ.cjs → seeds-Dk8YkLkM.cjs} +18 -15
  98. package/dist/seeds-Dk8YkLkM.cjs.map +1 -0
  99. package/dist/{sniffer-DipSS8r8.cjs → sniffer-2aK7cB2u.cjs} +6 -6
  100. package/dist/{sniffer-DipSS8r8.cjs.map → sniffer-2aK7cB2u.cjs.map} +1 -1
  101. package/dist/{sniffer-b0XPmSyT.mjs → sniffer-CABMO-Bh.mjs} +6 -6
  102. package/dist/{sniffer-b0XPmSyT.mjs.map → sniffer-CABMO-Bh.mjs.map} +1 -1
  103. package/dist/{stage-DrDmZusd.mjs → stage-DjxR_7C0.mjs} +69 -33
  104. package/dist/stage-DjxR_7C0.mjs.map +1 -0
  105. package/dist/{stage-C_y2UovO.cjs → stage-DrCS0vKD.cjs} +79 -32
  106. package/dist/stage-DrCS0vKD.cjs.map +1 -0
  107. package/dist/target/public.cjs +1 -1
  108. package/dist/target/public.mjs +1 -1
  109. package/dist/{terminal-CvRLxz6g.mjs → terminal-mXM-Lqc6.mjs} +2 -2
  110. package/dist/{terminal-CvRLxz6g.mjs.map → terminal-mXM-Lqc6.mjs.map} +1 -1
  111. package/package.json +15 -15
  112. package/dist/compose-DN9zySvQ.cjs.map +0 -1
  113. package/dist/compose-Gsd1Nq7R.mjs.map +0 -1
  114. package/dist/seeds-BjcO4DDa.mjs.map +0 -1
  115. package/dist/seeds-DNqRA1aQ.cjs.map +0 -1
  116. package/dist/stage-C_y2UovO.cjs.map +0 -1
  117. package/dist/stage-DrDmZusd.mjs.map +0 -1
package/dist/index.mjs CHANGED
@@ -3,25 +3,25 @@ import { n as __require, t as __exportAll } from "./rolldown-runtime-BhDjJH2R.mj
3
3
  import { n as isGkmError, t as GkmError } from "./errors-D8Gwp5kU.mjs";
4
4
  import { r as DEFAULT_TIMEOUT_MS, t as CommandFailed } from "./run-BJLIerMM.mjs";
5
5
  import { a as getDokployCredentials, d as removeGoDaddyCredentials, f as storeDokployCredentials, i as getCredentialsPath, l as readCredentials, m as storeHostingerToken, o as getDokployRegistryId, p as storeGoDaddyToken, s as getDokployToken, u as removeDokployCredentials } from "./credentials-B5N5yKk6.mjs";
6
- import { C as dockerCompose, S as sshTarget, _ as parseDigests, b as dockerHost, c as edgeRef, f as derivedCredentials, h as EDGE_PROJECT, i as ComposePushNeedsBuild, l as removeEdgeRoutes, m as stackPlan, o as stackOverrideFile, p as stackDir, r as ComposePinNeedsPull, t as composeTarget, u as composeProject, v as pinnedRef, w as projectNetwork, y as composeServer } from "./compose-Gsd1Nq7R.mjs";
6
+ import { C as dockerCompose, S as sshTarget, _ as parseDigests, b as dockerHost, c as edgeRef, f as derivedCredentials, h as EDGE_PROJECT, i as ComposePushNeedsBuild, l as removeEdgeRoutes, m as stackPlan, o as stackOverrideFile, p as stackDir, r as ComposePinNeedsPull, t as composeTarget, u as composeProject, v as pinnedRef, w as projectNetwork, y as composeServer } from "./compose-CDC2bCme.mjs";
7
7
  import { A as InvalidStages, F as stageProblems, P as deployedProblems, R as stageSampleRate, a as allConstructGlobs, d as getAppGkmConfig, j as TEST_STAGE, u as getAppBuildOrder } from "./workspace-D1QbNd55.mjs";
8
- import { b as runTime, d as BACKUPS_URL_KEY, f as RUNNER_PATH, g as backupDatabases, u as BACKUPS_SERVICE, v as backupFile, x as stageBackups, y as backupsPrefix } from "./dns-pFMShDqW.mjs";
9
- import { $t as isUnder, An as appTelemetry, At as isPortAvailable, Bn as fakeKey, Bt as maskPassword, Ct as cacheBackendFor, Dn as TELEMETRY_CONTAINER, Dt as createCredentialsPreload, G as CronGenerator, Gn as LOCAL_LOGS_EMAIL, H as workerBundleName, Hn as portsOf, Ht as toEmbeddableSecrets, It as secretsStoreFor, L as dockerCommand, Mn as scopeTelemetryEnv, Mt as loadPortState, Nn as surfaceClientTraced, Nt as loadSecretsForApp, Ot as createEntryWrapper, Pn as telemetryOf, Pt as prepareEntryCredentials, Q as assertDevServicesFlag, Tt as providerOf, U as workerEntryDir, Ut as withCustomSecret, V as WorkerGenerator, W as QueueGenerator, Wn as primaryPortKey, Xt as imageBuildCredentials, Zt as isImageBuild, a as dnsResources, an as postgresDatabaseNames, bt as pgClient, c as describeActor, dt as constructGlobs, en as workerUnits, fn as readLocalCredentials, ft as derivedContainers, gn as projectKey, gt as forgetState, ht as LOCAL_CA_PATH, jt as loadEnvFiles, kt as findAvailablePort, lt as FAKE_ENV, mn as getKeyPath, pn as FileSecretsStore, pt as reconcileWorkspace, sn as quoteIdentifier, ut as backendsOf$1, wt as eventsBackendFor, xt as CLUSTER_DATABASE, zn as describeServices } from "./seeds-BjcO4DDa.mjs";
8
+ import { b as runTime, d as BACKUPS_URL_KEY, f as RUNNER_PATH, g as backupDatabases, u as BACKUPS_SERVICE, v as backupFile, x as stageBackups, y as backupsPrefix } from "./dns-pzftumxg.mjs";
9
+ import { $t as isUnder, An as appTelemetry, At as isPortAvailable, Bn as fakeKey, Bt as maskPassword, Ct as cacheBackendFor, Dn as TELEMETRY_CONTAINER, Dt as createCredentialsPreload, G as CronGenerator, Gn as LOCAL_LOGS_EMAIL, H as workerBundleName, Hn as portsOf, Ht as toEmbeddableSecrets, It as secretsStoreFor, L as dockerCommand, Mn as scopeTelemetryEnv, Mt as loadPortState, Nn as surfaceClientTraced, Nt as loadSecretsForApp, Ot as createEntryWrapper, Pn as telemetryOf, Pt as prepareEntryCredentials, Q as assertDevServicesFlag, Tt as providerOf, U as workerEntryDir, Ut as withCustomSecret, V as WorkerGenerator, W as QueueGenerator, Wn as primaryPortKey, Xt as imageBuildCredentials, Zt as isImageBuild, a as dnsResources, an as postgresDatabaseNames, bt as pgClient, c as describeActor, dt as constructGlobs, en as workerUnits, fn as readLocalCredentials, ft as derivedContainers, gn as projectKey, gt as forgetState, ht as LOCAL_CA_PATH, jt as loadEnvFiles, kt as findAvailablePort, lt as FAKE_ENV, mn as getKeyPath, pn as FileSecretsStore, pt as reconcileWorkspace, sn as quoteIdentifier, ut as backendsOf$1, wt as eventsBackendFor, xt as CLUSTER_DATABASE, zn as describeServices } from "./seeds-CIk0l4SC.mjs";
10
10
  import { t as appKey } from "./derive-B4vDpzgP.mjs";
11
11
  import { l as isCacheBackend, n as assertTestCredentials, t as SubscriberGenerator } from "./SubscriberGenerator-DHnIYwUU.mjs";
12
12
  import { n as deployIdentity } from "./identity-CBXr4wNi.mjs";
13
13
  import { a as startTelemetryCode, c as parseTelemetryFlag, i as routeTelemetry, n as runtimeFor, o as telemetryFor, r as mountRequestSpansCode, s as writeTelemetryModule, t as EndpointGenerator } from "./EndpointGenerator-CvLX8bpx.mjs";
14
14
  import { d as ConstructGenerator, i as discover, r as consumedBy, u as withOwningTsconfigJsx } from "./discover-Ca8U75dl.mjs";
15
15
  import { ConfigNotFound, NotABackendApp, NotInAnApp, loadAppConfig, loadConfig, loadWorkspaceConfig, loadWorkspaceSettings, parseModuleConfig } from "./config.mjs";
16
- import { d as awsEndpoint, f as awsProvisioningCredentials, t as deploy$1, u as awsClientConfig } from "./deploy-H2S8_mTx.mjs";
16
+ import { d as awsEndpoint, f as awsProvisioningCredentials, t as deploy$1, u as awsClientConfig } from "./deploy-DLq9-m6H.mjs";
17
17
  import { generateOpenApi, openapiCommand, resolveOpenApiConfig } from "./openapi.mjs";
18
18
  import { a as describeHolder, c as withAppPorts, i as assignAppPorts, o as describeMove, r as appTag, s as holderOf, t as APP_TAG_ENV } from "./appPorts-BoXMwolc.mjs";
19
19
  import { n as driversFor, r as eventsBackendsIn, t as cacheBackendsIn } from "./drivers-D11JHxrD.mjs";
20
20
  import { n as withCompute, r as withRoutes, t as manifestModule } from "./emit-C1e8qD08.mjs";
21
21
  import { t as LocalSandbox } from "./local-BwC2v2Y8.mjs";
22
- import { S as createStateStore, k as keyFingerprint, n as sniffAppEnvironment, o as DokployApi } from "./sniffer-b0XPmSyT.mjs";
22
+ import { S as createStateStore, k as keyFingerprint, n as sniffAppEnvironment, o as DokployApi } from "./sniffer-CABMO-Bh.mjs";
23
23
  import { o as loadCredentialSchemas, t as CredentialsInvalid } from "./credentialSchemas-Cf5Pf8VE.mjs";
24
- import { t as LocalStateStore } from "./LocalStateStore-BcvyKbAw.mjs";
24
+ import { t as LocalStateStore } from "./LocalStateStore-BrAX5yy7.mjs";
25
25
  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";
26
26
  import { a as writeTestHarness, i as TEST_MANIFEST_ENV, n as TEST_READY_FILE, t as TEST_READY_ENV } from "./ready-CIt5SOtg.mjs";
27
27
  import { createRequire } from "node:module";
@@ -51,7 +51,7 @@ import crypto from "crypto";
51
51
  import { Function } from "@geekmidas/constructs/functions";
52
52
  import { Topic } from "@geekmidas/constructs/topic";
53
53
  //#region package.json
54
- var version = "10.0.0-alpha.110";
54
+ var version = "10.0.0-alpha.111";
55
55
  //#endregion
56
56
  //#region src/prompt.ts
57
57
  /**
@@ -134,7 +134,7 @@ const logger$8 = console;
134
134
  * Validate Dokploy token by making a test API call
135
135
  */
136
136
  async function validateDokployToken(endpoint, token) {
137
- const { DokployApi } = await import("./sniffer-b0XPmSyT.mjs").then((n) => n.c);
137
+ const { DokployApi } = await import("./sniffer-CABMO-Bh.mjs").then((n) => n.c);
138
138
  return new DokployApi({
139
139
  baseUrl: endpoint,
140
140
  token
@@ -2174,7 +2174,7 @@ async function execCommand(commandArgs, options = {}, stageDeps) {
2174
2174
  const cwd = options.cwd ?? process.cwd();
2175
2175
  if (!commandArgs[0]) throw new NoCommandSpecified();
2176
2176
  if (options.stage && !isImageBuild()) {
2177
- const { execOnStage } = await import("./stage-DrDmZusd.mjs");
2177
+ const { execOnStage } = await import("./stage-DjxR_7C0.mjs").then((n) => n.n);
2178
2178
  const { loadWorkspaceConfig } = await import("./config.mjs");
2179
2179
  const { workspace } = await loadWorkspaceConfig(cwd);
2180
2180
  if (options.stage !== workspace.stages.local) {
@@ -2747,9 +2747,9 @@ async function workspaceDevCommand(configured, options) {
2747
2747
  for (const { id, port } of fakes) logger$5.log(`🎭 ${id} fake: http://localhost:${port}`);
2748
2748
  logger$5.log(options.migrate || options.seed ? "🗄️ Migrating the databases" : "🗄️ Checking for pending migrations");
2749
2749
  if (options.migrate || options.seed) {
2750
- const { prepareDevDatabases } = await import("./migrate-DCXwHcWX.mjs");
2750
+ const { prepareDevDatabases } = await import("./migrate-B9GswIAr.mjs");
2751
2751
  await prepareDevDatabases(workspace, reconciled.env, { seed: !!options.seed });
2752
- } else await import("./migrate-DCXwHcWX.mjs").then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
2752
+ } else await import("./migrate-B9GswIAr.mjs").then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
2753
2753
  logger$5.log(`⚠️ Could not check for pending migrations: ${error instanceof Error ? error.message : String(error)}`);
2754
2754
  });
2755
2755
  const appUrls = {};
@@ -3825,7 +3825,7 @@ async function buildApp(input) {
3825
3825
  ...production,
3826
3826
  ...telemetry ? { telemetry } : {}
3827
3827
  });
3828
- const { bundleServer } = await import("./bundler-Wd9H4QLJ.mjs");
3828
+ const { bundleServer } = await import("./bundler-DrySVbXF.mjs");
3829
3829
  await bundleServer({
3830
3830
  entryPoint,
3831
3831
  outputDir: join(outputDir, "dist"),
@@ -4024,7 +4024,7 @@ async function buildWorkers(input) {
4024
4024
  });
4025
4025
  logger$4.log(`Generated worker ${worker.id}: ${crons.length} crons, ${queues.length} queues, ${subscribers.length} subscribers`);
4026
4026
  if (!input.bundle) continue;
4027
- const { bundleServer } = await import("./bundler-Wd9H4QLJ.mjs");
4027
+ const { bundleServer } = await import("./bundler-DrySVbXF.mjs");
4028
4028
  const outfile = workerBundleName(worker.id);
4029
4029
  await bundleServer({
4030
4030
  entryPoint,
@@ -4110,7 +4110,7 @@ async function buildForTarget(target, context, appRoot, workspaceRoot, endpointG
4110
4110
  let masterKey;
4111
4111
  if (context.production?.bundle && !skipBundle) {
4112
4112
  logger$4.log(`\n📦 Bundling production server...`);
4113
- const { bundleServer } = await import("./bundler-Wd9H4QLJ.mjs");
4113
+ const { bundleServer } = await import("./bundler-DrySVbXF.mjs");
4114
4114
  const allConstructs = [
4115
4115
  ...endpoints.map((e) => e.construct),
4116
4116
  ...functions.map((f) => f.construct),
@@ -5943,25 +5943,25 @@ function loadPackageJson() {
5943
5943
  * Run: pnpm --filter @geekmidas/cli sync-versions
5944
5944
  */
5945
5945
  const GEEKMIDAS_VERSIONS = {
5946
- "@geekmidas/audit": "~10.0.0-alpha.110",
5947
- "@geekmidas/auth": "~10.0.0-alpha.110",
5948
- "@geekmidas/cache": "~10.0.0-alpha.110",
5949
- "@geekmidas/client": "~10.0.0-alpha.110",
5950
- "@geekmidas/cloud": "~10.0.0-alpha.110",
5951
- "@geekmidas/constructs": "~10.0.0-alpha.110",
5952
- "@geekmidas/db": "~10.0.0-alpha.110",
5953
- "@geekmidas/emailkit": "~10.0.0-alpha.110",
5954
- "@geekmidas/envkit": "~10.0.0-alpha.110",
5955
- "@geekmidas/errors": "~10.0.0-alpha.110",
5956
- "@geekmidas/events": "~10.0.0-alpha.110",
5957
- "@geekmidas/logger": "~10.0.0-alpha.110",
5958
- "@geekmidas/manifest": "~10.0.0-alpha.110",
5959
- "@geekmidas/rate-limit": "~10.0.0-alpha.110",
5960
- "@geekmidas/schema": "~10.0.0-alpha.110",
5961
- "@geekmidas/services": "~10.0.0-alpha.110",
5962
- "@geekmidas/storage": "~10.0.0-alpha.110",
5963
- "@geekmidas/telescope": "~10.0.0-alpha.110",
5964
- "@geekmidas/testkit": "~10.0.0-alpha.110",
5946
+ "@geekmidas/audit": "~10.0.0-alpha.111",
5947
+ "@geekmidas/auth": "~10.0.0-alpha.111",
5948
+ "@geekmidas/cache": "~10.0.0-alpha.111",
5949
+ "@geekmidas/client": "~10.0.0-alpha.111",
5950
+ "@geekmidas/cloud": "~10.0.0-alpha.111",
5951
+ "@geekmidas/constructs": "~10.0.0-alpha.111",
5952
+ "@geekmidas/db": "~10.0.0-alpha.111",
5953
+ "@geekmidas/emailkit": "~10.0.0-alpha.111",
5954
+ "@geekmidas/envkit": "~10.0.0-alpha.111",
5955
+ "@geekmidas/errors": "~10.0.0-alpha.111",
5956
+ "@geekmidas/events": "~10.0.0-alpha.111",
5957
+ "@geekmidas/logger": "~10.0.0-alpha.111",
5958
+ "@geekmidas/manifest": "~10.0.0-alpha.111",
5959
+ "@geekmidas/rate-limit": "~10.0.0-alpha.111",
5960
+ "@geekmidas/schema": "~10.0.0-alpha.111",
5961
+ "@geekmidas/services": "~10.0.0-alpha.111",
5962
+ "@geekmidas/storage": "~10.0.0-alpha.111",
5963
+ "@geekmidas/telescope": "~10.0.0-alpha.111",
5964
+ "@geekmidas/testkit": "~10.0.0-alpha.111",
5965
5965
  "@geekmidas/cli": `~${loadPackageJson().version}`
5966
5966
  };
5967
5967
  //#endregion
@@ -7154,7 +7154,7 @@ const COMMIT = /^[0-9a-f]{40}$/;
7154
7154
  * The `uses:` value for the stages action, with a comment saying which CLI
7155
7155
  * release the pinned commit is.
7156
7156
  */
7157
- function stagesActionUses(commit = "1175be1a09457cf9cf3bfb9add2c61969c829df8", version = cliVersion()) {
7157
+ function stagesActionUses(commit = "8a63c47fd347367a03f2dfe1c3ea031556ede424", version = cliVersion()) {
7158
7158
  return commit && COMMIT.test(commit) ? `${STAGES_ACTION}@${commit} # @geekmidas/cli ${version}` : `${STAGES_ACTION}@main # pin to a commit SHA: see the action's README`;
7159
7159
  }
7160
7160
  //#endregion
@@ -7653,6 +7653,26 @@ ${registryLogin(registry)}
7653
7653
  SHA: \${{ steps.commit.outputs.sha }}
7654
7654
  GODADDY_API_TOKEN: \${{ secrets.GODADDY_API_TOKEN }}
7655
7655
  HOSTINGER_API_TOKEN: \${{ secrets.HOSTINGER_API_TOKEN }}
7656
+ ${options.mobileApp ? publishMobile(pm.exec) : ""}`;
7657
+ }
7658
+ /**
7659
+ * The phone app, once its stage's servers run this release: its values
7660
+ * synced to the stage's EAS environment, then an update on the stage's
7661
+ * channel when a store build has its native code, or a store build
7662
+ * submitted to the stores when none does (\`gkm publish\`). The build runs
7663
+ * on EAS; this step only starts it.
7664
+ */
7665
+ function publishMobile(exec) {
7666
+ return `
7667
+ # The phone app, after its servers: an update when a store build has
7668
+ # this native code, a store build submitted to the stores when none
7669
+ # does. EXPO_TOKEN is a secret on the stage's environment (an EAS
7670
+ # access token); the build runs on EAS, not here.
7671
+ - name: Publish the app
7672
+ run: ${exec} gkm publish --stage "$STAGE"
7673
+ env:
7674
+ STAGE: \${{ matrix.stage }}
7675
+ EXPO_TOKEN: \${{ secrets.EXPO_TOKEN }}
7656
7676
  `;
7657
7677
  }
7658
7678
  /**
@@ -7758,6 +7778,42 @@ function generateGithubFiles(options) {
7758
7778
  return files;
7759
7779
  }
7760
7780
  //#endregion
7781
+ //#region src/mobile/stage.ts
7782
+ /** A `MobileApp`'s `stages` names a stage the project does not deploy. */
7783
+ var MobileAppStageUndeclared = class extends GkmError {
7784
+ app;
7785
+ stage;
7786
+ deployed;
7787
+ constructor(app, stage, deployed) {
7788
+ super(`'${app}' says how the stage '${stage}' ships it, and '${stage}' is not a deployed stage (gkm.config.ts deploys ${deployed.join(", ") || "nothing"}). Rename it in the MobileApp's stages, or add it to stages.deployed.`);
7789
+ this.app = app;
7790
+ this.stage = stage;
7791
+ this.deployed = deployed;
7792
+ this.name = "MobileAppStageUndeclared";
7793
+ }
7794
+ };
7795
+ /**
7796
+ * `stage`'s way of shipping `app`.
7797
+ *
7798
+ * @throws {MobileAppStageUndeclared} when the app's `stages` names a stage
7799
+ * the workspace does not deploy
7800
+ */
7801
+ function mobileStage(workspace, app, stage) {
7802
+ const { deployed } = workspace.stages;
7803
+ for (const named of Object.keys(app.stages ?? {})) if (!deployed.includes(named)) throw new MobileAppStageUndeclared(app.id, named, deployed);
7804
+ const users = workspace.stages.protected?.includes(stage) ?? false;
7805
+ const given = app.stages?.[stage];
7806
+ return {
7807
+ stage,
7808
+ environment: given?.environment ?? (users ? "production" : "preview"),
7809
+ channel: stage,
7810
+ android: {
7811
+ track: given?.android?.track ?? (users ? "production" : "internal"),
7812
+ releaseStatus: given?.android?.releaseStatus ?? "draft"
7813
+ }
7814
+ };
7815
+ }
7816
+ //#endregion
7761
7817
  //#region src/init/generators/mobile-expo.ts
7762
7818
  /**
7763
7819
  * The fullstack template's mobile app, when it has one (`mobileApp`).
@@ -7897,6 +7953,14 @@ export default function expoConfig({ config: base }: ConfigContext): ExpoConfig
7897
7953
  };
7898
7954
  }
7899
7955
  `;
7956
+ const mobile = {
7957
+ kind: "mobile-app",
7958
+ id: "App",
7959
+ variant: "expo",
7960
+ app: { path: "apps/app" },
7961
+ dependencies: []
7962
+ };
7963
+ const stages = options.stages.deployed.map((stage) => mobileStage({ stages: options.stages }, mobile, stage));
7900
7964
  const easJson = {
7901
7965
  cli: {
7902
7966
  version: ">= 10.2.1",
@@ -7908,25 +7972,16 @@ export default function expoConfig({ config: base }: ConfigContext): ExpoConfig
7908
7972
  distribution: "internal",
7909
7973
  environment: "development"
7910
7974
  },
7911
- preview: {
7912
- distribution: "internal",
7913
- environment: "preview",
7914
- env: {
7915
- APP_SCHEME: scheme,
7916
- EXPO_PUBLIC_API_URL: "https://api.example.com",
7917
- EXPO_PUBLIC_AUTH_URL: "https://auth.example.com"
7918
- }
7919
- },
7920
- production: {
7975
+ ...Object.fromEntries(stages.map((stage) => [stage.stage, {
7921
7976
  autoIncrement: true,
7922
- environment: "production",
7923
- env: {
7924
- APP_SCHEME: scheme,
7925
- EXPO_PUBLIC_API_URL: "https://api.example.com",
7926
- EXPO_PUBLIC_AUTH_URL: "https://auth.example.com"
7927
- }
7928
- }
7929
- }
7977
+ environment: stage.environment,
7978
+ channel: stage.channel
7979
+ }]))
7980
+ },
7981
+ submit: Object.fromEntries(stages.map((stage) => [stage.stage, { android: {
7982
+ track: stage.android.track,
7983
+ releaseStatus: stage.android.releaseStatus
7984
+ } }]))
7930
7985
  };
7931
7986
  const babelConfig = `module.exports = function (api) {
7932
7987
  api.cache(true);
@@ -15854,7 +15909,7 @@ function testDatabases(reconciled) {
15854
15909
  * starts without the reference data the app needs.
15855
15910
  */
15856
15911
  async function migrateTestStage(workspace, env) {
15857
- const { migrateAndSeed } = await import("./migrate-DCXwHcWX.mjs");
15912
+ const { migrateAndSeed } = await import("./migrate-B9GswIAr.mjs");
15858
15913
  const { discover } = await import("./discover-Ca8U75dl.mjs").then((n) => n.a);
15859
15914
  const sources = {};
15860
15915
  const manifest = await discover({
@@ -16274,6 +16329,42 @@ program.command("exec").description("Run a command with secrets injected into Cr
16274
16329
  exitWithError(error);
16275
16330
  }
16276
16331
  });
16332
+ program.command("eas:sync").description("Set up a mobile app's EAS project for a deployed stage: its eas.json profiles, and its public values in the stage's EAS environment").requiredOption("--stage <stage>", "A deployed compose stage").option("--app <app>", "The mobile app (default: the one here, or the only one)").option("--profile <profile>", "AWS profile for the stage's account").option("--dry-run", "Say what would be written, and write nothing").action(async (options) => {
16333
+ try {
16334
+ const globalOptions = program.opts();
16335
+ if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16336
+ const { easSync } = await import("./eas-6ezdJtry.mjs");
16337
+ await easSync(options);
16338
+ } catch (error) {
16339
+ exitWithError(error);
16340
+ }
16341
+ });
16342
+ program.command("publish").description("Ship a mobile app for a deployed stage: sync its EAS project, then an update when a store build has its native code, a store build submitted to the stores when none does").requiredOption("--stage <stage>", "A deployed compose stage").option("--app <app>", "The mobile app (default: the one here, or the only one)").option("--platform <platform>", "ios, android or all", "all").option("--build", "A store build, whatever the fingerprint says").option("--update", "An update, whatever the fingerprint says").option("--wait", "Wait for a build to finish, and submit, on EAS").option("--message <message>", "An update's message (default: the commit's subject)").option("--profile <profile>", "AWS profile for the stage's account").option("--dry-run", "Say what would be released, and release nothing").action(async (options) => {
16343
+ try {
16344
+ const globalOptions = program.opts();
16345
+ if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16346
+ const { publish, PublishModeConflict } = await import("./publish-B-EIjfQ0.mjs");
16347
+ if (options.build && options.update) throw new PublishModeConflict();
16348
+ const { build, update, ...rest } = options;
16349
+ await publish({
16350
+ ...rest,
16351
+ ...build ? { mode: "build" } : {},
16352
+ ...update ? { mode: "update" } : {}
16353
+ });
16354
+ } catch (error) {
16355
+ exitWithError(error);
16356
+ }
16357
+ });
16358
+ program.command("deploy:google-play").description("Let EAS Submit publish a mobile app to Google Play: a service account with a grant on the app alone, its key in EAS, each stage's track in eas.json, and the store listing from store/play/").option("--developer <id>", "The Play developer account (the number in Play Console's address)").option("--app <app>", "The mobile app (default: the one here, or the only one)").option("--project <project>", "The Google Cloud project (default: <workspace>-play, created when absent)").option("--stage <stage>", "The stage whose values evaluate the app's Expo config (default: the protected one)").option("--profile <profile>", "AWS profile for that stage's account").action(async (options) => {
16359
+ try {
16360
+ const globalOptions = program.opts();
16361
+ if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16362
+ const { deployGooglePlay } = await import("./googlePlay-DY9vZQ1p.mjs");
16363
+ await deployGooglePlay(options);
16364
+ } catch (error) {
16365
+ exitWithError(error);
16366
+ }
16367
+ });
16277
16368
  program.command("test").description("Run tests with secrets loaded from environment").option("--stage <stage>", "Stage to load secrets from (default: stages.local)").option("--run", "Run tests once without watch mode").option("--watch", "Enable watch mode").option("--coverage", "Generate coverage report").option("--ui", "Open Vitest UI").option("--auto-setup", "Generate a fresh stage (secrets + key) from the workspace config when none exists (for CI; also via GKM_AUTO_SETUP)").option("--prepare", "Write the test manifest and #test harness, then stop — for a typecheck that runs before the suite").option("--setup", "Reconcile, migrate and seed the test stage and write the harness, then stop — what @geekmidas/cli/vitest runs").option("--teardown", "Drop the test stage's databases the last setup created, then stop — what @geekmidas/cli/vitest runs when the suite ends").argument("[pattern]", "Pattern to filter tests").action(async (pattern, options) => {
16278
16369
  try {
16279
16370
  const globalOptions = program.opts();
@@ -16290,7 +16381,7 @@ program.command("migrate").description("Apply each database construct's migratio
16290
16381
  try {
16291
16382
  const globalOptions = program.opts();
16292
16383
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16293
- const { migrateCommand } = await import("./migrate-DCXwHcWX.mjs");
16384
+ const { migrateCommand } = await import("./migrate-B9GswIAr.mjs");
16294
16385
  await migrateCommand({
16295
16386
  ...options,
16296
16387
  ...construct ? { construct } : {}
@@ -16303,7 +16394,7 @@ program.command("seed").description("Migrate, then run each database construct's
16303
16394
  try {
16304
16395
  const globalOptions = program.opts();
16305
16396
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16306
- const { seedCommand } = await import("./migrate-DCXwHcWX.mjs");
16397
+ const { seedCommand } = await import("./migrate-B9GswIAr.mjs");
16307
16398
  await seedCommand({
16308
16399
  ...options,
16309
16400
  ...construct ? { construct } : {}
@@ -16316,7 +16407,7 @@ program.command("migration").description("Write a construct's next migration: an
16316
16407
  try {
16317
16408
  const globalOptions = program.opts();
16318
16409
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16319
- const { migrationCommand } = await import("./migrate-DCXwHcWX.mjs");
16410
+ const { migrationCommand } = await import("./migrate-B9GswIAr.mjs");
16320
16411
  await migrationCommand({
16321
16412
  construct,
16322
16413
  ...name ? { name } : {}
@@ -16416,7 +16507,7 @@ program.command("secrets:add").description("Build the keys a stage must be given
16416
16507
  try {
16417
16508
  const globalOptions = program.opts();
16418
16509
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16419
- const { secretsAddCommand } = await import("./add-snhdVmR-.mjs");
16510
+ const { secretsAddCommand } = await import("./add-DJE7zqJ4.mjs");
16420
16511
  await secretsAddCommand(options);
16421
16512
  } catch (error) {
16422
16513
  exitWithError(error);
@@ -16426,7 +16517,7 @@ program.command("encryption:rotate").description("Add a new current key to an En
16426
16517
  try {
16427
16518
  const globalOptions = program.opts();
16428
16519
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16429
- const { encryptionRotateCommand } = await import("./encryption-D5pDJyp2.mjs");
16520
+ const { encryptionRotateCommand } = await import("./encryption-DJv_jEXi.mjs");
16430
16521
  await encryptionRotateCommand(construct, options);
16431
16522
  } catch (error) {
16432
16523
  exitWithError(error);
@@ -16436,7 +16527,7 @@ program.command("encryption:retire").description("Remove an old key from an Encr
16436
16527
  try {
16437
16528
  const globalOptions = program.opts();
16438
16529
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16439
- const { encryptionRetireCommand } = await import("./encryption-D5pDJyp2.mjs");
16530
+ const { encryptionRetireCommand } = await import("./encryption-DJv_jEXi.mjs");
16440
16531
  await encryptionRetireCommand(construct, key, options);
16441
16532
  } catch (error) {
16442
16533
  exitWithError(error);
@@ -16475,7 +16566,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
16475
16566
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16476
16567
  const { loadWorkspaceConfig } = await import("./config.mjs");
16477
16568
  const { reconcileMissingSecrets } = await import("./reconcile--I7V4Klj.mjs");
16478
- const { secretsStoreFor } = await import("./seeds-BjcO4DDa.mjs").then((n) => n.Rt);
16569
+ const { secretsStoreFor } = await import("./seeds-CIk0l4SC.mjs").then((n) => n.Rt);
16479
16570
  const { workspace } = await loadWorkspaceConfig();
16480
16571
  const stage = options.stage ?? workspace.stages.local;
16481
16572
  const store = await secretsStoreFor(workspace, stage);
@@ -16484,7 +16575,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
16484
16575
  console.error(`No secrets found for stage "${stage}". Run "gkm secrets:init --stage ${stage}" first.`);
16485
16576
  process.exit(1);
16486
16577
  }
16487
- const { derivedContainers } = await import("./seeds-BjcO4DDa.mjs").then((n) => n.mt);
16578
+ const { derivedContainers } = await import("./seeds-CIk0l4SC.mjs").then((n) => n.mt);
16488
16579
  const result = reconcileMissingSecrets(secrets, workspace, await derivedContainers(workspace, stage));
16489
16580
  if (!result) {
16490
16581
  console.log(`\n✓ Secrets for stage "${stage}" are up-to-date`);
@@ -16501,14 +16592,14 @@ program.command("secrets:migrate").description("Copy a deployed stage's secrets
16501
16592
  try {
16502
16593
  const globalOptions = program.opts();
16503
16594
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16504
- const { secretsMigrateCommand } = await import("./migrate-BZ0GnSZQ.mjs");
16595
+ const { secretsMigrateCommand } = await import("./migrate-CQUGbptv.mjs");
16505
16596
  await secretsMigrateCommand(options);
16506
16597
  } catch (error) {
16507
16598
  exitWithError(error);
16508
16599
  }
16509
16600
  });
16510
16601
  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) => {
16511
- const { deployCli } = await import("./cli-BzrDSNSg.mjs");
16602
+ const { deployCli } = await import("./cli-Br5ApIgR.mjs");
16512
16603
  const globalOptions = program.opts();
16513
16604
  const code = await deployCli({
16514
16605
  cwd: resolve(globalOptions.cwd ?? process.cwd()),
@@ -16528,8 +16619,8 @@ program.command("deploy").description("Deploy a stage through its target").optio
16528
16619
  });
16529
16620
  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) => {
16530
16621
  try {
16531
- const { rollbackStage } = await import("./rollback-CDs_XNb0.mjs").then((n) => n.a);
16532
- const { terminalCredentials } = await import("./terminal-CvRLxz6g.mjs");
16622
+ const { rollbackStage } = await import("./rollback-BQgEdr_p.mjs").then((n) => n.a);
16623
+ const { terminalCredentials } = await import("./terminal-mXM-Lqc6.mjs");
16533
16624
  const globalOptions = program.opts();
16534
16625
  await rollbackStage({
16535
16626
  cwd: resolve(globalOptions.cwd ?? process.cwd()),
@@ -16562,7 +16653,7 @@ program.command("deploy:github").description("Let GitHub Actions deploy a stage:
16562
16653
  try {
16563
16654
  const globalOptions = program.opts();
16564
16655
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
16565
- const { deployGithubCommand } = await import("./github-E-ZxqFPq.mjs");
16656
+ const { deployGithubCommand } = await import("./github-D2eABlxM.mjs");
16566
16657
  await deployGithubCommand(options);
16567
16658
  } catch (error) {
16568
16659
  exitWithError(error);
@@ -16741,6 +16832,6 @@ try {
16741
16832
  }
16742
16833
  program.parse();
16743
16834
  //#endregion
16744
- export { validateDokployToken as a, formatError as i, slug as n, canPrompt as o, stamp as r, prompt as s, generateFullstackCustomSecrets as t };
16835
+ export { formatError as a, prompt as c, stamp as i, mobileStage as n, validateDokployToken as o, slug as r, canPrompt as s, generateFullstackCustomSecrets as t };
16745
16836
 
16746
16837
  //# sourceMappingURL=index.mjs.map