@geekmidas/cli 10.0.0-alpha.65 → 10.0.0-alpha.67
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/README.md +123 -177
- package/dist/{HostingerProvider-x9gQTAGZ.mjs → HostingerProvider-D85ayzTi.mjs} +4 -4
- package/dist/HostingerProvider-D85ayzTi.mjs.map +1 -0
- package/dist/{HostingerProvider-Dlmbfass.cjs → HostingerProvider-dxkwynSs.cjs} +4 -4
- package/dist/HostingerProvider-dxkwynSs.cjs.map +1 -0
- package/dist/{LegacyStateStore-BGoo__sO.cjs → LegacyStateStore-BZiO9-Lw.cjs} +2 -2
- package/dist/{LegacyStateStore-BGoo__sO.cjs.map → LegacyStateStore-BZiO9-Lw.cjs.map} +1 -1
- package/dist/{LegacyStateStore-BUu1nQ5u.mjs → LegacyStateStore-C39UKwmf.mjs} +2 -2
- package/dist/{LegacyStateStore-BUu1nQ5u.mjs.map → LegacyStateStore-C39UKwmf.mjs.map} +1 -1
- package/dist/{LocalStateStore-93urXyQe.cjs → LocalStateStore-DHVsZLyF.cjs} +2 -2
- package/dist/{LocalStateStore-93urXyQe.cjs.map → LocalStateStore-DHVsZLyF.cjs.map} +1 -1
- package/dist/{LocalStateStore-BRhMQRuy.mjs → LocalStateStore-Dk3Wbvzk.mjs} +2 -2
- package/dist/{LocalStateStore-BRhMQRuy.mjs.map → LocalStateStore-Dk3Wbvzk.mjs.map} +1 -1
- package/dist/{OpenApiTsGenerator-BWuDRHe9.cjs → OpenApiTsGenerator-B2zrdyP4.cjs} +2 -2
- package/dist/{OpenApiTsGenerator-BWuDRHe9.cjs.map → OpenApiTsGenerator-B2zrdyP4.cjs.map} +1 -1
- package/dist/{OpenApiTsGenerator-C6v-IeHt.mjs → OpenApiTsGenerator-BmUAcR7d.mjs} +2 -2
- package/dist/{OpenApiTsGenerator-C6v-IeHt.mjs.map → OpenApiTsGenerator-BmUAcR7d.mjs.map} +1 -1
- package/dist/{Route53Provider-DVILBsvV.cjs → Route53Provider-Bllus2NR.cjs} +2 -2
- package/dist/Route53Provider-Bllus2NR.cjs.map +1 -0
- package/dist/{Route53Provider-Cvj40A8I.mjs → Route53Provider-QXxjkZO1.mjs} +2 -2
- package/dist/Route53Provider-QXxjkZO1.mjs.map +1 -0
- package/dist/{S3StateStore-F4dxw6kS.cjs → S3StateStore--4tYVMAL.cjs} +2 -2
- package/dist/{S3StateStore-F4dxw6kS.cjs.map → S3StateStore--4tYVMAL.cjs.map} +1 -1
- package/dist/{S3StateStore-pw1GhWwt.mjs → S3StateStore-B_ZF9eHt.mjs} +2 -2
- package/dist/{S3StateStore-pw1GhWwt.mjs.map → S3StateStore-B_ZF9eHt.mjs.map} +1 -1
- package/dist/{SSMStateStore-Bt9acuAF.cjs → SSMStateStore-ACZ8hRvZ.cjs} +2 -2
- package/dist/{SSMStateStore-Bt9acuAF.cjs.map → SSMStateStore-ACZ8hRvZ.cjs.map} +1 -1
- package/dist/{SSMStateStore-Dmj7zzFO.mjs → SSMStateStore-DjPuKqrm.mjs} +2 -2
- package/dist/{SSMStateStore-Dmj7zzFO.mjs.map → SSMStateStore-DjPuKqrm.mjs.map} +1 -1
- package/dist/{backup-provisioner-DIVCbfee.mjs → backup-provisioner-C8DnCmxK.mjs} +2 -2
- package/dist/backup-provisioner-C8DnCmxK.mjs.map +1 -0
- package/dist/{backup-provisioner-BmhIO_Yr.cjs → backup-provisioner-oDEsPj02.cjs} +2 -2
- package/dist/backup-provisioner-oDEsPj02.cjs.map +1 -0
- package/dist/{bundler-D_14JLZF.mjs → bundler-Bq3HaLOZ.mjs} +20 -5
- package/dist/bundler-Bq3HaLOZ.mjs.map +1 -0
- package/dist/{bundler-D6MlIfBT.cjs → bundler-pyLj-gS0.cjs} +20 -5
- package/dist/bundler-pyLj-gS0.cjs.map +1 -0
- package/dist/{cli-P56vvrDQ.mjs → cli-C2Tjbn27.mjs} +6 -5
- package/dist/cli-C2Tjbn27.mjs.map +1 -0
- package/dist/{cli-BfH1deAT.cjs → cli-DR7B2_fX.cjs} +6 -5
- package/dist/cli-DR7B2_fX.cjs.map +1 -0
- package/dist/{compose-391oEKj1.cjs → compose-5oNHAKNT.cjs} +137 -667
- package/dist/compose-5oNHAKNT.cjs.map +1 -0
- package/dist/{compose-DprE3ASm.mjs → compose-BjToENzG.mjs} +130 -569
- package/dist/compose-BjToENzG.mjs.map +1 -0
- package/dist/{config-V_X_BMpm.d.cts → config-4XFxX1al.d.cts} +3 -3
- package/dist/{config-BonvTW8p.d.mts.map → config-4XFxX1al.d.cts.map} +1 -1
- package/dist/{config-BonvTW8p.d.mts → config-UtKzhpFb.d.mts} +3 -3
- package/dist/{config-V_X_BMpm.d.cts.map → config-UtKzhpFb.d.mts.map} +1 -1
- package/dist/config.cjs +3 -3
- package/dist/config.d.cts +3 -3
- package/dist/config.d.mts +3 -3
- package/dist/config.mjs +3 -3
- package/dist/{credentials-Bzbg23n8.cjs → credentials-BVs7mrtw.cjs} +239 -3
- package/dist/credentials-BVs7mrtw.cjs.map +1 -0
- package/dist/{credentials-Dq1MnWQf.mjs → credentials-pAtB70k3.mjs} +223 -5
- package/dist/credentials-pAtB70k3.mjs.map +1 -0
- package/dist/databases-C2p5LGAp.cjs +419 -0
- package/dist/databases-C2p5LGAp.cjs.map +1 -0
- package/dist/databases-hUHTuwhx.mjs +346 -0
- package/dist/databases-hUHTuwhx.mjs.map +1 -0
- package/dist/deploy/public.cjs +37 -28
- package/dist/deploy/public.cjs.map +1 -1
- package/dist/deploy/public.d.cts +136 -19
- package/dist/deploy/public.d.cts.map +1 -1
- package/dist/deploy/public.d.mts +136 -19
- package/dist/deploy/public.d.mts.map +1 -1
- package/dist/deploy/public.mjs +11 -11
- package/dist/deploy-BucRfbvX.cjs +511 -0
- package/dist/deploy-BucRfbvX.cjs.map +1 -0
- package/dist/deploy-DRAwTG72.mjs +488 -0
- package/dist/deploy-DRAwTG72.mjs.map +1 -0
- package/dist/{discover-LMrqsWSU.mjs → discover-BFoJWKGD.mjs} +4 -2
- package/dist/discover-BFoJWKGD.mjs.map +1 -0
- package/dist/{discover-DHdECueV.cjs → discover-OEfZ9OkA.cjs} +4 -2
- package/dist/discover-OEfZ9OkA.cjs.map +1 -0
- package/dist/dokploy-DIt1IZl1.mjs +38 -0
- package/dist/dokploy-DIt1IZl1.mjs.map +1 -0
- package/dist/dokploy-m345Zx02.cjs +38 -0
- package/dist/dokploy-m345Zx02.cjs.map +1 -0
- package/dist/{encryption-DF_hgIpl.mjs → encryption-Ccbahik7.mjs} +3 -5
- package/dist/{encryption-DF_hgIpl.mjs.map → encryption-Ccbahik7.mjs.map} +1 -1
- package/dist/{encryption-B1wJwgae.cjs → encryption-rZ3BghXy.cjs} +5 -7
- package/dist/{encryption-B1wJwgae.cjs.map → encryption-rZ3BghXy.cjs.map} +1 -1
- package/dist/{deploy-Cy8igpQF.cjs → engine-Cx_dvx9q.cjs} +1491 -1260
- package/dist/engine-Cx_dvx9q.cjs.map +1 -0
- package/dist/{deploy-CZ5nlpsu.mjs → engine-Gs0abjuj.mjs} +1450 -1261
- package/dist/engine-Gs0abjuj.mjs.map +1 -0
- package/dist/{github-B0YYE98x.mjs → github-CJANTYqi.mjs} +3 -3
- package/dist/{github-B0YYE98x.mjs.map → github-CJANTYqi.mjs.map} +1 -1
- package/dist/{github-CYcmTdFs.cjs → github-CrcGFkfD.cjs} +7 -7
- package/dist/{github-CYcmTdFs.cjs.map → github-CrcGFkfD.cjs.map} +1 -1
- package/dist/{index-DPUAGJaK.d.cts → index-CyApaHVe.d.cts} +2 -2
- package/dist/{index-DPUAGJaK.d.cts.map → index-CyApaHVe.d.cts.map} +1 -1
- package/dist/{index-DwKD_8lt.d.mts → index-DD1FfUHh.d.mts} +2 -2
- package/dist/{index-DwKD_8lt.d.mts.map → index-DD1FfUHh.d.mts.map} +1 -1
- package/dist/index.cjs +285 -91
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +258 -68
- package/dist/index.mjs.map +1 -1
- package/dist/{migrate-q4pPAXtO.cjs → migrate-CQdSpttI.cjs} +16 -16
- package/dist/{migrate-q4pPAXtO.cjs.map → migrate-CQdSpttI.cjs.map} +1 -1
- package/dist/{migrate-B2qL5wj4.mjs → migrate-DCVo5gLS.mjs} +6 -6
- package/dist/{migrate-B2qL5wj4.mjs.map → migrate-DCVo5gLS.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/provider-B3Sv_a74.cjs +173 -0
- package/dist/provider-B3Sv_a74.cjs.map +1 -0
- package/dist/provider-D7rQzzzf.mjs +138 -0
- package/dist/provider-D7rQzzzf.mjs.map +1 -0
- package/dist/{ready-bQfu9GES.mjs → ready-2s3-CndS.mjs} +3 -3
- package/dist/{ready-bQfu9GES.mjs.map → ready-2s3-CndS.mjs.map} +1 -1
- package/dist/{ready-brEhh68f.cjs → ready-B6uHr4sm.cjs} +3 -3
- package/dist/{ready-brEhh68f.cjs.map → ready-B6uHr4sm.cjs.map} +1 -1
- package/dist/reconcile/public.cjs +1 -1
- package/dist/reconcile/public.d.cts +1 -1
- package/dist/reconcile/public.d.mts +1 -1
- package/dist/reconcile/public.mjs +1 -1
- package/dist/{resolve-N_i4XNd-.cjs → resolve-BexmDcsN.cjs} +4 -4
- package/dist/{resolve-N_i4XNd-.cjs.map → resolve-BexmDcsN.cjs.map} +1 -1
- package/dist/{resolve-DLkIXTct.mjs → resolve-DhZgtvZe.mjs} +4 -4
- package/dist/{resolve-DLkIXTct.mjs.map → resolve-DhZgtvZe.mjs.map} +1 -1
- package/dist/rollback-BnY7KuG_.cjs +161 -0
- package/dist/rollback-BnY7KuG_.cjs.map +1 -0
- package/dist/rollback-m4Yeym5x.mjs +132 -0
- package/dist/rollback-m4Yeym5x.mjs.map +1 -0
- package/dist/run-BJLIerMM.mjs +133 -0
- package/dist/run-BJLIerMM.mjs.map +1 -0
- package/dist/run-fVZ-rLnc.cjs +174 -0
- package/dist/run-fVZ-rLnc.cjs.map +1 -0
- package/dist/{runtime-BnD7Nn96.d.cts → runtime-BRqFOvPM.d.cts} +2 -2
- package/dist/{runtime-BnD7Nn96.d.cts.map → runtime-BRqFOvPM.d.cts.map} +1 -1
- package/dist/{runtime-j-tmFL65.d.mts → runtime-CEk5n4VH.d.mts} +2 -2
- package/dist/{runtime-j-tmFL65.d.mts.map → runtime-CEk5n4VH.d.mts.map} +1 -1
- package/dist/sandbox/discover-worker.cjs +1 -1
- package/dist/sandbox/discover-worker.mjs +1 -1
- package/dist/sandbox/migrate-worker.cjs +61 -0
- package/dist/sandbox/migrate-worker.cjs.map +1 -0
- package/dist/sandbox/migrate-worker.d.cts +1 -0
- package/dist/sandbox/migrate-worker.d.mts +1 -0
- package/dist/sandbox/migrate-worker.mjs +62 -0
- package/dist/sandbox/migrate-worker.mjs.map +1 -0
- package/dist/{schemas-D2LCF689.mjs → schemas-Cfhtpdo0.mjs} +10 -2
- package/dist/{schemas-Ckm_aBnF.cjs.map → schemas-Cfhtpdo0.mjs.map} +1 -1
- package/dist/{schemas-Ckm_aBnF.cjs → schemas-RUlKHu27.cjs} +15 -1
- package/dist/{schemas-D2LCF689.mjs.map → schemas-RUlKHu27.cjs.map} +1 -1
- package/dist/{sniffer-BZ-OJO4Y.mjs → sniffer-BdFeLSmA.mjs} +97 -600
- package/dist/sniffer-BdFeLSmA.mjs.map +1 -0
- package/dist/{sniffer-BSwaL-dX.cjs → sniffer-D66HIvi9.cjs} +110 -674
- package/dist/sniffer-D66HIvi9.cjs.map +1 -0
- package/dist/{sst-B2HbrDR3.mjs → sst-DRi3H5TB.mjs} +3 -3
- package/dist/{sst-B2HbrDR3.mjs.map → sst-DRi3H5TB.mjs.map} +1 -1
- package/dist/{sst-DcfsVH6x.cjs → sst-hBrKouBy.cjs} +5 -5
- package/dist/{sst-DcfsVH6x.cjs.map → sst-hBrKouBy.cjs.map} +1 -1
- package/dist/{state-DF26e_lo.cjs → state-DgmM4EKq.cjs} +2787 -1890
- package/dist/state-DgmM4EKq.cjs.map +1 -0
- package/dist/{state-B8YwmUZU.mjs → state-DkUStoqJ.mjs} +2813 -2084
- package/dist/state-DkUStoqJ.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/{terminal-CfbiYUbZ.mjs → terminal-C3cv-OQu.mjs} +5 -5
- package/dist/{terminal-CfbiYUbZ.mjs.map → terminal-C3cv-OQu.mjs.map} +1 -1
- package/dist/{terminal-Bs5E1oxm.cjs → terminal-DjzgLu6m.cjs} +12 -16
- package/dist/{terminal-Bs5E1oxm.cjs.map → terminal-DjzgLu6m.cjs.map} +1 -1
- package/dist/{types-ByMWkXKP.d.cts → types-CSw2w69a.d.mts} +68 -10
- package/dist/types-CSw2w69a.d.mts.map +1 -0
- package/dist/{types-BCzMWBb6.d.mts → types-D5WIxRDP.d.cts} +69 -9
- package/dist/types-D5WIxRDP.d.cts.map +1 -0
- package/dist/vitest.cjs +1 -1
- package/dist/vitest.mjs +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-C06_pW4g.mjs → workspace-Be6uBhlF.mjs} +10 -3
- package/dist/workspace-Be6uBhlF.mjs.map +1 -0
- package/dist/{workspace-BewAHZIo.cjs → workspace-ON-bqiJz.cjs} +10 -3
- package/dist/workspace-ON-bqiJz.cjs.map +1 -0
- package/package.json +13 -13
- package/dist/HostingerProvider-Dlmbfass.cjs.map +0 -1
- package/dist/HostingerProvider-x9gQTAGZ.mjs.map +0 -1
- package/dist/Route53Provider-Cvj40A8I.mjs.map +0 -1
- package/dist/Route53Provider-DVILBsvV.cjs.map +0 -1
- package/dist/backup-provisioner-BmhIO_Yr.cjs.map +0 -1
- package/dist/backup-provisioner-DIVCbfee.mjs.map +0 -1
- package/dist/bundler-D6MlIfBT.cjs.map +0 -1
- package/dist/bundler-D_14JLZF.mjs.map +0 -1
- package/dist/cli-BfH1deAT.cjs.map +0 -1
- package/dist/cli-P56vvrDQ.mjs.map +0 -1
- package/dist/compose-391oEKj1.cjs.map +0 -1
- package/dist/compose-DprE3ASm.mjs.map +0 -1
- package/dist/credentials-Bzbg23n8.cjs.map +0 -1
- package/dist/credentials-Dq1MnWQf.mjs.map +0 -1
- package/dist/deploy-9MBG_QLd.mjs +0 -137
- package/dist/deploy-9MBG_QLd.mjs.map +0 -1
- package/dist/deploy-B80idPUZ.cjs +0 -142
- package/dist/deploy-B80idPUZ.cjs.map +0 -1
- package/dist/deploy-CZ5nlpsu.mjs.map +0 -1
- package/dist/deploy-Cy8igpQF.cjs.map +0 -1
- package/dist/discover-DHdECueV.cjs.map +0 -1
- package/dist/discover-LMrqsWSU.mjs.map +0 -1
- package/dist/dokploy-BdtBePjp.mjs +0 -32
- package/dist/dokploy-BdtBePjp.mjs.map +0 -1
- package/dist/dokploy-iFY8MY-L.cjs +0 -32
- package/dist/dokploy-iFY8MY-L.cjs.map +0 -1
- package/dist/local-BdH4XN0E.cjs +0 -409
- package/dist/local-BdH4XN0E.cjs.map +0 -1
- package/dist/local-CWR4Y_kW.mjs +0 -350
- package/dist/local-CWR4Y_kW.mjs.map +0 -1
- package/dist/sniffer-BSwaL-dX.cjs.map +0 -1
- package/dist/sniffer-BZ-OJO4Y.mjs.map +0 -1
- package/dist/state-B8YwmUZU.mjs.map +0 -1
- package/dist/state-DF26e_lo.cjs.map +0 -1
- package/dist/storage-BzaUxmqe.mjs +0 -124
- package/dist/storage-BzaUxmqe.mjs.map +0 -1
- package/dist/storage-CSGoC3bK.cjs +0 -152
- package/dist/storage-CSGoC3bK.cjs.map +0 -1
- package/dist/store-CJF1Tqkq.cjs +0 -510
- package/dist/store-CJF1Tqkq.cjs.map +0 -1
- package/dist/store-CLiHnqOY.mjs +0 -415
- package/dist/store-CLiHnqOY.mjs.map +0 -1
- package/dist/types-BCzMWBb6.d.mts.map +0 -1
- package/dist/types-ByMWkXKP.d.cts.map +0 -1
- package/dist/workspace-BewAHZIo.cjs.map +0 -1
- package/dist/workspace-C06_pW4g.mjs.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,27 +1,28 @@
|
|
|
1
1
|
#!/usr/bin/env -S npx tsx
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const require_rolldown_runtime = require("./rolldown-runtime-C0BPl7ul.cjs");
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const require_discover = require("./discover-DHdECueV.cjs");
|
|
4
|
+
const require_run = require("./run-fVZ-rLnc.cjs");
|
|
5
|
+
const require_credentials = require("./credentials-BVs7mrtw.cjs");
|
|
6
|
+
const require_discover = require("./discover-OEfZ9OkA.cjs");
|
|
8
7
|
const require_derive = require("./derive-DAbo49sm.cjs");
|
|
9
|
-
const require_workspace = require("./workspace-
|
|
8
|
+
const require_workspace = require("./workspace-ON-bqiJz.cjs");
|
|
10
9
|
const require_config = require("./config.cjs");
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const require_OpenApiTsGenerator = require("./OpenApiTsGenerator-BWuDRHe9.cjs");
|
|
10
|
+
const require_state = require("./state-DgmM4EKq.cjs");
|
|
11
|
+
const require_OpenApiTsGenerator = require("./OpenApiTsGenerator-B2zrdyP4.cjs");
|
|
12
|
+
const require_sniffer = require("./sniffer-D66HIvi9.cjs");
|
|
15
13
|
const require_openapi = require("./openapi.cjs");
|
|
16
14
|
const require_appPorts = require("./appPorts-Cu79hJF6.cjs");
|
|
17
|
-
const require_ready = require("./ready-
|
|
15
|
+
const require_ready = require("./ready-B6uHr4sm.cjs");
|
|
18
16
|
const require_emit = require("./emit-Dmc1nvdS.cjs");
|
|
19
|
-
const require_deploy = require("./deploy-
|
|
20
|
-
const require_compose = require("./compose-
|
|
21
|
-
const require_LocalStateStore = require("./LocalStateStore-
|
|
17
|
+
const require_deploy = require("./deploy-BucRfbvX.cjs");
|
|
18
|
+
const require_compose = require("./compose-5oNHAKNT.cjs");
|
|
19
|
+
const require_LocalStateStore = require("./LocalStateStore-DHVsZLyF.cjs");
|
|
22
20
|
const require_utils = require("./utils-D2Nk1Nv2.cjs");
|
|
23
21
|
let node_path = require("node:path");
|
|
24
22
|
let commander = require("commander");
|
|
23
|
+
let node_process = require("node:process");
|
|
24
|
+
let node_readline_promises = require("node:readline/promises");
|
|
25
|
+
node_readline_promises = require_rolldown_runtime.__toESM(node_readline_promises, 1);
|
|
25
26
|
let node_fs = require("node:fs");
|
|
26
27
|
let node_fs_promises = require("node:fs/promises");
|
|
27
28
|
let node_os = require("node:os");
|
|
@@ -51,7 +52,192 @@ let _geekmidas_constructs_functions = require("@geekmidas/constructs/functions")
|
|
|
51
52
|
let _geekmidas_constructs_queue = require("@geekmidas/constructs/queue");
|
|
52
53
|
let _geekmidas_constructs_topic = require("@geekmidas/constructs/topic");
|
|
53
54
|
//#region package.json
|
|
54
|
-
var version = "10.0.0-alpha.
|
|
55
|
+
var version = "10.0.0-alpha.67";
|
|
56
|
+
//#endregion
|
|
57
|
+
//#region src/prompt.ts
|
|
58
|
+
/**
|
|
59
|
+
* Asking the person at the terminal.
|
|
60
|
+
*
|
|
61
|
+
* CLI layer only: a command's action may prompt, nothing it calls may. A
|
|
62
|
+
* library call (`deploy()`) that needs something it was not given raises a
|
|
63
|
+
* named error instead, and the command decides whether to ask.
|
|
64
|
+
*/
|
|
65
|
+
/** A prompt was needed with no terminal to ask at. */
|
|
66
|
+
var PromptNeedsTerminal = class extends Error {
|
|
67
|
+
question;
|
|
68
|
+
instead;
|
|
69
|
+
constructor(question, instead) {
|
|
70
|
+
super(`Interactive input required. ${instead}`);
|
|
71
|
+
this.question = question;
|
|
72
|
+
this.instead = instead;
|
|
73
|
+
this.name = "PromptNeedsTerminal";
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
/** Whether there is a person at a terminal to ask. */
|
|
77
|
+
function canPrompt() {
|
|
78
|
+
return process.stdin.isTTY === true;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Ask `message` and resolve with the line typed — without echoing it when
|
|
82
|
+
* `hidden`. Ctrl+C at a hidden prompt exits, as it would anywhere else in a
|
|
83
|
+
* terminal program: raw mode has taken the signal away from the shell.
|
|
84
|
+
*/
|
|
85
|
+
async function prompt(message, options) {
|
|
86
|
+
if (!canPrompt()) throw new PromptNeedsTerminal(message, options.instead);
|
|
87
|
+
if (options.hidden) {
|
|
88
|
+
process.stdout.write(message);
|
|
89
|
+
return new Promise((resolve, reject) => {
|
|
90
|
+
let value = "";
|
|
91
|
+
const cleanup = () => {
|
|
92
|
+
process.stdin.setRawMode(false);
|
|
93
|
+
process.stdin.pause();
|
|
94
|
+
process.stdin.removeListener("data", onData);
|
|
95
|
+
process.stdin.removeListener("error", onError);
|
|
96
|
+
};
|
|
97
|
+
const onError = (err) => {
|
|
98
|
+
cleanup();
|
|
99
|
+
reject(err);
|
|
100
|
+
};
|
|
101
|
+
const onData = (char) => {
|
|
102
|
+
const c = char.toString();
|
|
103
|
+
if (c === "\n" || c === "\r") {
|
|
104
|
+
cleanup();
|
|
105
|
+
process.stdout.write("\n");
|
|
106
|
+
resolve(value);
|
|
107
|
+
} else if (c === "") {
|
|
108
|
+
cleanup();
|
|
109
|
+
process.stdout.write("\n");
|
|
110
|
+
process.exit(1);
|
|
111
|
+
} else if (c === "" || c === "\b") {
|
|
112
|
+
if (value.length > 0) value = value.slice(0, -1);
|
|
113
|
+
} else value += c;
|
|
114
|
+
};
|
|
115
|
+
process.stdin.setRawMode(true);
|
|
116
|
+
process.stdin.resume();
|
|
117
|
+
process.stdin.on("data", onData);
|
|
118
|
+
process.stdin.on("error", onError);
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
const rl = node_readline_promises.createInterface({
|
|
122
|
+
input: node_process.stdin,
|
|
123
|
+
output: node_process.stdout
|
|
124
|
+
});
|
|
125
|
+
try {
|
|
126
|
+
return await rl.question(message);
|
|
127
|
+
} finally {
|
|
128
|
+
rl.close();
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
//#endregion
|
|
132
|
+
//#region src/auth/index.ts
|
|
133
|
+
const logger$8 = console;
|
|
134
|
+
/**
|
|
135
|
+
* Validate Dokploy token by making a test API call
|
|
136
|
+
*/
|
|
137
|
+
async function validateDokployToken(endpoint, token) {
|
|
138
|
+
const { DokployApi } = await Promise.resolve().then(() => require("./sniffer-D66HIvi9.cjs")).then((n) => n.dokploy_api_exports);
|
|
139
|
+
return new DokployApi({
|
|
140
|
+
baseUrl: endpoint,
|
|
141
|
+
token
|
|
142
|
+
}).validateToken();
|
|
143
|
+
}
|
|
144
|
+
/** What answers a login prompt without a terminal. */
|
|
145
|
+
const LOGIN_INSTEAD = "Please provide --token option.";
|
|
146
|
+
/**
|
|
147
|
+
* Login to a service
|
|
148
|
+
*/
|
|
149
|
+
async function loginCommand(options) {
|
|
150
|
+
const { provider, token: providedToken, endpoint: providedEndpoint } = options;
|
|
151
|
+
if (provider === "dokploy") {
|
|
152
|
+
logger$8.log("\n🔐 Logging in to Dokploy...\n");
|
|
153
|
+
let endpoint = providedEndpoint;
|
|
154
|
+
if (!endpoint) endpoint = await prompt("Dokploy URL (e.g., https://dokploy.example.com): ", { instead: LOGIN_INSTEAD });
|
|
155
|
+
endpoint = endpoint.replace(/\/$/, "");
|
|
156
|
+
try {
|
|
157
|
+
new URL(endpoint);
|
|
158
|
+
} catch {
|
|
159
|
+
logger$8.error("Invalid URL format");
|
|
160
|
+
process.exit(1);
|
|
161
|
+
}
|
|
162
|
+
let token = providedToken;
|
|
163
|
+
if (!token) {
|
|
164
|
+
logger$8.log(`\nGenerate a token at: ${endpoint}/settings/profile\n`);
|
|
165
|
+
token = await prompt("API Token: ", {
|
|
166
|
+
hidden: true,
|
|
167
|
+
instead: LOGIN_INSTEAD
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
if (!token) {
|
|
171
|
+
logger$8.error("Token is required");
|
|
172
|
+
process.exit(1);
|
|
173
|
+
}
|
|
174
|
+
logger$8.log("\nValidating credentials...");
|
|
175
|
+
if (!await validateDokployToken(endpoint, token)) {
|
|
176
|
+
logger$8.error("\n✗ Invalid credentials. Please check your token and try again.");
|
|
177
|
+
process.exit(1);
|
|
178
|
+
}
|
|
179
|
+
await require_credentials.storeDokployCredentials(token, endpoint);
|
|
180
|
+
logger$8.log("\n✓ Successfully logged in to Dokploy!");
|
|
181
|
+
logger$8.log(` Endpoint: ${endpoint}`);
|
|
182
|
+
logger$8.log(` Credentials stored in: ${require_credentials.getCredentialsPath()}`);
|
|
183
|
+
logger$8.log("\nYou can now use deploy commands without setting DOKPLOY_API_TOKEN.");
|
|
184
|
+
}
|
|
185
|
+
if (provider === "hostinger") {
|
|
186
|
+
logger$8.log("\n🔐 Logging in to Hostinger...\n");
|
|
187
|
+
let token = providedToken;
|
|
188
|
+
if (!token) {
|
|
189
|
+
logger$8.log("\nGenerate a token at: https://hpanel.hostinger.com/profile/api\n");
|
|
190
|
+
token = await prompt("API Token: ", {
|
|
191
|
+
hidden: true,
|
|
192
|
+
instead: LOGIN_INSTEAD
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
if (!token) {
|
|
196
|
+
logger$8.error("Token is required");
|
|
197
|
+
process.exit(1);
|
|
198
|
+
}
|
|
199
|
+
await require_credentials.storeHostingerToken(token);
|
|
200
|
+
logger$8.log("\n✓ Hostinger token stored.");
|
|
201
|
+
logger$8.log(` Credentials stored in: ${require_credentials.getCredentialsPath()}`);
|
|
202
|
+
logger$8.log(" Not validated here: every DNS endpoint is scoped to a domain, so the\n first deploy that touches DNS is where a bad token reports itself.");
|
|
203
|
+
logger$8.log("\nYou can now use it as a DNS provider without setting HOSTINGER_API_TOKEN.");
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Logout from a service
|
|
208
|
+
*/
|
|
209
|
+
async function logoutCommand(options) {
|
|
210
|
+
const { provider = "dokploy" } = options;
|
|
211
|
+
if (provider === "all") {
|
|
212
|
+
if (await require_credentials.removeDokployCredentials()) logger$8.log("\n✓ Logged out from all services");
|
|
213
|
+
else logger$8.log("\nNo stored credentials found");
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
if (provider === "dokploy") {
|
|
217
|
+
if (await require_credentials.removeDokployCredentials()) logger$8.log("\n✓ Logged out from Dokploy");
|
|
218
|
+
else logger$8.log("\nNo Dokploy credentials found");
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Show current login status
|
|
223
|
+
*/
|
|
224
|
+
async function whoamiCommand() {
|
|
225
|
+
logger$8.log("\n📋 Current credentials:\n");
|
|
226
|
+
const dokploy = await require_credentials.getDokployCredentials();
|
|
227
|
+
if (dokploy) {
|
|
228
|
+
logger$8.log(" Dokploy:");
|
|
229
|
+
logger$8.log(` Endpoint: ${dokploy.endpoint}`);
|
|
230
|
+
logger$8.log(` Token: ${maskToken(dokploy.token)}`);
|
|
231
|
+
} else logger$8.log(" Dokploy: Not logged in");
|
|
232
|
+
logger$8.log(`\n Credentials file: ${require_credentials.getCredentialsPath()}`);
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Mask a token for display
|
|
236
|
+
*/
|
|
237
|
+
function maskToken(token) {
|
|
238
|
+
if (token.length <= 8) return "****";
|
|
239
|
+
return `${token.slice(0, 4)}...${token.slice(-4)}`;
|
|
240
|
+
}
|
|
55
241
|
//#endregion
|
|
56
242
|
//#region src/trust/index.ts
|
|
57
243
|
/**
|
|
@@ -1507,7 +1693,7 @@ async function devCommand(options) {
|
|
|
1507
1693
|
let secretsJsonPath;
|
|
1508
1694
|
let publicUrl;
|
|
1509
1695
|
let manifest;
|
|
1510
|
-
const appSecrets = await require_state.loadSecretsForApp(workspace ? await
|
|
1696
|
+
const appSecrets = await require_state.loadSecretsForApp(workspace ? await require_state.secretsStoreFor(workspace, config.stages.local) : new require_state.FileSecretsStore(secretsRoot), config.stages.local, workspaceAppName);
|
|
1511
1697
|
if (workspace) {
|
|
1512
1698
|
const reconciled = await require_state.reconcileWorkspace(workspace, {
|
|
1513
1699
|
stage: workspace.stages.local,
|
|
@@ -1795,8 +1981,8 @@ async function validateFrontendApps(workspace) {
|
|
|
1795
1981
|
async function loadDevSecrets(workspace) {
|
|
1796
1982
|
if (!workspace.secrets.enabled) return {};
|
|
1797
1983
|
const stage = workspace.stages.local;
|
|
1798
|
-
const secrets = await (await
|
|
1799
|
-
if (secrets) return
|
|
1984
|
+
const secrets = await (await require_state.secretsStoreFor(workspace, stage)).read(stage);
|
|
1985
|
+
if (secrets) return require_state.toEmbeddableSecrets(secrets);
|
|
1800
1986
|
return {};
|
|
1801
1987
|
}
|
|
1802
1988
|
/**
|
|
@@ -1855,9 +2041,9 @@ async function workspaceDevCommand(configured, options) {
|
|
|
1855
2041
|
for (const { id, port } of fakes) logger$5.log(`🎭 ${id} fake: http://localhost:${port}`);
|
|
1856
2042
|
logger$5.log(options.migrate || options.seed ? "🗄️ Migrating the databases" : "🗄️ Checking for pending migrations");
|
|
1857
2043
|
if (options.migrate || options.seed) {
|
|
1858
|
-
const { prepareDevDatabases } = await Promise.resolve().then(() => require("./migrate-
|
|
2044
|
+
const { prepareDevDatabases } = await Promise.resolve().then(() => require("./migrate-CQdSpttI.cjs"));
|
|
1859
2045
|
await prepareDevDatabases(workspace, reconciled.env, { seed: !!options.seed });
|
|
1860
|
-
} else await Promise.resolve().then(() => require("./migrate-
|
|
2046
|
+
} else await Promise.resolve().then(() => require("./migrate-CQdSpttI.cjs")).then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
|
|
1861
2047
|
logger$5.log(`⚠️ Could not check for pending migrations: ${error instanceof Error ? error.message : String(error)}`);
|
|
1862
2048
|
});
|
|
1863
2049
|
const appUrls = {};
|
|
@@ -3237,7 +3423,7 @@ async function buildApp(input) {
|
|
|
3237
3423
|
if (production?.bundle && !input.skipBundle) {
|
|
3238
3424
|
const outputDir = (0, node_path.join)(appRoot, ".gkm", "server");
|
|
3239
3425
|
const entryPoint = await writeSurfaceServer(outputDir, production);
|
|
3240
|
-
const { bundleServer } = await Promise.resolve().then(() => require("./bundler-
|
|
3426
|
+
const { bundleServer } = await Promise.resolve().then(() => require("./bundler-pyLj-gS0.cjs"));
|
|
3241
3427
|
await bundleServer({
|
|
3242
3428
|
entryPoint,
|
|
3243
3429
|
outputDir: (0, node_path.join)(outputDir, "dist"),
|
|
@@ -3375,7 +3561,7 @@ async function buildForTarget(target, context, appRoot, workspaceRoot, endpointG
|
|
|
3375
3561
|
let masterKey;
|
|
3376
3562
|
if (context.production?.bundle && !skipBundle) {
|
|
3377
3563
|
logger$4.log(`\n📦 Bundling production server...`);
|
|
3378
|
-
const { bundleServer } = await Promise.resolve().then(() => require("./bundler-
|
|
3564
|
+
const { bundleServer } = await Promise.resolve().then(() => require("./bundler-pyLj-gS0.cjs"));
|
|
3379
3565
|
const allConstructs = [
|
|
3380
3566
|
...endpoints.map((e) => e.construct),
|
|
3381
3567
|
...functions.map((f) => f.construct),
|
|
@@ -3398,7 +3584,7 @@ async function buildForTarget(target, context, appRoot, workspaceRoot, endpointG
|
|
|
3398
3584
|
await (0, node_fs_promises.writeFile)(keyPath, `${masterKey}\n`, { mode: 384 });
|
|
3399
3585
|
await (0, node_fs_promises.chmod)(keyPath, 384);
|
|
3400
3586
|
logger$4.log(`\n🔐 Secrets encrypted for deployment`);
|
|
3401
|
-
logger$4.log(` Run with GKM_MASTER_KEY set to the key in ${(0, node_path.relative)(appRoot, keyPath)} (fingerprint ${
|
|
3587
|
+
logger$4.log(` Run with GKM_MASTER_KEY set to the key in ${(0, node_path.relative)(appRoot, keyPath)} (fingerprint ${require_state.keyFingerprint(masterKey)})`);
|
|
3402
3588
|
}
|
|
3403
3589
|
}
|
|
3404
3590
|
return {
|
|
@@ -3539,7 +3725,7 @@ async function workspaceBuildCommand(workspace, options) {
|
|
|
3539
3725
|
if (filters.length > 0) {
|
|
3540
3726
|
logger$4.log(`\n📦 Using ${pm} with Turbo for the other apps...\n`);
|
|
3541
3727
|
logger$4.log(`Running: ${[turboBin, ...turboArgs].join(" ")}`);
|
|
3542
|
-
const sandbox = options.sandbox ?? new
|
|
3728
|
+
const sandbox = options.sandbox ?? new require_credentials.LocalSandbox({
|
|
3543
3729
|
root: workspace.root,
|
|
3544
3730
|
passEnv: ["TURBO_TOKEN"]
|
|
3545
3731
|
});
|
|
@@ -3549,10 +3735,10 @@ async function workspaceBuildCommand(workspace, options) {
|
|
|
3549
3735
|
...sandbox.env,
|
|
3550
3736
|
NODE_ENV: options.production ? "production" : "development"
|
|
3551
3737
|
},
|
|
3552
|
-
timeoutMs:
|
|
3738
|
+
timeoutMs: require_run.DEFAULT_TIMEOUT_MS,
|
|
3553
3739
|
output: "inherit"
|
|
3554
3740
|
});
|
|
3555
|
-
if (built.exitCode !== 0) throw new
|
|
3741
|
+
if (built.exitCode !== 0) throw new require_run.CommandFailed(turboBin, turboArgs, built.exitCode, built.signal);
|
|
3556
3742
|
}
|
|
3557
3743
|
for (const [appName, app] of apps) {
|
|
3558
3744
|
const outputPath = getAppOutputPath(workspace, appName, app);
|
|
@@ -3627,7 +3813,7 @@ async function composeCommand(options = {}, deps = {}) {
|
|
|
3627
3813
|
const stage = options.stage ?? workspace.stages.local;
|
|
3628
3814
|
if (options.down) {
|
|
3629
3815
|
const ref = {
|
|
3630
|
-
project: require_compose.composeProject(
|
|
3816
|
+
project: require_compose.composeProject(require_state.deployIdentity(workspace, stage)),
|
|
3631
3817
|
file: (0, node_path.join)(workspace.root, require_compose.stackDir(stage), "docker-compose.yml"),
|
|
3632
3818
|
cwd: workspace.root
|
|
3633
3819
|
};
|
|
@@ -5070,25 +5256,25 @@ function loadPackageJson() {
|
|
|
5070
5256
|
* Run: pnpm --filter @geekmidas/cli sync-versions
|
|
5071
5257
|
*/
|
|
5072
5258
|
const GEEKMIDAS_VERSIONS = {
|
|
5073
|
-
"@geekmidas/audit": "~10.0.0-alpha.
|
|
5074
|
-
"@geekmidas/auth": "~10.0.0-alpha.
|
|
5075
|
-
"@geekmidas/cache": "~10.0.0-alpha.
|
|
5076
|
-
"@geekmidas/client": "~10.0.0-alpha.
|
|
5077
|
-
"@geekmidas/cloud": "~10.0.0-alpha.
|
|
5078
|
-
"@geekmidas/constructs": "~10.0.0-alpha.
|
|
5079
|
-
"@geekmidas/db": "~10.0.0-alpha.
|
|
5080
|
-
"@geekmidas/emailkit": "~10.0.0-alpha.
|
|
5081
|
-
"@geekmidas/envkit": "~10.0.0-alpha.
|
|
5082
|
-
"@geekmidas/errors": "~10.0.0-alpha.
|
|
5083
|
-
"@geekmidas/events": "~10.0.0-alpha.
|
|
5084
|
-
"@geekmidas/logger": "~10.0.0-alpha.
|
|
5085
|
-
"@geekmidas/manifest": "~10.0.0-alpha.
|
|
5086
|
-
"@geekmidas/rate-limit": "~10.0.0-alpha.
|
|
5087
|
-
"@geekmidas/schema": "~10.0.0-alpha.
|
|
5088
|
-
"@geekmidas/services": "~10.0.0-alpha.
|
|
5089
|
-
"@geekmidas/storage": "~10.0.0-alpha.
|
|
5090
|
-
"@geekmidas/telescope": "~10.0.0-alpha.
|
|
5091
|
-
"@geekmidas/testkit": "~10.0.0-alpha.
|
|
5259
|
+
"@geekmidas/audit": "~10.0.0-alpha.67",
|
|
5260
|
+
"@geekmidas/auth": "~10.0.0-alpha.67",
|
|
5261
|
+
"@geekmidas/cache": "~10.0.0-alpha.67",
|
|
5262
|
+
"@geekmidas/client": "~10.0.0-alpha.67",
|
|
5263
|
+
"@geekmidas/cloud": "~10.0.0-alpha.67",
|
|
5264
|
+
"@geekmidas/constructs": "~10.0.0-alpha.67",
|
|
5265
|
+
"@geekmidas/db": "~10.0.0-alpha.67",
|
|
5266
|
+
"@geekmidas/emailkit": "~10.0.0-alpha.67",
|
|
5267
|
+
"@geekmidas/envkit": "~10.0.0-alpha.67",
|
|
5268
|
+
"@geekmidas/errors": "~10.0.0-alpha.67",
|
|
5269
|
+
"@geekmidas/events": "~10.0.0-alpha.67",
|
|
5270
|
+
"@geekmidas/logger": "~10.0.0-alpha.67",
|
|
5271
|
+
"@geekmidas/manifest": "~10.0.0-alpha.67",
|
|
5272
|
+
"@geekmidas/rate-limit": "~10.0.0-alpha.67",
|
|
5273
|
+
"@geekmidas/schema": "~10.0.0-alpha.67",
|
|
5274
|
+
"@geekmidas/services": "~10.0.0-alpha.67",
|
|
5275
|
+
"@geekmidas/storage": "~10.0.0-alpha.67",
|
|
5276
|
+
"@geekmidas/telescope": "~10.0.0-alpha.67",
|
|
5277
|
+
"@geekmidas/testkit": "~10.0.0-alpha.67",
|
|
5092
5278
|
"@geekmidas/cli": `~${loadPackageJson().version}`
|
|
5093
5279
|
};
|
|
5094
5280
|
//#endregion
|
|
@@ -5671,7 +5857,7 @@ function deploy(options) {
|
|
|
5671
5857
|
role-to-assume: \${{ vars.AWS_ROLE_ARN }}
|
|
5672
5858
|
aws-region: ${options.region}
|
|
5673
5859
|
` : "";
|
|
5674
|
-
const keyDir = `~/.gkm/keys/${
|
|
5860
|
+
const keyDir = `~/.gkm/keys/${require_state.projectKey({ name: options.name })}`;
|
|
5675
5861
|
const stageSecrets = sst ? credentials : `
|
|
5676
5862
|
# The stage's secrets are kept in the encrypted .gkm/secrets/<stage>.json,
|
|
5677
5863
|
# and each environment holds its key as GKM_SECRETS_KEY. .gkm/ is
|
|
@@ -10008,11 +10194,11 @@ async function initCommand(projectName, options = {}) {
|
|
|
10008
10194
|
}
|
|
10009
10195
|
devSecrets.custom = customSecrets;
|
|
10010
10196
|
const keys = {
|
|
10011
|
-
key:
|
|
10197
|
+
key: require_state.projectKey({ name }),
|
|
10012
10198
|
legacy: [(0, node_path.basename)(targetDir)]
|
|
10013
10199
|
};
|
|
10014
|
-
await new
|
|
10015
|
-
const keyPath =
|
|
10200
|
+
await new require_state.FileSecretsStore(targetDir, keys).write(local, devSecrets);
|
|
10201
|
+
const keyPath = require_state.getKeyPath(local, keys);
|
|
10016
10202
|
console.log(` Secrets: .gkm/secrets/${local}.json (encrypted)`);
|
|
10017
10203
|
console.log(` Key: ${keyPath}\n`);
|
|
10018
10204
|
if (!options.skipInstall) {
|
|
@@ -10247,9 +10433,9 @@ const logger$2 = console;
|
|
|
10247
10433
|
*/
|
|
10248
10434
|
async function storeFor(stage) {
|
|
10249
10435
|
try {
|
|
10250
|
-
return await
|
|
10436
|
+
return await require_state.secretsStoreFor(await require_config.loadWorkspaceSettings(), stage);
|
|
10251
10437
|
} catch (error) {
|
|
10252
|
-
if (error instanceof require_config.ConfigNotFound) return new
|
|
10438
|
+
if (error instanceof require_config.ConfigNotFound) return new require_state.FileSecretsStore(process.cwd());
|
|
10253
10439
|
throw error;
|
|
10254
10440
|
}
|
|
10255
10441
|
}
|
|
@@ -10319,7 +10505,7 @@ async function secretsSetCommand(key, value, options) {
|
|
|
10319
10505
|
logger$2.error(`Secrets not found for stage "${stage}". Run "gkm secrets:init --stage ${stage}" first.`);
|
|
10320
10506
|
process.exit(1);
|
|
10321
10507
|
}
|
|
10322
|
-
await store.write(stage,
|
|
10508
|
+
await store.write(stage, require_state.withCustomSecret(secrets, key, secretValue));
|
|
10323
10509
|
logger$2.log(`\n✓ Secret "${key}" set for stage "${stage}" (${store.name})`);
|
|
10324
10510
|
}
|
|
10325
10511
|
/**
|
|
@@ -10341,7 +10527,7 @@ async function secretsShowCommand(options) {
|
|
|
10341
10527
|
logger$2.log(` host: ${creds.host}`);
|
|
10342
10528
|
logger$2.log(` port: ${creds.port}`);
|
|
10343
10529
|
logger$2.log(` username: ${creds.username}`);
|
|
10344
|
-
logger$2.log(` password: ${reveal ? creds.password :
|
|
10530
|
+
logger$2.log(` password: ${reveal ? creds.password : require_state.maskPassword(creds.password)}`);
|
|
10345
10531
|
if (creds.database) logger$2.log(` database: ${creds.database}`);
|
|
10346
10532
|
if (creds.bucket) logger$2.log(` bucket: ${creds.bucket}`);
|
|
10347
10533
|
}
|
|
@@ -10351,7 +10537,7 @@ async function secretsShowCommand(options) {
|
|
|
10351
10537
|
if (secrets.urls.STORAGE_ENDPOINT) logger$2.log(` STORAGE_ENDPOINT: ${secrets.urls.STORAGE_ENDPOINT}`);
|
|
10352
10538
|
if (Object.keys(secrets.custom).length > 0) {
|
|
10353
10539
|
logger$2.log("\nCustom Secrets:");
|
|
10354
|
-
for (const [key, value] of Object.entries(secrets.custom)) logger$2.log(` ${key}: ${reveal ? value :
|
|
10540
|
+
for (const [key, value] of Object.entries(secrets.custom)) logger$2.log(` ${key}: ${reveal ? value : require_state.maskPassword(value)}`);
|
|
10355
10541
|
}
|
|
10356
10542
|
if (!reveal) logger$2.log("\nUse --reveal to show actual values");
|
|
10357
10543
|
}
|
|
@@ -10431,7 +10617,7 @@ async function secretsImportCommand(file, options) {
|
|
|
10431
10617
|
function maskUrl(url) {
|
|
10432
10618
|
try {
|
|
10433
10619
|
const parsed = new URL(url);
|
|
10434
|
-
if (parsed.password) parsed.password =
|
|
10620
|
+
if (parsed.password) parsed.password = require_state.maskPassword(parsed.password);
|
|
10435
10621
|
return parsed.toString();
|
|
10436
10622
|
} catch {
|
|
10437
10623
|
return url;
|
|
@@ -10521,7 +10707,7 @@ async function resolveSecrets(stage, workspace, options) {
|
|
|
10521
10707
|
logger$1.log("🔐 Generating fresh secrets (--force)...");
|
|
10522
10708
|
return generateFreshSecrets(stage, workspace);
|
|
10523
10709
|
}
|
|
10524
|
-
const store = await
|
|
10710
|
+
const store = await require_state.secretsStoreFor(workspace, stage);
|
|
10525
10711
|
const secrets = await store.read(stage);
|
|
10526
10712
|
if (secrets) {
|
|
10527
10713
|
logger$1.log("🔐 Using existing secrets");
|
|
@@ -10645,7 +10831,7 @@ function createFreshWorkspaceSecrets(stage, workspace, containers = []) {
|
|
|
10645
10831
|
*/
|
|
10646
10832
|
async function ensureStageSecrets(stage, cwd = process.cwd()) {
|
|
10647
10833
|
const { workspace } = await require_config.loadWorkspaceConfig(cwd);
|
|
10648
|
-
const store = await
|
|
10834
|
+
const store = await require_state.secretsStoreFor(workspace, stage);
|
|
10649
10835
|
if (await store.read(stage)) return false;
|
|
10650
10836
|
const secrets = createFreshWorkspaceSecrets(stage, workspace, await require_state.derivedContainers(workspace, stage));
|
|
10651
10837
|
await store.write(stage, secrets);
|
|
@@ -10656,7 +10842,7 @@ async function ensureStageSecrets(stage, cwd = process.cwd()) {
|
|
|
10656
10842
|
*/
|
|
10657
10843
|
async function generateFreshSecrets(stage, workspace) {
|
|
10658
10844
|
const secrets = createFreshWorkspaceSecrets(stage, workspace, await require_state.derivedContainers(workspace, stage));
|
|
10659
|
-
const store = await
|
|
10845
|
+
const store = await require_state.secretsStoreFor(workspace, stage);
|
|
10660
10846
|
await store.write(stage, secrets);
|
|
10661
10847
|
logger$1.log(` Secrets written to the "${stage}" store (${store.name})`);
|
|
10662
10848
|
return secrets;
|
|
@@ -10851,8 +11037,8 @@ function testDatabases(reconciled) {
|
|
|
10851
11037
|
* starts without the reference data the app needs.
|
|
10852
11038
|
*/
|
|
10853
11039
|
async function migrateTestStage(workspace, env) {
|
|
10854
|
-
const { migrateAndSeed } = await Promise.resolve().then(() => require("./migrate-
|
|
10855
|
-
const { discover } = await Promise.resolve().then(() => require("./discover-
|
|
11040
|
+
const { migrateAndSeed } = await Promise.resolve().then(() => require("./migrate-CQdSpttI.cjs"));
|
|
11041
|
+
const { discover } = await Promise.resolve().then(() => require("./discover-OEfZ9OkA.cjs")).then((n) => n.discover_exports);
|
|
10856
11042
|
const sources = {};
|
|
10857
11043
|
const manifest = await discover({
|
|
10858
11044
|
patterns: require_state.constructGlobs(workspace),
|
|
@@ -11282,7 +11468,7 @@ program.command("migrate").description("Apply each database construct's migratio
|
|
|
11282
11468
|
try {
|
|
11283
11469
|
const globalOptions = program.opts();
|
|
11284
11470
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11285
|
-
const { migrateCommand } = await Promise.resolve().then(() => require("./migrate-
|
|
11471
|
+
const { migrateCommand } = await Promise.resolve().then(() => require("./migrate-CQdSpttI.cjs"));
|
|
11286
11472
|
await migrateCommand({
|
|
11287
11473
|
...options,
|
|
11288
11474
|
...construct ? { construct } : {}
|
|
@@ -11296,7 +11482,7 @@ program.command("seed").description("Migrate, then run each database construct's
|
|
|
11296
11482
|
try {
|
|
11297
11483
|
const globalOptions = program.opts();
|
|
11298
11484
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11299
|
-
const { seedCommand } = await Promise.resolve().then(() => require("./migrate-
|
|
11485
|
+
const { seedCommand } = await Promise.resolve().then(() => require("./migrate-CQdSpttI.cjs"));
|
|
11300
11486
|
await seedCommand({
|
|
11301
11487
|
...options,
|
|
11302
11488
|
...construct ? { construct } : {}
|
|
@@ -11310,7 +11496,7 @@ program.command("migration").description("Write a construct's next migration: an
|
|
|
11310
11496
|
try {
|
|
11311
11497
|
const globalOptions = program.opts();
|
|
11312
11498
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11313
|
-
const { migrationCommand } = await Promise.resolve().then(() => require("./migrate-
|
|
11499
|
+
const { migrationCommand } = await Promise.resolve().then(() => require("./migrate-CQdSpttI.cjs"));
|
|
11314
11500
|
await migrationCommand({
|
|
11315
11501
|
construct,
|
|
11316
11502
|
...name ? { name } : {}
|
|
@@ -11345,7 +11531,7 @@ program.command("openapi").description("Generate OpenAPI specification from endp
|
|
|
11345
11531
|
process.exit(1);
|
|
11346
11532
|
}
|
|
11347
11533
|
});
|
|
11348
|
-
program.command("docker").description("Generate Docker deployment files").option("--build", "Build Docker image after generating files").option("--push", "Push image to registry after building").option("--tag <tag>", "Image tag", "latest").option("--registry <registry>", "Container registry URL").
|
|
11534
|
+
program.command("docker").description("Generate Docker deployment files").option("--build", "Build Docker image after generating files").option("--push", "Push image to registry after building").option("--tag <tag>", "Image tag", "latest").option("--registry <registry>", "Container registry URL").action(async (options) => {
|
|
11349
11535
|
try {
|
|
11350
11536
|
const globalOptions = program.opts();
|
|
11351
11537
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
@@ -11365,30 +11551,16 @@ program.command("compose").description("Run the workspace's APIs and sites for a
|
|
|
11365
11551
|
process.exit(1);
|
|
11366
11552
|
}
|
|
11367
11553
|
});
|
|
11368
|
-
program.command("prepack").description("Generate Docker files for production deployment").option("--build", "Build Docker image after generating files").option("--push", "Push image to registry after building").option("--tag <tag>", "Image tag", "latest").option("--registry <registry>", "Container registry URL").
|
|
11554
|
+
program.command("prepack").description("Generate Docker files for production deployment").option("--build", "Build Docker image after generating files").option("--push", "Push image to registry after building").option("--tag <tag>", "Image tag", "latest").option("--registry <registry>", "Container registry URL").action(async (options) => {
|
|
11369
11555
|
try {
|
|
11370
11556
|
const globalOptions = program.opts();
|
|
11371
11557
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11372
|
-
if (options.slim) await buildCommand({
|
|
11373
|
-
provider: "server",
|
|
11374
|
-
production: true,
|
|
11375
|
-
skipBundle: options.skipBundle
|
|
11376
|
-
});
|
|
11377
11558
|
await require_state.dockerCommand({
|
|
11378
11559
|
build: options.build,
|
|
11379
11560
|
push: options.push,
|
|
11380
11561
|
tag: options.tag,
|
|
11381
|
-
registry: options.registry
|
|
11382
|
-
slim: options.slim,
|
|
11383
|
-
turbo: options.turbo,
|
|
11384
|
-
turboPackage: options.turboPackage
|
|
11562
|
+
registry: options.registry
|
|
11385
11563
|
});
|
|
11386
|
-
if (options.slim) {}
|
|
11387
|
-
if (options.build) {
|
|
11388
|
-
const tag = options.tag ?? "latest";
|
|
11389
|
-
const registry = options.registry;
|
|
11390
|
-
registry ? `${registry}${tag}` : `${tag}`;
|
|
11391
|
-
}
|
|
11392
11564
|
} catch (error) {
|
|
11393
11565
|
console.error(formatError(error));
|
|
11394
11566
|
process.exit(1);
|
|
@@ -11418,7 +11590,7 @@ program.command("encryption:rotate").description("Add a new current key to an En
|
|
|
11418
11590
|
try {
|
|
11419
11591
|
const globalOptions = program.opts();
|
|
11420
11592
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11421
|
-
const { encryptionRotateCommand } = await Promise.resolve().then(() => require("./encryption-
|
|
11593
|
+
const { encryptionRotateCommand } = await Promise.resolve().then(() => require("./encryption-rZ3BghXy.cjs"));
|
|
11422
11594
|
await encryptionRotateCommand(construct, options);
|
|
11423
11595
|
} catch (error) {
|
|
11424
11596
|
console.error(formatError(error));
|
|
@@ -11429,7 +11601,7 @@ program.command("encryption:retire").description("Remove an old key from an Encr
|
|
|
11429
11601
|
try {
|
|
11430
11602
|
const globalOptions = program.opts();
|
|
11431
11603
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11432
|
-
const { encryptionRetireCommand } = await Promise.resolve().then(() => require("./encryption-
|
|
11604
|
+
const { encryptionRetireCommand } = await Promise.resolve().then(() => require("./encryption-rZ3BghXy.cjs"));
|
|
11433
11605
|
await encryptionRetireCommand(construct, key, options);
|
|
11434
11606
|
} catch (error) {
|
|
11435
11607
|
console.error(formatError(error));
|
|
@@ -11472,7 +11644,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
|
|
|
11472
11644
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11473
11645
|
const { loadWorkspaceConfig } = await Promise.resolve().then(() => require("./config.cjs"));
|
|
11474
11646
|
const { reconcileMissingSecrets } = await Promise.resolve().then(() => require("./reconcile-CuCQBa5-.cjs"));
|
|
11475
|
-
const { secretsStoreFor } = await Promise.resolve().then(() => require("./
|
|
11647
|
+
const { secretsStoreFor } = await Promise.resolve().then(() => require("./state-DgmM4EKq.cjs")).then((n) => n.store_exports);
|
|
11476
11648
|
const { workspace } = await loadWorkspaceConfig();
|
|
11477
11649
|
const stage = options.stage ?? workspace.stages.local;
|
|
11478
11650
|
const store = await secretsStoreFor(workspace, stage);
|
|
@@ -11481,7 +11653,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
|
|
|
11481
11653
|
console.error(`No secrets found for stage "${stage}". Run "gkm secrets:init --stage ${stage}" first.`);
|
|
11482
11654
|
process.exit(1);
|
|
11483
11655
|
}
|
|
11484
|
-
const { derivedContainers } = await Promise.resolve().then(() => require("./state-
|
|
11656
|
+
const { derivedContainers } = await Promise.resolve().then(() => require("./state-DgmM4EKq.cjs")).then((n) => n.workspace_exports);
|
|
11485
11657
|
const result = reconcileMissingSecrets(secrets, workspace, await derivedContainers(workspace, stage));
|
|
11486
11658
|
if (!result) {
|
|
11487
11659
|
console.log(`\n✓ Secrets for stage "${stage}" are up-to-date`);
|
|
@@ -11495,8 +11667,8 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
|
|
|
11495
11667
|
process.exit(1);
|
|
11496
11668
|
}
|
|
11497
11669
|
});
|
|
11498
|
-
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").action(async (options) => {
|
|
11499
|
-
const { deployCli } = await Promise.resolve().then(() => require("./cli-
|
|
11670
|
+
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").action(async (options) => {
|
|
11671
|
+
const { deployCli } = await Promise.resolve().then(() => require("./cli-DR7B2_fX.cjs"));
|
|
11500
11672
|
const globalOptions = program.opts();
|
|
11501
11673
|
const code = await deployCli({
|
|
11502
11674
|
cwd: (0, node_path.resolve)(globalOptions.cwd ?? process.cwd()),
|
|
@@ -11505,10 +11677,29 @@ program.command("deploy").description("Deploy a stage through its target").optio
|
|
|
11505
11677
|
stage: options.stage,
|
|
11506
11678
|
...options.tag ? { tag: options.tag } : {},
|
|
11507
11679
|
...options.json ? { json: true } : {},
|
|
11508
|
-
...options.dryRun ? { dryRun: true } : {}
|
|
11680
|
+
...options.dryRun ? { dryRun: true } : {},
|
|
11681
|
+
...options.atomic ? { atomic: true } : {}
|
|
11509
11682
|
});
|
|
11510
11683
|
if (code !== 0) process.exit(code);
|
|
11511
11684
|
});
|
|
11685
|
+
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) => {
|
|
11686
|
+
try {
|
|
11687
|
+
const { rollbackStage } = await Promise.resolve().then(() => require("./rollback-BnY7KuG_.cjs")).then((n) => n.rollback_exports);
|
|
11688
|
+
const { terminalCredentials } = await Promise.resolve().then(() => require("./terminal-DjzgLu6m.cjs"));
|
|
11689
|
+
const globalOptions = program.opts();
|
|
11690
|
+
await rollbackStage({
|
|
11691
|
+
cwd: (0, node_path.resolve)(globalOptions.cwd ?? process.cwd()),
|
|
11692
|
+
stage: options.stage,
|
|
11693
|
+
...options.app ? { app: options.app } : {},
|
|
11694
|
+
...options.atomic ? { atomic: true } : {},
|
|
11695
|
+
credentials: terminalCredentials(),
|
|
11696
|
+
log: (line) => console.log(line)
|
|
11697
|
+
});
|
|
11698
|
+
} catch (error) {
|
|
11699
|
+
console.error(formatError(error));
|
|
11700
|
+
process.exit(1);
|
|
11701
|
+
}
|
|
11702
|
+
});
|
|
11512
11703
|
program.command("deploy:init").description("Initialize Dokploy deployment (create project and application)").option("--endpoint <url>", "Dokploy server URL (uses stored credentials if logged in)").requiredOption("--project <name>", "Project name (creates if not exists)").requiredOption("--app <name>", "Application name").option("--project-id <id>", "Use existing project ID instead of creating").option("--registry-id <id>", "Configure registry for the application").action(async (options) => {
|
|
11513
11704
|
try {
|
|
11514
11705
|
const globalOptions = program.opts();
|
|
@@ -11529,7 +11720,7 @@ program.command("deploy:github").description("Let GitHub Actions deploy a stage:
|
|
|
11529
11720
|
try {
|
|
11530
11721
|
const globalOptions = program.opts();
|
|
11531
11722
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11532
|
-
const { deployGithubCommand } = await Promise.resolve().then(() => require("./github-
|
|
11723
|
+
const { deployGithubCommand } = await Promise.resolve().then(() => require("./github-CrcGFkfD.cjs"));
|
|
11533
11724
|
await deployGithubCommand(options);
|
|
11534
11725
|
} catch (error) {
|
|
11535
11726
|
console.error(formatError(error));
|
|
@@ -11572,7 +11763,7 @@ program.command("login").description("Authenticate with a deployment or DNS prov
|
|
|
11572
11763
|
console.error(`Unknown provider: ${provider}. Supported: dokploy, hostinger`);
|
|
11573
11764
|
process.exit(1);
|
|
11574
11765
|
}
|
|
11575
|
-
await
|
|
11766
|
+
await loginCommand({
|
|
11576
11767
|
provider,
|
|
11577
11768
|
token: options.token,
|
|
11578
11769
|
endpoint: options.endpoint
|
|
@@ -11586,7 +11777,7 @@ program.command("logout").description("Remove stored credentials").option("--pro
|
|
|
11586
11777
|
try {
|
|
11587
11778
|
const globalOptions = program.opts();
|
|
11588
11779
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11589
|
-
await
|
|
11780
|
+
await logoutCommand({ provider: options.service ?? options.provider });
|
|
11590
11781
|
} catch (error) {
|
|
11591
11782
|
console.error(formatError(error));
|
|
11592
11783
|
process.exit(1);
|
|
@@ -11596,7 +11787,7 @@ program.command("whoami").description("Show current authentication status").acti
|
|
|
11596
11787
|
try {
|
|
11597
11788
|
const globalOptions = program.opts();
|
|
11598
11789
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11599
|
-
await
|
|
11790
|
+
await whoamiCommand();
|
|
11600
11791
|
} catch (error) {
|
|
11601
11792
|
console.error(formatError(error));
|
|
11602
11793
|
process.exit(1);
|
|
@@ -11664,9 +11855,12 @@ program.command("upgrade").description("Upgrade @geekmidas/cli (with --all, ever
|
|
|
11664
11855
|
});
|
|
11665
11856
|
program.parse();
|
|
11666
11857
|
//#endregion
|
|
11858
|
+
exports.canPrompt = canPrompt;
|
|
11667
11859
|
exports.formatError = formatError;
|
|
11668
11860
|
exports.generateFullstackCustomSecrets = generateFullstackCustomSecrets;
|
|
11861
|
+
exports.prompt = prompt;
|
|
11669
11862
|
exports.slug = slug;
|
|
11670
11863
|
exports.stamp = stamp;
|
|
11864
|
+
exports.validateDokployToken = validateDokployToken;
|
|
11671
11865
|
|
|
11672
11866
|
//# sourceMappingURL=index.cjs.map
|