@geekmidas/cli 10.0.0-alpha.65 → 10.0.0-alpha.66
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 +14 -0
- package/dist/{HostingerProvider-Dlmbfass.cjs → HostingerProvider-BznqRC2S.cjs} +3 -3
- package/dist/HostingerProvider-BznqRC2S.cjs.map +1 -0
- package/dist/{HostingerProvider-x9gQTAGZ.mjs → HostingerProvider-CY_VpVud.mjs} +3 -3
- package/dist/HostingerProvider-CY_VpVud.mjs.map +1 -0
- package/dist/{LegacyStateStore-BGoo__sO.cjs → LegacyStateStore-BFcTT2QL.cjs} +2 -2
- package/dist/{LegacyStateStore-BGoo__sO.cjs.map → LegacyStateStore-BFcTT2QL.cjs.map} +1 -1
- package/dist/{LegacyStateStore-BUu1nQ5u.mjs → LegacyStateStore-CFheFo62.mjs} +2 -2
- package/dist/{LegacyStateStore-BUu1nQ5u.mjs.map → LegacyStateStore-CFheFo62.mjs.map} +1 -1
- package/dist/{LocalStateStore-93urXyQe.cjs → LocalStateStore-BVUexSvu.cjs} +2 -2
- package/dist/{LocalStateStore-93urXyQe.cjs.map → LocalStateStore-BVUexSvu.cjs.map} +1 -1
- package/dist/{LocalStateStore-BRhMQRuy.mjs → LocalStateStore-Bm3x9oOg.mjs} +2 -2
- package/dist/{LocalStateStore-BRhMQRuy.mjs.map → LocalStateStore-Bm3x9oOg.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-pw1GhWwt.mjs → S3StateStore-BFHuctWM.mjs} +2 -2
- package/dist/{S3StateStore-pw1GhWwt.mjs.map → S3StateStore-BFHuctWM.mjs.map} +1 -1
- package/dist/{S3StateStore-F4dxw6kS.cjs → S3StateStore-CoXBhILd.cjs} +2 -2
- package/dist/{S3StateStore-F4dxw6kS.cjs.map → S3StateStore-CoXBhILd.cjs.map} +1 -1
- package/dist/{SSMStateStore-Bt9acuAF.cjs → SSMStateStore-BqCA9TP2.cjs} +2 -2
- package/dist/{SSMStateStore-Bt9acuAF.cjs.map → SSMStateStore-BqCA9TP2.cjs.map} +1 -1
- package/dist/{SSMStateStore-Dmj7zzFO.mjs → SSMStateStore-C1kvHScY.mjs} +2 -2
- package/dist/{SSMStateStore-Dmj7zzFO.mjs.map → SSMStateStore-C1kvHScY.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-Dvaiud0h.mjs} +4 -4
- package/dist/{bundler-D_14JLZF.mjs.map → bundler-Dvaiud0h.mjs.map} +1 -1
- package/dist/{bundler-D6MlIfBT.cjs → bundler-orRqUJNZ.cjs} +4 -4
- package/dist/{bundler-D6MlIfBT.cjs.map → bundler-orRqUJNZ.cjs.map} +1 -1
- package/dist/{cli-P56vvrDQ.mjs → cli-CfHm0AO7.mjs} +5 -4
- package/dist/cli-CfHm0AO7.mjs.map +1 -0
- package/dist/{cli-BfH1deAT.cjs → cli-D1JkkOwg.cjs} +5 -4
- package/dist/cli-D1JkkOwg.cjs.map +1 -0
- package/dist/{compose-DprE3ASm.mjs → compose-CNQL8BnO.mjs} +18 -482
- package/dist/compose-CNQL8BnO.mjs.map +1 -0
- package/dist/{compose-391oEKj1.cjs → compose-jrLy7KGO.cjs} +16 -571
- package/dist/compose-jrLy7KGO.cjs.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/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 +26 -17
- 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 +8 -8
- package/dist/deploy-B7aJi_Ah.cjs +511 -0
- package/dist/deploy-B7aJi_Ah.cjs.map +1 -0
- package/dist/deploy-DWn7YfIc.mjs +488 -0
- package/dist/deploy-DWn7YfIc.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-B4LcYG1E.cjs +38 -0
- package/dist/dokploy-B4LcYG1E.cjs.map +1 -0
- package/dist/dokploy-DalwLML5.mjs +38 -0
- package/dist/dokploy-DalwLML5.mjs.map +1 -0
- package/dist/{encryption-B1wJwgae.cjs → encryption-3KlGS1sl.cjs} +5 -7
- package/dist/{encryption-B1wJwgae.cjs.map → encryption-3KlGS1sl.cjs.map} +1 -1
- package/dist/{encryption-DF_hgIpl.mjs → encryption-CPfENwWO.mjs} +3 -5
- package/dist/{encryption-DF_hgIpl.mjs.map → encryption-CPfENwWO.mjs.map} +1 -1
- package/dist/{deploy-CZ5nlpsu.mjs → engine-CunvOG3s.mjs} +2100 -1733
- package/dist/engine-CunvOG3s.mjs.map +1 -0
- package/dist/{deploy-Cy8igpQF.cjs → engine-DR6KurWX.cjs} +2136 -1727
- package/dist/engine-DR6KurWX.cjs.map +1 -0
- package/dist/{github-CYcmTdFs.cjs → github-BJ5gh9bw.cjs} +7 -7
- package/dist/{github-CYcmTdFs.cjs.map → github-BJ5gh9bw.cjs.map} +1 -1
- package/dist/{github-B0YYE98x.mjs → github-MXA9v7Ge.mjs} +3 -3
- package/dist/{github-B0YYE98x.mjs.map → github-MXA9v7Ge.mjs.map} +1 -1
- package/dist/{index-DwKD_8lt.d.mts → index-CyApaHVe.d.cts} +2 -2
- package/dist/{index-DPUAGJaK.d.cts.map → index-CyApaHVe.d.cts.map} +1 -1
- package/dist/{index-DPUAGJaK.d.cts → 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 +276 -68
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +254 -50
- package/dist/index.mjs.map +1 -1
- package/dist/{migrate-B2qL5wj4.mjs → migrate-BJBcm4sG.mjs} +6 -6
- package/dist/{migrate-B2qL5wj4.mjs.map → migrate-BJBcm4sG.mjs.map} +1 -1
- package/dist/{migrate-q4pPAXtO.cjs → migrate-CF4J4GQS.cjs} +16 -16
- package/dist/{migrate-q4pPAXtO.cjs.map → migrate-CF4J4GQS.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/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-CVmch0wI.cjs} +3 -3
- package/dist/{resolve-N_i4XNd-.cjs.map → resolve-CVmch0wI.cjs.map} +1 -1
- package/dist/{resolve-DLkIXTct.mjs → resolve-Db0tNlrW.mjs} +3 -3
- package/dist/{resolve-DLkIXTct.mjs.map → resolve-Db0tNlrW.mjs.map} +1 -1
- package/dist/rollback-DvAo4OKS.mjs +133 -0
- package/dist/rollback-DvAo4OKS.mjs.map +1 -0
- package/dist/rollback-DxJK84hy.cjs +162 -0
- package/dist/rollback-DxJK84hy.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-BSwaL-dX.cjs → sniffer-5xmrkh2a.cjs} +112 -606
- package/dist/sniffer-5xmrkh2a.cjs.map +1 -0
- package/dist/{sniffer-BZ-OJO4Y.mjs → sniffer-BAQhLEsI.mjs} +95 -546
- package/dist/sniffer-BAQhLEsI.mjs.map +1 -0
- package/dist/{state-DF26e_lo.cjs → state-Y6ATakMX.cjs} +744 -20
- package/dist/state-Y6ATakMX.cjs.map +1 -0
- package/dist/{state-B8YwmUZU.mjs → state-uuYqnRVO.mjs} +605 -19
- package/dist/state-uuYqnRVO.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-Bs5E1oxm.cjs → terminal-CHy_MdjG.cjs} +11 -15
- package/dist/{terminal-Bs5E1oxm.cjs.map → terminal-CHy_MdjG.cjs.map} +1 -1
- package/dist/{terminal-CfbiYUbZ.mjs → terminal-DUhcZ1ND.mjs} +4 -4
- package/dist/{terminal-CfbiYUbZ.mjs.map → terminal-DUhcZ1ND.mjs.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/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/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/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.mjs
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
#!/usr/bin/env -S npx tsx
|
|
2
2
|
import { n as __require, t as __exportAll } from "./rolldown-runtime-BhDjJH2R.mjs";
|
|
3
|
-
import { C as loginCommand, E as whoamiCommand, S as keyFingerprint, g as createStateStore, n as sniffAppEnvironment, r as DokployApi, w as logoutCommand } from "./sniffer-BZ-OJO4Y.mjs";
|
|
4
3
|
import { i as CommandFailed, o as DEFAULT_TIMEOUT_MS, t as LocalSandbox } from "./local-CWR4Y_kW.mjs";
|
|
5
|
-
import { a as getDokployCredentials, o as getDokployRegistryId, s as getDokployToken } from "./credentials-Dq1MnWQf.mjs";
|
|
6
|
-
import { l as withOwningTsconfigJsx, r as discover, u as ConstructGenerator } from "./discover-
|
|
4
|
+
import { a as getDokployCredentials, d as storeHostingerToken, i as getCredentialsPath, l as removeDokployCredentials, o as getDokployRegistryId, s as getDokployToken, u as storeDokployCredentials } from "./credentials-Dq1MnWQf.mjs";
|
|
5
|
+
import { l as withOwningTsconfigJsx, r as discover, u as ConstructGenerator } from "./discover-BFoJWKGD.mjs";
|
|
7
6
|
import { t as appKey } from "./derive-B4vDpzgP.mjs";
|
|
8
|
-
import { A as deployedProblems, D as InvalidStages, O as TEST_STAGE, c as getAppGkmConfig, j as stageProblems, n as allConstructGlobs, s as getAppBuildOrder } from "./workspace-
|
|
7
|
+
import { A as deployedProblems, D as InvalidStages, O as TEST_STAGE, c as getAppGkmConfig, j as stageProblems, n as allConstructGlobs, s as getAppBuildOrder } from "./workspace-Be6uBhlF.mjs";
|
|
9
8
|
import { ConfigNotFound, NotABackendApp, NotInAnApp, loadAppConfig, loadConfig, loadWorkspaceConfig, loadWorkspaceSettings, parseModuleConfig } from "./config.mjs";
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import { i as telemetryFor, n as EndpointGenerator, r as runtimeFor } from "./OpenApiTsGenerator-C6v-IeHt.mjs";
|
|
9
|
+
import { $ as describeServices, A as reconcileWorkspace, At as withCustomSecret, D as backendsOf$1, Dt as maskPassword, E as FAKE_ENV, F as postgresDatabaseNames, J as cacheBackendFor, L as quoteIdentifier, M as LOCAL_CA_PATH, N as forgetState, O as constructGlobs, X as providerOf, at as findAvailablePort, ct as loadSecretsForApp, dt as secretsStoreFor, et as fakeKey, gt as projectKey, it as createEntryWrapper, k as derivedContainers, kt as toEmbeddableSecrets, lt as prepareEntryCredentials, mt as getKeyPath, nt as primaryPortKey, ot as isPortAvailable, pt as FileSecretsStore, rt as createCredentialsPreload, st as loadEnvFiles, v as dockerCommand, yt as deployIdentity, z as pgClient } from "./state-uuYqnRVO.mjs";
|
|
10
|
+
import { i as telemetryFor, n as EndpointGenerator, r as runtimeFor } from "./OpenApiTsGenerator-BmUAcR7d.mjs";
|
|
11
|
+
import { g as createStateStore, n as sniffAppEnvironment, o as DokployApi, x as keyFingerprint } from "./sniffer-BAQhLEsI.mjs";
|
|
14
12
|
import { generateOpenApi, openapiCommand, resolveOpenApiConfig } from "./openapi.mjs";
|
|
15
13
|
import { a as describeHolder, i as assignAppPorts, o as holderOf, r as appTag, s as withAppPorts, t as APP_TAG_ENV } from "./appPorts-C9z9Pzn9.mjs";
|
|
16
|
-
import { a as writeTestHarness, c as driversFor, i as TEST_MANIFEST_ENV, n as TEST_READY_FILE, o as SubscriberGenerator, s as cacheBackendsIn, t as TEST_READY_ENV } from "./ready-
|
|
14
|
+
import { a as writeTestHarness, c as driversFor, i as TEST_MANIFEST_ENV, n as TEST_READY_FILE, o as SubscriberGenerator, s as cacheBackendsIn, t as TEST_READY_ENV } from "./ready-2s3-CndS.mjs";
|
|
17
15
|
import { n as withCompute, r as withRoutes, t as manifestModule } from "./emit-C1e8qD08.mjs";
|
|
18
|
-
import { t as deploy$1 } from "./deploy-
|
|
19
|
-
import {
|
|
20
|
-
import { t as LocalStateStore } from "./LocalStateStore-
|
|
16
|
+
import { t as deploy$1 } from "./deploy-DWn7YfIc.mjs";
|
|
17
|
+
import { a as dockerCompose, i as stackDir, r as composeProject, t as composeTarget } from "./compose-CNQL8BnO.mjs";
|
|
18
|
+
import { t as LocalStateStore } from "./LocalStateStore-Bm3x9oOg.mjs";
|
|
21
19
|
import { a as getExecCommand, c as validateProjectName, i as findWorkspaceRoot, n as detectPackageManager$1, o as getInstallCommand, r as findWorkspacePackages, s as getRunCommand, t as checkDirectoryExists } from "./utils-D_fxUqvU.mjs";
|
|
22
20
|
import { createRequire } from "node:module";
|
|
23
21
|
import { basename, dirname, isAbsolute, join, relative, resolve } from "node:path";
|
|
24
22
|
import { Command } from "commander";
|
|
23
|
+
import { stdin, stdout } from "node:process";
|
|
24
|
+
import * as readline from "node:readline/promises";
|
|
25
25
|
import { existsSync, linkSync, mkdirSync, readFileSync, readdirSync, renameSync, unlinkSync, writeFileSync } from "node:fs";
|
|
26
26
|
import { chmod, mkdir, readFile, rm, writeFile } from "node:fs/promises";
|
|
27
27
|
import { homedir } from "node:os";
|
|
@@ -46,7 +46,192 @@ import { Function } from "@geekmidas/constructs/functions";
|
|
|
46
46
|
import { Queue } from "@geekmidas/constructs/queue";
|
|
47
47
|
import { Topic } from "@geekmidas/constructs/topic";
|
|
48
48
|
//#region package.json
|
|
49
|
-
var version = "10.0.0-alpha.
|
|
49
|
+
var version = "10.0.0-alpha.66";
|
|
50
|
+
//#endregion
|
|
51
|
+
//#region src/prompt.ts
|
|
52
|
+
/**
|
|
53
|
+
* Asking the person at the terminal.
|
|
54
|
+
*
|
|
55
|
+
* CLI layer only: a command's action may prompt, nothing it calls may. A
|
|
56
|
+
* library call (`deploy()`) that needs something it was not given raises a
|
|
57
|
+
* named error instead, and the command decides whether to ask.
|
|
58
|
+
*/
|
|
59
|
+
/** A prompt was needed with no terminal to ask at. */
|
|
60
|
+
var PromptNeedsTerminal = class extends Error {
|
|
61
|
+
question;
|
|
62
|
+
instead;
|
|
63
|
+
constructor(question, instead) {
|
|
64
|
+
super(`Interactive input required. ${instead}`);
|
|
65
|
+
this.question = question;
|
|
66
|
+
this.instead = instead;
|
|
67
|
+
this.name = "PromptNeedsTerminal";
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
/** Whether there is a person at a terminal to ask. */
|
|
71
|
+
function canPrompt() {
|
|
72
|
+
return process.stdin.isTTY === true;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Ask `message` and resolve with the line typed — without echoing it when
|
|
76
|
+
* `hidden`. Ctrl+C at a hidden prompt exits, as it would anywhere else in a
|
|
77
|
+
* terminal program: raw mode has taken the signal away from the shell.
|
|
78
|
+
*/
|
|
79
|
+
async function prompt(message, options) {
|
|
80
|
+
if (!canPrompt()) throw new PromptNeedsTerminal(message, options.instead);
|
|
81
|
+
if (options.hidden) {
|
|
82
|
+
process.stdout.write(message);
|
|
83
|
+
return new Promise((resolve, reject) => {
|
|
84
|
+
let value = "";
|
|
85
|
+
const cleanup = () => {
|
|
86
|
+
process.stdin.setRawMode(false);
|
|
87
|
+
process.stdin.pause();
|
|
88
|
+
process.stdin.removeListener("data", onData);
|
|
89
|
+
process.stdin.removeListener("error", onError);
|
|
90
|
+
};
|
|
91
|
+
const onError = (err) => {
|
|
92
|
+
cleanup();
|
|
93
|
+
reject(err);
|
|
94
|
+
};
|
|
95
|
+
const onData = (char) => {
|
|
96
|
+
const c = char.toString();
|
|
97
|
+
if (c === "\n" || c === "\r") {
|
|
98
|
+
cleanup();
|
|
99
|
+
process.stdout.write("\n");
|
|
100
|
+
resolve(value);
|
|
101
|
+
} else if (c === "") {
|
|
102
|
+
cleanup();
|
|
103
|
+
process.stdout.write("\n");
|
|
104
|
+
process.exit(1);
|
|
105
|
+
} else if (c === "" || c === "\b") {
|
|
106
|
+
if (value.length > 0) value = value.slice(0, -1);
|
|
107
|
+
} else value += c;
|
|
108
|
+
};
|
|
109
|
+
process.stdin.setRawMode(true);
|
|
110
|
+
process.stdin.resume();
|
|
111
|
+
process.stdin.on("data", onData);
|
|
112
|
+
process.stdin.on("error", onError);
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
const rl = readline.createInterface({
|
|
116
|
+
input: stdin,
|
|
117
|
+
output: stdout
|
|
118
|
+
});
|
|
119
|
+
try {
|
|
120
|
+
return await rl.question(message);
|
|
121
|
+
} finally {
|
|
122
|
+
rl.close();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
//#endregion
|
|
126
|
+
//#region src/auth/index.ts
|
|
127
|
+
const logger$8 = console;
|
|
128
|
+
/**
|
|
129
|
+
* Validate Dokploy token by making a test API call
|
|
130
|
+
*/
|
|
131
|
+
async function validateDokployToken(endpoint, token) {
|
|
132
|
+
const { DokployApi } = await import("./sniffer-BAQhLEsI.mjs").then((n) => n.c);
|
|
133
|
+
return new DokployApi({
|
|
134
|
+
baseUrl: endpoint,
|
|
135
|
+
token
|
|
136
|
+
}).validateToken();
|
|
137
|
+
}
|
|
138
|
+
/** What answers a login prompt without a terminal. */
|
|
139
|
+
const LOGIN_INSTEAD = "Please provide --token option.";
|
|
140
|
+
/**
|
|
141
|
+
* Login to a service
|
|
142
|
+
*/
|
|
143
|
+
async function loginCommand(options) {
|
|
144
|
+
const { provider, token: providedToken, endpoint: providedEndpoint } = options;
|
|
145
|
+
if (provider === "dokploy") {
|
|
146
|
+
logger$8.log("\n🔐 Logging in to Dokploy...\n");
|
|
147
|
+
let endpoint = providedEndpoint;
|
|
148
|
+
if (!endpoint) endpoint = await prompt("Dokploy URL (e.g., https://dokploy.example.com): ", { instead: LOGIN_INSTEAD });
|
|
149
|
+
endpoint = endpoint.replace(/\/$/, "");
|
|
150
|
+
try {
|
|
151
|
+
new URL(endpoint);
|
|
152
|
+
} catch {
|
|
153
|
+
logger$8.error("Invalid URL format");
|
|
154
|
+
process.exit(1);
|
|
155
|
+
}
|
|
156
|
+
let token = providedToken;
|
|
157
|
+
if (!token) {
|
|
158
|
+
logger$8.log(`\nGenerate a token at: ${endpoint}/settings/profile\n`);
|
|
159
|
+
token = await prompt("API Token: ", {
|
|
160
|
+
hidden: true,
|
|
161
|
+
instead: LOGIN_INSTEAD
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
if (!token) {
|
|
165
|
+
logger$8.error("Token is required");
|
|
166
|
+
process.exit(1);
|
|
167
|
+
}
|
|
168
|
+
logger$8.log("\nValidating credentials...");
|
|
169
|
+
if (!await validateDokployToken(endpoint, token)) {
|
|
170
|
+
logger$8.error("\n✗ Invalid credentials. Please check your token and try again.");
|
|
171
|
+
process.exit(1);
|
|
172
|
+
}
|
|
173
|
+
await storeDokployCredentials(token, endpoint);
|
|
174
|
+
logger$8.log("\n✓ Successfully logged in to Dokploy!");
|
|
175
|
+
logger$8.log(` Endpoint: ${endpoint}`);
|
|
176
|
+
logger$8.log(` Credentials stored in: ${getCredentialsPath()}`);
|
|
177
|
+
logger$8.log("\nYou can now use deploy commands without setting DOKPLOY_API_TOKEN.");
|
|
178
|
+
}
|
|
179
|
+
if (provider === "hostinger") {
|
|
180
|
+
logger$8.log("\n🔐 Logging in to Hostinger...\n");
|
|
181
|
+
let token = providedToken;
|
|
182
|
+
if (!token) {
|
|
183
|
+
logger$8.log("\nGenerate a token at: https://hpanel.hostinger.com/profile/api\n");
|
|
184
|
+
token = await prompt("API Token: ", {
|
|
185
|
+
hidden: true,
|
|
186
|
+
instead: LOGIN_INSTEAD
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
if (!token) {
|
|
190
|
+
logger$8.error("Token is required");
|
|
191
|
+
process.exit(1);
|
|
192
|
+
}
|
|
193
|
+
await storeHostingerToken(token);
|
|
194
|
+
logger$8.log("\n✓ Hostinger token stored.");
|
|
195
|
+
logger$8.log(` Credentials stored in: ${getCredentialsPath()}`);
|
|
196
|
+
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.");
|
|
197
|
+
logger$8.log("\nYou can now use it as a DNS provider without setting HOSTINGER_API_TOKEN.");
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Logout from a service
|
|
202
|
+
*/
|
|
203
|
+
async function logoutCommand(options) {
|
|
204
|
+
const { provider = "dokploy" } = options;
|
|
205
|
+
if (provider === "all") {
|
|
206
|
+
if (await removeDokployCredentials()) logger$8.log("\n✓ Logged out from all services");
|
|
207
|
+
else logger$8.log("\nNo stored credentials found");
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
if (provider === "dokploy") {
|
|
211
|
+
if (await removeDokployCredentials()) logger$8.log("\n✓ Logged out from Dokploy");
|
|
212
|
+
else logger$8.log("\nNo Dokploy credentials found");
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Show current login status
|
|
217
|
+
*/
|
|
218
|
+
async function whoamiCommand() {
|
|
219
|
+
logger$8.log("\n📋 Current credentials:\n");
|
|
220
|
+
const dokploy = await getDokployCredentials();
|
|
221
|
+
if (dokploy) {
|
|
222
|
+
logger$8.log(" Dokploy:");
|
|
223
|
+
logger$8.log(` Endpoint: ${dokploy.endpoint}`);
|
|
224
|
+
logger$8.log(` Token: ${maskToken(dokploy.token)}`);
|
|
225
|
+
} else logger$8.log(" Dokploy: Not logged in");
|
|
226
|
+
logger$8.log(`\n Credentials file: ${getCredentialsPath()}`);
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Mask a token for display
|
|
230
|
+
*/
|
|
231
|
+
function maskToken(token) {
|
|
232
|
+
if (token.length <= 8) return "****";
|
|
233
|
+
return `${token.slice(0, 4)}...${token.slice(-4)}`;
|
|
234
|
+
}
|
|
50
235
|
//#endregion
|
|
51
236
|
//#region src/trust/index.ts
|
|
52
237
|
/**
|
|
@@ -1850,9 +2035,9 @@ async function workspaceDevCommand(configured, options) {
|
|
|
1850
2035
|
for (const { id, port } of fakes) logger$5.log(`🎭 ${id} fake: http://localhost:${port}`);
|
|
1851
2036
|
logger$5.log(options.migrate || options.seed ? "🗄️ Migrating the databases" : "🗄️ Checking for pending migrations");
|
|
1852
2037
|
if (options.migrate || options.seed) {
|
|
1853
|
-
const { prepareDevDatabases } = await import("./migrate-
|
|
2038
|
+
const { prepareDevDatabases } = await import("./migrate-BJBcm4sG.mjs");
|
|
1854
2039
|
await prepareDevDatabases(workspace, reconciled.env, { seed: !!options.seed });
|
|
1855
|
-
} else await import("./migrate-
|
|
2040
|
+
} else await import("./migrate-BJBcm4sG.mjs").then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
|
|
1856
2041
|
logger$5.log(`⚠️ Could not check for pending migrations: ${error instanceof Error ? error.message : String(error)}`);
|
|
1857
2042
|
});
|
|
1858
2043
|
const appUrls = {};
|
|
@@ -3232,7 +3417,7 @@ async function buildApp(input) {
|
|
|
3232
3417
|
if (production?.bundle && !input.skipBundle) {
|
|
3233
3418
|
const outputDir = join(appRoot, ".gkm", "server");
|
|
3234
3419
|
const entryPoint = await writeSurfaceServer(outputDir, production);
|
|
3235
|
-
const { bundleServer } = await import("./bundler-
|
|
3420
|
+
const { bundleServer } = await import("./bundler-Dvaiud0h.mjs");
|
|
3236
3421
|
await bundleServer({
|
|
3237
3422
|
entryPoint,
|
|
3238
3423
|
outputDir: join(outputDir, "dist"),
|
|
@@ -3370,7 +3555,7 @@ async function buildForTarget(target, context, appRoot, workspaceRoot, endpointG
|
|
|
3370
3555
|
let masterKey;
|
|
3371
3556
|
if (context.production?.bundle && !skipBundle) {
|
|
3372
3557
|
logger$4.log(`\n📦 Bundling production server...`);
|
|
3373
|
-
const { bundleServer } = await import("./bundler-
|
|
3558
|
+
const { bundleServer } = await import("./bundler-Dvaiud0h.mjs");
|
|
3374
3559
|
const allConstructs = [
|
|
3375
3560
|
...endpoints.map((e) => e.construct),
|
|
3376
3561
|
...functions.map((f) => f.construct),
|
|
@@ -5065,25 +5250,25 @@ function loadPackageJson() {
|
|
|
5065
5250
|
* Run: pnpm --filter @geekmidas/cli sync-versions
|
|
5066
5251
|
*/
|
|
5067
5252
|
const GEEKMIDAS_VERSIONS = {
|
|
5068
|
-
"@geekmidas/audit": "~10.0.0-alpha.
|
|
5069
|
-
"@geekmidas/auth": "~10.0.0-alpha.
|
|
5070
|
-
"@geekmidas/cache": "~10.0.0-alpha.
|
|
5071
|
-
"@geekmidas/client": "~10.0.0-alpha.
|
|
5072
|
-
"@geekmidas/cloud": "~10.0.0-alpha.
|
|
5073
|
-
"@geekmidas/constructs": "~10.0.0-alpha.
|
|
5074
|
-
"@geekmidas/db": "~10.0.0-alpha.
|
|
5075
|
-
"@geekmidas/emailkit": "~10.0.0-alpha.
|
|
5076
|
-
"@geekmidas/envkit": "~10.0.0-alpha.
|
|
5077
|
-
"@geekmidas/errors": "~10.0.0-alpha.
|
|
5078
|
-
"@geekmidas/events": "~10.0.0-alpha.
|
|
5079
|
-
"@geekmidas/logger": "~10.0.0-alpha.
|
|
5080
|
-
"@geekmidas/manifest": "~10.0.0-alpha.
|
|
5081
|
-
"@geekmidas/rate-limit": "~10.0.0-alpha.
|
|
5082
|
-
"@geekmidas/schema": "~10.0.0-alpha.
|
|
5083
|
-
"@geekmidas/services": "~10.0.0-alpha.
|
|
5084
|
-
"@geekmidas/storage": "~10.0.0-alpha.
|
|
5085
|
-
"@geekmidas/telescope": "~10.0.0-alpha.
|
|
5086
|
-
"@geekmidas/testkit": "~10.0.0-alpha.
|
|
5253
|
+
"@geekmidas/audit": "~10.0.0-alpha.66",
|
|
5254
|
+
"@geekmidas/auth": "~10.0.0-alpha.66",
|
|
5255
|
+
"@geekmidas/cache": "~10.0.0-alpha.66",
|
|
5256
|
+
"@geekmidas/client": "~10.0.0-alpha.66",
|
|
5257
|
+
"@geekmidas/cloud": "~10.0.0-alpha.66",
|
|
5258
|
+
"@geekmidas/constructs": "~10.0.0-alpha.66",
|
|
5259
|
+
"@geekmidas/db": "~10.0.0-alpha.66",
|
|
5260
|
+
"@geekmidas/emailkit": "~10.0.0-alpha.66",
|
|
5261
|
+
"@geekmidas/envkit": "~10.0.0-alpha.66",
|
|
5262
|
+
"@geekmidas/errors": "~10.0.0-alpha.66",
|
|
5263
|
+
"@geekmidas/events": "~10.0.0-alpha.66",
|
|
5264
|
+
"@geekmidas/logger": "~10.0.0-alpha.66",
|
|
5265
|
+
"@geekmidas/manifest": "~10.0.0-alpha.66",
|
|
5266
|
+
"@geekmidas/rate-limit": "~10.0.0-alpha.66",
|
|
5267
|
+
"@geekmidas/schema": "~10.0.0-alpha.66",
|
|
5268
|
+
"@geekmidas/services": "~10.0.0-alpha.66",
|
|
5269
|
+
"@geekmidas/storage": "~10.0.0-alpha.66",
|
|
5270
|
+
"@geekmidas/telescope": "~10.0.0-alpha.66",
|
|
5271
|
+
"@geekmidas/testkit": "~10.0.0-alpha.66",
|
|
5087
5272
|
"@geekmidas/cli": `~${loadPackageJson().version}`
|
|
5088
5273
|
};
|
|
5089
5274
|
//#endregion
|
|
@@ -10846,8 +11031,8 @@ function testDatabases(reconciled) {
|
|
|
10846
11031
|
* starts without the reference data the app needs.
|
|
10847
11032
|
*/
|
|
10848
11033
|
async function migrateTestStage(workspace, env) {
|
|
10849
|
-
const { migrateAndSeed } = await import("./migrate-
|
|
10850
|
-
const { discover } = await import("./discover-
|
|
11034
|
+
const { migrateAndSeed } = await import("./migrate-BJBcm4sG.mjs");
|
|
11035
|
+
const { discover } = await import("./discover-BFoJWKGD.mjs").then((n) => n.i);
|
|
10851
11036
|
const sources = {};
|
|
10852
11037
|
const manifest = await discover({
|
|
10853
11038
|
patterns: constructGlobs(workspace),
|
|
@@ -11277,7 +11462,7 @@ program.command("migrate").description("Apply each database construct's migratio
|
|
|
11277
11462
|
try {
|
|
11278
11463
|
const globalOptions = program.opts();
|
|
11279
11464
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11280
|
-
const { migrateCommand } = await import("./migrate-
|
|
11465
|
+
const { migrateCommand } = await import("./migrate-BJBcm4sG.mjs");
|
|
11281
11466
|
await migrateCommand({
|
|
11282
11467
|
...options,
|
|
11283
11468
|
...construct ? { construct } : {}
|
|
@@ -11291,7 +11476,7 @@ program.command("seed").description("Migrate, then run each database construct's
|
|
|
11291
11476
|
try {
|
|
11292
11477
|
const globalOptions = program.opts();
|
|
11293
11478
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11294
|
-
const { seedCommand } = await import("./migrate-
|
|
11479
|
+
const { seedCommand } = await import("./migrate-BJBcm4sG.mjs");
|
|
11295
11480
|
await seedCommand({
|
|
11296
11481
|
...options,
|
|
11297
11482
|
...construct ? { construct } : {}
|
|
@@ -11305,7 +11490,7 @@ program.command("migration").description("Write a construct's next migration: an
|
|
|
11305
11490
|
try {
|
|
11306
11491
|
const globalOptions = program.opts();
|
|
11307
11492
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11308
|
-
const { migrationCommand } = await import("./migrate-
|
|
11493
|
+
const { migrationCommand } = await import("./migrate-BJBcm4sG.mjs");
|
|
11309
11494
|
await migrationCommand({
|
|
11310
11495
|
construct,
|
|
11311
11496
|
...name ? { name } : {}
|
|
@@ -11413,7 +11598,7 @@ program.command("encryption:rotate").description("Add a new current key to an En
|
|
|
11413
11598
|
try {
|
|
11414
11599
|
const globalOptions = program.opts();
|
|
11415
11600
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11416
|
-
const { encryptionRotateCommand } = await import("./encryption-
|
|
11601
|
+
const { encryptionRotateCommand } = await import("./encryption-CPfENwWO.mjs");
|
|
11417
11602
|
await encryptionRotateCommand(construct, options);
|
|
11418
11603
|
} catch (error) {
|
|
11419
11604
|
console.error(formatError(error));
|
|
@@ -11424,7 +11609,7 @@ program.command("encryption:retire").description("Remove an old key from an Encr
|
|
|
11424
11609
|
try {
|
|
11425
11610
|
const globalOptions = program.opts();
|
|
11426
11611
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11427
|
-
const { encryptionRetireCommand } = await import("./encryption-
|
|
11612
|
+
const { encryptionRetireCommand } = await import("./encryption-CPfENwWO.mjs");
|
|
11428
11613
|
await encryptionRetireCommand(construct, key, options);
|
|
11429
11614
|
} catch (error) {
|
|
11430
11615
|
console.error(formatError(error));
|
|
@@ -11467,7 +11652,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
|
|
|
11467
11652
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11468
11653
|
const { loadWorkspaceConfig } = await import("./config.mjs");
|
|
11469
11654
|
const { reconcileMissingSecrets } = await import("./reconcile--I7V4Klj.mjs");
|
|
11470
|
-
const { secretsStoreFor } = await import("./
|
|
11655
|
+
const { secretsStoreFor } = await import("./state-uuYqnRVO.mjs").then((n) => n.ft);
|
|
11471
11656
|
const { workspace } = await loadWorkspaceConfig();
|
|
11472
11657
|
const stage = options.stage ?? workspace.stages.local;
|
|
11473
11658
|
const store = await secretsStoreFor(workspace, stage);
|
|
@@ -11476,7 +11661,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
|
|
|
11476
11661
|
console.error(`No secrets found for stage "${stage}". Run "gkm secrets:init --stage ${stage}" first.`);
|
|
11477
11662
|
process.exit(1);
|
|
11478
11663
|
}
|
|
11479
|
-
const { derivedContainers } = await import("./state-
|
|
11664
|
+
const { derivedContainers } = await import("./state-uuYqnRVO.mjs").then((n) => n.j);
|
|
11480
11665
|
const result = reconcileMissingSecrets(secrets, workspace, await derivedContainers(workspace, stage));
|
|
11481
11666
|
if (!result) {
|
|
11482
11667
|
console.log(`\n✓ Secrets for stage "${stage}" are up-to-date`);
|
|
@@ -11490,8 +11675,8 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
|
|
|
11490
11675
|
process.exit(1);
|
|
11491
11676
|
}
|
|
11492
11677
|
});
|
|
11493
|
-
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) => {
|
|
11494
|
-
const { deployCli } = await import("./cli-
|
|
11678
|
+
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) => {
|
|
11679
|
+
const { deployCli } = await import("./cli-CfHm0AO7.mjs");
|
|
11495
11680
|
const globalOptions = program.opts();
|
|
11496
11681
|
const code = await deployCli({
|
|
11497
11682
|
cwd: resolve(globalOptions.cwd ?? process.cwd()),
|
|
@@ -11500,10 +11685,29 @@ program.command("deploy").description("Deploy a stage through its target").optio
|
|
|
11500
11685
|
stage: options.stage,
|
|
11501
11686
|
...options.tag ? { tag: options.tag } : {},
|
|
11502
11687
|
...options.json ? { json: true } : {},
|
|
11503
|
-
...options.dryRun ? { dryRun: true } : {}
|
|
11688
|
+
...options.dryRun ? { dryRun: true } : {},
|
|
11689
|
+
...options.atomic ? { atomic: true } : {}
|
|
11504
11690
|
});
|
|
11505
11691
|
if (code !== 0) process.exit(code);
|
|
11506
11692
|
});
|
|
11693
|
+
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) => {
|
|
11694
|
+
try {
|
|
11695
|
+
const { rollbackStage } = await import("./rollback-DvAo4OKS.mjs").then((n) => n.a);
|
|
11696
|
+
const { terminalCredentials } = await import("./terminal-DUhcZ1ND.mjs");
|
|
11697
|
+
const globalOptions = program.opts();
|
|
11698
|
+
await rollbackStage({
|
|
11699
|
+
cwd: resolve(globalOptions.cwd ?? process.cwd()),
|
|
11700
|
+
stage: options.stage,
|
|
11701
|
+
...options.app ? { app: options.app } : {},
|
|
11702
|
+
...options.atomic ? { atomic: true } : {},
|
|
11703
|
+
credentials: terminalCredentials(),
|
|
11704
|
+
log: (line) => console.log(line)
|
|
11705
|
+
});
|
|
11706
|
+
} catch (error) {
|
|
11707
|
+
console.error(formatError(error));
|
|
11708
|
+
process.exit(1);
|
|
11709
|
+
}
|
|
11710
|
+
});
|
|
11507
11711
|
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) => {
|
|
11508
11712
|
try {
|
|
11509
11713
|
const globalOptions = program.opts();
|
|
@@ -11524,7 +11728,7 @@ program.command("deploy:github").description("Let GitHub Actions deploy a stage:
|
|
|
11524
11728
|
try {
|
|
11525
11729
|
const globalOptions = program.opts();
|
|
11526
11730
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11527
|
-
const { deployGithubCommand } = await import("./github-
|
|
11731
|
+
const { deployGithubCommand } = await import("./github-MXA9v7Ge.mjs");
|
|
11528
11732
|
await deployGithubCommand(options);
|
|
11529
11733
|
} catch (error) {
|
|
11530
11734
|
console.error(formatError(error));
|
|
@@ -11659,6 +11863,6 @@ program.command("upgrade").description("Upgrade @geekmidas/cli (with --all, ever
|
|
|
11659
11863
|
});
|
|
11660
11864
|
program.parse();
|
|
11661
11865
|
//#endregion
|
|
11662
|
-
export { formatError as i, slug as n, stamp as r, generateFullstackCustomSecrets as t };
|
|
11866
|
+
export { validateDokployToken as a, formatError as i, slug as n, canPrompt as o, stamp as r, prompt as s, generateFullstackCustomSecrets as t };
|
|
11663
11867
|
|
|
11664
11868
|
//# sourceMappingURL=index.mjs.map
|