@geekmidas/cli 10.0.0-alpha.121 → 10.0.0-alpha.123
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/{GoDaddyProvider-D0MQoOM4.mjs → GoDaddyProvider-BlB5nJky.mjs} +2 -2
- package/dist/{GoDaddyProvider-D0MQoOM4.mjs.map → GoDaddyProvider-BlB5nJky.mjs.map} +1 -1
- package/dist/{GoDaddyProvider-3C8U_tVu.cjs → GoDaddyProvider-Dubq-pCc.cjs} +2 -2
- package/dist/{GoDaddyProvider-3C8U_tVu.cjs.map → GoDaddyProvider-Dubq-pCc.cjs.map} +1 -1
- package/dist/{LegacyStateStore-DHsoQGOo.cjs → LegacyStateStore-ClvUC8qy.cjs} +3 -3
- package/dist/{LegacyStateStore-DHsoQGOo.cjs.map → LegacyStateStore-ClvUC8qy.cjs.map} +1 -1
- package/dist/{LegacyStateStore-CRi7TosX.mjs → LegacyStateStore-DGALQGZu.mjs} +3 -3
- package/dist/{LegacyStateStore-CRi7TosX.mjs.map → LegacyStateStore-DGALQGZu.mjs.map} +1 -1
- package/dist/{LocalStateStore-BQXTkeoS.cjs → LocalStateStore-43kSYNpw.cjs} +2 -2
- package/dist/{LocalStateStore-BQXTkeoS.cjs.map → LocalStateStore-43kSYNpw.cjs.map} +1 -1
- package/dist/{LocalStateStore-Dkth0jXX.mjs → LocalStateStore-CBYUzVR5.mjs} +2 -2
- package/dist/{LocalStateStore-Dkth0jXX.mjs.map → LocalStateStore-CBYUzVR5.mjs.map} +1 -1
- package/dist/{S3StateStore-pZZnLLBd.mjs → S3StateStore-DLHjDYYP.mjs} +2 -2
- package/dist/{S3StateStore-pZZnLLBd.mjs.map → S3StateStore-DLHjDYYP.mjs.map} +1 -1
- package/dist/{S3StateStore-DGKZgyKz.cjs → S3StateStore-ahE7hSNK.cjs} +2 -2
- package/dist/{S3StateStore-DGKZgyKz.cjs.map → S3StateStore-ahE7hSNK.cjs.map} +1 -1
- package/dist/{SSMStateStore-CZRMERDA.mjs → SSMStateStore-j5RuMkch.mjs} +2 -2
- package/dist/{SSMStateStore-CZRMERDA.mjs.map → SSMStateStore-j5RuMkch.mjs.map} +1 -1
- package/dist/{SSMStateStore-DzkyjQ5D.cjs → SSMStateStore-qIzIuazA.cjs} +2 -2
- package/dist/{SSMStateStore-DzkyjQ5D.cjs.map → SSMStateStore-qIzIuazA.cjs.map} +1 -1
- package/dist/{add-C0kXOsWS.mjs → add-Bm-C56lH.mjs} +4 -4
- package/dist/{add-C0kXOsWS.mjs.map → add-Bm-C56lH.mjs.map} +1 -1
- package/dist/{add-Df8cmz0H.cjs → add-C2CvXrYw.cjs} +4 -4
- package/dist/{add-Df8cmz0H.cjs.map → add-C2CvXrYw.cjs.map} +1 -1
- package/dist/{bundler-Dx_grUmc.cjs → bundler-Dk7tAvAX.cjs} +5 -5
- package/dist/{bundler-Dx_grUmc.cjs.map → bundler-Dk7tAvAX.cjs.map} +1 -1
- package/dist/{bundler-B-I4Du99.mjs → bundler-DnkFt4mn.mjs} +5 -5
- package/dist/{bundler-B-I4Du99.mjs.map → bundler-DnkFt4mn.mjs.map} +1 -1
- package/dist/{cli-DL7GxGAe.mjs → cli-CVeHFXNE.mjs} +2 -2
- package/dist/{cli-DL7GxGAe.mjs.map → cli-CVeHFXNE.mjs.map} +1 -1
- package/dist/{cli-Cd9exatJ.cjs → cli-Di464j1O.cjs} +2 -2
- package/dist/{cli-Cd9exatJ.cjs.map → cli-Di464j1O.cjs.map} +1 -1
- package/dist/{compose-Mdgea4Yt.cjs → compose-ChVvb3xM.cjs} +65 -13
- package/dist/compose-ChVvb3xM.cjs.map +1 -0
- package/dist/{compose-C43c03WZ.mjs → compose-cHkF---f.mjs} +65 -13
- package/dist/compose-cHkF---f.mjs.map +1 -0
- package/dist/{config-D48erO2j.d.mts → config-B3iz9BtK.d.cts} +4 -4
- package/dist/{config-D48erO2j.d.mts.map → config-B3iz9BtK.d.cts.map} +1 -1
- package/dist/{config-DHDtsQrB.d.cts → config-DrOX29sT.d.mts} +4 -4
- package/dist/{config-DHDtsQrB.d.cts.map → config-DrOX29sT.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 -7
- package/dist/deploy/public.d.cts +5 -5
- package/dist/deploy/public.d.cts.map +1 -1
- package/dist/deploy/public.d.mts +5 -5
- package/dist/deploy/public.d.mts.map +1 -1
- package/dist/deploy/public.mjs +7 -7
- package/dist/{deploy-BMM2hx-K.cjs → deploy-BffR_uEN.cjs} +7 -6
- package/dist/{deploy-BMM2hx-K.cjs.map → deploy-BffR_uEN.cjs.map} +1 -1
- package/dist/{deploy-D5YhwDng.mjs → deploy-DO4djCHb.mjs} +7 -6
- package/dist/{deploy-D5YhwDng.mjs.map → deploy-DO4djCHb.mjs.map} +1 -1
- package/dist/{discover-CSW_BMWa.d.cts → discover-C08meHhu.d.mts} +2 -2
- package/dist/{discover-CSW_BMWa.d.cts.map → discover-C08meHhu.d.mts.map} +1 -1
- package/dist/{discover-xtT7fgWg.d.mts → discover-DipvfWpK.d.cts} +2 -2
- package/dist/{discover-xtT7fgWg.d.mts.map → discover-DipvfWpK.d.cts.map} +1 -1
- package/dist/{dns-BIYf20p7.cjs → dns-Bmnuttja.cjs} +346 -27
- package/dist/dns-Bmnuttja.cjs.map +1 -0
- package/dist/{dns-agf2VCdV.mjs → dns-DFvO5a53.mjs} +317 -30
- package/dist/dns-DFvO5a53.mjs.map +1 -0
- package/dist/{dokploy-2p4PK6ej.mjs → dokploy-BcZm93Cc.mjs} +2 -2
- package/dist/{dokploy-2p4PK6ej.mjs.map → dokploy-BcZm93Cc.mjs.map} +1 -1
- package/dist/{dokploy-BANMTroy.cjs → dokploy-CsdvfH3t.cjs} +2 -2
- package/dist/{dokploy-BANMTroy.cjs.map → dokploy-CsdvfH3t.cjs.map} +1 -1
- package/dist/{eas-iT2JDHCh.mjs → eas-CBShP20v.mjs} +2 -2
- package/dist/{eas-iT2JDHCh.mjs.map → eas-CBShP20v.mjs.map} +1 -1
- package/dist/{eas-CNi16SoO.cjs → eas-CN_cUXth.cjs} +2 -2
- package/dist/{eas-CNi16SoO.cjs.map → eas-CN_cUXth.cjs.map} +1 -1
- package/dist/{encryption-DkXVbyZc.mjs → encryption-CITa6dXL.mjs} +3 -3
- package/dist/{encryption-DkXVbyZc.mjs.map → encryption-CITa6dXL.mjs.map} +1 -1
- package/dist/{encryption-d2lLtkYx.cjs → encryption-CPDM49Hi.cjs} +3 -3
- package/dist/{encryption-d2lLtkYx.cjs.map → encryption-CPDM49Hi.cjs.map} +1 -1
- package/dist/{engine-CatKW6E-.mjs → engine-CTnHmHjz.mjs} +4 -4
- package/dist/{engine-CatKW6E-.mjs.map → engine-CTnHmHjz.mjs.map} +1 -1
- package/dist/{engine-DlEHexED.cjs → engine-D-jfMVj-.cjs} +4 -4
- package/dist/{engine-DlEHexED.cjs.map → engine-D-jfMVj-.cjs.map} +1 -1
- package/dist/{github-DErsqKGN.mjs → github-9RlA7EjN.mjs} +5 -5
- package/dist/{github-DErsqKGN.mjs.map → github-9RlA7EjN.mjs.map} +1 -1
- package/dist/{github-BAeaC1Pl.cjs → github-D56PSK39.cjs} +5 -5
- package/dist/{github-BAeaC1Pl.cjs.map → github-D56PSK39.cjs.map} +1 -1
- package/dist/{googlePlay-BXJ5ZjMK.mjs → googlePlay-COi5LXON.mjs} +3 -3
- package/dist/{googlePlay-BXJ5ZjMK.mjs.map → googlePlay-COi5LXON.mjs.map} +1 -1
- package/dist/{googlePlay-BVcfFWRO.cjs → googlePlay-SX_jQeJf.cjs} +3 -3
- package/dist/{googlePlay-BVcfFWRO.cjs.map → googlePlay-SX_jQeJf.cjs.map} +1 -1
- package/dist/{index-8OfpOtSI.d.cts → index-DcyRA5Rf.d.mts} +2 -2
- package/dist/{index-8OfpOtSI.d.cts.map → index-DcyRA5Rf.d.mts.map} +1 -1
- package/dist/{index-Dpji6Bxq.d.mts → index-DjLSMgAL.d.cts} +2 -2
- package/dist/{index-Dpji6Bxq.d.mts.map → index-DjLSMgAL.d.cts.map} +1 -1
- package/dist/index.cjs +53 -53
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +53 -53
- package/dist/index.mjs.map +1 -1
- package/dist/{migrate-s4QizIoM.mjs → migrate-0J6gsfrQ.mjs} +3 -3
- package/dist/{migrate-s4QizIoM.mjs.map → migrate-0J6gsfrQ.mjs.map} +1 -1
- package/dist/{migrate-L4a273dY.cjs → migrate-BCz1lkh_.cjs} +3 -3
- package/dist/{migrate-L4a273dY.cjs.map → migrate-BCz1lkh_.cjs.map} +1 -1
- package/dist/{migrate-D79GI0XM.cjs → migrate-CrtxXeGY.cjs} +3 -3
- package/dist/{migrate-D79GI0XM.cjs.map → migrate-CrtxXeGY.cjs.map} +1 -1
- package/dist/{migrate-Bb1MmGHl.mjs → migrate-DJa_Dlsl.mjs} +3 -3
- package/dist/{migrate-Bb1MmGHl.mjs.map → migrate-DJa_Dlsl.mjs.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/{publish-CcTlmJT6.mjs → publish-CuQlOW5p.mjs} +2 -2
- package/dist/{publish-CcTlmJT6.mjs.map → publish-CuQlOW5p.mjs.map} +1 -1
- package/dist/{publish-ydscCYsW.cjs → publish-qSpnvmdX.cjs} +2 -2
- package/dist/{publish-ydscCYsW.cjs.map → publish-qSpnvmdX.cjs.map} +1 -1
- package/dist/reconcile/public.d.cts +2 -2
- package/dist/reconcile/public.d.mts +2 -2
- package/dist/{resolve-BgL-brF9.cjs → resolve-AsfohXd1.cjs} +3 -3
- package/dist/{resolve-BgL-brF9.cjs.map → resolve-AsfohXd1.cjs.map} +1 -1
- package/dist/{resolve-BLp2trep.mjs → resolve-j8hUcbGz.mjs} +3 -3
- package/dist/{resolve-BLp2trep.mjs.map → resolve-j8hUcbGz.mjs.map} +1 -1
- package/dist/{rollback-2cyLXEH1.cjs → rollback-Bxq_URgL.cjs} +5 -5
- package/dist/{rollback-2cyLXEH1.cjs.map → rollback-Bxq_URgL.cjs.map} +1 -1
- package/dist/{rollback-DwqZ8zzj.mjs → rollback-JgbAY43C.mjs} +5 -5
- package/dist/{rollback-DwqZ8zzj.mjs.map → rollback-JgbAY43C.mjs.map} +1 -1
- package/dist/{runtime-YyQuekxi.d.mts → runtime-DIZTeGJV.d.cts} +2 -2
- package/dist/{runtime-ACdfK59n.d.cts.map → runtime-DIZTeGJV.d.cts.map} +1 -1
- package/dist/{runtime-ACdfK59n.d.cts → runtime-WMLJY-db.d.mts} +2 -2
- package/dist/{runtime-YyQuekxi.d.mts.map → runtime-WMLJY-db.d.mts.map} +1 -1
- package/dist/{s3-DQXZdmCM.mjs → s3-B4FTQQkV.mjs} +2 -2
- package/dist/{s3-DQXZdmCM.mjs.map → s3-B4FTQQkV.mjs.map} +1 -1
- package/dist/{s3-CrPoA89T.cjs → s3-DwKLXwUT.cjs} +2 -2
- package/dist/{s3-CrPoA89T.cjs.map → s3-DwKLXwUT.cjs.map} +1 -1
- package/dist/{sandbox-CdKgQ3XU.d.cts → sandbox-Co1y2CmF.d.mts} +2 -2
- package/dist/{sandbox-C4g1eG31.d.mts.map → sandbox-Co1y2CmF.d.mts.map} +1 -1
- package/dist/{sandbox-C4g1eG31.d.mts → sandbox-DvNqr6od.d.cts} +2 -2
- package/dist/{sandbox-CdKgQ3XU.d.cts.map → sandbox-DvNqr6od.d.cts.map} +1 -1
- package/dist/{seeds-C2w4UqVP.cjs → seeds-BWC-qjSI.cjs} +11 -5
- package/dist/{seeds-C2w4UqVP.cjs.map → seeds-BWC-qjSI.cjs.map} +1 -1
- package/dist/{seeds-Cwtv-U9-.mjs → seeds-Dv78P9LS.mjs} +6 -6
- package/dist/{seeds-Cwtv-U9-.mjs.map → seeds-Dv78P9LS.mjs.map} +1 -1
- package/dist/{serverSetup-BdFOD93s.cjs → serverSetup-CtV80a5M.cjs} +6 -6
- package/dist/{serverSetup-BdFOD93s.cjs.map → serverSetup-CtV80a5M.cjs.map} +1 -1
- package/dist/{serverSetup-utKsoyGH.mjs → serverSetup-DB6sKwAy.mjs} +6 -6
- package/dist/{serverSetup-utKsoyGH.mjs.map → serverSetup-DB6sKwAy.mjs.map} +1 -1
- package/dist/{sniffer-CF7wNxMo.cjs → sniffer-ctpwBBkT.cjs} +7 -7
- package/dist/{sniffer-CF7wNxMo.cjs.map → sniffer-ctpwBBkT.cjs.map} +1 -1
- package/dist/{sniffer-8C4q6Szd.mjs → sniffer-qDFUQmWP.mjs} +7 -7
- package/dist/{sniffer-8C4q6Szd.mjs.map → sniffer-qDFUQmWP.mjs.map} +1 -1
- package/dist/{stage-BvM_u2z4.mjs → stage-C7lf36az.mjs} +5 -5
- package/dist/{stage-BvM_u2z4.mjs.map → stage-C7lf36az.mjs.map} +1 -1
- package/dist/{stage-DEQJGW3r.cjs → stage-DzALYUwY.cjs} +5 -5
- package/dist/{stage-DEQJGW3r.cjs.map → stage-DzALYUwY.cjs.map} +1 -1
- package/dist/{stages-D4SnG5yl.cjs → stages-B7mCWI_R.cjs} +2 -2
- package/dist/{stages-D4SnG5yl.cjs.map → stages-B7mCWI_R.cjs.map} +1 -1
- package/dist/{stages-Cb9rqRbN.mjs → stages-DSltTW2d.mjs} +2 -2
- package/dist/{stages-Cb9rqRbN.mjs.map → stages-DSltTW2d.mjs.map} +1 -1
- 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-B6UXlEkf.d.cts → types-C8gXOLWL.d.mts} +22 -3
- package/dist/{types-HqVPddRK.d.mts.map → types-C8gXOLWL.d.mts.map} +1 -1
- package/dist/{types-HqVPddRK.d.mts → types-Q2SC_ly2.d.cts} +23 -2
- package/dist/{types-B6UXlEkf.d.cts.map → types-Q2SC_ly2.d.cts.map} +1 -1
- 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-BwqQnool.cjs → workspace-C82GLPnf.cjs} +8 -2
- package/dist/workspace-C82GLPnf.cjs.map +1 -0
- package/dist/{workspace-D1QbNd55.mjs → workspace-DUnnVjqC.mjs} +8 -2
- package/dist/workspace-DUnnVjqC.mjs.map +1 -0
- package/package.json +17 -16
- package/dist/compose-C43c03WZ.mjs.map +0 -1
- package/dist/compose-Mdgea4Yt.cjs.map +0 -1
- package/dist/dns-BIYf20p7.cjs.map +0 -1
- package/dist/dns-agf2VCdV.mjs.map +0 -1
- package/dist/workspace-BwqQnool.cjs.map +0 -1
- package/dist/workspace-D1QbNd55.mjs.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as Sandbox } from "./sandbox-
|
|
1
|
+
import { n as Sandbox } from "./sandbox-Co1y2CmF.mjs";
|
|
2
2
|
import { ConstructManifest, Declaration } from "@geekmidas/manifest";
|
|
3
3
|
//#region src/reconcile/discover.d.ts
|
|
4
4
|
/** The construct face discovery needs: an id, and the ability to declare. */
|
|
@@ -122,4 +122,4 @@ interface ConstructSource {
|
|
|
122
122
|
declare function discover(options: DiscoverOptions): Promise<ConstructManifest>;
|
|
123
123
|
//#endregion
|
|
124
124
|
export { isDeclarable as a, discover as i, ConstructsNotSerializable as n, DiscoverOptions as r, ConstructDiscoveryFailed as t };
|
|
125
|
-
//# sourceMappingURL=discover-
|
|
125
|
+
//# sourceMappingURL=discover-C08meHhu.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover-
|
|
1
|
+
{"version":3,"file":"discover-C08meHhu.d.mts","names":[],"sources":["../src/reconcile/discover.ts"],"mappings":";;;;UAsCU;EACT;EACA,WAAW;;;;;;;;;iBAUI,aAAa,iBAAiB,SAAS;UAYtC;;EAEhB;EACA;;;;;;;EAOA;;;;;;;;;;;;EAYA,UAAU,eAAe;;;;;;;;;;;;EAYzB,YAAY;;;;;;;;;EASZ,aAAa;;;;;;;;;;EAUb,cAAc,eAAe;;;;;;;EAO7B,UAAU;;;UAIM;;EAEhB;;EAEA;;;cA8GY,iCAAiC;WAEnC;WACA;EAFV,YACU,mBACA;;;;;;cAWE,kCAAkC;WACzB;EAArB,YAAqB;;;UAYL;;EAEhB;;EAEA;;;;;;;EAOA;;;;;;;;;;iBAWqB,SACrB,SAAS,kBACP,QAAQ"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as Sandbox } from "./sandbox-
|
|
1
|
+
import { n as Sandbox } from "./sandbox-DvNqr6od.cjs";
|
|
2
2
|
import { ConstructManifest, Declaration } from "@geekmidas/manifest";
|
|
3
3
|
//#region src/reconcile/discover.d.ts
|
|
4
4
|
/** The construct face discovery needs: an id, and the ability to declare. */
|
|
@@ -122,4 +122,4 @@ interface ConstructSource {
|
|
|
122
122
|
declare function discover(options: DiscoverOptions): Promise<ConstructManifest>;
|
|
123
123
|
//#endregion
|
|
124
124
|
export { isDeclarable as a, discover as i, ConstructsNotSerializable as n, DiscoverOptions as r, ConstructDiscoveryFailed as t };
|
|
125
|
-
//# sourceMappingURL=discover-
|
|
125
|
+
//# sourceMappingURL=discover-DipvfWpK.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover-
|
|
1
|
+
{"version":3,"file":"discover-DipvfWpK.d.cts","names":[],"sources":["../src/reconcile/discover.ts"],"mappings":";;;;UAsCU;EACT;EACA,WAAW;;;;;;;;;iBAUI,aAAa,iBAAiB,SAAS;UAYtC;;EAEhB;EACA;;;;;;;EAOA;;;;;;;;;;;;EAYA,UAAU,eAAe;;;;;;;;;;;;EAYzB,YAAY;;;;;;;;;EASZ,aAAa;;;;;;;;;;EAUb,cAAc,eAAe;;;;;;;EAO7B,UAAU;;;UAIM;;EAEhB;;EAEA;;;cA8GY,iCAAiC;WAEnC;WACA;EAFV,YACU,mBACA;;;;;;cAWE,kCAAkC;WACzB;EAArB,YAAqB;;;UAYL;;EAEhB;;EAEA;;;;;;;EAOA;;;;;;;;;;iBAWqB,SACrB,SAAS,kBACP,QAAQ"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
const require_rolldown_runtime = require("./rolldown-runtime-C0BPl7ul.cjs");
|
|
1
2
|
const require_errors = require("./errors-DMC4Umsb.cjs");
|
|
2
|
-
const require_workspace = require("./workspace-
|
|
3
|
-
const require_seeds = require("./seeds-
|
|
3
|
+
const require_workspace = require("./workspace-C82GLPnf.cjs");
|
|
4
|
+
const require_seeds = require("./seeds-BWC-qjSI.cjs");
|
|
5
|
+
const require_derive = require("./derive-DAbo49sm.cjs");
|
|
4
6
|
let node_path = require("node:path");
|
|
5
7
|
let node_fs = require("node:fs");
|
|
6
8
|
let node_net = require("node:net");
|
|
@@ -8,6 +10,8 @@ let node_crypto = require("node:crypto");
|
|
|
8
10
|
let _geekmidas_manifest = require("@geekmidas/manifest");
|
|
9
11
|
let node_module = require("node:module");
|
|
10
12
|
let node_url = require("node:url");
|
|
13
|
+
let bcryptjs = require("bcryptjs");
|
|
14
|
+
bcryptjs = require_rolldown_runtime.__toESM(bcryptjs, 1);
|
|
11
15
|
let node_dns_promises = require("node:dns/promises");
|
|
12
16
|
//#region src/providers/dns.ts
|
|
13
17
|
/** Whether the workspace deploys through the compose target. */
|
|
@@ -319,6 +323,153 @@ function backupsRoleStatements(backups) {
|
|
|
319
323
|
];
|
|
320
324
|
}
|
|
321
325
|
//#endregion
|
|
326
|
+
//#region src/compose/sitePassword.ts
|
|
327
|
+
/**
|
|
328
|
+
* A deployed stage's sites behind a password — `deploy.sitePassword` — so a
|
|
329
|
+
* staging build is not public while it is being tried.
|
|
330
|
+
*
|
|
331
|
+
* The edge asks for it with HTTP basic auth, before a request reaches the
|
|
332
|
+
* site: the browser prompts, and nothing of the site loads until the stage's
|
|
333
|
+
* login is given. The user is the stage's name; the password is generated
|
|
334
|
+
* once per site and kept in the stage's secrets, where one set by hand wins.
|
|
335
|
+
* Only its bcrypt hash reaches the edge's config.
|
|
336
|
+
*
|
|
337
|
+
* Pure.
|
|
338
|
+
*/
|
|
339
|
+
/** `deploy.sitePassword` names something that is not one of the stage's sites. */
|
|
340
|
+
var UnknownPasswordSite = class extends require_errors.GkmError {
|
|
341
|
+
stage;
|
|
342
|
+
site;
|
|
343
|
+
sites;
|
|
344
|
+
constructor(stage, site, sites) {
|
|
345
|
+
super(`deploy.sitePassword.${stage} names '${site}', which is not a site of this workspace. ${sites.length > 0 ? `Its sites: ${sites.map((s) => `'${s}'`).join(", ")}.` : "It declares no site."} Name one of them, or set ${stage}: true for every site.`);
|
|
346
|
+
this.stage = stage;
|
|
347
|
+
this.site = site;
|
|
348
|
+
this.sites = sites;
|
|
349
|
+
this.name = "UnknownPasswordSite";
|
|
350
|
+
}
|
|
351
|
+
};
|
|
352
|
+
/** A site the stage puts behind a password, with none in the stage's secrets. */
|
|
353
|
+
var SitePasswordMissing = class extends require_errors.GkmError {
|
|
354
|
+
stage;
|
|
355
|
+
key;
|
|
356
|
+
constructor(stage, key) {
|
|
357
|
+
super(`deploy.sitePassword puts a site of '${stage}' behind a password, and the stage has no ${key} in its secrets. Run gkm compose --stage ${stage} once to generate it, or set one: gkm secrets:set ${key} '…' --stage ${stage}`);
|
|
358
|
+
this.stage = stage;
|
|
359
|
+
this.key = key;
|
|
360
|
+
this.name = "SitePasswordMissing";
|
|
361
|
+
}
|
|
362
|
+
};
|
|
363
|
+
/**
|
|
364
|
+
* `deploy.sitePassword` names a stage that deploys through a target that
|
|
365
|
+
* cannot ask for a login. Refused rather than ignored: ignored, the stage
|
|
366
|
+
* would be public while its config says it is not.
|
|
367
|
+
*/
|
|
368
|
+
var SitePasswordNeedsCompose = class extends require_errors.GkmError {
|
|
369
|
+
stage;
|
|
370
|
+
target;
|
|
371
|
+
constructor(stage, target) {
|
|
372
|
+
super(`deploy.sitePassword puts '${stage}' behind a password, and it deploys through '${target}', which cannot ask for one yet — only compose does. Remove ${stage} from deploy.sitePassword, or deploy it with compose.`);
|
|
373
|
+
this.stage = stage;
|
|
374
|
+
this.target = target;
|
|
375
|
+
this.name = "SitePasswordNeedsCompose";
|
|
376
|
+
}
|
|
377
|
+
};
|
|
378
|
+
/**
|
|
379
|
+
* @throws {SitePasswordNeedsCompose} where `stage` asks for a site password
|
|
380
|
+
* and `target` is not compose
|
|
381
|
+
*/
|
|
382
|
+
function assertSitePasswordTarget(workspace, stage, target) {
|
|
383
|
+
if (workspace.deploy?.sitePassword?.[stage] && target !== "compose") throw new SitePasswordNeedsCompose(stage, target);
|
|
384
|
+
}
|
|
385
|
+
/** The stage secret a site's password is kept in: `WEB_SITE_PASSWORD`. */
|
|
386
|
+
function sitePasswordKey(site) {
|
|
387
|
+
return `${(0, _geekmidas_manifest.environmentCase)(site)}_SITE_PASSWORD`;
|
|
388
|
+
}
|
|
389
|
+
/** Every site the manifest declares, by app name. */
|
|
390
|
+
function siteNames(manifest) {
|
|
391
|
+
return Object.values(manifest).filter((declaration) => declaration.kind === "site").map((declaration) => require_derive.appKey(declaration.id));
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* The sites `deploy.sitePassword` puts behind a password on `stage`, by app
|
|
395
|
+
* name: every one for `true`, the ones it names otherwise.
|
|
396
|
+
*
|
|
397
|
+
* @throws {UnknownPasswordSite} for a name that is not one of `sites`
|
|
398
|
+
*/
|
|
399
|
+
function passwordSites(workspace, stage, sites) {
|
|
400
|
+
const choice = workspace.deploy?.sitePassword?.[stage];
|
|
401
|
+
if (!choice) return [];
|
|
402
|
+
if (choice === true) return [...sites];
|
|
403
|
+
const chosen = /* @__PURE__ */ new Set();
|
|
404
|
+
for (const name of choice) {
|
|
405
|
+
const site = require_derive.appKey(name);
|
|
406
|
+
if (!sites.includes(site)) throw new UnknownPasswordSite(stage, name, sites);
|
|
407
|
+
chosen.add(site);
|
|
408
|
+
}
|
|
409
|
+
return [...chosen];
|
|
410
|
+
}
|
|
411
|
+
/** A password: 192 random bits, URL-safe, so it is typed or pasted as is. */
|
|
412
|
+
function generateSitePassword() {
|
|
413
|
+
return (0, node_crypto.randomBytes)(24).toString("base64url");
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* The stage's secrets with a generated password for each site, where it has
|
|
417
|
+
* none. Pure, like `withGeneratedSecrets`: the caller keeps the result once
|
|
418
|
+
* the run goes ahead.
|
|
419
|
+
*/
|
|
420
|
+
function withSitePasswords(secrets, sites) {
|
|
421
|
+
const missing = sites.map(sitePasswordKey).filter((key) => !secrets.custom?.[key]);
|
|
422
|
+
if (missing.length === 0) return {
|
|
423
|
+
secrets,
|
|
424
|
+
generated: []
|
|
425
|
+
};
|
|
426
|
+
return {
|
|
427
|
+
secrets: {
|
|
428
|
+
...secrets,
|
|
429
|
+
custom: {
|
|
430
|
+
...secrets.custom,
|
|
431
|
+
...Object.fromEntries(missing.map((key) => [key, generateSitePassword()]))
|
|
432
|
+
},
|
|
433
|
+
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
434
|
+
},
|
|
435
|
+
generated: missing
|
|
436
|
+
};
|
|
437
|
+
}
|
|
438
|
+
/**
|
|
439
|
+
* The login a site is served behind on `stage`.
|
|
440
|
+
*
|
|
441
|
+
* The hash's salt is derived from the password, so the same password always
|
|
442
|
+
* renders the same edge config: a deploy that changed nothing rewrites
|
|
443
|
+
* nothing, and the proxy is not reloaded for it. A per-hash random salt
|
|
444
|
+
* guards against a precomputed table of common passwords; a generated one is
|
|
445
|
+
* 192 random bits, which no table holds.
|
|
446
|
+
*
|
|
447
|
+
* @throws {SitePasswordMissing} where the stage's secrets hold none
|
|
448
|
+
*/
|
|
449
|
+
function siteAuth(stage, site, custom) {
|
|
450
|
+
const key = sitePasswordKey(site);
|
|
451
|
+
const password = custom[key];
|
|
452
|
+
if (!password) throw new SitePasswordMissing(stage, key);
|
|
453
|
+
return {
|
|
454
|
+
user: stage,
|
|
455
|
+
password,
|
|
456
|
+
hash: bcryptjs.default.hashSync(password, saltFor(password)),
|
|
457
|
+
key
|
|
458
|
+
};
|
|
459
|
+
}
|
|
460
|
+
/** bcrypt's own base-64 alphabet, in which a salt is written. */
|
|
461
|
+
const BCRYPT_ALPHABET = "./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
462
|
+
/**
|
|
463
|
+
* A bcrypt salt — `$2a$`, which Caddy and Traefik both read, at cost 10 —
|
|
464
|
+
* derived from the password.
|
|
465
|
+
*/
|
|
466
|
+
function saltFor(password) {
|
|
467
|
+
const digest = (0, node_crypto.createHash)("sha256").update(password).digest();
|
|
468
|
+
let salt = "";
|
|
469
|
+
for (let i = 0; i < 22; i++) salt += BCRYPT_ALPHABET[digest[i] % 64];
|
|
470
|
+
return `$2a$10$${salt}`;
|
|
471
|
+
}
|
|
472
|
+
//#endregion
|
|
322
473
|
//#region src/compose/dns.ts
|
|
323
474
|
/**
|
|
324
475
|
* A compose stage's DNS: the records its public hosts need, and the check that
|
|
@@ -341,10 +492,17 @@ function backupsRoleStatements(backups) {
|
|
|
341
492
|
* resolver. One that is not the server stops the deploy with
|
|
342
493
|
* {@link HostNotPointingAtServer}, before Caddy or Traefik ask Let's Encrypt
|
|
343
494
|
* for a certificate it cannot get — and use up the rate limit trying.
|
|
344
|
-
* - **
|
|
345
|
-
*
|
|
346
|
-
*
|
|
347
|
-
*
|
|
495
|
+
* - **What gkm wrote before** (`diffRecordedDns`, pure): the plan against the
|
|
496
|
+
* records the stage's state says gkm wrote — added, kept, and stale: a
|
|
497
|
+
* host the stage no longer serves, after a domain or an app changed.
|
|
498
|
+
* - **The prune** (`pruneStackDns`): each stale record deleted through its
|
|
499
|
+
* domain's provider, if it still holds the value gkm wrote. One someone
|
|
500
|
+
* pointed elsewhere is left alone; one no provider can delete is printed.
|
|
501
|
+
* - **The step** (`stageDns`): all of it, as every deploy runs it — the plan applied through each provider,
|
|
502
|
+
* what was written read back from the provider, the stale records pruned,
|
|
503
|
+
* and only the hosts no provider wrote resolved publicly. A brand-new name
|
|
504
|
+
* is never looked up before its record exists, so no resolver caches it as
|
|
505
|
+
* missing.
|
|
348
506
|
*/
|
|
349
507
|
/** The line that says how to set the server's address. */
|
|
350
508
|
function serverAddressHint(stage) {
|
|
@@ -536,12 +694,23 @@ function printManual(plan, log, why) {
|
|
|
536
694
|
/** The existing records of every planned name, for the types gkm manages. */
|
|
537
695
|
async function existingRecords(provider, plan) {
|
|
538
696
|
const names = [...new Set(plan.records.map((r) => r.name))];
|
|
539
|
-
|
|
697
|
+
return readRecords(provider, plan.domain, names.flatMap((name) => MANAGED.map((type) => ({
|
|
540
698
|
name,
|
|
541
699
|
type
|
|
542
|
-
})));
|
|
543
|
-
|
|
544
|
-
|
|
700
|
+
}))));
|
|
701
|
+
}
|
|
702
|
+
/** Exactly these names and types, as the provider holds them. */
|
|
703
|
+
async function readRecords(provider, domain, wanted) {
|
|
704
|
+
if (provider.readRecords) return provider.readRecords(domain, wanted);
|
|
705
|
+
return (await provider.getRecords(domain)).filter((r) => wanted.some((w) => w.name === r.name && w.type === r.type));
|
|
706
|
+
}
|
|
707
|
+
/** The provider for a domain's config: `providerFor`, or the real one. */
|
|
708
|
+
function providerResolver(options) {
|
|
709
|
+
return options.providerFor ?? ((config) => require_seeds.createDnsProvider({
|
|
710
|
+
config,
|
|
711
|
+
...options.credentials ? { godaddy: options.credentials } : {},
|
|
712
|
+
...options.hostinger ? { hostinger: options.hostinger } : {}
|
|
713
|
+
}));
|
|
545
714
|
}
|
|
546
715
|
const same = (a, b) => a.trim().replace(/\.$/, "").toLowerCase() === b.trim().replace(/\.$/, "").toLowerCase();
|
|
547
716
|
/**
|
|
@@ -631,11 +800,7 @@ function printChange(change, dryRun, log) {
|
|
|
631
800
|
async function settleStackDns(plan, options = {}) {
|
|
632
801
|
const dryRun = options.dryRun === true;
|
|
633
802
|
const log = options.log ?? ((line) => console.log(line));
|
|
634
|
-
const providerFor = options
|
|
635
|
-
config,
|
|
636
|
-
...options.credentials ? { godaddy: options.credentials } : {},
|
|
637
|
-
...options.hostinger ? { hostinger: options.hostinger } : {}
|
|
638
|
-
}));
|
|
803
|
+
const providerFor = providerResolver(options);
|
|
639
804
|
const changes = [];
|
|
640
805
|
const confirmed = /* @__PURE__ */ new Set();
|
|
641
806
|
const unconfirmed = /* @__PURE__ */ new Set();
|
|
@@ -725,6 +890,110 @@ async function settleStackDns(plan, options = {}) {
|
|
|
725
890
|
unconfirmed: [...unconfirmed].filter((h) => !confirmed.has(h)).sort()
|
|
726
891
|
};
|
|
727
892
|
}
|
|
893
|
+
/** `api.example.com A` — a record's identity, whatever its value. */
|
|
894
|
+
const recordKey = (fqdn, type) => `${fqdn.trim().replace(/\.$/, "").toLowerCase()} ${type.toUpperCase()}`;
|
|
895
|
+
/**
|
|
896
|
+
* The plan against the records gkm wrote for the stage — pure. A record is
|
|
897
|
+
* its full name and its type: one the plan has at another value is kept (the
|
|
898
|
+
* apply updates it), and one whose name or type the plan no longer has is
|
|
899
|
+
* stale — a host the stage stopped serving when its domain or an app changed,
|
|
900
|
+
* or an AAAA once its server has no IPv6 address.
|
|
901
|
+
*/
|
|
902
|
+
function diffRecordedDns(plan, recorded) {
|
|
903
|
+
const planned = plan.domains.flatMap((domain) => domain.records);
|
|
904
|
+
const wanted = new Set(planned.map((r) => recordKey(r.host, r.type)));
|
|
905
|
+
const written = new Set(recorded.map((r) => recordKey(r.fqdn, r.type)));
|
|
906
|
+
return {
|
|
907
|
+
added: planned.filter((r) => !written.has(recordKey(r.host, r.type))),
|
|
908
|
+
kept: planned.filter((r) => written.has(recordKey(r.host, r.type))),
|
|
909
|
+
stale: recorded.filter((r) => !wanted.has(recordKey(r.fqdn, r.type)))
|
|
910
|
+
};
|
|
911
|
+
}
|
|
912
|
+
/**
|
|
913
|
+
* Each stale record deleted through its domain's provider — only where the
|
|
914
|
+
* provider still holds exactly the value gkm wrote, so a name someone has
|
|
915
|
+
* since pointed elsewhere is never taken from them. Where no provider can
|
|
916
|
+
* read and delete it — a `manual` domain, one gone from `dns`, a key that
|
|
917
|
+
* can only write — it is printed for a person to remove. A dry run reads
|
|
918
|
+
* and prints, and deletes nothing.
|
|
919
|
+
*/
|
|
920
|
+
async function pruneStackDns(stale, options) {
|
|
921
|
+
if (stale.length === 0) return [];
|
|
922
|
+
const dryRun = options.dryRun === true;
|
|
923
|
+
const log = options.log ?? ((line) => console.log(line));
|
|
924
|
+
const providerFor = providerResolver(options);
|
|
925
|
+
const dns = options.dns ? require_seeds.normalizeDnsConfig(options.dns) : {};
|
|
926
|
+
const byDomain = /* @__PURE__ */ new Map();
|
|
927
|
+
for (const record of stale) byDomain.set(record.domain, [...byDomain.get(record.domain) ?? [], record]);
|
|
928
|
+
log(` No longer served by '${options.stage}':`);
|
|
929
|
+
const pruned = [];
|
|
930
|
+
const byHand = (domain, records, why) => {
|
|
931
|
+
log(` ${domain}: ${why} — remove these records at its DNS host:`);
|
|
932
|
+
for (const record of records) {
|
|
933
|
+
log(` ${record.fqdn.padEnd(32)} ${record.type.padEnd(5)} ${record.value}`);
|
|
934
|
+
pruned.push({
|
|
935
|
+
record,
|
|
936
|
+
action: "manual"
|
|
937
|
+
});
|
|
938
|
+
}
|
|
939
|
+
};
|
|
940
|
+
for (const [domain, records] of byDomain) {
|
|
941
|
+
const config = dns[domain];
|
|
942
|
+
if (!config) {
|
|
943
|
+
byHand(domain, records, "no longer in dns");
|
|
944
|
+
continue;
|
|
945
|
+
}
|
|
946
|
+
const provider = providerName(config) === "manual" ? null : await providerFor(config);
|
|
947
|
+
if (!provider) {
|
|
948
|
+
byHand(domain, records, "manual");
|
|
949
|
+
continue;
|
|
950
|
+
}
|
|
951
|
+
let existing;
|
|
952
|
+
try {
|
|
953
|
+
existing = await readRecords(provider, domain, records.map((r) => ({
|
|
954
|
+
name: r.name,
|
|
955
|
+
type: r.type
|
|
956
|
+
})));
|
|
957
|
+
} catch (error) {
|
|
958
|
+
if (!(error instanceof require_seeds.DnsRecordsUnreadable)) throw error;
|
|
959
|
+
byHand(domain, records, `the ${provider.name} key cannot read its records, so none is deleted unchecked`);
|
|
960
|
+
continue;
|
|
961
|
+
}
|
|
962
|
+
const would = dryRun ? "would " : "";
|
|
963
|
+
const deletes = [];
|
|
964
|
+
for (const record of records) {
|
|
965
|
+
const host = record.fqdn.padEnd(32);
|
|
966
|
+
const type = record.type.padEnd(5);
|
|
967
|
+
const found = existing.find((r) => r.name === record.name && r.type === record.type)?.values ?? [];
|
|
968
|
+
if (found.length === 0) {
|
|
969
|
+
log(` · ${host} ${type} already gone`);
|
|
970
|
+
pruned.push({
|
|
971
|
+
record,
|
|
972
|
+
action: "gone"
|
|
973
|
+
});
|
|
974
|
+
} else if (found.length === 1 && same(found[0], record.value)) {
|
|
975
|
+
log(` - ${host} ${type} ${record.value} — ${would}delete`);
|
|
976
|
+
deletes.push({
|
|
977
|
+
record,
|
|
978
|
+
action: "delete"
|
|
979
|
+
});
|
|
980
|
+
} else {
|
|
981
|
+
log(` ⚠ ${host} ${type} ${found.join(", ")} — pointed elsewhere since gkm wrote ${record.value}; left as it is`);
|
|
982
|
+
pruned.push({
|
|
983
|
+
record,
|
|
984
|
+
action: "changed",
|
|
985
|
+
found
|
|
986
|
+
});
|
|
987
|
+
}
|
|
988
|
+
}
|
|
989
|
+
if (!dryRun && deletes.length > 0) await provider.deleteRecords(domain, deletes.map(({ record }) => ({
|
|
990
|
+
name: record.name,
|
|
991
|
+
type: record.type
|
|
992
|
+
})));
|
|
993
|
+
pruned.push(...deletes);
|
|
994
|
+
}
|
|
995
|
+
return pruned;
|
|
996
|
+
}
|
|
728
997
|
/** The system resolver: what the server's own clients would be told. */
|
|
729
998
|
const systemLookup = async (host) => {
|
|
730
999
|
return (await (0, node_dns_promises.lookup)(host, { all: true })).map((a) => a.address);
|
|
@@ -867,8 +1136,9 @@ async function dnsCredentials(stage, domains, credentials) {
|
|
|
867
1136
|
/**
|
|
868
1137
|
* A stage's DNS, as every deploy runs it: the
|
|
869
1138
|
* stage's own hosts planned, written through each domain's provider where
|
|
870
|
-
* they differ, and read back from it
|
|
871
|
-
*
|
|
1139
|
+
* they differ, and read back from it — and each record gkm wrote for a host
|
|
1140
|
+
* the stage no longer serves found, for `prune` to delete. Only A, AAAA and CNAME records of those
|
|
1141
|
+
* names are touched; nothing is a wildcard, and no other name is read,
|
|
872
1142
|
* written or deleted. What no provider confirms — a `manual` domain, a host
|
|
873
1143
|
* under no domain in `dns`, a key that cannot read — is resolved publicly.
|
|
874
1144
|
* A dry run prints the plan and writes nothing.
|
|
@@ -886,16 +1156,17 @@ async function stageDns(input) {
|
|
|
886
1156
|
server,
|
|
887
1157
|
dns: input.dns
|
|
888
1158
|
});
|
|
889
|
-
const
|
|
1159
|
+
const recorded = diffRecordedDns(plan, input.recorded ?? []);
|
|
1160
|
+
const dns = input.dns ? require_seeds.normalizeDnsConfig(input.dns) : {};
|
|
1161
|
+
const staleDomains = [...new Set(recorded.stale.map((r) => r.domain))].filter((domain) => dns[domain] && !plan.domains.some((d) => d.domain === domain)).map((domain) => ({
|
|
1162
|
+
domain,
|
|
1163
|
+
config: dns[domain]
|
|
1164
|
+
}));
|
|
1165
|
+
const tokens = await dnsCredentials(stage, [...plan.domains.map(({ domain, config }) => ({
|
|
890
1166
|
domain,
|
|
891
1167
|
config
|
|
892
|
-
})), input.credentials);
|
|
893
|
-
const
|
|
894
|
-
changes: [],
|
|
895
|
-
confirmed: [],
|
|
896
|
-
unconfirmed: [...plan.uncovered]
|
|
897
|
-
} : await settleStackDns(plan, {
|
|
898
|
-
...input.dryRun ? { dryRun: true } : { confirm: true },
|
|
1168
|
+
})), ...staleDomains], input.credentials);
|
|
1169
|
+
const providers = {
|
|
899
1170
|
log,
|
|
900
1171
|
credentials: {
|
|
901
1172
|
...input.godaddy ?? {},
|
|
@@ -904,6 +1175,22 @@ async function stageDns(input) {
|
|
|
904
1175
|
},
|
|
905
1176
|
...tokens.hostinger ? { hostinger: tokens.hostinger } : {},
|
|
906
1177
|
...input.providerFor ? { providerFor: input.providerFor } : {}
|
|
1178
|
+
};
|
|
1179
|
+
const applied = !input.dns ? {
|
|
1180
|
+
changes: [],
|
|
1181
|
+
confirmed: [],
|
|
1182
|
+
unconfirmed: [...plan.uncovered]
|
|
1183
|
+
} : await settleStackDns(plan, {
|
|
1184
|
+
...input.dryRun ? { dryRun: true } : { confirm: true },
|
|
1185
|
+
...providers
|
|
1186
|
+
});
|
|
1187
|
+
const deleted = new Set(applied.changes.filter((c) => c.action === "delete").map((c) => recordKey(fullName(c.domain, c.name), c.type)));
|
|
1188
|
+
const stale = recorded.stale.filter((r) => !deleted.has(recordKey(r.fqdn, r.type)));
|
|
1189
|
+
const prune = () => pruneStackDns(stale, {
|
|
1190
|
+
stage,
|
|
1191
|
+
dns: input.dns,
|
|
1192
|
+
...input.dryRun ? { dryRun: true } : {},
|
|
1193
|
+
...providers
|
|
907
1194
|
});
|
|
908
1195
|
let resolved = [];
|
|
909
1196
|
if (applied.unconfirmed.length > 0) resolved = await checkStackDns({
|
|
@@ -917,7 +1204,9 @@ async function stageDns(input) {
|
|
|
917
1204
|
plan,
|
|
918
1205
|
changes: applied.changes,
|
|
919
1206
|
confirmed: applied.confirmed,
|
|
920
|
-
resolved
|
|
1207
|
+
resolved,
|
|
1208
|
+
recorded,
|
|
1209
|
+
prune
|
|
921
1210
|
};
|
|
922
1211
|
}
|
|
923
1212
|
//#endregion
|
|
@@ -945,6 +1234,12 @@ Object.defineProperty(exports, "RUNNER_PATH", {
|
|
|
945
1234
|
return RUNNER_PATH;
|
|
946
1235
|
}
|
|
947
1236
|
});
|
|
1237
|
+
Object.defineProperty(exports, "assertSitePasswordTarget", {
|
|
1238
|
+
enumerable: true,
|
|
1239
|
+
get: function() {
|
|
1240
|
+
return assertSitePasswordTarget;
|
|
1241
|
+
}
|
|
1242
|
+
});
|
|
948
1243
|
Object.defineProperty(exports, "backupDatabases", {
|
|
949
1244
|
enumerable: true,
|
|
950
1245
|
get: function() {
|
|
@@ -999,6 +1294,12 @@ Object.defineProperty(exports, "isLocalHost", {
|
|
|
999
1294
|
return isLocalHost;
|
|
1000
1295
|
}
|
|
1001
1296
|
});
|
|
1297
|
+
Object.defineProperty(exports, "passwordSites", {
|
|
1298
|
+
enumerable: true,
|
|
1299
|
+
get: function() {
|
|
1300
|
+
return passwordSites;
|
|
1301
|
+
}
|
|
1302
|
+
});
|
|
1002
1303
|
Object.defineProperty(exports, "requiredServerAddress", {
|
|
1003
1304
|
enumerable: true,
|
|
1004
1305
|
get: function() {
|
|
@@ -1017,6 +1318,18 @@ Object.defineProperty(exports, "serverAddressHint", {
|
|
|
1017
1318
|
return serverAddressHint;
|
|
1018
1319
|
}
|
|
1019
1320
|
});
|
|
1321
|
+
Object.defineProperty(exports, "siteAuth", {
|
|
1322
|
+
enumerable: true,
|
|
1323
|
+
get: function() {
|
|
1324
|
+
return siteAuth;
|
|
1325
|
+
}
|
|
1326
|
+
});
|
|
1327
|
+
Object.defineProperty(exports, "siteNames", {
|
|
1328
|
+
enumerable: true,
|
|
1329
|
+
get: function() {
|
|
1330
|
+
return siteNames;
|
|
1331
|
+
}
|
|
1332
|
+
});
|
|
1020
1333
|
Object.defineProperty(exports, "stackBackups", {
|
|
1021
1334
|
enumerable: true,
|
|
1022
1335
|
get: function() {
|
|
@@ -1053,5 +1366,11 @@ Object.defineProperty(exports, "systemLookup", {
|
|
|
1053
1366
|
return systemLookup;
|
|
1054
1367
|
}
|
|
1055
1368
|
});
|
|
1369
|
+
Object.defineProperty(exports, "withSitePasswords", {
|
|
1370
|
+
enumerable: true,
|
|
1371
|
+
get: function() {
|
|
1372
|
+
return withSitePasswords;
|
|
1373
|
+
}
|
|
1374
|
+
});
|
|
1056
1375
|
|
|
1057
|
-
//# sourceMappingURL=dns-
|
|
1376
|
+
//# sourceMappingURL=dns-Bmnuttja.cjs.map
|