@geekmidas/cli 10.0.0-alpha.76 → 10.0.0-alpha.78
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-dyq07_Ir.mjs → LegacyStateStore-Ceq7A_75.mjs} +2 -2
- package/dist/{LegacyStateStore-dyq07_Ir.mjs.map → LegacyStateStore-Ceq7A_75.mjs.map} +1 -1
- package/dist/{LegacyStateStore-DwngfJxr.cjs → LegacyStateStore-Z-EKUGSX.cjs} +2 -2
- package/dist/{LegacyStateStore-DwngfJxr.cjs.map → LegacyStateStore-Z-EKUGSX.cjs.map} +1 -1
- package/dist/{LocalStateStore-B0NCde8Z.cjs → LocalStateStore-Bocb8dmZ.cjs} +2 -2
- package/dist/{LocalStateStore-B0NCde8Z.cjs.map → LocalStateStore-Bocb8dmZ.cjs.map} +1 -1
- package/dist/{LocalStateStore-DLxCCatI.mjs → LocalStateStore-C72bwpG2.mjs} +2 -2
- package/dist/{LocalStateStore-DLxCCatI.mjs.map → LocalStateStore-C72bwpG2.mjs.map} +1 -1
- package/dist/{S3StateStore-BOenb-3o.cjs → S3StateStore-35YfcdL_.cjs} +2 -2
- package/dist/{S3StateStore-BOenb-3o.cjs.map → S3StateStore-35YfcdL_.cjs.map} +1 -1
- package/dist/{S3StateStore-CGK_4hlo.mjs → S3StateStore-C9upSW5o.mjs} +2 -2
- package/dist/{S3StateStore-CGK_4hlo.mjs.map → S3StateStore-C9upSW5o.mjs.map} +1 -1
- package/dist/{SSMStateStore-DYeD__7p.cjs → SSMStateStore-W-Ps22AQ.cjs} +2 -2
- package/dist/{SSMStateStore-DYeD__7p.cjs.map → SSMStateStore-W-Ps22AQ.cjs.map} +1 -1
- package/dist/{SSMStateStore-B_5_RqY-.mjs → SSMStateStore-dOmFO6g1.mjs} +2 -2
- package/dist/{SSMStateStore-B_5_RqY-.mjs.map → SSMStateStore-dOmFO6g1.mjs.map} +1 -1
- package/dist/{add-j2yI3cbS.cjs → add-BvOICikp.cjs} +8 -8
- package/dist/{add-j2yI3cbS.cjs.map → add-BvOICikp.cjs.map} +1 -1
- package/dist/{add-B7IMXzou.mjs → add-D2XKszYP.mjs} +3 -3
- package/dist/{add-B7IMXzou.mjs.map → add-D2XKszYP.mjs.map} +1 -1
- package/dist/{bundler-Cf6OgaOe.cjs → bundler-C6T-1OLT.cjs} +5 -5
- package/dist/{bundler-Cf6OgaOe.cjs.map → bundler-C6T-1OLT.cjs.map} +1 -1
- package/dist/{bundler-DO6bHhnb.mjs → bundler-CtHzKqnZ.mjs} +5 -5
- package/dist/{bundler-DO6bHhnb.mjs.map → bundler-CtHzKqnZ.mjs.map} +1 -1
- package/dist/{cli-BCPOHmg9.mjs → cli-BgPyhx1i.mjs} +3 -3
- package/dist/{cli-BCPOHmg9.mjs.map → cli-BgPyhx1i.mjs.map} +1 -1
- package/dist/{cli-CNanUB7a.cjs → cli-K6Vj_pPW.cjs} +4 -4
- package/dist/{cli-CNanUB7a.cjs.map → cli-K6Vj_pPW.cjs.map} +1 -1
- package/dist/{compose-h_6oNnHC.cjs → compose-B7MC19eC.cjs} +668 -110
- package/dist/compose-B7MC19eC.cjs.map +1 -0
- package/dist/{compose-Dq4VCtu5.mjs → compose-DByK353T.mjs} +606 -66
- package/dist/compose-DByK353T.mjs.map +1 -0
- package/dist/{config-CqAvPP-f.d.mts → config-Bql0AmJt.d.mts} +3 -3
- package/dist/{config-CWyhLSY1.d.cts.map → config-Bql0AmJt.d.mts.map} +1 -1
- package/dist/{config-CWyhLSY1.d.cts → config-DlNpHK8p.d.cts} +3 -3
- package/dist/{config-CqAvPP-f.d.mts.map → config-DlNpHK8p.d.cts.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 +12 -12
- package/dist/deploy/public.d.cts +3 -3
- package/dist/deploy/public.d.cts.map +1 -1
- package/dist/deploy/public.d.mts +3 -3
- package/dist/deploy/public.d.mts.map +1 -1
- package/dist/deploy/public.mjs +6 -6
- package/dist/{deploy-CVXEx7Nm.mjs → deploy-BerP7ppB.mjs} +5 -5
- package/dist/{deploy-CVXEx7Nm.mjs.map → deploy-BerP7ppB.mjs.map} +1 -1
- package/dist/{deploy-CT3R9de9.cjs → deploy-Dt42xiQA.cjs} +11 -11
- package/dist/{deploy-CT3R9de9.cjs.map → deploy-Dt42xiQA.cjs.map} +1 -1
- package/dist/{dokploy-eSGmlhhj.cjs → dokploy-NG9UrVrP.cjs} +2 -2
- package/dist/{dokploy-eSGmlhhj.cjs.map → dokploy-NG9UrVrP.cjs.map} +1 -1
- package/dist/{dokploy-CYm2ozFs.mjs → dokploy-ssZQRK2C.mjs} +2 -2
- package/dist/{dokploy-CYm2ozFs.mjs.map → dokploy-ssZQRK2C.mjs.map} +1 -1
- package/dist/{encryption-vS3Qzw73.cjs → encryption-CbMI24fI.cjs} +6 -6
- package/dist/{encryption-vS3Qzw73.cjs.map → encryption-CbMI24fI.cjs.map} +1 -1
- package/dist/{encryption-DC0rsR1W.mjs → encryption-De6MN0O5.mjs} +3 -3
- package/dist/{encryption-DC0rsR1W.mjs.map → encryption-De6MN0O5.mjs.map} +1 -1
- package/dist/{engine-C0N2d1i5.cjs → engine-CoCsNoW_.cjs} +73 -68
- package/dist/{engine-C0N2d1i5.cjs.map → engine-CoCsNoW_.cjs.map} +1 -1
- package/dist/{engine-BOO5TWZd.mjs → engine-DOjGIgl4.mjs} +9 -4
- package/dist/{engine-BOO5TWZd.mjs.map → engine-DOjGIgl4.mjs.map} +1 -1
- package/dist/{github-CEaFDL6t.mjs → github-CwX9z89E.mjs} +3 -3
- package/dist/{github-CEaFDL6t.mjs.map → github-CwX9z89E.mjs.map} +1 -1
- package/dist/{github-ClkdCOL9.cjs → github-D9vGqdLk.cjs} +7 -7
- package/dist/{github-ClkdCOL9.cjs.map → github-D9vGqdLk.cjs.map} +1 -1
- package/dist/{index-DOxmDKqv.d.mts → index-BXO0vlme.d.mts} +2 -2
- package/dist/{index-Ccu0f_2m.d.cts.map → index-BXO0vlme.d.mts.map} +1 -1
- package/dist/{index-Ccu0f_2m.d.cts → index-Rs0Fua-q.d.cts} +2 -2
- package/dist/{index-DOxmDKqv.d.mts.map → index-Rs0Fua-q.d.cts.map} +1 -1
- package/dist/index.cjs +180 -219
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +108 -147
- package/dist/index.mjs.map +1 -1
- package/dist/{migrate-BRbYtFXG.cjs → migrate-B4GBvCNY.cjs} +5 -5
- package/dist/{migrate-BRbYtFXG.cjs.map → migrate-B4GBvCNY.cjs.map} +1 -1
- package/dist/{migrate-D3NAT7Ns.mjs → migrate-BQ4wVKq_.mjs} +3 -3
- package/dist/{migrate-D3NAT7Ns.mjs.map → migrate-BQ4wVKq_.mjs.map} +1 -1
- package/dist/{migrate-DrO2p9Rl.mjs → migrate-CNKaQl3K.mjs} +3 -3
- package/dist/{migrate-DrO2p9Rl.mjs.map → migrate-CNKaQl3K.mjs.map} +1 -1
- package/dist/{migrate-D5_-ylI1.cjs → migrate-Cgoy58Sh.cjs} +8 -8
- package/dist/{migrate-D5_-ylI1.cjs.map → migrate-Cgoy58Sh.cjs.map} +1 -1
- package/dist/openapi.cjs +1 -1
- package/dist/openapi.d.cts +1 -1
- package/dist/openapi.d.mts +1 -1
- package/dist/openapi.mjs +1 -1
- package/dist/reconcile/public.d.cts +1 -1
- package/dist/reconcile/public.d.mts +1 -1
- package/dist/{resolve-Fa1Ii0BK.cjs → resolve-CEaqRBzY.cjs} +3 -3
- package/dist/{resolve-Fa1Ii0BK.cjs.map → resolve-CEaqRBzY.cjs.map} +1 -1
- package/dist/{resolve-C1muFos5.mjs → resolve-mvaystiE.mjs} +3 -3
- package/dist/{resolve-C1muFos5.mjs.map → resolve-mvaystiE.mjs.map} +1 -1
- package/dist/{rollback-C9N5lKVf.cjs → rollback-F3P-rA-r.cjs} +7 -7
- package/dist/{rollback-C9N5lKVf.cjs.map → rollback-F3P-rA-r.cjs.map} +1 -1
- package/dist/{rollback-DeQzbRqM.mjs → rollback-S2C-Y9pB.mjs} +5 -5
- package/dist/{rollback-DeQzbRqM.mjs.map → rollback-S2C-Y9pB.mjs.map} +1 -1
- package/dist/{runtime-Cm7QA53H.d.cts → runtime-D9AxGzrw.d.cts} +2 -2
- package/dist/{runtime-BSvzPqXW.d.mts.map → runtime-D9AxGzrw.d.cts.map} +1 -1
- package/dist/{runtime-BSvzPqXW.d.mts → runtime-Dflki3Vs.d.mts} +2 -2
- package/dist/{runtime-Cm7QA53H.d.cts.map → runtime-Dflki3Vs.d.mts.map} +1 -1
- package/dist/{sniffer-Y6GQOCXB.cjs → sniffer-BjG-1mlD.cjs} +6 -6
- package/dist/{sniffer-Y6GQOCXB.cjs.map → sniffer-BjG-1mlD.cjs.map} +1 -1
- package/dist/{sniffer-DR8AlRCk.mjs → sniffer-ByWtH28i.mjs} +6 -6
- package/dist/{sniffer-DR8AlRCk.mjs.map → sniffer-ByWtH28i.mjs.map} +1 -1
- package/dist/{state-C2qi0iQw.cjs → stale-BsiPJI7Y.cjs} +111 -25
- package/dist/stale-BsiPJI7Y.cjs.map +1 -0
- package/dist/{state-CUecOCNJ.mjs → stale-C5FqIVc8.mjs} +106 -26
- package/dist/stale-C5FqIVc8.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-BdptGBFS.d.cts → types-ByY0zi3n.d.cts} +42 -3
- package/dist/types-ByY0zi3n.d.cts.map +1 -0
- package/dist/{types-OxE0OAn2.d.mts → types-DKxkXsKC.d.mts} +42 -3
- package/dist/types-DKxkXsKC.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-QUTqYmVy.mjs → workspace-BBdqmkch.mjs} +114 -17
- package/dist/workspace-BBdqmkch.mjs.map +1 -0
- package/dist/{workspace-DOm81oUo.cjs → workspace-Bp8FEkF-.cjs} +130 -15
- package/dist/workspace-Bp8FEkF-.cjs.map +1 -0
- package/package.json +15 -15
- package/dist/compose-Dq4VCtu5.mjs.map +0 -1
- package/dist/compose-h_6oNnHC.cjs.map +0 -1
- package/dist/state-C2qi0iQw.cjs.map +0 -1
- package/dist/state-CUecOCNJ.mjs.map +0 -1
- package/dist/types-BdptGBFS.d.cts.map +0 -1
- package/dist/types-OxE0OAn2.d.mts.map +0 -1
- package/dist/workspace-DOm81oUo.cjs.map +0 -1
- package/dist/workspace-QUTqYmVy.mjs.map +0 -1
|
@@ -2,10 +2,10 @@ const require_rolldown_runtime = require("./rolldown-runtime-C0BPl7ul.cjs");
|
|
|
2
2
|
const require_run = require("./run-fVZ-rLnc.cjs");
|
|
3
3
|
const require_discover = require("./discover-D1It5r_h.cjs");
|
|
4
4
|
const require_derive = require("./derive-DAbo49sm.cjs");
|
|
5
|
-
const require_workspace = require("./workspace-
|
|
5
|
+
const require_workspace = require("./workspace-Bp8FEkF-.cjs");
|
|
6
6
|
const require_config = require("./config.cjs");
|
|
7
7
|
const require_EndpointGenerator = require("./EndpointGenerator-CP6sBvQV.cjs");
|
|
8
|
-
const require_resolve = require("./resolve-
|
|
8
|
+
const require_resolve = require("./resolve-CEaqRBzY.cjs");
|
|
9
9
|
const require_SubscriberGenerator = require("./SubscriberGenerator-CajwOa5W.cjs");
|
|
10
10
|
let node_path = require("node:path");
|
|
11
11
|
let node_fs = require("node:fs");
|
|
@@ -93,10 +93,6 @@ function toEmbeddableSecrets(secrets) {
|
|
|
93
93
|
AWS_SECRET_ACCESS_KEY: secrets.services.localstack.password,
|
|
94
94
|
AWS_REGION: secrets.services.localstack.region ?? "us-east-1",
|
|
95
95
|
AWS_ENDPOINT_URL: `http://${secrets.services.localstack.host}:${secrets.services.localstack.port}`
|
|
96
|
-
},
|
|
97
|
-
...secrets.services.pgboss && {
|
|
98
|
-
PGBOSS_DB_USER: secrets.services.pgboss.username,
|
|
99
|
-
PGBOSS_DB_PASSWORD: secrets.services.pgboss.password
|
|
100
96
|
}
|
|
101
97
|
};
|
|
102
98
|
}
|
|
@@ -663,24 +659,18 @@ async function savePortState(workspaceRoot, ports) {
|
|
|
663
659
|
await (0, node_fs_promises.writeFile)((0, node_path.join)(workspaceRoot, PORT_STATE_PATH), `${JSON.stringify(ports, null, 2)}\n`);
|
|
664
660
|
}
|
|
665
661
|
/**
|
|
666
|
-
* Load and flatten
|
|
667
|
-
*
|
|
662
|
+
* Load and flatten a stage's secrets from its store.
|
|
663
|
+
*
|
|
664
|
+
* Every key as stored — nothing renamed. An app's database URL is its
|
|
665
|
+
* construct's key, derived by reconcile, and never a stored per-app value
|
|
666
|
+
* mapped onto `DATABASE_URL`.
|
|
668
667
|
* @internal Exported for testing
|
|
669
668
|
*/
|
|
670
|
-
async function loadSecretsForApp(store, stage
|
|
671
|
-
let secrets = {};
|
|
669
|
+
async function loadSecretsForApp(store, stage) {
|
|
672
670
|
const stageSecrets = await store.read(stage);
|
|
673
|
-
if (stageSecrets) {
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
}
|
|
677
|
-
if (Object.keys(secrets).length === 0) return {};
|
|
678
|
-
if (!appName) return secrets;
|
|
679
|
-
const prefix = appName.toUpperCase();
|
|
680
|
-
const mapped = { ...secrets };
|
|
681
|
-
const appDbUrl = secrets[`${prefix}_DATABASE_URL`];
|
|
682
|
-
if (appDbUrl) mapped.DATABASE_URL = appDbUrl;
|
|
683
|
-
return mapped;
|
|
671
|
+
if (!stageSecrets) return {};
|
|
672
|
+
logger$1.log(`🔐 Loading secrets from stage: ${stage}`);
|
|
673
|
+
return toEmbeddableSecrets(stageSecrets);
|
|
684
674
|
}
|
|
685
675
|
/**
|
|
686
676
|
* Walk up the directory tree to find the root containing .gkm/secrets/.
|
|
@@ -788,7 +778,7 @@ async function prepareEntryCredentials(options) {
|
|
|
788
778
|
const resolvedPort = options.explicitPort ?? workspaceAppPort ?? 3e3;
|
|
789
779
|
const stage = options.stage ?? workspace?.stages.local;
|
|
790
780
|
const store = stage ? workspace ? await secretsStoreFor(workspace, stage) : new FileSecretsStore(secretsRoot) : void 0;
|
|
791
|
-
const credentials = store && stage ? await loadSecretsForApp(store, stage
|
|
781
|
+
const credentials = store && stage ? await loadSecretsForApp(store, stage) : {};
|
|
792
782
|
credentials.PORT = String(resolvedPort);
|
|
793
783
|
if (appInfo?.app.type === "mobile") credentials.RCT_METRO_PORT = String(resolvedPort);
|
|
794
784
|
const declaredKeys = [];
|
|
@@ -3100,13 +3090,13 @@ function sitePublicArgs(manifest, appName, env) {
|
|
|
3100
3090
|
* network for a service another service calls, public for what a browser is
|
|
3101
3091
|
* handed. `gkm compose` asks twice, once for each.
|
|
3102
3092
|
*/
|
|
3103
|
-
function networkEnv(plan, options) {
|
|
3093
|
+
function networkEnv(plan, options, hostOf = (container) => container) {
|
|
3104
3094
|
const placeholders = {};
|
|
3105
3095
|
const targets = /* @__PURE__ */ new Map();
|
|
3106
3096
|
let next = 49152;
|
|
3107
3097
|
for (const container of [...plan.containers].sort()) for (const port of portsOf(container, plan.fakes)) {
|
|
3108
3098
|
placeholders[port.key] = next;
|
|
3109
|
-
targets.set(next, `${container}:${port.inside}`);
|
|
3099
|
+
targets.set(next, `${hostOf(container)}:${port.inside}`);
|
|
3110
3100
|
next += 1;
|
|
3111
3101
|
}
|
|
3112
3102
|
for (const key of portKeys(plan.containers, plan.fakes)) placeholders[key] ??= next++;
|
|
@@ -6505,6 +6495,96 @@ function setPostgresBackupId(state, backupId) {
|
|
|
6505
6495
|
if (state.backups) state.backups.postgresBackupId = backupId;
|
|
6506
6496
|
}
|
|
6507
6497
|
//#endregion
|
|
6498
|
+
//#region src/secrets/stale.ts
|
|
6499
|
+
/**
|
|
6500
|
+
* Stored secrets an older gkm generated that now shadow a derived value.
|
|
6501
|
+
*
|
|
6502
|
+
* Before constructs, initialising a stage wrote an address for each app into
|
|
6503
|
+
* its custom secrets: `<APP>_DATABASE_URL` as a `postgresql://…@localhost`
|
|
6504
|
+
* URL with a password of its own, and `http://localhost:<port>` for a site or
|
|
6505
|
+
* an auth server. Those keys are now a construct's — `database.schema('AuthDatabase')`
|
|
6506
|
+
* provides `AUTH_DATABASE_URL`, `new BetterAuth('Auth')` provides `AUTH_URL`
|
|
6507
|
+
* — and a deploy derives them. A value the stage holds is a value set by hand,
|
|
6508
|
+
* and set by hand wins: the container is handed `localhost`, where nothing
|
|
6509
|
+
* answers, with a password no role has.
|
|
6510
|
+
*
|
|
6511
|
+
* So a deploy refuses such a stage rather than run it, naming each key and
|
|
6512
|
+
* the command that removes it. Nothing is deleted for the user: the value is
|
|
6513
|
+
* theirs, and only they can say it is stale. A URL that names a real host — a
|
|
6514
|
+
* managed database — is a deliberate choice and still wins.
|
|
6515
|
+
*/
|
|
6516
|
+
/** The kinds whose URL an older gkm wrote into a stage's secrets. */
|
|
6517
|
+
const ADDRESSED = /* @__PURE__ */ new Set([
|
|
6518
|
+
"database",
|
|
6519
|
+
"database-reader",
|
|
6520
|
+
"database-schema",
|
|
6521
|
+
"rest-api",
|
|
6522
|
+
"site"
|
|
6523
|
+
]);
|
|
6524
|
+
/** Hosts that are this machine — never anything, inside a container. */
|
|
6525
|
+
const LOOPBACK = /* @__PURE__ */ new Set([
|
|
6526
|
+
"localhost",
|
|
6527
|
+
"127.0.0.1",
|
|
6528
|
+
"[::1]",
|
|
6529
|
+
"::1"
|
|
6530
|
+
]);
|
|
6531
|
+
/**
|
|
6532
|
+
* A stage holds a construct's address as a custom secret, pointing at
|
|
6533
|
+
* `localhost` — what an older `gkm secrets:init`, `gkm setup` or `gkm init`
|
|
6534
|
+
* generated. Set by hand wins over derived, so the app would be handed it.
|
|
6535
|
+
*/
|
|
6536
|
+
var StaleStageSecrets = class extends Error {
|
|
6537
|
+
stage;
|
|
6538
|
+
stale;
|
|
6539
|
+
constructor(stage, stale) {
|
|
6540
|
+
const one = stale.length === 1;
|
|
6541
|
+
super(`The stage '${stage}' holds ${one ? "a value" : "values"} an older gkm generated for ${one ? "an address a construct" : "addresses constructs"} now ${one ? "provides" : "provide"}:\n` + stale.map((s) => ` ${s.key}: ${s.construct}'s, stored pointing at ${s.host}`).join("\n") + `
|
|
6542
|
+
A stored value wins over the derived one, so the app would be handed an address where nothing answers inside its container. Remove ${one ? "it" : "each"}, and the construct's own value is used:\n` + stale.map((s) => ` gkm secrets:unset ${s.key} --stage ${stage}`).join("\n") + "\nA managed service set with its real host is not affected.");
|
|
6543
|
+
this.stage = stage;
|
|
6544
|
+
this.stale = stale;
|
|
6545
|
+
this.name = "StaleStageSecrets";
|
|
6546
|
+
}
|
|
6547
|
+
};
|
|
6548
|
+
/** The host a stored value names, if it is a URL. */
|
|
6549
|
+
function hostOf(value) {
|
|
6550
|
+
try {
|
|
6551
|
+
return new URL(value).hostname;
|
|
6552
|
+
} catch {
|
|
6553
|
+
return;
|
|
6554
|
+
}
|
|
6555
|
+
}
|
|
6556
|
+
/**
|
|
6557
|
+
* Each stored key that a construct provides an address for, holding an
|
|
6558
|
+
* address on this machine.
|
|
6559
|
+
*/
|
|
6560
|
+
function staleStageSecrets(manifest, supplied) {
|
|
6561
|
+
const stale = [];
|
|
6562
|
+
for (const [id, declaration] of Object.entries(manifest)) {
|
|
6563
|
+
if (!ADDRESSED.has(declaration.kind)) continue;
|
|
6564
|
+
const key = (0, _geekmidas_manifest.providedKeyFor)(id, declaration.kind, "url");
|
|
6565
|
+
const value = supplied[key];
|
|
6566
|
+
if (value === void 0) continue;
|
|
6567
|
+
const host = hostOf(value);
|
|
6568
|
+
if (host === void 0 || !LOOPBACK.has(host)) continue;
|
|
6569
|
+
stale.push({
|
|
6570
|
+
key,
|
|
6571
|
+
construct: id,
|
|
6572
|
+
host
|
|
6573
|
+
});
|
|
6574
|
+
}
|
|
6575
|
+
return stale.sort((a, b) => a.key.localeCompare(b.key));
|
|
6576
|
+
}
|
|
6577
|
+
/**
|
|
6578
|
+
* Refuse a stage whose stored secrets would shadow a construct's address with
|
|
6579
|
+
* `localhost`.
|
|
6580
|
+
*
|
|
6581
|
+
* @throws {StaleStageSecrets} naming each key and the command removing it
|
|
6582
|
+
*/
|
|
6583
|
+
function assertNoStaleSecrets(options) {
|
|
6584
|
+
const stale = staleStageSecrets(options.manifest, options.supplied);
|
|
6585
|
+
if (stale.length > 0) throw new StaleStageSecrets(options.stage, stale);
|
|
6586
|
+
}
|
|
6587
|
+
//#endregion
|
|
6508
6588
|
Object.defineProperty(exports, "CronGenerator", {
|
|
6509
6589
|
enumerable: true,
|
|
6510
6590
|
get: function() {
|
|
@@ -6655,6 +6735,12 @@ Object.defineProperty(exports, "assertExternalServices", {
|
|
|
6655
6735
|
return assertExternalServices;
|
|
6656
6736
|
}
|
|
6657
6737
|
});
|
|
6738
|
+
Object.defineProperty(exports, "assertNoStaleSecrets", {
|
|
6739
|
+
enumerable: true,
|
|
6740
|
+
get: function() {
|
|
6741
|
+
return assertNoStaleSecrets;
|
|
6742
|
+
}
|
|
6743
|
+
});
|
|
6658
6744
|
Object.defineProperty(exports, "backendsOf", {
|
|
6659
6745
|
enumerable: true,
|
|
6660
6746
|
get: function() {
|
|
@@ -7220,4 +7306,4 @@ Object.defineProperty(exports, "workspace_exports", {
|
|
|
7220
7306
|
}
|
|
7221
7307
|
});
|
|
7222
7308
|
|
|
7223
|
-
//# sourceMappingURL=
|
|
7309
|
+
//# sourceMappingURL=stale-BsiPJI7Y.cjs.map
|