@geekmidas/cli 10.0.0-alpha.74 → 10.0.0-alpha.76
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.
- package/dist/{LegacyStateStore-D_78eaHM.cjs → LegacyStateStore-DwngfJxr.cjs} +2 -2
- package/dist/{LegacyStateStore-D_78eaHM.cjs.map → LegacyStateStore-DwngfJxr.cjs.map} +1 -1
- package/dist/{LegacyStateStore-DTo7z924.mjs → LegacyStateStore-dyq07_Ir.mjs} +2 -2
- package/dist/{LegacyStateStore-DTo7z924.mjs.map → LegacyStateStore-dyq07_Ir.mjs.map} +1 -1
- package/dist/{LocalStateStore-BhrlQIXD.cjs → LocalStateStore-B0NCde8Z.cjs} +2 -2
- package/dist/{LocalStateStore-BhrlQIXD.cjs.map → LocalStateStore-B0NCde8Z.cjs.map} +1 -1
- package/dist/{LocalStateStore-CNjgkRk4.mjs → LocalStateStore-DLxCCatI.mjs} +2 -2
- package/dist/{LocalStateStore-CNjgkRk4.mjs.map → LocalStateStore-DLxCCatI.mjs.map} +1 -1
- package/dist/{S3StateStore-oCxRs6HM.cjs → S3StateStore-BOenb-3o.cjs} +2 -2
- package/dist/{S3StateStore-oCxRs6HM.cjs.map → S3StateStore-BOenb-3o.cjs.map} +1 -1
- package/dist/{S3StateStore-g2P7T_Mo.mjs → S3StateStore-CGK_4hlo.mjs} +2 -2
- package/dist/{S3StateStore-g2P7T_Mo.mjs.map → S3StateStore-CGK_4hlo.mjs.map} +1 -1
- package/dist/{SSMStateStore-CYenunmK.mjs → SSMStateStore-B_5_RqY-.mjs} +2 -2
- package/dist/{SSMStateStore-CYenunmK.mjs.map → SSMStateStore-B_5_RqY-.mjs.map} +1 -1
- package/dist/{SSMStateStore-DXp0m7XI.cjs → SSMStateStore-DYeD__7p.cjs} +2 -2
- package/dist/{SSMStateStore-DXp0m7XI.cjs.map → SSMStateStore-DYeD__7p.cjs.map} +1 -1
- package/dist/{add-BTH7WaH3.mjs → add-B7IMXzou.mjs} +3 -3
- package/dist/{add-BTH7WaH3.mjs.map → add-B7IMXzou.mjs.map} +1 -1
- package/dist/{add-Djrr12Xc.cjs → add-j2yI3cbS.cjs} +3 -3
- package/dist/{add-Djrr12Xc.cjs.map → add-j2yI3cbS.cjs.map} +1 -1
- package/dist/{aws-DojzQnLd.mjs → aws-Bja4zGSs.mjs} +13 -9
- package/dist/aws-Bja4zGSs.mjs.map +1 -0
- package/dist/{aws-DkHdTV-p.cjs → aws-CQAuluiu.cjs} +13 -9
- package/dist/aws-CQAuluiu.cjs.map +1 -0
- package/dist/awsStore-7VmS_cZR.cjs +54 -0
- package/dist/awsStore-7VmS_cZR.cjs.map +1 -0
- package/dist/awsStore-B529csle.mjs +43 -0
- package/dist/awsStore-B529csle.mjs.map +1 -0
- package/dist/{bundler-utHuESvL.cjs → bundler-Cf6OgaOe.cjs} +5 -5
- package/dist/bundler-Cf6OgaOe.cjs.map +1 -0
- package/dist/{bundler-BUojOkof.mjs → bundler-DO6bHhnb.mjs} +5 -5
- package/dist/bundler-DO6bHhnb.mjs.map +1 -0
- package/dist/{cli-CyYceKTS.mjs → cli-BCPOHmg9.mjs} +3 -3
- package/dist/{cli-CyYceKTS.mjs.map → cli-BCPOHmg9.mjs.map} +1 -1
- package/dist/{cli-Bx0sUzxH.cjs → cli-CNanUB7a.cjs} +3 -3
- package/dist/{cli-Bx0sUzxH.cjs.map → cli-CNanUB7a.cjs.map} +1 -1
- package/dist/{compose-DZp8DJ0A.mjs → compose-Dq4VCtu5.mjs} +221 -153
- package/dist/compose-Dq4VCtu5.mjs.map +1 -0
- package/dist/{compose-iuw8wfHk.cjs → compose-h_6oNnHC.cjs} +243 -151
- package/dist/compose-h_6oNnHC.cjs.map +1 -0
- package/dist/{config-B38YWicj.d.cts → config-CWyhLSY1.d.cts} +3 -3
- package/dist/{config-B38YWicj.d.cts.map → config-CWyhLSY1.d.cts.map} +1 -1
- package/dist/{config-DA0kRTQe.d.mts → config-CqAvPP-f.d.mts} +3 -3
- package/dist/{config-DA0kRTQe.d.mts.map → config-CqAvPP-f.d.mts.map} +1 -1
- package/dist/config.cjs +1 -1
- package/dist/config.d.cts +3 -3
- package/dist/config.d.mts +3 -3
- package/dist/config.mjs +1 -1
- package/dist/deploy/public.cjs +7 -6
- package/dist/deploy/public.d.cts +14 -3
- package/dist/deploy/public.d.cts.map +1 -1
- package/dist/deploy/public.d.mts +14 -3
- package/dist/deploy/public.d.mts.map +1 -1
- package/dist/deploy/public.mjs +7 -7
- package/dist/{deploy-eWorhvQp.cjs → deploy-CT3R9de9.cjs} +27 -5
- package/dist/deploy-CT3R9de9.cjs.map +1 -0
- package/dist/{deploy-C17K7Imy.mjs → deploy-CVXEx7Nm.mjs} +22 -6
- package/dist/deploy-CVXEx7Nm.mjs.map +1 -0
- package/dist/{dokploy-DKa49Nqm.mjs → dokploy-CYm2ozFs.mjs} +2 -2
- package/dist/{dokploy-DKa49Nqm.mjs.map → dokploy-CYm2ozFs.mjs.map} +1 -1
- package/dist/{dokploy-DKzcI-RL.cjs → dokploy-eSGmlhhj.cjs} +2 -2
- package/dist/{dokploy-DKzcI-RL.cjs.map → dokploy-eSGmlhhj.cjs.map} +1 -1
- package/dist/{encryption-sTMz3aWi.mjs → encryption-DC0rsR1W.mjs} +3 -3
- package/dist/{encryption-sTMz3aWi.mjs.map → encryption-DC0rsR1W.mjs.map} +1 -1
- package/dist/{encryption-DSkJdoyk.cjs → encryption-vS3Qzw73.cjs} +3 -3
- package/dist/{encryption-DSkJdoyk.cjs.map → encryption-vS3Qzw73.cjs.map} +1 -1
- package/dist/{engine-B1b4I34Z.mjs → engine-BOO5TWZd.mjs} +193 -5
- package/dist/engine-BOO5TWZd.mjs.map +1 -0
- package/dist/{engine-Bh76sAHy.cjs → engine-C0N2d1i5.cjs} +196 -8
- package/dist/engine-C0N2d1i5.cjs.map +1 -0
- package/dist/{github-C9ODoyZU.mjs → github-CEaFDL6t.mjs} +6 -6
- package/dist/github-CEaFDL6t.mjs.map +1 -0
- package/dist/{github-BvN3CfxM.cjs → github-ClkdCOL9.cjs} +6 -6
- package/dist/github-ClkdCOL9.cjs.map +1 -0
- package/dist/{index-B-1lLGzy.d.mts → index-Ccu0f_2m.d.cts} +2 -2
- package/dist/{index-B-1lLGzy.d.mts.map → index-Ccu0f_2m.d.cts.map} +1 -1
- package/dist/{index-vMidfqhU.d.cts → index-DOxmDKqv.d.mts} +2 -2
- package/dist/{index-vMidfqhU.d.cts.map → index-DOxmDKqv.d.mts.map} +1 -1
- package/dist/index.cjs +106 -52
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +105 -51
- package/dist/index.mjs.map +1 -1
- package/dist/migrate-BRbYtFXG.cjs +93 -0
- package/dist/migrate-BRbYtFXG.cjs.map +1 -0
- package/dist/migrate-D3NAT7Ns.mjs +93 -0
- package/dist/migrate-D3NAT7Ns.mjs.map +1 -0
- package/dist/{migrate-B0FCZNkp.cjs → migrate-D5_-ylI1.cjs} +3 -3
- package/dist/{migrate-B0FCZNkp.cjs.map → migrate-D5_-ylI1.cjs.map} +1 -1
- package/dist/{migrate-CTtJhGV9.mjs → migrate-DrO2p9Rl.mjs} +3 -3
- package/dist/{migrate-CTtJhGV9.mjs.map → migrate-DrO2p9Rl.mjs.map} +1 -1
- package/dist/openapi.cjs +16 -6
- package/dist/openapi.cjs.map +1 -1
- package/dist/openapi.d.cts +1 -1
- package/dist/openapi.d.cts.map +1 -1
- package/dist/openapi.d.mts +1 -1
- package/dist/openapi.d.mts.map +1 -1
- package/dist/openapi.mjs +16 -6
- package/dist/openapi.mjs.map +1 -1
- package/dist/reconcile/public.d.cts +1 -1
- package/dist/reconcile/public.d.mts +1 -1
- package/dist/{resolve-DSAXj_47.mjs → resolve-C1muFos5.mjs} +3 -3
- package/dist/{resolve-DSAXj_47.mjs.map → resolve-C1muFos5.mjs.map} +1 -1
- package/dist/{resolve-D_BU-wKA.cjs → resolve-Fa1Ii0BK.cjs} +3 -3
- package/dist/{resolve-D_BU-wKA.cjs.map → resolve-Fa1Ii0BK.cjs.map} +1 -1
- package/dist/{rollback-DJy3t696.cjs → rollback-C9N5lKVf.cjs} +5 -5
- package/dist/{rollback-DJy3t696.cjs.map → rollback-C9N5lKVf.cjs.map} +1 -1
- package/dist/{rollback-CWYTUhfW.mjs → rollback-DeQzbRqM.mjs} +5 -5
- package/dist/{rollback-CWYTUhfW.mjs.map → rollback-DeQzbRqM.mjs.map} +1 -1
- package/dist/{runtime-BzZD5HHi.d.cts → runtime-BSvzPqXW.d.mts} +2 -2
- package/dist/{runtime-BzZD5HHi.d.cts.map → runtime-BSvzPqXW.d.mts.map} +1 -1
- package/dist/{runtime-Cm6J6L7n.d.mts → runtime-Cm7QA53H.d.cts} +2 -2
- package/dist/{runtime-Cm6J6L7n.d.mts.map → runtime-Cm7QA53H.d.cts.map} +1 -1
- package/dist/secretsManager-DUXW3fQt.cjs +70 -0
- package/dist/secretsManager-DUXW3fQt.cjs.map +1 -0
- package/dist/secretsManager-Ti0oZwsS.mjs +70 -0
- package/dist/secretsManager-Ti0oZwsS.mjs.map +1 -0
- package/dist/{sniffer-BFmdZpZ2.mjs → sniffer-DR8AlRCk.mjs} +67 -15
- package/dist/sniffer-DR8AlRCk.mjs.map +1 -0
- package/dist/{sniffer-C-T7dSMN.cjs → sniffer-Y6GQOCXB.cjs} +83 -13
- package/dist/sniffer-Y6GQOCXB.cjs.map +1 -0
- package/dist/{state-DCwRWyh-.cjs → state-C2qi0iQw.cjs} +241 -334
- package/dist/state-C2qi0iQw.cjs.map +1 -0
- package/dist/{state-DpkxSwzI.mjs → state-CUecOCNJ.mjs} +213 -306
- package/dist/state-CUecOCNJ.mjs.map +1 -0
- package/dist/target/public.cjs +1 -1
- package/dist/target/public.d.cts +2 -2
- package/dist/target/public.d.mts +2 -2
- package/dist/target/public.mjs +1 -1
- package/dist/{types-TzCChNrA.d.cts → types-BdptGBFS.d.cts} +59 -6
- package/dist/types-BdptGBFS.d.cts.map +1 -0
- package/dist/{types-Dp9lgx_S.d.mts → types-OxE0OAn2.d.mts} +59 -6
- package/dist/types-OxE0OAn2.d.mts.map +1 -0
- package/dist/workspace/index.cjs +1 -1
- package/dist/workspace/index.d.cts +2 -2
- package/dist/workspace/index.d.mts +2 -2
- package/dist/workspace/index.mjs +1 -1
- package/dist/{workspace-vdrcRI-m.cjs → workspace-DOm81oUo.cjs} +54 -1
- package/dist/workspace-DOm81oUo.cjs.map +1 -0
- package/dist/{workspace-C7NqCsQF.mjs → workspace-QUTqYmVy.mjs} +43 -2
- package/dist/workspace-QUTqYmVy.mjs.map +1 -0
- package/package.json +18 -17
- package/dist/aws-DkHdTV-p.cjs.map +0 -1
- package/dist/aws-DojzQnLd.mjs.map +0 -1
- package/dist/bundler-BUojOkof.mjs.map +0 -1
- package/dist/bundler-utHuESvL.cjs.map +0 -1
- package/dist/compose-DZp8DJ0A.mjs.map +0 -1
- package/dist/compose-iuw8wfHk.cjs.map +0 -1
- package/dist/deploy-C17K7Imy.mjs.map +0 -1
- package/dist/deploy-eWorhvQp.cjs.map +0 -1
- package/dist/engine-B1b4I34Z.mjs.map +0 -1
- package/dist/engine-Bh76sAHy.cjs.map +0 -1
- package/dist/github-BvN3CfxM.cjs.map +0 -1
- package/dist/github-C9ODoyZU.mjs.map +0 -1
- package/dist/sniffer-BFmdZpZ2.mjs.map +0 -1
- package/dist/sniffer-C-T7dSMN.cjs.map +0 -1
- package/dist/state-DCwRWyh-.cjs.map +0 -1
- package/dist/state-DpkxSwzI.mjs.map +0 -1
- package/dist/types-Dp9lgx_S.d.mts.map +0 -1
- package/dist/types-TzCChNrA.d.cts.map +0 -1
- package/dist/workspace-C7NqCsQF.mjs.map +0 -1
- package/dist/workspace-vdrcRI-m.cjs.map +0 -1
package/dist/index.mjs
CHANGED
|
@@ -4,20 +4,20 @@ import { r as DEFAULT_TIMEOUT_MS, t as CommandFailed } from "./run-BJLIerMM.mjs"
|
|
|
4
4
|
import { c as getDokployCredentials, f as removeDokployCredentials, i as LocalSandbox, l as getDokployRegistryId, m as storeHostingerToken, p as storeDokployCredentials, s as getCredentialsPath, u as getDokployToken } from "./credentials-pAtB70k3.mjs";
|
|
5
5
|
import { l as withOwningTsconfigJsx, r as discover, u as ConstructGenerator } from "./discover-BPelzeGW.mjs";
|
|
6
6
|
import { t as appKey } from "./derive-B4vDpzgP.mjs";
|
|
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-
|
|
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-QUTqYmVy.mjs";
|
|
8
8
|
import { ConfigNotFound, NotABackendApp, NotInAnApp, loadAppConfig, loadConfig, loadWorkspaceConfig, loadWorkspaceSettings, parseModuleConfig } from "./config.mjs";
|
|
9
|
-
import { $ as
|
|
9
|
+
import { $ as LOCAL_CA_PATH, At as providerOf, Bt as isPortAvailable, Dt as isImageBuild, Et as imageBuildCredentials, G as QueueGenerator, Gt as secretsStoreFor, H as WorkerGenerator, Ht as loadSecretsForApp, It as primaryPortKey, J as backendsOf$1, Jt as FileSecretsStore, K as CronGenerator, L as parseDevServices, Lt as createCredentialsPreload, Nt as describeServices, Ot as cacheBackendFor, Pt as fakeKey, Rt as createEntryWrapper, U as workerBundleName, Ut as prepareEntryCredentials, V as workerUnits, Vt as loadEnvFiles, W as workerEntryDir, X as derivedContainers, Y as constructGlobs, Yt as getKeyPath, Z as reconcileWorkspace, Zt as projectKey, at as postgresDatabaseNames, cn as maskPassword, dn as withCustomSecret, en as deployIdentity, et as forgetState, kt as eventsBackendFor, q as FAKE_ENV, st as quoteIdentifier, un as toEmbeddableSecrets, ut as pgClient, v as dockerCommand, zt as findAvailablePort } from "./state-CUecOCNJ.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";
|
|
12
11
|
import { generateOpenApi, openapiCommand, resolveOpenApiConfig } from "./openapi.mjs";
|
|
13
12
|
import { s as isCacheBackend, t as SubscriberGenerator } from "./SubscriberGenerator-5looQ3gB.mjs";
|
|
14
13
|
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
14
|
import { n as driversFor, r as eventsBackendsIn, t as cacheBackendsIn } from "./drivers-Ch1rJitn.mjs";
|
|
16
15
|
import { n as withCompute, r as withRoutes, t as manifestModule } from "./emit-C1e8qD08.mjs";
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
16
|
+
import { g as createStateStore, n as sniffAppEnvironment, o as DokployApi, x as keyFingerprint } from "./sniffer-DR8AlRCk.mjs";
|
|
17
|
+
import { t as deploy$1 } from "./deploy-CVXEx7Nm.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-Dq4VCtu5.mjs";
|
|
19
19
|
import { o as loadCredentialSchemas, t as CredentialsInvalid } from "./credentialSchemas-BJqRJNK4.mjs";
|
|
20
|
-
import { t as LocalStateStore } from "./LocalStateStore-
|
|
20
|
+
import { t as LocalStateStore } from "./LocalStateStore-DLxCCatI.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.
|
|
50
|
+
var version = "10.0.0-alpha.76";
|
|
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-
|
|
133
|
+
const { DokployApi } = await import("./sniffer-DR8AlRCk.mjs").then((n) => n.c);
|
|
134
134
|
return new DokployApi({
|
|
135
135
|
baseUrl: endpoint,
|
|
136
136
|
token
|
|
@@ -1527,10 +1527,10 @@ async function execCommand(commandArgs, options = {}) {
|
|
|
1527
1527
|
if (!commandArgs[0]) throw new NoCommandSpecified();
|
|
1528
1528
|
const defaultEnv = loadEnvFiles(".env");
|
|
1529
1529
|
if (defaultEnv.loaded.length > 0) logger$6.log(`📦 Loaded env: ${defaultEnv.loaded.join(", ")}`);
|
|
1530
|
-
const { credentials, secretsJsonPath, appName } = await prepareEntryCredentials({ cwd });
|
|
1530
|
+
const { credentials, secretsJsonPath, appName } = isImageBuild() ? await imageBuildEntry(cwd) : await prepareEntryCredentials({ cwd });
|
|
1531
1531
|
if (appName) logger$6.log(`📦 App: ${appName}`);
|
|
1532
1532
|
const secretCount = Object.keys(credentials).filter((k) => k !== "PORT").length;
|
|
1533
|
-
if (secretCount > 0) logger$6.log(`🔐 Loaded ${secretCount} secret(s)`);
|
|
1533
|
+
if (secretCount > 0 && !isImageBuild()) logger$6.log(`🔐 Loaded ${secretCount} secret(s)`);
|
|
1534
1534
|
const preloadDir = join(cwd, ".gkm");
|
|
1535
1535
|
await mkdir(preloadDir, { recursive: true });
|
|
1536
1536
|
const preloadPath = join(preloadDir, "credentials-preload.mjs");
|
|
@@ -1556,6 +1556,23 @@ async function execCommand(commandArgs, options = {}) {
|
|
|
1556
1556
|
});
|
|
1557
1557
|
if (exitCode !== 0) process.exit(exitCode);
|
|
1558
1558
|
}
|
|
1559
|
+
/**
|
|
1560
|
+
* `gkm exec` inside an image build: the public values the Dockerfile's build
|
|
1561
|
+
* args set, written where the preload reads them. No workspace is loaded, no
|
|
1562
|
+
* secret read and no address resolved.
|
|
1563
|
+
*/
|
|
1564
|
+
async function imageBuildEntry(cwd) {
|
|
1565
|
+
const credentials = imageBuildCredentials();
|
|
1566
|
+
logger$6.log(`🐳 Image build: ${Object.keys(credentials).length} public value(s) from the build args`);
|
|
1567
|
+
const dir = join(cwd, ".gkm");
|
|
1568
|
+
await mkdir(dir, { recursive: true });
|
|
1569
|
+
const secretsJsonPath = join(dir, "image-build-env.json");
|
|
1570
|
+
await writeFile(secretsJsonPath, JSON.stringify(credentials, null, 2));
|
|
1571
|
+
return {
|
|
1572
|
+
credentials,
|
|
1573
|
+
secretsJsonPath
|
|
1574
|
+
};
|
|
1575
|
+
}
|
|
1559
1576
|
//#endregion
|
|
1560
1577
|
//#region src/dev/index.ts
|
|
1561
1578
|
const logger$5 = console;
|
|
@@ -2036,9 +2053,9 @@ async function workspaceDevCommand(configured, options) {
|
|
|
2036
2053
|
for (const { id, port } of fakes) logger$5.log(`🎭 ${id} fake: http://localhost:${port}`);
|
|
2037
2054
|
logger$5.log(options.migrate || options.seed ? "🗄️ Migrating the databases" : "🗄️ Checking for pending migrations");
|
|
2038
2055
|
if (options.migrate || options.seed) {
|
|
2039
|
-
const { prepareDevDatabases } = await import("./migrate-
|
|
2056
|
+
const { prepareDevDatabases } = await import("./migrate-DrO2p9Rl.mjs");
|
|
2040
2057
|
await prepareDevDatabases(workspace, reconciled.env, { seed: !!options.seed });
|
|
2041
|
-
} else await import("./migrate-
|
|
2058
|
+
} else await import("./migrate-DrO2p9Rl.mjs").then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
|
|
2042
2059
|
logger$5.log(`⚠️ Could not check for pending migrations: ${error instanceof Error ? error.message : String(error)}`);
|
|
2043
2060
|
});
|
|
2044
2061
|
const appUrls = {};
|
|
@@ -3046,7 +3063,7 @@ async function buildApp(input) {
|
|
|
3046
3063
|
if (production?.bundle && !input.skipBundle) {
|
|
3047
3064
|
const outputDir = join(appRoot, ".gkm", "server");
|
|
3048
3065
|
const entryPoint = await writeSurfaceServer(outputDir, production);
|
|
3049
|
-
const { bundleServer } = await import("./bundler-
|
|
3066
|
+
const { bundleServer } = await import("./bundler-DO6bHhnb.mjs");
|
|
3050
3067
|
await bundleServer({
|
|
3051
3068
|
entryPoint,
|
|
3052
3069
|
outputDir: join(outputDir, "dist"),
|
|
@@ -3170,7 +3187,7 @@ async function buildWorkers(input) {
|
|
|
3170
3187
|
});
|
|
3171
3188
|
logger$4.log(`Generated worker ${worker.id}: ${crons.length} crons, ${queues.length} queues, ${subscribers.length} subscribers`);
|
|
3172
3189
|
if (!input.bundle) continue;
|
|
3173
|
-
const { bundleServer } = await import("./bundler-
|
|
3190
|
+
const { bundleServer } = await import("./bundler-DO6bHhnb.mjs");
|
|
3174
3191
|
const outfile = workerBundleName(worker.id);
|
|
3175
3192
|
await bundleServer({
|
|
3176
3193
|
entryPoint,
|
|
@@ -3240,7 +3257,7 @@ async function buildForTarget(target, context, appRoot, workspaceRoot, endpointG
|
|
|
3240
3257
|
let masterKey;
|
|
3241
3258
|
if (context.production?.bundle && !skipBundle) {
|
|
3242
3259
|
logger$4.log(`\n📦 Bundling production server...`);
|
|
3243
|
-
const { bundleServer } = await import("./bundler-
|
|
3260
|
+
const { bundleServer } = await import("./bundler-DO6bHhnb.mjs");
|
|
3244
3261
|
const allConstructs = [
|
|
3245
3262
|
...endpoints.map((e) => e.construct),
|
|
3246
3263
|
...functions.map((f) => f.construct),
|
|
@@ -3484,9 +3501,16 @@ var ComposeModeConflict = class extends Error {
|
|
|
3484
3501
|
this.name = "ComposeModeConflict";
|
|
3485
3502
|
}
|
|
3486
3503
|
};
|
|
3504
|
+
/** Each pushed image as `<ref>@sha256:…`, by app. */
|
|
3505
|
+
function pushedDigests(run) {
|
|
3506
|
+
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)]));
|
|
3507
|
+
}
|
|
3487
3508
|
/** `gkm compose`. */
|
|
3488
3509
|
async function composeCommand(options, deps = {}) {
|
|
3489
3510
|
if (options.build && options.pull) throw new ComposeModeConflict();
|
|
3511
|
+
if (options.push && !options.build) throw new ComposePushNeedsBuild();
|
|
3512
|
+
const pulls = !options.build && (options.pull || options.tag !== void 0);
|
|
3513
|
+
if (options.digestsFile && !options.push && !pulls) throw new ComposePinNeedsPull();
|
|
3490
3514
|
const allowDevServices = parseDevServices(options.allowDevServices);
|
|
3491
3515
|
const cwd = resolve(options.cwd ?? process.cwd());
|
|
3492
3516
|
const { workspace } = await loadWorkspaceConfig(cwd);
|
|
@@ -3506,6 +3530,10 @@ async function composeCommand(options, deps = {}) {
|
|
|
3506
3530
|
let finished;
|
|
3507
3531
|
const mode = options.build ? "build" : options.pull ? "pull" : void 0;
|
|
3508
3532
|
const tag = options.tag ?? (options.pull ? "latest" : void 0);
|
|
3533
|
+
const pin = options.digestsFile && pulls ? {
|
|
3534
|
+
file: options.digestsFile,
|
|
3535
|
+
digests: parseDigests(options.digestsFile, await readFile(resolve(cwd, options.digestsFile), "utf-8"))
|
|
3536
|
+
} : void 0;
|
|
3509
3537
|
const result = await deploy$1({
|
|
3510
3538
|
cwd,
|
|
3511
3539
|
stage,
|
|
@@ -3513,12 +3541,15 @@ async function composeCommand(options, deps = {}) {
|
|
|
3513
3541
|
targets: { compose: composeTarget({
|
|
3514
3542
|
...deps,
|
|
3515
3543
|
...mode ? { mode } : {},
|
|
3544
|
+
...options.push ? { push: true } : {},
|
|
3545
|
+
...pin ? { pin } : {},
|
|
3516
3546
|
report: (done) => {
|
|
3517
3547
|
finished = done;
|
|
3518
3548
|
}
|
|
3519
3549
|
}) },
|
|
3520
3550
|
...tag ? { tag } : {},
|
|
3521
3551
|
...options.dryRun ? { dryRun: true } : {},
|
|
3552
|
+
...options.push ? { buildOnly: true } : {},
|
|
3522
3553
|
...allowDevServices.length > 0 ? { allowDevServices } : {},
|
|
3523
3554
|
logger: {
|
|
3524
3555
|
info: (message) => console.log(message),
|
|
@@ -3527,6 +3558,17 @@ async function composeCommand(options, deps = {}) {
|
|
|
3527
3558
|
}
|
|
3528
3559
|
}).result;
|
|
3529
3560
|
if (!finished) return void 0;
|
|
3561
|
+
if (options.push && !options.dryRun) {
|
|
3562
|
+
const digests = pushedDigests(finished);
|
|
3563
|
+
console.log(`\n✅ Pushed ${Object.keys(digests).length} image(s):`);
|
|
3564
|
+
for (const [app, ref] of Object.entries(digests)) console.log(` ${app.padEnd(12)} ${ref}`);
|
|
3565
|
+
if (options.digestsFile) {
|
|
3566
|
+
const file = resolve(cwd, options.digestsFile);
|
|
3567
|
+
await mkdir(dirname(file), { recursive: true });
|
|
3568
|
+
await writeFile(file, `${JSON.stringify(digests, null, 2)}\n`);
|
|
3569
|
+
console.log(`\n📝 Wrote the digests to ${options.digestsFile}`);
|
|
3570
|
+
}
|
|
3571
|
+
}
|
|
3530
3572
|
return {
|
|
3531
3573
|
stack: finished.stack,
|
|
3532
3574
|
files: finished.files,
|
|
@@ -4939,25 +4981,25 @@ function loadPackageJson() {
|
|
|
4939
4981
|
* Run: pnpm --filter @geekmidas/cli sync-versions
|
|
4940
4982
|
*/
|
|
4941
4983
|
const GEEKMIDAS_VERSIONS = {
|
|
4942
|
-
"@geekmidas/audit": "~10.0.0-alpha.
|
|
4943
|
-
"@geekmidas/auth": "~10.0.0-alpha.
|
|
4944
|
-
"@geekmidas/cache": "~10.0.0-alpha.
|
|
4945
|
-
"@geekmidas/client": "~10.0.0-alpha.
|
|
4946
|
-
"@geekmidas/cloud": "~10.0.0-alpha.
|
|
4947
|
-
"@geekmidas/constructs": "~10.0.0-alpha.
|
|
4948
|
-
"@geekmidas/db": "~10.0.0-alpha.
|
|
4949
|
-
"@geekmidas/emailkit": "~10.0.0-alpha.
|
|
4950
|
-
"@geekmidas/envkit": "~10.0.0-alpha.
|
|
4951
|
-
"@geekmidas/errors": "~10.0.0-alpha.
|
|
4952
|
-
"@geekmidas/events": "~10.0.0-alpha.
|
|
4953
|
-
"@geekmidas/logger": "~10.0.0-alpha.
|
|
4954
|
-
"@geekmidas/manifest": "~10.0.0-alpha.
|
|
4955
|
-
"@geekmidas/rate-limit": "~10.0.0-alpha.
|
|
4956
|
-
"@geekmidas/schema": "~10.0.0-alpha.
|
|
4957
|
-
"@geekmidas/services": "~10.0.0-alpha.
|
|
4958
|
-
"@geekmidas/storage": "~10.0.0-alpha.
|
|
4959
|
-
"@geekmidas/telescope": "~10.0.0-alpha.
|
|
4960
|
-
"@geekmidas/testkit": "~10.0.0-alpha.
|
|
4984
|
+
"@geekmidas/audit": "~10.0.0-alpha.76",
|
|
4985
|
+
"@geekmidas/auth": "~10.0.0-alpha.76",
|
|
4986
|
+
"@geekmidas/cache": "~10.0.0-alpha.76",
|
|
4987
|
+
"@geekmidas/client": "~10.0.0-alpha.76",
|
|
4988
|
+
"@geekmidas/cloud": "~10.0.0-alpha.76",
|
|
4989
|
+
"@geekmidas/constructs": "~10.0.0-alpha.76",
|
|
4990
|
+
"@geekmidas/db": "~10.0.0-alpha.76",
|
|
4991
|
+
"@geekmidas/emailkit": "~10.0.0-alpha.76",
|
|
4992
|
+
"@geekmidas/envkit": "~10.0.0-alpha.76",
|
|
4993
|
+
"@geekmidas/errors": "~10.0.0-alpha.76",
|
|
4994
|
+
"@geekmidas/events": "~10.0.0-alpha.76",
|
|
4995
|
+
"@geekmidas/logger": "~10.0.0-alpha.76",
|
|
4996
|
+
"@geekmidas/manifest": "~10.0.0-alpha.76",
|
|
4997
|
+
"@geekmidas/rate-limit": "~10.0.0-alpha.76",
|
|
4998
|
+
"@geekmidas/schema": "~10.0.0-alpha.76",
|
|
4999
|
+
"@geekmidas/services": "~10.0.0-alpha.76",
|
|
5000
|
+
"@geekmidas/storage": "~10.0.0-alpha.76",
|
|
5001
|
+
"@geekmidas/telescope": "~10.0.0-alpha.76",
|
|
5002
|
+
"@geekmidas/testkit": "~10.0.0-alpha.76",
|
|
4961
5003
|
"@geekmidas/cli": `~${loadPackageJson().version}`
|
|
4962
5004
|
};
|
|
4963
5005
|
//#endregion
|
|
@@ -7015,6 +7057,7 @@ function secretsStore(options) {
|
|
|
7015
7057
|
return `
|
|
7016
7058
|
// Deployed stages keep their secrets in SSM, in the account each stage
|
|
7017
7059
|
// deploys to: \`gkm secrets:set <KEY> '…' --stage <stage>\` writes there.
|
|
7060
|
+
// Past 8 KB a stage needs { provider: 'secrets-manager', region } instead.
|
|
7018
7061
|
store: { provider: 'ssm', region: '${options.region}' },`;
|
|
7019
7062
|
}
|
|
7020
7063
|
/**
|
|
@@ -10110,8 +10153,8 @@ ${dbPasswordEntries.map(([key, value]) => `${key}=${value}`).join("\n")}
|
|
|
10110
10153
|
//#region src/secrets/index.ts
|
|
10111
10154
|
const logger$2 = console;
|
|
10112
10155
|
/**
|
|
10113
|
-
* The store the stage named on the command line keeps its secrets in — SSM
|
|
10114
|
-
* its account, for a deployed stage kept there. Outside any workspace nothing
|
|
10156
|
+
* The store the stage named on the command line keeps its secrets in — SSM or
|
|
10157
|
+
* Secrets Manager in its account, for a deployed stage kept there. Outside any workspace nothing
|
|
10115
10158
|
* names a store, so it is the file.
|
|
10116
10159
|
*/
|
|
10117
10160
|
async function storeFor(stage) {
|
|
@@ -10347,7 +10390,7 @@ const logger$1 = console;
|
|
|
10347
10390
|
*
|
|
10348
10391
|
* Orchestrates:
|
|
10349
10392
|
* 1. Load workspace config
|
|
10350
|
-
* 2. Resolve secrets (local →
|
|
10393
|
+
* 2. Resolve secrets (local → the stage's store → generate fresh)
|
|
10351
10394
|
* 3. Write docker/.env from secrets
|
|
10352
10395
|
* 4. Start Docker services
|
|
10353
10396
|
*/
|
|
@@ -10515,7 +10558,7 @@ function reconcileSecrets(secrets, workspace, containers = []) {
|
|
|
10515
10558
|
/**
|
|
10516
10559
|
* Build a fresh StageSecrets object for a workspace: service credentials,
|
|
10517
10560
|
* connection URLs, and custom secrets. Pure — does not write to disk or touch
|
|
10518
|
-
*
|
|
10561
|
+
* any store. Service passwords are freshly randomized, so the result must be the same
|
|
10519
10562
|
* one used to start the matching Docker containers.
|
|
10520
10563
|
* @internal Exported for reuse by `gkm test` auto-setup.
|
|
10521
10564
|
*/
|
|
@@ -10748,7 +10791,7 @@ function testDatabases(reconciled) {
|
|
|
10748
10791
|
* starts without the reference data the app needs.
|
|
10749
10792
|
*/
|
|
10750
10793
|
async function migrateTestStage(workspace, env) {
|
|
10751
|
-
const { migrateAndSeed } = await import("./migrate-
|
|
10794
|
+
const { migrateAndSeed } = await import("./migrate-DrO2p9Rl.mjs");
|
|
10752
10795
|
const { discover } = await import("./discover-BPelzeGW.mjs").then((n) => n.i);
|
|
10753
10796
|
const sources = {};
|
|
10754
10797
|
const manifest = await discover({
|
|
@@ -11181,7 +11224,7 @@ program.command("migrate").description("Apply each database construct's migratio
|
|
|
11181
11224
|
try {
|
|
11182
11225
|
const globalOptions = program.opts();
|
|
11183
11226
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11184
|
-
const { migrateCommand } = await import("./migrate-
|
|
11227
|
+
const { migrateCommand } = await import("./migrate-DrO2p9Rl.mjs");
|
|
11185
11228
|
await migrateCommand({
|
|
11186
11229
|
...options,
|
|
11187
11230
|
...construct ? { construct } : {}
|
|
@@ -11195,7 +11238,7 @@ program.command("seed").description("Migrate, then run each database construct's
|
|
|
11195
11238
|
try {
|
|
11196
11239
|
const globalOptions = program.opts();
|
|
11197
11240
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11198
|
-
const { seedCommand } = await import("./migrate-
|
|
11241
|
+
const { seedCommand } = await import("./migrate-DrO2p9Rl.mjs");
|
|
11199
11242
|
await seedCommand({
|
|
11200
11243
|
...options,
|
|
11201
11244
|
...construct ? { construct } : {}
|
|
@@ -11209,7 +11252,7 @@ program.command("migration").description("Write a construct's next migration: an
|
|
|
11209
11252
|
try {
|
|
11210
11253
|
const globalOptions = program.opts();
|
|
11211
11254
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11212
|
-
const { migrationCommand } = await import("./migrate-
|
|
11255
|
+
const { migrationCommand } = await import("./migrate-DrO2p9Rl.mjs");
|
|
11213
11256
|
await migrationCommand({
|
|
11214
11257
|
construct,
|
|
11215
11258
|
...name ? { name } : {}
|
|
@@ -11254,7 +11297,7 @@ program.command("docker").description("Generate Docker deployment files").option
|
|
|
11254
11297
|
process.exit(1);
|
|
11255
11298
|
}
|
|
11256
11299
|
});
|
|
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) => {
|
|
11300
|
+
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
11301
|
try {
|
|
11259
11302
|
const globalOptions = program.opts();
|
|
11260
11303
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
@@ -11303,7 +11346,7 @@ program.command("secrets:add").description("Build the keys a stage must be given
|
|
|
11303
11346
|
try {
|
|
11304
11347
|
const globalOptions = program.opts();
|
|
11305
11348
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11306
|
-
const { secretsAddCommand } = await import("./add-
|
|
11349
|
+
const { secretsAddCommand } = await import("./add-B7IMXzou.mjs");
|
|
11307
11350
|
await secretsAddCommand(options);
|
|
11308
11351
|
} catch (error) {
|
|
11309
11352
|
console.error(formatError(error));
|
|
@@ -11314,7 +11357,7 @@ program.command("encryption:rotate").description("Add a new current key to an En
|
|
|
11314
11357
|
try {
|
|
11315
11358
|
const globalOptions = program.opts();
|
|
11316
11359
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11317
|
-
const { encryptionRotateCommand } = await import("./encryption-
|
|
11360
|
+
const { encryptionRotateCommand } = await import("./encryption-DC0rsR1W.mjs");
|
|
11318
11361
|
await encryptionRotateCommand(construct, options);
|
|
11319
11362
|
} catch (error) {
|
|
11320
11363
|
console.error(formatError(error));
|
|
@@ -11325,7 +11368,7 @@ program.command("encryption:retire").description("Remove an old key from an Encr
|
|
|
11325
11368
|
try {
|
|
11326
11369
|
const globalOptions = program.opts();
|
|
11327
11370
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11328
|
-
const { encryptionRetireCommand } = await import("./encryption-
|
|
11371
|
+
const { encryptionRetireCommand } = await import("./encryption-DC0rsR1W.mjs");
|
|
11329
11372
|
await encryptionRetireCommand(construct, key, options);
|
|
11330
11373
|
} catch (error) {
|
|
11331
11374
|
console.error(formatError(error));
|
|
@@ -11368,7 +11411,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
|
|
|
11368
11411
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11369
11412
|
const { loadWorkspaceConfig } = await import("./config.mjs");
|
|
11370
11413
|
const { reconcileMissingSecrets } = await import("./reconcile--I7V4Klj.mjs");
|
|
11371
|
-
const { secretsStoreFor } = await import("./state-
|
|
11414
|
+
const { secretsStoreFor } = await import("./state-CUecOCNJ.mjs").then((n) => n.qt);
|
|
11372
11415
|
const { workspace } = await loadWorkspaceConfig();
|
|
11373
11416
|
const stage = options.stage ?? workspace.stages.local;
|
|
11374
11417
|
const store = await secretsStoreFor(workspace, stage);
|
|
@@ -11377,7 +11420,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
|
|
|
11377
11420
|
console.error(`No secrets found for stage "${stage}". Run "gkm secrets:init --stage ${stage}" first.`);
|
|
11378
11421
|
process.exit(1);
|
|
11379
11422
|
}
|
|
11380
|
-
const { derivedContainers } = await import("./state-
|
|
11423
|
+
const { derivedContainers } = await import("./state-CUecOCNJ.mjs").then((n) => n.Q);
|
|
11381
11424
|
const result = reconcileMissingSecrets(secrets, workspace, await derivedContainers(workspace, stage));
|
|
11382
11425
|
if (!result) {
|
|
11383
11426
|
console.log(`\n✓ Secrets for stage "${stage}" are up-to-date`);
|
|
@@ -11391,8 +11434,19 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
|
|
|
11391
11434
|
process.exit(1);
|
|
11392
11435
|
}
|
|
11393
11436
|
});
|
|
11437
|
+
program.command("secrets:migrate").description("Copy a deployed stage's secrets from the configured store to another (file, ssm, secrets-manager)").requiredOption("--stage <stage>", "A deployed stage").requiredOption("--to <provider>", "file, ssm or secrets-manager").option("--region <region>", "The target's AWS region (default: the configured store's)").option("--profile <profile>", "AWS profile for the stage's account").option("--force", "Replace a stage the target already holds").action(async (options) => {
|
|
11438
|
+
try {
|
|
11439
|
+
const globalOptions = program.opts();
|
|
11440
|
+
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11441
|
+
const { secretsMigrateCommand } = await import("./migrate-D3NAT7Ns.mjs");
|
|
11442
|
+
await secretsMigrateCommand(options);
|
|
11443
|
+
} catch (error) {
|
|
11444
|
+
console.error(formatError(error));
|
|
11445
|
+
process.exit(1);
|
|
11446
|
+
}
|
|
11447
|
+
});
|
|
11394
11448
|
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-
|
|
11449
|
+
const { deployCli } = await import("./cli-BCPOHmg9.mjs");
|
|
11396
11450
|
const globalOptions = program.opts();
|
|
11397
11451
|
const code = await deployCli({
|
|
11398
11452
|
cwd: resolve(globalOptions.cwd ?? process.cwd()),
|
|
@@ -11409,7 +11463,7 @@ program.command("deploy").description("Deploy a stage through its target").optio
|
|
|
11409
11463
|
});
|
|
11410
11464
|
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
11465
|
try {
|
|
11412
|
-
const { rollbackStage } = await import("./rollback-
|
|
11466
|
+
const { rollbackStage } = await import("./rollback-DeQzbRqM.mjs").then((n) => n.a);
|
|
11413
11467
|
const { terminalCredentials } = await import("./terminal-BdvrmkaC.mjs");
|
|
11414
11468
|
const globalOptions = program.opts();
|
|
11415
11469
|
await rollbackStage({
|
|
@@ -11445,7 +11499,7 @@ program.command("deploy:github").description("Let GitHub Actions deploy a stage:
|
|
|
11445
11499
|
try {
|
|
11446
11500
|
const globalOptions = program.opts();
|
|
11447
11501
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11448
|
-
const { deployGithubCommand } = await import("./github-
|
|
11502
|
+
const { deployGithubCommand } = await import("./github-CEaFDL6t.mjs");
|
|
11449
11503
|
await deployGithubCommand(options);
|
|
11450
11504
|
} catch (error) {
|
|
11451
11505
|
console.error(formatError(error));
|