@geekmidas/cli 10.0.0-alpha.90 → 10.0.0-alpha.92
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{EndpointGenerator-CVc6Oi1Y.mjs → EndpointGenerator-Bor2tZCm.mjs} +14 -4
- package/dist/EndpointGenerator-Bor2tZCm.mjs.map +1 -0
- package/dist/{EndpointGenerator-CwLjBCFE.cjs → EndpointGenerator-De03t1hd.cjs} +14 -4
- package/dist/EndpointGenerator-De03t1hd.cjs.map +1 -0
- package/dist/{GoDaddyProvider-DSStJVAv.mjs → GoDaddyProvider-BqYGk9XT.mjs} +11 -10
- package/dist/GoDaddyProvider-BqYGk9XT.mjs.map +1 -0
- package/dist/{GoDaddyProvider-DqZ1qD_F.cjs → GoDaddyProvider-CJwg2r_9.cjs} +11 -10
- package/dist/GoDaddyProvider-CJwg2r_9.cjs.map +1 -0
- package/dist/{HostingerProvider-BI6J7oJr.mjs → HostingerProvider-1mqD6aG8.mjs} +2 -2
- package/dist/{HostingerProvider-BI6J7oJr.mjs.map → HostingerProvider-1mqD6aG8.mjs.map} +1 -1
- package/dist/{HostingerProvider-CyTpG_jy.cjs → HostingerProvider-C6t-PSNe.cjs} +2 -2
- package/dist/{HostingerProvider-CyTpG_jy.cjs.map → HostingerProvider-C6t-PSNe.cjs.map} +1 -1
- package/dist/{LegacyStateStore-DXmNA7hy.cjs → LegacyStateStore-CeEwayMB.cjs} +2 -2
- package/dist/{LegacyStateStore-DXmNA7hy.cjs.map → LegacyStateStore-CeEwayMB.cjs.map} +1 -1
- package/dist/{LegacyStateStore-ZkdmiUFZ.mjs → LegacyStateStore-DdJ1bCRV.mjs} +2 -2
- package/dist/{LegacyStateStore-ZkdmiUFZ.mjs.map → LegacyStateStore-DdJ1bCRV.mjs.map} +1 -1
- package/dist/{LocalStateStore-BBeTlRTH.cjs → LocalStateStore-BMfseje2.cjs} +2 -2
- package/dist/{LocalStateStore-BBeTlRTH.cjs.map → LocalStateStore-BMfseje2.cjs.map} +1 -1
- package/dist/{LocalStateStore-CU-O0SBp.mjs → LocalStateStore-Y8XHdoCR.mjs} +2 -2
- package/dist/{LocalStateStore-CU-O0SBp.mjs.map → LocalStateStore-Y8XHdoCR.mjs.map} +1 -1
- package/dist/{OpenApiTsGenerator-B--HV-sW.cjs → OpenApiTsGenerator-CS_RtWOz.cjs} +2 -2
- package/dist/{OpenApiTsGenerator-B--HV-sW.cjs.map → OpenApiTsGenerator-CS_RtWOz.cjs.map} +1 -1
- package/dist/{OpenApiTsGenerator-CkvsPdgg.mjs → OpenApiTsGenerator-DWAF-7Fu.mjs} +2 -2
- package/dist/{OpenApiTsGenerator-CkvsPdgg.mjs.map → OpenApiTsGenerator-DWAF-7Fu.mjs.map} +1 -1
- package/dist/{S3StateStore-bwxcI_wQ.mjs → S3StateStore-BfoY4MvD.mjs} +2 -2
- package/dist/{S3StateStore-bwxcI_wQ.mjs.map → S3StateStore-BfoY4MvD.mjs.map} +1 -1
- package/dist/{S3StateStore-Br8VMY22.cjs → S3StateStore-BmMt2HhW.cjs} +2 -2
- package/dist/{S3StateStore-Br8VMY22.cjs.map → S3StateStore-BmMt2HhW.cjs.map} +1 -1
- package/dist/{SSMStateStore-CsOS0W1y.mjs → SSMStateStore-Bdyw_0Jj.mjs} +2 -2
- package/dist/{SSMStateStore-CsOS0W1y.mjs.map → SSMStateStore-Bdyw_0Jj.mjs.map} +1 -1
- package/dist/{SSMStateStore-DoZE1Wi1.cjs → SSMStateStore-D9K62wM4.cjs} +2 -2
- package/dist/{SSMStateStore-DoZE1Wi1.cjs.map → SSMStateStore-D9K62wM4.cjs.map} +1 -1
- package/dist/{SubscriberGenerator-BPqQf8fB.mjs → SubscriberGenerator-CyN2VF5X.mjs} +6 -5
- package/dist/SubscriberGenerator-CyN2VF5X.mjs.map +1 -0
- package/dist/{SubscriberGenerator-BVn7cQ-2.cjs → SubscriberGenerator-Dvz7EzqK.cjs} +6 -5
- package/dist/SubscriberGenerator-Dvz7EzqK.cjs.map +1 -0
- package/dist/{add-DHk1roh_.mjs → add-2Opn2VVE.mjs} +250 -94
- package/dist/add-2Opn2VVE.mjs.map +1 -0
- package/dist/{add-CNMF0Q3m.cjs → add-oN0b18HN.cjs} +250 -94
- package/dist/add-oN0b18HN.cjs.map +1 -0
- package/dist/{aws-BTawF0F-.cjs → aws-BTReGjpY.cjs} +24 -6
- package/dist/aws-BTReGjpY.cjs.map +1 -0
- package/dist/{aws-B-6uEhgP.mjs → aws-Dz2bYxK1.mjs} +24 -6
- package/dist/aws-Dz2bYxK1.mjs.map +1 -0
- package/dist/awsStore-B5We7bMg.cjs +136 -0
- package/dist/awsStore-B5We7bMg.cjs.map +1 -0
- package/dist/awsStore-BWa1KNY-.mjs +119 -0
- package/dist/awsStore-BWa1KNY-.mjs.map +1 -0
- package/dist/{bundler-D6eBfVkl.mjs → bundler-C-AdesaG.mjs} +5 -5
- package/dist/{bundler-D6eBfVkl.mjs.map → bundler-C-AdesaG.mjs.map} +1 -1
- package/dist/{bundler-BQJiB7Ub.cjs → bundler-CXQDrhzN.cjs} +5 -5
- package/dist/{bundler-BQJiB7Ub.cjs.map → bundler-CXQDrhzN.cjs.map} +1 -1
- package/dist/{cli-BE9mqeX8.cjs → cli-BRZFYvdb.cjs} +5 -5
- package/dist/{cli-BE9mqeX8.cjs.map → cli-BRZFYvdb.cjs.map} +1 -1
- package/dist/{cli-DD-Yk-I5.mjs → cli-BjhaVObS.mjs} +5 -5
- package/dist/{cli-DD-Yk-I5.mjs.map → cli-BjhaVObS.mjs.map} +1 -1
- package/dist/{compose-Bhmf0n4o.mjs → compose-CTdVeeVk.mjs} +45 -34
- package/dist/compose-CTdVeeVk.mjs.map +1 -0
- package/dist/{compose-CvpU6ooi.cjs → compose-fnYmPk_c.cjs} +45 -34
- package/dist/compose-fnYmPk_c.cjs.map +1 -0
- package/dist/{config-pST7E0CS.d.cts → config-BJo8Wggp.d.mts} +8 -8
- package/dist/{config-CdEcTrjG.d.mts.map → config-BJo8Wggp.d.mts.map} +1 -1
- package/dist/{config-CdEcTrjG.d.mts → config-C9zx7KsX.d.cts} +8 -8
- package/dist/{config-pST7E0CS.d.cts.map → config-C9zx7KsX.d.cts.map} +1 -1
- package/dist/config.cjs +8 -7
- package/dist/config.cjs.map +1 -1
- package/dist/config.d.cts +3 -3
- package/dist/config.d.mts +3 -3
- package/dist/config.mjs +8 -7
- package/dist/config.mjs.map +1 -1
- package/dist/{credentialSchemas-BJqRJNK4.mjs → credentialSchemas-BJFvfkaz.mjs} +5 -4
- package/dist/credentialSchemas-BJFvfkaz.mjs.map +1 -0
- package/dist/{credentialSchemas-DCR4Wd1W.cjs → credentialSchemas-CAPKFkrG.cjs} +5 -4
- package/dist/credentialSchemas-CAPKFkrG.cjs.map +1 -0
- package/dist/{credentials-CnVqoXMb.mjs → credentials-C4KII3PD.mjs} +3 -2
- package/dist/{credentials-CnVqoXMb.mjs.map → credentials-C4KII3PD.mjs.map} +1 -1
- package/dist/{credentials-BKfIugu2.cjs → credentials-QBu7VgaQ.cjs} +3 -2
- package/dist/credentials-QBu7VgaQ.cjs.map +1 -0
- package/dist/{databases-CzszQV0N.mjs → databases-BeGP5eDh.mjs} +11 -10
- package/dist/databases-BeGP5eDh.mjs.map +1 -0
- package/dist/{databases-BY-pEImp.cjs → databases-DGALFDG3.cjs} +11 -10
- package/dist/databases-DGALFDG3.cjs.map +1 -0
- package/dist/{define-DR8xGYfL.mjs → define-6poNqm5O.mjs} +12 -3
- package/dist/define-6poNqm5O.mjs.map +1 -0
- package/dist/{define-DzRz8FgH.cjs → define-crmMcXFS.cjs} +12 -3
- package/dist/define-crmMcXFS.cjs.map +1 -0
- package/dist/deploy/public.cjs +17 -16
- package/dist/deploy/public.cjs.map +1 -1
- package/dist/deploy/public.d.cts +30 -30
- package/dist/deploy/public.d.cts.map +1 -1
- package/dist/deploy/public.d.mts +30 -30
- package/dist/deploy/public.d.mts.map +1 -1
- package/dist/deploy/public.mjs +17 -16
- package/dist/deploy/public.mjs.map +1 -1
- package/dist/{deploy-CuHasEA4.cjs → deploy-6ToUHJmM.cjs} +14 -13
- package/dist/deploy-6ToUHJmM.cjs.map +1 -0
- package/dist/{deploy-QNtx_eWR.mjs → deploy-yuJHlkY0.mjs} +14 -13
- package/dist/deploy-yuJHlkY0.mjs.map +1 -0
- package/dist/{discover-CU0paUyH.d.cts → discover-CRMhvHG9.d.cts} +2 -2
- package/dist/{discover-CU0paUyH.d.cts.map → discover-CRMhvHG9.d.cts.map} +1 -1
- package/dist/{discover-D1It5r_h.cjs → discover-DPgu-ScS.cjs} +4 -3
- package/dist/discover-DPgu-ScS.cjs.map +1 -0
- package/dist/{discover-DFiJxwfv.d.mts → discover-G76EQ4vY.d.mts} +2 -2
- package/dist/{discover-DFiJxwfv.d.mts.map → discover-G76EQ4vY.d.mts.map} +1 -1
- package/dist/{discover-BPelzeGW.mjs → discover-qjFapetL.mjs} +4 -3
- package/dist/discover-qjFapetL.mjs.map +1 -0
- package/dist/{dokploy-CYcMLh9-.mjs → dokploy-BvbJ_A4Q.mjs} +3 -3
- package/dist/{dokploy-CYcMLh9-.mjs.map → dokploy-BvbJ_A4Q.mjs.map} +1 -1
- package/dist/{dokploy-DIowwyIB.cjs → dokploy-Bvvfj2qe.cjs} +3 -3
- package/dist/{dokploy-DIowwyIB.cjs.map → dokploy-Bvvfj2qe.cjs.map} +1 -1
- package/dist/{drivers-DTZzxeIl.mjs → drivers-CTaWrA_L.mjs} +2 -2
- package/dist/{drivers-DTZzxeIl.mjs.map → drivers-CTaWrA_L.mjs.map} +1 -1
- package/dist/{drivers-LYSdQDmd.cjs → drivers-DDojgzz0.cjs} +2 -2
- package/dist/{drivers-LYSdQDmd.cjs.map → drivers-DDojgzz0.cjs.map} +1 -1
- package/dist/{encryption-BrEef7Jk.mjs → encryption-C9Jm9dfn.mjs} +7 -6
- package/dist/encryption-C9Jm9dfn.mjs.map +1 -0
- package/dist/{encryption-CjYdUb2s.cjs → encryption-CgW167LO.cjs} +7 -6
- package/dist/encryption-CgW167LO.cjs.map +1 -0
- package/dist/{engine-2h4k5ICq.mjs → engine-C8Ye9MUm.mjs} +36 -25
- package/dist/engine-C8Ye9MUm.mjs.map +1 -0
- package/dist/{engine-BhJ7ZP9K.cjs → engine-Dj7ZKO8H.cjs} +36 -25
- package/dist/engine-Dj7ZKO8H.cjs.map +1 -0
- package/dist/errors-D8Gwp5kU.mjs +23 -0
- package/dist/errors-D8Gwp5kU.mjs.map +1 -0
- package/dist/errors-DMC4Umsb.cjs +34 -0
- package/dist/errors-DMC4Umsb.cjs.map +1 -0
- package/dist/{github-BCDF6xVH.mjs → github-B1k42hIt.mjs} +31 -9
- package/dist/github-B1k42hIt.mjs.map +1 -0
- package/dist/{github-B5Bw4HIu.cjs → github-BD051KZZ.cjs} +31 -9
- package/dist/github-BD051KZZ.cjs.map +1 -0
- package/dist/{index-YFNxR5Ns.d.mts → index-B5uuwx-Y.d.cts} +6 -6
- package/dist/{index-D-F_hTDz.d.cts.map → index-B5uuwx-Y.d.cts.map} +1 -1
- package/dist/{index-D-F_hTDz.d.cts → index-D1pHwqkK.d.mts} +6 -6
- package/dist/{index-YFNxR5Ns.d.mts.map → index-D1pHwqkK.d.mts.map} +1 -1
- package/dist/index.cjs +159 -208
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +159 -208
- package/dist/index.mjs.map +1 -1
- package/dist/{local-BjxDfPvy.cjs → local-B61kUh0w.cjs} +3 -3
- package/dist/{local-BjxDfPvy.cjs.map → local-B61kUh0w.cjs.map} +1 -1
- package/dist/{local-IuoIF3CT.mjs → local-Otp74ak0.mjs} +3 -3
- package/dist/{local-IuoIF3CT.mjs.map → local-Otp74ak0.mjs.map} +1 -1
- package/dist/{migrate-DbtcuOr_.mjs → migrate-BSbZ7-9n.mjs} +8 -7
- package/dist/migrate-BSbZ7-9n.mjs.map +1 -0
- package/dist/{migrate-q2YYLJLE.cjs → migrate-D3VVsiHp.cjs} +8 -7
- package/dist/migrate-D3VVsiHp.cjs.map +1 -0
- package/dist/{migrate-DWZz9kah.mjs → migrate-IZsYyZ5F.mjs} +8 -7
- package/dist/migrate-IZsYyZ5F.mjs.map +1 -0
- package/dist/{migrate-CGaancHY.cjs → migrate-f6JDjyCp.cjs} +8 -7
- package/dist/migrate-f6JDjyCp.cjs.map +1 -0
- package/dist/openapi.cjs +3 -3
- package/dist/openapi.d.cts +1 -10
- package/dist/openapi.d.cts.map +1 -1
- package/dist/openapi.d.mts +1 -10
- package/dist/openapi.d.mts.map +1 -1
- package/dist/openapi.mjs +3 -3
- package/dist/{provider-C9_-45d5.cjs → provider-BqpjG9QM.cjs} +4 -3
- package/dist/provider-BqpjG9QM.cjs.map +1 -0
- package/dist/{provider-q4lsYzYG.mjs → provider-CEOKk8NS.mjs} +4 -3
- package/dist/provider-CEOKk8NS.mjs.map +1 -0
- package/dist/{ready-BpNbORRB.cjs → ready-D3PIjx3S.cjs} +9 -8
- package/dist/ready-D3PIjx3S.cjs.map +1 -0
- package/dist/{ready-b6vm0-W-.mjs → ready-naOSJpeJ.mjs} +9 -8
- package/dist/ready-naOSJpeJ.mjs.map +1 -0
- package/dist/reconcile/public.cjs +1 -1
- package/dist/reconcile/public.d.cts +2 -2
- package/dist/reconcile/public.d.mts +2 -2
- package/dist/reconcile/public.mjs +1 -1
- package/dist/{resolve-DNg0icnh.mjs → resolve-Be4bF1w4.mjs} +12 -11
- package/dist/resolve-Be4bF1w4.mjs.map +1 -0
- package/dist/{resolve-Cns0v6dN.cjs → resolve-DUp65SnJ.cjs} +12 -11
- package/dist/resolve-DUp65SnJ.cjs.map +1 -0
- package/dist/{rollback-CFrNLmxs.mjs → rollback-D1d-fW0r.mjs} +11 -10
- package/dist/rollback-D1d-fW0r.mjs.map +1 -0
- package/dist/{rollback-UIjS25F1.cjs → rollback-DDHtd0GJ.cjs} +11 -10
- package/dist/rollback-DDHtd0GJ.cjs.map +1 -0
- package/dist/{runtime-CN_kmqxo.d.cts → runtime-DDrHlYe5.d.cts} +11 -19
- package/dist/runtime-DDrHlYe5.d.cts.map +1 -0
- package/dist/{runtime-Cjvon3oj.d.mts → runtime-Es1V4e9M.d.mts} +11 -19
- package/dist/runtime-Es1V4e9M.d.mts.map +1 -0
- package/dist/sandbox/credentials-worker.cjs +3 -3
- package/dist/sandbox/credentials-worker.mjs +3 -3
- package/dist/sandbox/discover-worker.cjs +1 -1
- package/dist/sandbox/discover-worker.mjs +1 -1
- package/dist/sandbox/migrate-worker.cjs +3 -3
- package/dist/sandbox/migrate-worker.mjs +3 -3
- package/dist/{sandbox-M8UnLhXE.d.cts → sandbox-C3WsTa5m.d.mts} +4 -26
- package/dist/sandbox-C3WsTa5m.d.mts.map +1 -0
- package/dist/{sandbox-CL--ZDui.cjs → sandbox-CHv3OYXg.cjs} +4 -3
- package/dist/sandbox-CHv3OYXg.cjs.map +1 -0
- package/dist/{sandbox-Dm247NGx.mjs → sandbox-CbVB7uOD.mjs} +4 -3
- package/dist/sandbox-CbVB7uOD.mjs.map +1 -0
- package/dist/{sandbox-M8UnLhXE.d.mts → sandbox-MaxSeU92.d.cts} +4 -26
- package/dist/sandbox-MaxSeU92.d.cts.map +1 -0
- package/dist/{secretsManager-Chs9VV2r.mjs → secretsManager-C6wm-9uZ.mjs} +24 -3
- package/dist/secretsManager-C6wm-9uZ.mjs.map +1 -0
- package/dist/{secretsManager-DcMlHnRC.cjs → secretsManager-Cwwgs81g.cjs} +24 -3
- package/dist/secretsManager-Cwwgs81g.cjs.map +1 -0
- package/dist/{seeds-CkIPFGNO.cjs → seeds-BKoJYsE7.cjs} +58 -57
- package/dist/seeds-BKoJYsE7.cjs.map +1 -0
- package/dist/{seeds-odfgSCmu.mjs → seeds-CvGQJnPO.mjs} +58 -57
- package/dist/seeds-CvGQJnPO.mjs.map +1 -0
- package/dist/{sniffer-BTtX3NUM.mjs → sniffer-BTtGAtm3.mjs} +14 -8
- package/dist/sniffer-BTtGAtm3.mjs.map +1 -0
- package/dist/{sniffer-IAQEpsQb.cjs → sniffer-Dq5BS98f.cjs} +14 -8
- package/dist/{sniffer-IAQEpsQb.cjs.map → sniffer-Dq5BS98f.cjs.map} +1 -1
- package/dist/{sst-CJzvyrEz.mjs → sst-BaRXp2Dd.mjs} +18 -8
- package/dist/sst-BaRXp2Dd.mjs.map +1 -0
- package/dist/{sst-BgcOsaBi.cjs → sst-CnKY-CSh.cjs} +18 -8
- package/dist/sst-CnKY-CSh.cjs.map +1 -0
- package/dist/{stages-CUn6gvXL.cjs → stages-BI8JvPzI.cjs} +6 -5
- package/dist/stages-BI8JvPzI.cjs.map +1 -0
- package/dist/{stages-CnZRYmkI.mjs → stages-DY-fQKmo.mjs} +6 -5
- package/dist/stages-DY-fQKmo.mjs.map +1 -0
- package/dist/target/public.cjs +3 -3
- package/dist/target/public.d.cts +2 -2
- package/dist/target/public.d.mts +2 -2
- package/dist/target/public.mjs +3 -3
- package/dist/{terminal-DuapRxh6.cjs → terminal-8XngdSTo.cjs} +6 -5
- package/dist/terminal-8XngdSTo.cjs.map +1 -0
- package/dist/{terminal-D8TPK7o9.mjs → terminal-Dtd6BZX9.mjs} +6 -5
- package/dist/terminal-Dtd6BZX9.mjs.map +1 -0
- package/dist/{types-ZHuZ89hv.d.mts → types-B3Gqs175.d.mts} +19 -23
- package/dist/types-B3Gqs175.d.mts.map +1 -0
- package/dist/{types-NqX1Hz4P.d.cts → types-Bk9st2cd.d.cts} +19 -23
- package/dist/types-Bk9st2cd.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-CJ0lKFq-.mjs → workspace-Bzw7Zs82.mjs} +34 -33
- package/dist/workspace-Bzw7Zs82.mjs.map +1 -0
- package/dist/{workspace-CwW3Gkru.cjs → workspace-CHOB2Xg3.cjs} +34 -33
- package/dist/workspace-CHOB2Xg3.cjs.map +1 -0
- package/package.json +15 -15
- package/dist/EndpointGenerator-CVc6Oi1Y.mjs.map +0 -1
- package/dist/EndpointGenerator-CwLjBCFE.cjs.map +0 -1
- package/dist/GoDaddyProvider-DSStJVAv.mjs.map +0 -1
- package/dist/GoDaddyProvider-DqZ1qD_F.cjs.map +0 -1
- package/dist/SubscriberGenerator-BPqQf8fB.mjs.map +0 -1
- package/dist/SubscriberGenerator-BVn7cQ-2.cjs.map +0 -1
- package/dist/add-CNMF0Q3m.cjs.map +0 -1
- package/dist/add-DHk1roh_.mjs.map +0 -1
- package/dist/aws-B-6uEhgP.mjs.map +0 -1
- package/dist/aws-BTawF0F-.cjs.map +0 -1
- package/dist/awsStore-7VmS_cZR.cjs +0 -54
- package/dist/awsStore-7VmS_cZR.cjs.map +0 -1
- package/dist/awsStore-B529csle.mjs +0 -43
- package/dist/awsStore-B529csle.mjs.map +0 -1
- package/dist/compose-Bhmf0n4o.mjs.map +0 -1
- package/dist/compose-CvpU6ooi.cjs.map +0 -1
- package/dist/credentialSchemas-BJqRJNK4.mjs.map +0 -1
- package/dist/credentialSchemas-DCR4Wd1W.cjs.map +0 -1
- package/dist/credentials-BKfIugu2.cjs.map +0 -1
- package/dist/databases-BY-pEImp.cjs.map +0 -1
- package/dist/databases-CzszQV0N.mjs.map +0 -1
- package/dist/define-DR8xGYfL.mjs.map +0 -1
- package/dist/define-DzRz8FgH.cjs.map +0 -1
- package/dist/deploy-CuHasEA4.cjs.map +0 -1
- package/dist/deploy-QNtx_eWR.mjs.map +0 -1
- package/dist/discover-BPelzeGW.mjs.map +0 -1
- package/dist/discover-D1It5r_h.cjs.map +0 -1
- package/dist/encryption-BrEef7Jk.mjs.map +0 -1
- package/dist/encryption-CjYdUb2s.cjs.map +0 -1
- package/dist/engine-2h4k5ICq.mjs.map +0 -1
- package/dist/engine-BhJ7ZP9K.cjs.map +0 -1
- package/dist/github-B5Bw4HIu.cjs.map +0 -1
- package/dist/github-BCDF6xVH.mjs.map +0 -1
- package/dist/migrate-CGaancHY.cjs.map +0 -1
- package/dist/migrate-DWZz9kah.mjs.map +0 -1
- package/dist/migrate-DbtcuOr_.mjs.map +0 -1
- package/dist/migrate-q2YYLJLE.cjs.map +0 -1
- package/dist/provider-C9_-45d5.cjs.map +0 -1
- package/dist/provider-q4lsYzYG.mjs.map +0 -1
- package/dist/ready-BpNbORRB.cjs.map +0 -1
- package/dist/ready-b6vm0-W-.mjs.map +0 -1
- package/dist/resolve-Cns0v6dN.cjs.map +0 -1
- package/dist/resolve-DNg0icnh.mjs.map +0 -1
- package/dist/rollback-CFrNLmxs.mjs.map +0 -1
- package/dist/rollback-UIjS25F1.cjs.map +0 -1
- package/dist/runtime-CN_kmqxo.d.cts.map +0 -1
- package/dist/runtime-Cjvon3oj.d.mts.map +0 -1
- package/dist/sandbox-CL--ZDui.cjs.map +0 -1
- package/dist/sandbox-Dm247NGx.mjs.map +0 -1
- package/dist/sandbox-M8UnLhXE.d.cts.map +0 -1
- package/dist/sandbox-M8UnLhXE.d.mts.map +0 -1
- package/dist/secretsManager-Chs9VV2r.mjs.map +0 -1
- package/dist/secretsManager-DcMlHnRC.cjs.map +0 -1
- package/dist/seeds-CkIPFGNO.cjs.map +0 -1
- package/dist/seeds-odfgSCmu.mjs.map +0 -1
- package/dist/sniffer-BTtX3NUM.mjs.map +0 -1
- package/dist/sst-BgcOsaBi.cjs.map +0 -1
- package/dist/sst-CJzvyrEz.mjs.map +0 -1
- package/dist/stages-CUn6gvXL.cjs.map +0 -1
- package/dist/stages-CnZRYmkI.mjs.map +0 -1
- package/dist/terminal-D8TPK7o9.mjs.map +0 -1
- package/dist/terminal-DuapRxh6.cjs.map +0 -1
- package/dist/types-NqX1Hz4P.d.cts.map +0 -1
- package/dist/types-ZHuZ89hv.d.mts.map +0 -1
- package/dist/workspace-CJ0lKFq-.mjs.map +0 -1
- package/dist/workspace-CwW3Gkru.cjs.map +0 -1
package/dist/index.mjs
CHANGED
|
@@ -1,25 +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 {
|
|
4
|
-
import { l as
|
|
3
|
+
import { n as isGkmError, t as GkmError } from "./errors-D8Gwp5kU.mjs";
|
|
4
|
+
import { _ as storeDokployCredentials, d as getDokployRegistryId, f as getDokployToken, g as removeGoDaddyCredentials, h as removeDokployCredentials, i as CommandFailed, l as getCredentialsPath, m as readCredentials, o as DEFAULT_TIMEOUT_MS, t as MissingCredential, u as getDokployCredentials, v as storeGoDaddyToken, y as storeHostingerToken } from "./credentials-C4KII3PD.mjs";
|
|
5
|
+
import { l as withOwningTsconfigJsx, r as discover, u as ConstructGenerator } from "./discover-qjFapetL.mjs";
|
|
5
6
|
import { t as appKey } from "./derive-B4vDpzgP.mjs";
|
|
6
|
-
import { A as InvalidStages, F as stageProblems, P as deployedProblems, R as stageSampleRate, a as allConstructGlobs, d as getAppGkmConfig, j as TEST_STAGE, u as getAppBuildOrder } from "./workspace-
|
|
7
|
+
import { A as InvalidStages, F as stageProblems, P as deployedProblems, R as stageSampleRate, a as allConstructGlobs, d as getAppGkmConfig, j as TEST_STAGE, u as getAppBuildOrder } from "./workspace-Bzw7Zs82.mjs";
|
|
7
8
|
import { ConfigNotFound, NotABackendApp, NotInAnApp, loadAppConfig, loadConfig, loadWorkspaceConfig, loadWorkspaceSettings, parseModuleConfig } from "./config.mjs";
|
|
8
|
-
import { $n as LOCAL_LOGS_EMAIL, $t as isImageBuild, An as prepareEntryCredentials, Cn as createCredentialsPreload, Dn as loadEnvFiles, Dt as LOCAL_CA_PATH, En as isPortAvailable, Fn as FileSecretsStore, Ft as quoteIdentifier, In as getKeyPath, Mn as secretsStoreFor, Nt as postgresDatabaseNames, On as loadPortState, Ot as forgetState, Qn as withCustomSecret, Qt as imageBuildCredentials, Rn as projectKey, Sn as primaryPortKey, Tn as findAvailablePort, U as createStateStore, Vn as deployIdentity, X as assertDevServicesFlag, Yn as maskPassword, Zn as toEmbeddableSecrets, a as provisionStage, at as WorkerGenerator, ct as QueueGenerator, dn as appTelemetry, dt as backendsOf$1, en as cacheBackendFor, ft as constructGlobs, h as dockerCommand, hn as telemetryOf, in as CLUSTER_DATABASE, it as workerUnits, kn as loadSecretsForApp, lt as CronGenerator, mn as surfaceClientTraced, mt as reconcileWorkspace, nn as providerOf, ot as workerBundleName, pn as scopeTelemetryEnv, pt as derivedContainers, sn as TELEMETRY_CONTAINER, st as workerEntryDir, tn as eventsBackendFor, u as provisionCommand, ut as FAKE_ENV, vn as describeServices, wn as createEntryWrapper, xn as portsOf, yn as fakeKey, yt as readLocalCredentials, zt as pgClient } from "./seeds-
|
|
9
|
-
import { c as startTelemetryCode, l as telemetryFor, n as runtimeFor, o as mountRequestSpansCode, r as parseTelemetryFlag, s as routeTelemetry, t as EndpointGenerator, u as writeTelemetryModule } from "./EndpointGenerator-
|
|
9
|
+
import { $n as LOCAL_LOGS_EMAIL, $t as isImageBuild, An as prepareEntryCredentials, Cn as createCredentialsPreload, Dn as loadEnvFiles, Dt as LOCAL_CA_PATH, En as isPortAvailable, Fn as FileSecretsStore, Ft as quoteIdentifier, In as getKeyPath, Mn as secretsStoreFor, Nt as postgresDatabaseNames, On as loadPortState, Ot as forgetState, Qn as withCustomSecret, Qt as imageBuildCredentials, Rn as projectKey, Sn as primaryPortKey, Tn as findAvailablePort, U as createStateStore, Vn as deployIdentity, X as assertDevServicesFlag, Yn as maskPassword, Zn as toEmbeddableSecrets, a as provisionStage, at as WorkerGenerator, ct as QueueGenerator, dn as appTelemetry, dt as backendsOf$1, en as cacheBackendFor, ft as constructGlobs, h as dockerCommand, hn as telemetryOf, in as CLUSTER_DATABASE, it as workerUnits, kn as loadSecretsForApp, lt as CronGenerator, mn as surfaceClientTraced, mt as reconcileWorkspace, nn as providerOf, ot as workerBundleName, pn as scopeTelemetryEnv, pt as derivedContainers, sn as TELEMETRY_CONTAINER, st as workerEntryDir, tn as eventsBackendFor, u as provisionCommand, ut as FAKE_ENV, vn as describeServices, wn as createEntryWrapper, xn as portsOf, yn as fakeKey, yt as readLocalCredentials, zt as pgClient } from "./seeds-CvGQJnPO.mjs";
|
|
10
|
+
import { c as startTelemetryCode, l as telemetryFor, n as runtimeFor, o as mountRequestSpansCode, r as parseTelemetryFlag, s as routeTelemetry, t as EndpointGenerator, u as writeTelemetryModule } from "./EndpointGenerator-Bor2tZCm.mjs";
|
|
10
11
|
import { generateOpenApi, openapiCommand, resolveOpenApiConfig } from "./openapi.mjs";
|
|
11
|
-
import { s as isCacheBackend, t as SubscriberGenerator } from "./SubscriberGenerator-
|
|
12
|
+
import { s as isCacheBackend, t as SubscriberGenerator } from "./SubscriberGenerator-CyN2VF5X.mjs";
|
|
12
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";
|
|
13
|
-
import { n as driversFor, r as eventsBackendsIn, t as cacheBackendsIn } from "./drivers-
|
|
14
|
+
import { n as driversFor, r as eventsBackendsIn, t as cacheBackendsIn } from "./drivers-CTaWrA_L.mjs";
|
|
14
15
|
import { n as withCompute, r as withRoutes, t as manifestModule } from "./emit-C1e8qD08.mjs";
|
|
15
|
-
import { t as LocalSandbox } from "./local-
|
|
16
|
-
import { f as keyFingerprint, n as sniffAppEnvironment, o as DokployApi } from "./sniffer-
|
|
17
|
-
import { t as deploy$1 } from "./deploy-
|
|
18
|
-
import { _ as planStackDns, a as stackOverrideFile, b as serverAddressHint, d as pinnedRef, f as edgeDir, g as applyStackDns, h as dockerCompose, i as ComposePushNeedsBuild, m as EDGE_PROJECT, o as composeProject, p as removeEdgeRoutes, r as ComposePinNeedsPull, s as stackDir, t as composeTarget, u as parseDigests, v as requiredServerAddress, x as stackHosts, y as serverAddress } from "./compose-
|
|
19
|
-
import { o as loadCredentialSchemas, t as CredentialsInvalid } from "./credentialSchemas-
|
|
20
|
-
import { t as LocalStateStore } from "./LocalStateStore-
|
|
16
|
+
import { t as LocalSandbox } from "./local-Otp74ak0.mjs";
|
|
17
|
+
import { f as keyFingerprint, n as sniffAppEnvironment, o as DokployApi } from "./sniffer-BTtGAtm3.mjs";
|
|
18
|
+
import { t as deploy$1 } from "./deploy-yuJHlkY0.mjs";
|
|
19
|
+
import { _ as planStackDns, a as stackOverrideFile, b as serverAddressHint, d as pinnedRef, f as edgeDir, g as applyStackDns, h as dockerCompose, i as ComposePushNeedsBuild, m as EDGE_PROJECT, o as composeProject, p as removeEdgeRoutes, r as ComposePinNeedsPull, s as stackDir, t as composeTarget, u as parseDigests, v as requiredServerAddress, x as stackHosts, y as serverAddress } from "./compose-CTdVeeVk.mjs";
|
|
20
|
+
import { o as loadCredentialSchemas, t as CredentialsInvalid } from "./credentialSchemas-BJFvfkaz.mjs";
|
|
21
|
+
import { t as LocalStateStore } from "./LocalStateStore-Y8XHdoCR.mjs";
|
|
21
22
|
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
|
-
import
|
|
23
|
+
import "./awsStore-BWa1KNY-.mjs";
|
|
24
|
+
import { a as writeTestHarness, i as TEST_MANIFEST_ENV, n as TEST_READY_FILE, t as TEST_READY_ENV } from "./ready-naOSJpeJ.mjs";
|
|
23
25
|
import { createRequire } from "node:module";
|
|
24
26
|
import { basename, dirname, isAbsolute, join, relative, resolve } from "node:path";
|
|
25
27
|
import { Command, Option } from "commander";
|
|
@@ -47,7 +49,7 @@ import crypto from "crypto";
|
|
|
47
49
|
import { Function } from "@geekmidas/constructs/functions";
|
|
48
50
|
import { Topic } from "@geekmidas/constructs/topic";
|
|
49
51
|
//#region package.json
|
|
50
|
-
var version = "10.0.0-alpha.
|
|
52
|
+
var version = "10.0.0-alpha.92";
|
|
51
53
|
//#endregion
|
|
52
54
|
//#region src/prompt.ts
|
|
53
55
|
/**
|
|
@@ -58,7 +60,7 @@ var version = "10.0.0-alpha.90";
|
|
|
58
60
|
* named error instead, and the command decides whether to ask.
|
|
59
61
|
*/
|
|
60
62
|
/** A prompt was needed with no terminal to ask at. */
|
|
61
|
-
var PromptNeedsTerminal = class extends
|
|
63
|
+
var PromptNeedsTerminal = class extends GkmError {
|
|
62
64
|
question;
|
|
63
65
|
instead;
|
|
64
66
|
constructor(question, instead) {
|
|
@@ -130,7 +132,7 @@ const logger$8 = console;
|
|
|
130
132
|
* Validate Dokploy token by making a test API call
|
|
131
133
|
*/
|
|
132
134
|
async function validateDokployToken(endpoint, token) {
|
|
133
|
-
const { DokployApi } = await import("./sniffer-
|
|
135
|
+
const { DokployApi } = await import("./sniffer-BTtGAtm3.mjs").then((n) => n.c);
|
|
134
136
|
return new DokployApi({
|
|
135
137
|
baseUrl: endpoint,
|
|
136
138
|
token
|
|
@@ -514,7 +516,7 @@ async function isTrusted(url) {
|
|
|
514
516
|
}
|
|
515
517
|
}
|
|
516
518
|
/** The edge has not run, so there is no authority to trust yet. */
|
|
517
|
-
var NoLocalAuthority = class extends
|
|
519
|
+
var NoLocalAuthority = class extends GkmError {
|
|
518
520
|
path;
|
|
519
521
|
constructor(path) {
|
|
520
522
|
super(`No local certificate authority at ${path}. It is generated the first time the edge starts, so run "gkm setup" (or "gkm dev") once — and if this project declares no file server, nothing needs one.`);
|
|
@@ -523,7 +525,7 @@ var NoLocalAuthority = class extends Error {
|
|
|
523
525
|
}
|
|
524
526
|
};
|
|
525
527
|
/** A platform with no trust store this knows how to write to. */
|
|
526
|
-
var UnsupportedPlatform = class extends
|
|
528
|
+
var UnsupportedPlatform = class extends GkmError {
|
|
527
529
|
platform;
|
|
528
530
|
certificate;
|
|
529
531
|
constructor(platform, certificate) {
|
|
@@ -608,7 +610,7 @@ const SIGNED_IN = [
|
|
|
608
610
|
"localstack"
|
|
609
611
|
];
|
|
610
612
|
/** Nothing has generated this workspace's local logins yet. */
|
|
611
|
-
var NoLocalCredentials = class extends
|
|
613
|
+
var NoLocalCredentials = class extends GkmError {
|
|
612
614
|
workspace;
|
|
613
615
|
constructor(workspace) {
|
|
614
616
|
super(`'${workspace}' has no local logins on this machine yet: they are generated the first time gkm dev, gkm test or gkm setup starts its services. Run one of them, then this again.`);
|
|
@@ -658,7 +660,7 @@ const DISCOVERY_QUIET_ENV = "GKM_DISCOVERY_QUIET";
|
|
|
658
660
|
/** The route everything is served under. */
|
|
659
661
|
const BASE = "/__gkm";
|
|
660
662
|
/** `GKM_DISCOVERY_PORT` is set to something that is not a port. */
|
|
661
|
-
var InvalidDiscoveryPort = class extends
|
|
663
|
+
var InvalidDiscoveryPort = class extends GkmError {
|
|
662
664
|
value;
|
|
663
665
|
constructor(value) {
|
|
664
666
|
super(`${DISCOVERY_PORT_ENV}=${value} is not a port. Set it to a number from 0 to 65535 (0 serves discovery on a free port of its own), or unset it to use dev.discoveryPort.`);
|
|
@@ -1748,7 +1750,7 @@ function closeFakes(served) {
|
|
|
1748
1750
|
//#region src/exec/index.ts
|
|
1749
1751
|
const logger$6 = console;
|
|
1750
1752
|
/** `gkm exec` was given nothing to run. */
|
|
1751
|
-
var NoCommandSpecified = class extends
|
|
1753
|
+
var NoCommandSpecified = class extends GkmError {
|
|
1752
1754
|
constructor() {
|
|
1753
1755
|
super("No command specified. Usage: gkm exec -- <command>");
|
|
1754
1756
|
this.name = "NoCommandSpecified";
|
|
@@ -2324,9 +2326,9 @@ async function workspaceDevCommand(configured, options) {
|
|
|
2324
2326
|
for (const { id, port } of fakes) logger$5.log(`🎭 ${id} fake: http://localhost:${port}`);
|
|
2325
2327
|
logger$5.log(options.migrate || options.seed ? "🗄️ Migrating the databases" : "🗄️ Checking for pending migrations");
|
|
2326
2328
|
if (options.migrate || options.seed) {
|
|
2327
|
-
const { prepareDevDatabases } = await import("./migrate-
|
|
2329
|
+
const { prepareDevDatabases } = await import("./migrate-BSbZ7-9n.mjs");
|
|
2328
2330
|
await prepareDevDatabases(workspace, reconciled.env, { seed: !!options.seed });
|
|
2329
|
-
} else await import("./migrate-
|
|
2331
|
+
} else await import("./migrate-BSbZ7-9n.mjs").then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
|
|
2330
2332
|
logger$5.log(`⚠️ Could not check for pending migrations: ${error instanceof Error ? error.message : String(error)}`);
|
|
2331
2333
|
});
|
|
2332
2334
|
const appUrls = {};
|
|
@@ -2736,7 +2738,7 @@ function tsxCommand(appRoot, args) {
|
|
|
2736
2738
|
}
|
|
2737
2739
|
}
|
|
2738
2740
|
/** A port this app must serve on is held by something else. */
|
|
2739
|
-
var DevPortInUse = class extends
|
|
2741
|
+
var DevPortInUse = class extends GkmError {
|
|
2740
2742
|
port;
|
|
2741
2743
|
holder;
|
|
2742
2744
|
constructor(port, holder) {
|
|
@@ -2753,7 +2755,7 @@ var DevPortInUse = class extends Error {
|
|
|
2753
2755
|
* Only these are refused: a port another project holds is moved off instead
|
|
2754
2756
|
* (see `assignAppPorts`), but moving off our own would start a second copy.
|
|
2755
2757
|
*/
|
|
2756
|
-
var WorkspacePortsInUse = class extends
|
|
2758
|
+
var WorkspacePortsInUse = class extends GkmError {
|
|
2757
2759
|
held;
|
|
2758
2760
|
constructor(held) {
|
|
2759
2761
|
super(`This workspace's apps are already running:\n${held.map(({ app, port, holder }) => ` ${app}: ${port} — ${describeHolder(holder)}`).join("\n")}\nA previous \`gkm dev\` left them behind. Stop them (kill the pids above) and start again. Nothing was started.`);
|
|
@@ -3210,7 +3212,7 @@ const SUPERSEDED_OUTPUT = [
|
|
|
3210
3212
|
function isMainProvider(value) {
|
|
3211
3213
|
return value === "aws" || value === "server";
|
|
3212
3214
|
}
|
|
3213
|
-
var UnknownBuildProvider = class extends
|
|
3215
|
+
var UnknownBuildProvider = class extends GkmError {
|
|
3214
3216
|
provider;
|
|
3215
3217
|
constructor(provider) {
|
|
3216
3218
|
super(`'${provider}' is not a build target. Pass --provider aws or --provider server, or leave it out to build for where gkm.config.ts deploys.`);
|
|
@@ -3219,7 +3221,7 @@ var UnknownBuildProvider = class extends Error {
|
|
|
3219
3221
|
}
|
|
3220
3222
|
};
|
|
3221
3223
|
/** `--cache` named something that is not a cache backend. */
|
|
3222
|
-
var UnknownCacheBackend = class extends
|
|
3224
|
+
var UnknownCacheBackend = class extends GkmError {
|
|
3223
3225
|
backend;
|
|
3224
3226
|
constructor(backend) {
|
|
3225
3227
|
super(`'${backend}' is not a cache backend. Pass --cache upstash, elasticache, db or redis, or leave it out to register the deploy target's.`);
|
|
@@ -3379,7 +3381,7 @@ async function buildApp(input) {
|
|
|
3379
3381
|
...production,
|
|
3380
3382
|
...telemetry ? { telemetry } : {}
|
|
3381
3383
|
});
|
|
3382
|
-
const { bundleServer } = await import("./bundler-
|
|
3384
|
+
const { bundleServer } = await import("./bundler-C-AdesaG.mjs");
|
|
3383
3385
|
await bundleServer({
|
|
3384
3386
|
entryPoint,
|
|
3385
3387
|
outputDir: join(outputDir, "dist"),
|
|
@@ -3524,7 +3526,7 @@ async function buildWorkers(input) {
|
|
|
3524
3526
|
});
|
|
3525
3527
|
logger$4.log(`Generated worker ${worker.id}: ${crons.length} crons, ${queues.length} queues, ${subscribers.length} subscribers`);
|
|
3526
3528
|
if (!input.bundle) continue;
|
|
3527
|
-
const { bundleServer } = await import("./bundler-
|
|
3529
|
+
const { bundleServer } = await import("./bundler-C-AdesaG.mjs");
|
|
3528
3530
|
const outfile = workerBundleName(worker.id);
|
|
3529
3531
|
await bundleServer({
|
|
3530
3532
|
entryPoint,
|
|
@@ -3610,7 +3612,7 @@ async function buildForTarget(target, context, appRoot, workspaceRoot, endpointG
|
|
|
3610
3612
|
let masterKey;
|
|
3611
3613
|
if (context.production?.bundle && !skipBundle) {
|
|
3612
3614
|
logger$4.log(`\n📦 Bundling production server...`);
|
|
3613
|
-
const { bundleServer } = await import("./bundler-
|
|
3615
|
+
const { bundleServer } = await import("./bundler-C-AdesaG.mjs");
|
|
3614
3616
|
const allConstructs = [
|
|
3615
3617
|
...endpoints.map((e) => e.construct),
|
|
3616
3618
|
...functions.map((f) => f.construct),
|
|
@@ -3848,7 +3850,7 @@ function formatRoutes(routes) {
|
|
|
3848
3850
|
* `deploy()` as any other target, so there is one way a stack comes up.
|
|
3849
3851
|
*/
|
|
3850
3852
|
/** `--build` and `--pull` together ask for two different things. */
|
|
3851
|
-
var ComposeModeConflict = class extends
|
|
3853
|
+
var ComposeModeConflict = class extends GkmError {
|
|
3852
3854
|
constructor() {
|
|
3853
3855
|
super("--build and --pull ask for opposite things: build images from this checkout, or pull a tag CI pushed. Pass one of them.");
|
|
3854
3856
|
this.name = "ComposeModeConflict";
|
|
@@ -3930,12 +3932,37 @@ async function composeCommand(options, deps = {}) {
|
|
|
3930
3932
|
deploy: result
|
|
3931
3933
|
};
|
|
3932
3934
|
}
|
|
3935
|
+
//#endregion
|
|
3936
|
+
//#region src/debug.ts
|
|
3937
|
+
let _debug = false;
|
|
3938
|
+
/**
|
|
3939
|
+
* Enable debug mode globally.
|
|
3940
|
+
* When enabled, verbose error details are shown everywhere.
|
|
3941
|
+
*/
|
|
3942
|
+
function enableDebug() {
|
|
3943
|
+
_debug = true;
|
|
3944
|
+
}
|
|
3945
|
+
/**
|
|
3946
|
+
* Check if debug mode is active.
|
|
3947
|
+
* Activated by `--debug` flag or `GKM_DEBUG=1` env var.
|
|
3948
|
+
*/
|
|
3949
|
+
function isDebug() {
|
|
3950
|
+
return _debug || process.env.GKM_DEBUG === "1";
|
|
3951
|
+
}
|
|
3933
3952
|
/**
|
|
3934
3953
|
* Format a fatal error for display.
|
|
3935
|
-
*
|
|
3954
|
+
*
|
|
3955
|
+
* An error gkm raised on purpose ({@link isGkmError}) is `Name: message` —
|
|
3956
|
+
* its message is the answer, and a stack would only point into gkm. Anything
|
|
3957
|
+
* else is unexpected, and prints its stack and every cause beneath it. Debug
|
|
3958
|
+
* mode prints the stack of both.
|
|
3936
3959
|
*/
|
|
3937
3960
|
function formatError(error) {
|
|
3938
3961
|
if (!(error instanceof Error)) return String(error);
|
|
3962
|
+
if (isGkmError(error) && !isDebug()) {
|
|
3963
|
+
const cause = error.cause;
|
|
3964
|
+
return cause === void 0 ? `${error.name}: ${error.message}` : `${error.name}: ${error.message}\n\nCaused by: ${cause instanceof Error ? `${cause.name}: ${cause.message}` : String(cause)}`;
|
|
3965
|
+
}
|
|
3939
3966
|
let output = error.stack ?? error.message;
|
|
3940
3967
|
let cause = error.cause;
|
|
3941
3968
|
while (cause) if (cause instanceof Error) {
|
|
@@ -3947,6 +3974,14 @@ function formatError(error) {
|
|
|
3947
3974
|
}
|
|
3948
3975
|
return output;
|
|
3949
3976
|
}
|
|
3977
|
+
/**
|
|
3978
|
+
* End a command that failed: print the error ({@link formatError}) on stderr
|
|
3979
|
+
* and exit 1. What every command's action does with what it throws.
|
|
3980
|
+
*/
|
|
3981
|
+
function exitWithError(error) {
|
|
3982
|
+
console.error(formatError(error));
|
|
3983
|
+
process.exit(1);
|
|
3984
|
+
}
|
|
3950
3985
|
//#endregion
|
|
3951
3986
|
//#region src/deploy/init.ts
|
|
3952
3987
|
const logger$3 = console;
|
|
@@ -5312,25 +5347,25 @@ function loadPackageJson() {
|
|
|
5312
5347
|
* Run: pnpm --filter @geekmidas/cli sync-versions
|
|
5313
5348
|
*/
|
|
5314
5349
|
const GEEKMIDAS_VERSIONS = {
|
|
5315
|
-
"@geekmidas/audit": "~10.0.0-alpha.
|
|
5316
|
-
"@geekmidas/auth": "~10.0.0-alpha.
|
|
5317
|
-
"@geekmidas/cache": "~10.0.0-alpha.
|
|
5318
|
-
"@geekmidas/client": "~10.0.0-alpha.
|
|
5319
|
-
"@geekmidas/cloud": "~10.0.0-alpha.
|
|
5320
|
-
"@geekmidas/constructs": "~10.0.0-alpha.
|
|
5321
|
-
"@geekmidas/db": "~10.0.0-alpha.
|
|
5322
|
-
"@geekmidas/emailkit": "~10.0.0-alpha.
|
|
5323
|
-
"@geekmidas/envkit": "~10.0.0-alpha.
|
|
5324
|
-
"@geekmidas/errors": "~10.0.0-alpha.
|
|
5325
|
-
"@geekmidas/events": "~10.0.0-alpha.
|
|
5326
|
-
"@geekmidas/logger": "~10.0.0-alpha.
|
|
5327
|
-
"@geekmidas/manifest": "~10.0.0-alpha.
|
|
5328
|
-
"@geekmidas/rate-limit": "~10.0.0-alpha.
|
|
5329
|
-
"@geekmidas/schema": "~10.0.0-alpha.
|
|
5330
|
-
"@geekmidas/services": "~10.0.0-alpha.
|
|
5331
|
-
"@geekmidas/storage": "~10.0.0-alpha.
|
|
5332
|
-
"@geekmidas/telescope": "~10.0.0-alpha.
|
|
5333
|
-
"@geekmidas/testkit": "~10.0.0-alpha.
|
|
5350
|
+
"@geekmidas/audit": "~10.0.0-alpha.92",
|
|
5351
|
+
"@geekmidas/auth": "~10.0.0-alpha.92",
|
|
5352
|
+
"@geekmidas/cache": "~10.0.0-alpha.92",
|
|
5353
|
+
"@geekmidas/client": "~10.0.0-alpha.92",
|
|
5354
|
+
"@geekmidas/cloud": "~10.0.0-alpha.92",
|
|
5355
|
+
"@geekmidas/constructs": "~10.0.0-alpha.92",
|
|
5356
|
+
"@geekmidas/db": "~10.0.0-alpha.92",
|
|
5357
|
+
"@geekmidas/emailkit": "~10.0.0-alpha.92",
|
|
5358
|
+
"@geekmidas/envkit": "~10.0.0-alpha.92",
|
|
5359
|
+
"@geekmidas/errors": "~10.0.0-alpha.92",
|
|
5360
|
+
"@geekmidas/events": "~10.0.0-alpha.92",
|
|
5361
|
+
"@geekmidas/logger": "~10.0.0-alpha.92",
|
|
5362
|
+
"@geekmidas/manifest": "~10.0.0-alpha.92",
|
|
5363
|
+
"@geekmidas/rate-limit": "~10.0.0-alpha.92",
|
|
5364
|
+
"@geekmidas/schema": "~10.0.0-alpha.92",
|
|
5365
|
+
"@geekmidas/services": "~10.0.0-alpha.92",
|
|
5366
|
+
"@geekmidas/storage": "~10.0.0-alpha.92",
|
|
5367
|
+
"@geekmidas/telescope": "~10.0.0-alpha.92",
|
|
5368
|
+
"@geekmidas/testkit": "~10.0.0-alpha.92",
|
|
5334
5369
|
"@geekmidas/cli": `~${loadPackageJson().version}`
|
|
5335
5370
|
};
|
|
5336
5371
|
//#endregion
|
|
@@ -5731,7 +5766,7 @@ const COMMIT = /^[0-9a-f]{40}$/;
|
|
|
5731
5766
|
* The `uses:` value for the stages action, with a comment saying which CLI
|
|
5732
5767
|
* release the pinned commit is.
|
|
5733
5768
|
*/
|
|
5734
|
-
function stagesActionUses(commit = "
|
|
5769
|
+
function stagesActionUses(commit = "446c06603533dd304ee5655661784b7a4f07e2b7", version = cliVersion()) {
|
|
5735
5770
|
return commit && COMMIT.test(commit) ? `${STAGES_ACTION}@${commit} # @geekmidas/cli ${version}` : `${STAGES_ACTION}@main # pin to a commit SHA: see the action's README`;
|
|
5736
5771
|
}
|
|
5737
5772
|
//#endregion
|
|
@@ -7242,7 +7277,7 @@ ${inputs.join("\n")}
|
|
|
7242
7277
|
* An SST scaffold asked for without a region. `init` always resolves one —
|
|
7243
7278
|
* asked, `--region`, or eu-west-1 under `--yes` — so this is a caller's bug.
|
|
7244
7279
|
*/
|
|
7245
|
-
var SstNeedsRegion = class extends
|
|
7280
|
+
var SstNeedsRegion = class extends GkmError {
|
|
7246
7281
|
constructor() {
|
|
7247
7282
|
super("An SST deploy needs a region: pass --region, e.g. eu-west-1.");
|
|
7248
7283
|
this.name = "SstNeedsRegion";
|
|
@@ -10682,7 +10717,7 @@ function resolveStages(options, answers) {
|
|
|
10682
10717
|
return stages;
|
|
10683
10718
|
}
|
|
10684
10719
|
/** `--deploy` naming a target init has no scaffold for. */
|
|
10685
|
-
var UnknownDeployTarget = class extends
|
|
10720
|
+
var UnknownDeployTarget = class extends GkmError {
|
|
10686
10721
|
target;
|
|
10687
10722
|
known;
|
|
10688
10723
|
constructor(target, known) {
|
|
@@ -10701,7 +10736,7 @@ function defaultRegistry(name) {
|
|
|
10701
10736
|
return `ghcr.io/${(name ?? "my-org").toLowerCase()}`;
|
|
10702
10737
|
}
|
|
10703
10738
|
/** `--region` that is not shaped like one, e.g. `europe` for `eu-west-1`. */
|
|
10704
|
-
var NotAnAwsRegion = class extends
|
|
10739
|
+
var NotAnAwsRegion = class extends GkmError {
|
|
10705
10740
|
region;
|
|
10706
10741
|
constructor(region) {
|
|
10707
10742
|
super(`"${region}" is not an AWS region. Use one like eu-west-1.`);
|
|
@@ -10831,7 +10866,7 @@ async function secretsSetCommand(key, value, options) {
|
|
|
10831
10866
|
logger$2.log(`\n✓ Secret "${key}" set for stage "${stage}" (${store.name})`);
|
|
10832
10867
|
}
|
|
10833
10868
|
/** `gkm secrets:unset` for a key the stage does not hold. */
|
|
10834
|
-
var SecretNotSet = class extends
|
|
10869
|
+
var SecretNotSet = class extends GkmError {
|
|
10835
10870
|
key;
|
|
10836
10871
|
stage;
|
|
10837
10872
|
constructor(key, stage) {
|
|
@@ -10842,7 +10877,7 @@ var SecretNotSet = class extends Error {
|
|
|
10842
10877
|
}
|
|
10843
10878
|
};
|
|
10844
10879
|
/** `gkm secrets:unset` on a stage that has no secrets at all. */
|
|
10845
|
-
var StageSecretsNotFound = class extends
|
|
10880
|
+
var StageSecretsNotFound = class extends GkmError {
|
|
10846
10881
|
stage;
|
|
10847
10882
|
constructor(stage) {
|
|
10848
10883
|
super(`The stage '${stage}' has no secrets, so there is nothing to remove.`);
|
|
@@ -11049,8 +11084,8 @@ async function composeStageHosts(options) {
|
|
|
11049
11084
|
...options.profile ? { profile: options.profile } : {},
|
|
11050
11085
|
...options.home ? { home: options.home } : {}
|
|
11051
11086
|
})).read(stage);
|
|
11052
|
-
const { deployedStackSecrets } = await import("./compose-
|
|
11053
|
-
const { composeStack } = await import("./compose-
|
|
11087
|
+
const { deployedStackSecrets } = await import("./compose-CTdVeeVk.mjs").then((n) => n.l);
|
|
11088
|
+
const { composeStack } = await import("./compose-CTdVeeVk.mjs").then((n) => n.c);
|
|
11054
11089
|
const { secrets } = deployedStackSecrets(workspace, stage, stored, manifest);
|
|
11055
11090
|
const stack = composeStack({
|
|
11056
11091
|
workspace,
|
|
@@ -11144,7 +11179,6 @@ async function provisionStageDns(options) {
|
|
|
11144
11179
|
//#endregion
|
|
11145
11180
|
//#region src/setup/index.ts
|
|
11146
11181
|
var setup_exports = /* @__PURE__ */ __exportAll({
|
|
11147
|
-
StageSecretsUnreadable: () => StageSecretsUnreadable,
|
|
11148
11182
|
createFreshWorkspaceSecrets: () => createFreshWorkspaceSecrets,
|
|
11149
11183
|
ensureStageSecrets: () => ensureStageSecrets,
|
|
11150
11184
|
reconcileSecrets: () => reconcileSecrets,
|
|
@@ -11176,7 +11210,7 @@ async function setupCommand(options = {}) {
|
|
|
11176
11210
|
logger$1.log(`📦 Workspace: ${workspace.name}`);
|
|
11177
11211
|
logger$1.log(`📱 Apps: ${Object.keys(workspace.apps).join(", ")}`);
|
|
11178
11212
|
logger$1.log(`🔑 Stage: ${stage}\n`);
|
|
11179
|
-
if (!local) assertStageServer(workspace, stage, await
|
|
11213
|
+
if (!local) assertStageServer(workspace, stage, await (await secretsStoreFor(workspace, stage, { ...options.profile ? { profile: options.profile } : {} })).read(stage));
|
|
11180
11214
|
if (!local && options.dryRun) {
|
|
11181
11215
|
await provisionDeployed(workspace, stage, options);
|
|
11182
11216
|
return;
|
|
@@ -11195,48 +11229,6 @@ async function setupCommand(options = {}) {
|
|
|
11195
11229
|
}
|
|
11196
11230
|
printSummary(workspace, stage);
|
|
11197
11231
|
}
|
|
11198
|
-
/** Where each AWS store keeps a stage's secrets, as a person reads it. */
|
|
11199
|
-
const AWS_STORES = {
|
|
11200
|
-
ssm: "SSM Parameter Store",
|
|
11201
|
-
"secrets-manager": "Secrets Manager"
|
|
11202
|
-
};
|
|
11203
|
-
/**
|
|
11204
|
-
* A deployed stage's secrets are kept in its AWS account, and no AWS
|
|
11205
|
-
* credentials were found to read them with.
|
|
11206
|
-
*
|
|
11207
|
-
* Raised before any provider runs: even a dry run reads the stage's secrets,
|
|
11208
|
-
* since its plan needs the server they name (`GKM_SERVER_IPV4`).
|
|
11209
|
-
*/
|
|
11210
|
-
var StageSecretsUnreadable = class extends Error {
|
|
11211
|
-
stage;
|
|
11212
|
-
store;
|
|
11213
|
-
profile;
|
|
11214
|
-
dryRun;
|
|
11215
|
-
constructor(stage, store, profile, dryRun, cause) {
|
|
11216
|
-
const where = AWS_STORES[store] ?? `the '${store}' store`;
|
|
11217
|
-
const command = `gkm setup --stage ${stage}${dryRun ? " --dry-run" : ""}`;
|
|
11218
|
-
super(`The '${stage}' stage's secrets are kept in ${where}, in the stage's AWS account, and ` + (profile ? `the AWS profile '${profile}' has no credentials to read them with. Sign in to it (aws sso login --profile ${profile}) or name another: ${command} --profile <profile>.` : `no AWS credentials were found to read them with. Name the account's profile: ${command} --profile <profile>, or AWS_PROFILE=<profile> ${command}.`) + (dryRun ? " A dry run still reads them: its plan needs the server the stage names (GKM_SERVER_IPV4)." : ""), { cause });
|
|
11219
|
-
this.stage = stage;
|
|
11220
|
-
this.store = store;
|
|
11221
|
-
this.profile = profile;
|
|
11222
|
-
this.dryRun = dryRun;
|
|
11223
|
-
this.name = "StageSecretsUnreadable";
|
|
11224
|
-
}
|
|
11225
|
-
};
|
|
11226
|
-
/**
|
|
11227
|
-
* The stage's secrets from its store, refused with
|
|
11228
|
-
* {@link StageSecretsUnreadable} when there are no AWS credentials to read
|
|
11229
|
-
* them — matched by the SDK's error name, its message being free to change.
|
|
11230
|
-
* Any other failure is the store's own, and passes through.
|
|
11231
|
-
*/
|
|
11232
|
-
async function readStageSecrets(store, stage, options) {
|
|
11233
|
-
try {
|
|
11234
|
-
return await store.read(stage);
|
|
11235
|
-
} catch (error) {
|
|
11236
|
-
if (error?.name === "CredentialsProviderError") throw new StageSecretsUnreadable(stage, store.name, options.profile, options.dryRun === true, error);
|
|
11237
|
-
throw error;
|
|
11238
|
-
}
|
|
11239
|
-
}
|
|
11240
11232
|
/**
|
|
11241
11233
|
* A deployed stage's providers: each one's `ensure()`, in the stage's own
|
|
11242
11234
|
* account, its keys written into the stage's secrets.
|
|
@@ -11479,7 +11471,7 @@ async function readReady(path) {
|
|
|
11479
11471
|
}
|
|
11480
11472
|
}
|
|
11481
11473
|
/** A name recorded for the test stage without the test stage's suffix. */
|
|
11482
|
-
var NotATestDatabase = class extends
|
|
11474
|
+
var NotATestDatabase = class extends GkmError {
|
|
11483
11475
|
database;
|
|
11484
11476
|
constructor(database) {
|
|
11485
11477
|
super(`Refusing to drop '${database}': only the test stage's databases (named '…_${TEST_STAGE}') are dropped after a suite. Delete ${TEST_READY_FILE} if it was edited by hand.`);
|
|
@@ -11616,8 +11608,8 @@ function testDatabases(reconciled) {
|
|
|
11616
11608
|
* starts without the reference data the app needs.
|
|
11617
11609
|
*/
|
|
11618
11610
|
async function migrateTestStage(workspace, env) {
|
|
11619
|
-
const { migrateAndSeed } = await import("./migrate-
|
|
11620
|
-
const { discover } = await import("./discover-
|
|
11611
|
+
const { migrateAndSeed } = await import("./migrate-BSbZ7-9n.mjs");
|
|
11612
|
+
const { discover } = await import("./discover-qjFapetL.mjs").then((n) => n.i);
|
|
11621
11613
|
const sources = {};
|
|
11622
11614
|
const manifest = await discover({
|
|
11623
11615
|
patterns: constructGlobs(workspace),
|
|
@@ -11635,7 +11627,7 @@ async function migrateTestStage(workspace, env) {
|
|
|
11635
11627
|
for (const { target, seeded } of seeds) if (seeded.length > 0) console.log(` 🌱 ${target.seeds}: ran ${seeded.join(", ")}`);
|
|
11636
11628
|
}
|
|
11637
11629
|
/** `gkm test` outside a project that declares stages, with none named. */
|
|
11638
|
-
var NoStageToTest = class extends
|
|
11630
|
+
var NoStageToTest = class extends GkmError {
|
|
11639
11631
|
constructor() {
|
|
11640
11632
|
super("No stage to test with: add `stages` to gkm.config.ts, or pass --stage.");
|
|
11641
11633
|
this.name = "NoStageToTest";
|
|
@@ -11903,7 +11895,7 @@ function install(pm, cwd) {
|
|
|
11903
11895
|
}
|
|
11904
11896
|
}
|
|
11905
11897
|
/** npm did not answer for a package, so there is no version to compare. */
|
|
11906
|
-
var RegistryUnavailable = class extends
|
|
11898
|
+
var RegistryUnavailable = class extends GkmError {
|
|
11907
11899
|
packageName;
|
|
11908
11900
|
status;
|
|
11909
11901
|
constructor(packageName, status) {
|
|
@@ -11914,7 +11906,7 @@ var RegistryUnavailable = class extends Error {
|
|
|
11914
11906
|
}
|
|
11915
11907
|
};
|
|
11916
11908
|
/** A dist-tag npm does not have, e.g. `--tag beta` before any beta. */
|
|
11917
|
-
var NoReleaseOnTag = class extends
|
|
11909
|
+
var NoReleaseOnTag = class extends GkmError {
|
|
11918
11910
|
tag;
|
|
11919
11911
|
tags;
|
|
11920
11912
|
constructor(tag, tags) {
|
|
@@ -11925,7 +11917,7 @@ var NoReleaseOnTag = class extends Error {
|
|
|
11925
11917
|
}
|
|
11926
11918
|
};
|
|
11927
11919
|
/** The line asked for is behind what is installed; upgrade never goes back. */
|
|
11928
|
-
var WouldDowngrade = class extends
|
|
11920
|
+
var WouldDowngrade = class extends GkmError {
|
|
11929
11921
|
installed;
|
|
11930
11922
|
tag;
|
|
11931
11923
|
target;
|
|
@@ -11950,7 +11942,7 @@ var InstallFailed = class extends Error {
|
|
|
11950
11942
|
//#region src/index.ts
|
|
11951
11943
|
const program = new Command();
|
|
11952
11944
|
program.name("gkm").description("GeekMidas backend framework CLI").version(version).option("--cwd <path>", "Change working directory").option("--debug", "Enable debug mode (verbose errors with stack traces)").hook("preAction", () => {
|
|
11953
|
-
if (program.opts().debug);
|
|
11945
|
+
if (program.opts().debug) enableDebug();
|
|
11954
11946
|
});
|
|
11955
11947
|
program.command("init").description("Scaffold a new project").argument("[name]", "Project name").option("--template <template>", "Project template (minimal, api, serverless, worker)").option("--skip-install", "Skip dependency installation", false).option("-y, --yes", "Skip prompts, use defaults", false).option("--monorepo", "Setup as monorepo with packages/models", false).option("--api-path <path>", "API app path in monorepo (default: apps/api)").option("--pm <manager>", "Package manager (pnpm, npm, yarn, bun)").option("--deploy <target>", "Where it deploys (dokploy, compose, sst, none)").option("--region <region>", "AWS region for an SST deploy (e.g. eu-west-1)").option("--registry <registry>", "Container registry for a compose deploy (e.g. ghcr.io/acme)").option("--stages <names>", "Deployed stages, comma-separated (e.g. staging,prod)").option("--protected-stage <name>", "Which deployed stage is production").option("--local-stage <name>", "What gkm dev runs as (e.g. dev)").action(async (name, options) => {
|
|
11956
11948
|
try {
|
|
@@ -11958,8 +11950,7 @@ program.command("init").description("Scaffold a new project").argument("[name]",
|
|
|
11958
11950
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11959
11951
|
await initCommand(name, options);
|
|
11960
11952
|
} catch (error) {
|
|
11961
|
-
|
|
11962
|
-
process.exit(1);
|
|
11953
|
+
exitWithError(error);
|
|
11963
11954
|
}
|
|
11964
11955
|
});
|
|
11965
11956
|
program.command("trust").description("Trust the local edge's certificate authority, so a browser accepts https").option("--dry-run", "Print the commands instead of running them").action(async (options) => {
|
|
@@ -11968,8 +11959,7 @@ program.command("trust").description("Trust the local edge's certificate authori
|
|
|
11968
11959
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11969
11960
|
await trustCommand(options);
|
|
11970
11961
|
} catch (error) {
|
|
11971
|
-
|
|
11972
|
-
process.exit(1);
|
|
11962
|
+
exitWithError(error);
|
|
11973
11963
|
}
|
|
11974
11964
|
});
|
|
11975
11965
|
program.command("setup").description("Reconcile declared constructs — locally, containers and secrets; on a deployed stage, its providers (deploy.objects)").option("--stage <stage>", "Stage name (default: stages.local)").option("--force", "Regenerate secrets even if they exist").option("--skip-docker", "Skip starting Docker services").option("-y, --yes", "Skip prompts").option("--dry-run", "A deployed stage: print what its providers would create or change, and write nothing").option("--profile <profile>", "AWS profile for the stage's account").option("--rotate-keys", "A deployed stage: issue each provisioned key a successor (the old one is deleted after the next deploy)").option("--retire-old-keys", "A deployed stage: delete a rotated-out key now instead of after the next deploy").action(async (options) => {
|
|
@@ -11978,8 +11968,7 @@ program.command("setup").description("Reconcile declared constructs — locally,
|
|
|
11978
11968
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11979
11969
|
await setupCommand(options);
|
|
11980
11970
|
} catch (error) {
|
|
11981
|
-
|
|
11982
|
-
process.exit(1);
|
|
11971
|
+
exitWithError(error);
|
|
11983
11972
|
}
|
|
11984
11973
|
});
|
|
11985
11974
|
program.command("build").description("Build handlers and the manifest from declared constructs").option("--provider <provider>", "Build for aws or server (default: where gkm.config.ts deploys)").option("--enable-openapi", "Enable OpenAPI documentation generation for server builds").option("--production", "Build for production (no dev tools, bundled output)").option("--skip-bundle", "Skip bundling step in production build").option("--stage <stage>", "Inject encrypted secrets for deployment stage").option("--mark-optional", "Suffix optional env vars with ? in manifest envVars field (e.g. PORT?)").addOption(new Option("--cache <backend>", "Register the drivers for this cache backend rather than the target default").hideHelp()).action(async (options) => {
|
|
@@ -11998,8 +11987,7 @@ program.command("build").description("Build handlers and the manifest from decla
|
|
|
11998
11987
|
markOptional: options.markOptional || false
|
|
11999
11988
|
});
|
|
12000
11989
|
} catch (error) {
|
|
12001
|
-
|
|
12002
|
-
process.exit(1);
|
|
11990
|
+
exitWithError(error);
|
|
12003
11991
|
}
|
|
12004
11992
|
});
|
|
12005
11993
|
program.command("dev").description("Reconcile constructs and start the dev server with automatic reload").option("-p, --port <port>", "Port to run the development server on").option("--entry <file>", "Entry file to run (bypasses gkm config)").option("--watch", "Watch for file changes (default: true with --entry)").option("--no-watch", "Disable file watching").option("--enable-openapi", "Enable OpenAPI documentation for development server", true).option("--migrate", "Apply pending migrations before the apps start").option("--seed", "Migrate, then run the seeds, before the apps start").option("--fake", "Call each external API’s fake (test/fakes/<id>.ts) instead of the provider").option("--no-subscribers", "Run no topic subscribers: nothing is subscribed, polled or pushed to").action(async (options) => {
|
|
@@ -12018,8 +12006,7 @@ program.command("dev").description("Reconcile constructs and start the dev serve
|
|
|
12018
12006
|
subscribers: options.subscribers
|
|
12019
12007
|
});
|
|
12020
12008
|
} catch (error) {
|
|
12021
|
-
|
|
12022
|
-
process.exit(1);
|
|
12009
|
+
exitWithError(error);
|
|
12023
12010
|
}
|
|
12024
12011
|
});
|
|
12025
12012
|
program.command("dev:credentials").description("Print each local service's address and login — Postgres, MinIO, Mailpit, Redis, … — without starting anything").option("--json", "Print them as JSON, for a script").action(async (options) => {
|
|
@@ -12029,8 +12016,7 @@ program.command("dev:credentials").description("Print each local service's addre
|
|
|
12029
12016
|
const { devCredentialsCommand } = await Promise.resolve().then(() => credentials_exports);
|
|
12030
12017
|
await devCredentialsCommand(options);
|
|
12031
12018
|
} catch (error) {
|
|
12032
|
-
|
|
12033
|
-
process.exit(1);
|
|
12019
|
+
exitWithError(error);
|
|
12034
12020
|
}
|
|
12035
12021
|
});
|
|
12036
12022
|
program.command("exec").description("Run a command with secrets injected into Credentials").argument("<command...>", "Command to run (use -- before command)").action(async (commandArgs) => {
|
|
@@ -12039,8 +12025,7 @@ program.command("exec").description("Run a command with secrets injected into Cr
|
|
|
12039
12025
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12040
12026
|
await execCommand(commandArgs);
|
|
12041
12027
|
} catch (error) {
|
|
12042
|
-
|
|
12043
|
-
process.exit(1);
|
|
12028
|
+
exitWithError(error);
|
|
12044
12029
|
}
|
|
12045
12030
|
});
|
|
12046
12031
|
program.command("test").description("Run tests with secrets loaded from environment").option("--stage <stage>", "Stage to load secrets from (default: stages.local)").option("--run", "Run tests once without watch mode").option("--watch", "Enable watch mode").option("--coverage", "Generate coverage report").option("--ui", "Open Vitest UI").option("--auto-setup", "Generate a fresh stage (secrets + key) from the workspace config when none exists (for CI; also via GKM_AUTO_SETUP)").option("--prepare", "Write the test manifest and #test harness, then stop — for a typecheck that runs before the suite").option("--setup", "Reconcile, migrate and seed the test stage and write the harness, then stop — what @geekmidas/cli/vitest runs").option("--teardown", "Drop the test stage's databases the last setup created, then stop — what @geekmidas/cli/vitest runs when the suite ends").argument("[pattern]", "Pattern to filter tests").action(async (pattern, options) => {
|
|
@@ -12052,50 +12037,46 @@ program.command("test").description("Run tests with secrets loaded from environm
|
|
|
12052
12037
|
pattern
|
|
12053
12038
|
});
|
|
12054
12039
|
} catch (error) {
|
|
12055
|
-
|
|
12056
|
-
process.exit(1);
|
|
12040
|
+
exitWithError(error);
|
|
12057
12041
|
}
|
|
12058
12042
|
});
|
|
12059
12043
|
program.command("migrate").description("Apply each database construct's migrations from db/<construct>/migrations/, as its owner").argument("[construct]", "Only this construct, by name").option("--stage <stage>", "The local stage (default) or test — a deploy migrates its own stage").action(async (construct, options) => {
|
|
12060
12044
|
try {
|
|
12061
12045
|
const globalOptions = program.opts();
|
|
12062
12046
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12063
|
-
const { migrateCommand } = await import("./migrate-
|
|
12047
|
+
const { migrateCommand } = await import("./migrate-BSbZ7-9n.mjs");
|
|
12064
12048
|
await migrateCommand({
|
|
12065
12049
|
...options,
|
|
12066
12050
|
...construct ? { construct } : {}
|
|
12067
12051
|
});
|
|
12068
12052
|
} catch (error) {
|
|
12069
|
-
|
|
12070
|
-
process.exit(1);
|
|
12053
|
+
exitWithError(error);
|
|
12071
12054
|
}
|
|
12072
12055
|
});
|
|
12073
12056
|
program.command("seed").description("Migrate, then run each database construct's seeds from db/<construct>/seeds/, as its owner").argument("[construct]", "Only this construct, by name").option("--stage <stage>", "The local stage (default) or test — a deploy seeds its own stage").action(async (construct, options) => {
|
|
12074
12057
|
try {
|
|
12075
12058
|
const globalOptions = program.opts();
|
|
12076
12059
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12077
|
-
const { seedCommand } = await import("./migrate-
|
|
12060
|
+
const { seedCommand } = await import("./migrate-BSbZ7-9n.mjs");
|
|
12078
12061
|
await seedCommand({
|
|
12079
12062
|
...options,
|
|
12080
12063
|
...construct ? { construct } : {}
|
|
12081
12064
|
});
|
|
12082
12065
|
} catch (error) {
|
|
12083
|
-
|
|
12084
|
-
process.exit(1);
|
|
12066
|
+
exitWithError(error);
|
|
12085
12067
|
}
|
|
12086
12068
|
});
|
|
12087
12069
|
program.command("migration").description("Write a construct's next migration: an empty one for a database, the schema change for an auth server").argument("<construct>", "The construct, by name").argument("[name]", "What the migration is called").action(async (construct, name) => {
|
|
12088
12070
|
try {
|
|
12089
12071
|
const globalOptions = program.opts();
|
|
12090
12072
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12091
|
-
const { migrationCommand } = await import("./migrate-
|
|
12073
|
+
const { migrationCommand } = await import("./migrate-BSbZ7-9n.mjs");
|
|
12092
12074
|
await migrationCommand({
|
|
12093
12075
|
construct,
|
|
12094
12076
|
...name ? { name } : {}
|
|
12095
12077
|
});
|
|
12096
12078
|
} catch (error) {
|
|
12097
|
-
|
|
12098
|
-
process.exit(1);
|
|
12079
|
+
exitWithError(error);
|
|
12099
12080
|
}
|
|
12100
12081
|
});
|
|
12101
12082
|
program.command("cron").description("Manage cron jobs").action(() => {
|
|
@@ -12123,8 +12104,7 @@ program.command("openapi").description("Generate OpenAPI specification from endp
|
|
|
12123
12104
|
...telemetry !== void 0 ? { telemetry } : {}
|
|
12124
12105
|
});
|
|
12125
12106
|
} catch (error) {
|
|
12126
|
-
|
|
12127
|
-
process.exit(1);
|
|
12107
|
+
exitWithError(error);
|
|
12128
12108
|
}
|
|
12129
12109
|
});
|
|
12130
12110
|
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) => {
|
|
@@ -12133,8 +12113,7 @@ program.command("docker").description("Generate Docker deployment files").option
|
|
|
12133
12113
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12134
12114
|
await dockerCommand(options);
|
|
12135
12115
|
} catch (error) {
|
|
12136
|
-
|
|
12137
|
-
process.exit(1);
|
|
12116
|
+
exitWithError(error);
|
|
12138
12117
|
}
|
|
12139
12118
|
});
|
|
12140
12119
|
program.command("compose").description("Run the workspace's APIs and sites for a stage as one Docker Compose stack behind Caddy").requiredOption("--stage <stage>", "Stage to run — always named, so a stack is never a deployed stage by accident").option("--tag <tag>", "Run the images CI pushed at this tag (sites: <tag>-<stage>); nothing is built").option("--build", "Build images from this checkout, tagged with the commit").option("--pull", "Pull images (at --tag, or latest) rather than build them").option("--push", "With --build: push every image to deploy.registry and start nothing (for CI)").option("--digests-file <path>", "With --push: write each image as <ref>@sha256:… (JSON). With --tag: run the images at those digests").option("--dry-run", "Write the files and print the plan; start nothing").option("--down", "Stop the stage's stack (its volumes are kept)").option("--allow-dev-services", "Deployed stage: run the dev service (MinIO, Mailpit) for every bucket and mail the stage doesn't account for. Not production-grade").option("--skip-dns-check", "Deployed stage: do not check that each public host resolves to GKM_SERVER_IPV4 in the stage secrets before starting (a CDN or proxy in front)").action(async (options) => {
|
|
@@ -12143,8 +12122,7 @@ program.command("compose").description("Run the workspace's APIs and sites for a
|
|
|
12143
12122
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12144
12123
|
await composeCommand(options);
|
|
12145
12124
|
} catch (error) {
|
|
12146
|
-
|
|
12147
|
-
process.exit(1);
|
|
12125
|
+
exitWithError(error);
|
|
12148
12126
|
}
|
|
12149
12127
|
});
|
|
12150
12128
|
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) => {
|
|
@@ -12158,8 +12136,7 @@ program.command("prepack").description("Generate Docker files for production dep
|
|
|
12158
12136
|
registry: options.registry
|
|
12159
12137
|
});
|
|
12160
12138
|
} catch (error) {
|
|
12161
|
-
|
|
12162
|
-
process.exit(1);
|
|
12139
|
+
exitWithError(error);
|
|
12163
12140
|
}
|
|
12164
12141
|
});
|
|
12165
12142
|
program.command("secrets:init").description("Initialize secrets for a deployment stage").requiredOption("--stage <stage>", "Stage name (e.g., production, staging)").option("--force", "Overwrite existing secrets").action(async (options) => {
|
|
@@ -12168,8 +12145,7 @@ program.command("secrets:init").description("Initialize secrets for a deployment
|
|
|
12168
12145
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12169
12146
|
await secretsInitCommand(options);
|
|
12170
12147
|
} catch (error) {
|
|
12171
|
-
|
|
12172
|
-
process.exit(1);
|
|
12148
|
+
exitWithError(error);
|
|
12173
12149
|
}
|
|
12174
12150
|
});
|
|
12175
12151
|
program.command("secrets:set").description("Set a custom secret for a stage").argument("<key>", "Secret key (e.g., API_KEY)").argument("[value]", "Secret value (reads from stdin if omitted)").requiredOption("--stage <stage>", "Stage name").action(async (key, value, options) => {
|
|
@@ -12178,8 +12154,7 @@ program.command("secrets:set").description("Set a custom secret for a stage").ar
|
|
|
12178
12154
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12179
12155
|
await secretsSetCommand(key, value, options);
|
|
12180
12156
|
} catch (error) {
|
|
12181
|
-
|
|
12182
|
-
process.exit(1);
|
|
12157
|
+
exitWithError(error);
|
|
12183
12158
|
}
|
|
12184
12159
|
});
|
|
12185
12160
|
program.command("secrets:unset").description("Remove a custom secret from a stage").argument("<key>", "Secret key (e.g., API_KEY)").requiredOption("--stage <stage>", "Stage name").action(async (key, options) => {
|
|
@@ -12188,41 +12163,37 @@ program.command("secrets:unset").description("Remove a custom secret from a stag
|
|
|
12188
12163
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12189
12164
|
await secretsUnsetCommand(key, options);
|
|
12190
12165
|
} catch (error) {
|
|
12191
|
-
|
|
12192
|
-
process.exit(1);
|
|
12166
|
+
exitWithError(error);
|
|
12193
12167
|
}
|
|
12194
12168
|
});
|
|
12195
12169
|
program.command("secrets:add").description("Build the keys a stage must be given — buckets, mail, file servers, third parties' credentials — across every app").requiredOption("--stage <stage>", "Stage name").option("--missing", "Only the keys the stage has not set").option("--json", "Print the keys as JSON and ask nothing").action(async (options) => {
|
|
12196
12170
|
try {
|
|
12197
12171
|
const globalOptions = program.opts();
|
|
12198
12172
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12199
|
-
const { secretsAddCommand } = await import("./add-
|
|
12173
|
+
const { secretsAddCommand } = await import("./add-2Opn2VVE.mjs");
|
|
12200
12174
|
await secretsAddCommand(options);
|
|
12201
12175
|
} catch (error) {
|
|
12202
|
-
|
|
12203
|
-
process.exit(1);
|
|
12176
|
+
exitWithError(error);
|
|
12204
12177
|
}
|
|
12205
12178
|
});
|
|
12206
12179
|
program.command("encryption:rotate").description("Add a new current key to an Encryption construct's keyring on a server stage").argument("<construct>", "The Encryption construct (e.g. Pii)").requiredOption("--stage <stage>", "A deployed stage").action(async (construct, options) => {
|
|
12207
12180
|
try {
|
|
12208
12181
|
const globalOptions = program.opts();
|
|
12209
12182
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12210
|
-
const { encryptionRotateCommand } = await import("./encryption-
|
|
12183
|
+
const { encryptionRotateCommand } = await import("./encryption-C9Jm9dfn.mjs");
|
|
12211
12184
|
await encryptionRotateCommand(construct, options);
|
|
12212
12185
|
} catch (error) {
|
|
12213
|
-
|
|
12214
|
-
process.exit(1);
|
|
12186
|
+
exitWithError(error);
|
|
12215
12187
|
}
|
|
12216
12188
|
});
|
|
12217
12189
|
program.command("encryption:retire").description("Remove an old key from an Encryption construct's keyring, once nothing is under it").argument("<construct>", "The Encryption construct (e.g. Pii)").argument("<key>", "The key to retire (e.g. k1)").requiredOption("--stage <stage>", "A deployed stage").action(async (construct, key, options) => {
|
|
12218
12190
|
try {
|
|
12219
12191
|
const globalOptions = program.opts();
|
|
12220
12192
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12221
|
-
const { encryptionRetireCommand } = await import("./encryption-
|
|
12193
|
+
const { encryptionRetireCommand } = await import("./encryption-C9Jm9dfn.mjs");
|
|
12222
12194
|
await encryptionRetireCommand(construct, key, options);
|
|
12223
12195
|
} catch (error) {
|
|
12224
|
-
|
|
12225
|
-
process.exit(1);
|
|
12196
|
+
exitWithError(error);
|
|
12226
12197
|
}
|
|
12227
12198
|
});
|
|
12228
12199
|
program.command("secrets:show").description("Show secrets for a stage").requiredOption("--stage <stage>", "Stage name").option("--reveal", "Show actual secret values (not masked)").action(async (options) => {
|
|
@@ -12231,8 +12202,7 @@ program.command("secrets:show").description("Show secrets for a stage").required
|
|
|
12231
12202
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12232
12203
|
await secretsShowCommand(options);
|
|
12233
12204
|
} catch (error) {
|
|
12234
|
-
|
|
12235
|
-
process.exit(1);
|
|
12205
|
+
exitWithError(error);
|
|
12236
12206
|
}
|
|
12237
12207
|
});
|
|
12238
12208
|
program.command("secrets:rotate").description("Rotate service passwords").requiredOption("--stage <stage>", "Stage name").option("--service <service>", "Specific service to rotate (postgres, redis, minio, …)").action(async (options) => {
|
|
@@ -12241,8 +12211,7 @@ program.command("secrets:rotate").description("Rotate service passwords").requir
|
|
|
12241
12211
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12242
12212
|
await secretsRotateCommand(options);
|
|
12243
12213
|
} catch (error) {
|
|
12244
|
-
|
|
12245
|
-
process.exit(1);
|
|
12214
|
+
exitWithError(error);
|
|
12246
12215
|
}
|
|
12247
12216
|
});
|
|
12248
12217
|
program.command("secrets:import").description("Import secrets from a JSON file").argument("<file>", "JSON file path (e.g., secrets.json)").requiredOption("--stage <stage>", "Stage name").option("--no-merge", "Replace all custom secrets instead of merging").action(async (file, options) => {
|
|
@@ -12251,8 +12220,7 @@ program.command("secrets:import").description("Import secrets from a JSON file")
|
|
|
12251
12220
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12252
12221
|
await secretsImportCommand(file, options);
|
|
12253
12222
|
} catch (error) {
|
|
12254
|
-
|
|
12255
|
-
process.exit(1);
|
|
12223
|
+
exitWithError(error);
|
|
12256
12224
|
}
|
|
12257
12225
|
});
|
|
12258
12226
|
program.command("secrets:reconcile").description("Backfill missing custom secrets from workspace config").option("--stage <stage>", "Stage name (default: stages.local)").action(async (options) => {
|
|
@@ -12261,7 +12229,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
|
|
|
12261
12229
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12262
12230
|
const { loadWorkspaceConfig } = await import("./config.mjs");
|
|
12263
12231
|
const { reconcileMissingSecrets } = await import("./reconcile-Dh1Jk7WE.mjs");
|
|
12264
|
-
const { secretsStoreFor } = await import("./seeds-
|
|
12232
|
+
const { secretsStoreFor } = await import("./seeds-CvGQJnPO.mjs").then((n) => n.Pn);
|
|
12265
12233
|
const { workspace } = await loadWorkspaceConfig();
|
|
12266
12234
|
const stage = options.stage ?? workspace.stages.local;
|
|
12267
12235
|
const store = await secretsStoreFor(workspace, stage);
|
|
@@ -12270,7 +12238,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
|
|
|
12270
12238
|
console.error(`No secrets found for stage "${stage}". Run "gkm secrets:init --stage ${stage}" first.`);
|
|
12271
12239
|
process.exit(1);
|
|
12272
12240
|
}
|
|
12273
|
-
const { derivedContainers } = await import("./seeds-
|
|
12241
|
+
const { derivedContainers } = await import("./seeds-CvGQJnPO.mjs").then((n) => n.ht);
|
|
12274
12242
|
const result = reconcileMissingSecrets(secrets, workspace, await derivedContainers(workspace, stage));
|
|
12275
12243
|
if (!result) {
|
|
12276
12244
|
console.log(`\n✓ Secrets for stage "${stage}" are up-to-date`);
|
|
@@ -12280,23 +12248,21 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
|
|
|
12280
12248
|
console.log(`\n✓ Reconciled ${result.addedKeys.length} missing secret(s) for stage "${stage}":`);
|
|
12281
12249
|
for (const key of result.addedKeys) console.log(` + ${key}`);
|
|
12282
12250
|
} catch (error) {
|
|
12283
|
-
|
|
12284
|
-
process.exit(1);
|
|
12251
|
+
exitWithError(error);
|
|
12285
12252
|
}
|
|
12286
12253
|
});
|
|
12287
12254
|
program.command("secrets:migrate").description("Copy a deployed stage's secrets from the configured store to another (file, ssm, secrets-manager)").requiredOption("--stage <stage>", "A deployed stage").requiredOption("--to <provider>", "file, ssm or secrets-manager").option("--region <region>", "The target's AWS region (default: the configured store's)").option("--profile <profile>", "AWS profile for the stage's account").option("--force", "Replace a stage the target already holds").action(async (options) => {
|
|
12288
12255
|
try {
|
|
12289
12256
|
const globalOptions = program.opts();
|
|
12290
12257
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12291
|
-
const { secretsMigrateCommand } = await import("./migrate-
|
|
12258
|
+
const { secretsMigrateCommand } = await import("./migrate-IZsYyZ5F.mjs");
|
|
12292
12259
|
await secretsMigrateCommand(options);
|
|
12293
12260
|
} catch (error) {
|
|
12294
|
-
|
|
12295
|
-
process.exit(1);
|
|
12261
|
+
exitWithError(error);
|
|
12296
12262
|
}
|
|
12297
12263
|
});
|
|
12298
12264
|
program.command("deploy").description("Deploy a stage through its target").option("--target <name>", "Deploy target: dokploy, compose, sst, or one named in deploy.targets (default: deploy.default)").option("--provider <provider>", "[DEPRECATED] Use --target instead").requiredOption("--stage <stage>", "Deployment stage (e.g., production, staging)").option("--tag <tag>", "Image tag (default: stage-timestamp; compose: the commit). Compose pulls a given tag").option("--skip-push", "Skip pushing image to registry").option("--skip-build", "Skip build step (use existing build)").option("--json", "Write events as JSON lines instead of progress; never prompts").option("--dry-run", "Show what would be created or reused; change, build and push nothing").option("--atomic", "If the release fails, roll back every app it released, not only the failed ones").option("--allow-dev-services", "Server targets: run the dev service (MinIO, Mailpit) for every bucket and mail the stage doesn't account for. Not production-grade").option("--skip-dns-check", "Compose: do not check that each public host resolves to GKM_SERVER_IPV4 in the stage secrets before starting (a CDN or proxy in front)").action(async (options) => {
|
|
12299
|
-
const { deployCli } = await import("./cli-
|
|
12265
|
+
const { deployCli } = await import("./cli-BjhaVObS.mjs");
|
|
12300
12266
|
const globalOptions = program.opts();
|
|
12301
12267
|
const code = await deployCli({
|
|
12302
12268
|
cwd: resolve(globalOptions.cwd ?? process.cwd()),
|
|
@@ -12314,8 +12280,8 @@ program.command("deploy").description("Deploy a stage through its target").optio
|
|
|
12314
12280
|
});
|
|
12315
12281
|
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) => {
|
|
12316
12282
|
try {
|
|
12317
|
-
const { rollbackStage } = await import("./rollback-
|
|
12318
|
-
const { terminalCredentials } = await import("./terminal-
|
|
12283
|
+
const { rollbackStage } = await import("./rollback-D1d-fW0r.mjs").then((n) => n.a);
|
|
12284
|
+
const { terminalCredentials } = await import("./terminal-Dtd6BZX9.mjs");
|
|
12319
12285
|
const globalOptions = program.opts();
|
|
12320
12286
|
await rollbackStage({
|
|
12321
12287
|
cwd: resolve(globalOptions.cwd ?? process.cwd()),
|
|
@@ -12326,8 +12292,7 @@ program.command("deploy:rollback").description("Put a stage's app back on its pr
|
|
|
12326
12292
|
log: (line) => console.log(line)
|
|
12327
12293
|
});
|
|
12328
12294
|
} catch (error) {
|
|
12329
|
-
|
|
12330
|
-
process.exit(1);
|
|
12295
|
+
exitWithError(error);
|
|
12331
12296
|
}
|
|
12332
12297
|
});
|
|
12333
12298
|
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) => {
|
|
@@ -12342,30 +12307,27 @@ program.command("deploy:init").description("Initialize Dokploy deployment (creat
|
|
|
12342
12307
|
registryId: options.registryId
|
|
12343
12308
|
});
|
|
12344
12309
|
} catch (error) {
|
|
12345
|
-
|
|
12346
|
-
process.exit(1);
|
|
12310
|
+
exitWithError(error);
|
|
12347
12311
|
}
|
|
12348
12312
|
});
|
|
12349
12313
|
program.command("deploy:github").description("Let GitHub Actions deploy a stage: OIDC role in the stage's AWS account, and the GitHub environment the deploy workflow uses").requiredOption("--stage <stage>", "A deployed stage from gkm.config.ts").option("--profile <profile>", "AWS profile for the stage's account").option("--repo <owner/name>", "GitHub repository (default: this one)").option("--policy-arn <arn>", "Policy for the deploy role (default: AdministratorAccess)").option("--dry-run", "Show the plan without changing AWS or GitHub").action(async (options) => {
|
|
12350
12314
|
try {
|
|
12351
12315
|
const globalOptions = program.opts();
|
|
12352
12316
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12353
|
-
const { deployGithubCommand } = await import("./github-
|
|
12317
|
+
const { deployGithubCommand } = await import("./github-B1k42hIt.mjs");
|
|
12354
12318
|
await deployGithubCommand(options);
|
|
12355
12319
|
} catch (error) {
|
|
12356
|
-
|
|
12357
|
-
process.exit(1);
|
|
12320
|
+
exitWithError(error);
|
|
12358
12321
|
}
|
|
12359
12322
|
});
|
|
12360
12323
|
program.command("stages").description("The workspace's stages from gkm.config.ts: local, deployed and protected").option("--json", "Print them as JSON").option("--github-output", "Write the stages, and which this workflow run builds and deploys, to $GITHUB_OUTPUT").option("--event <name>", "The event to plan for (default: $GITHUB_EVENT_NAME)").option("--stage <stage>", "The stage a workflow_dispatch deploys").action(async (options) => {
|
|
12361
12324
|
try {
|
|
12362
12325
|
const globalOptions = program.opts();
|
|
12363
12326
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12364
|
-
const { stagesCommand } = await import("./stages-
|
|
12327
|
+
const { stagesCommand } = await import("./stages-DY-fQKmo.mjs");
|
|
12365
12328
|
await stagesCommand(options);
|
|
12366
12329
|
} catch (error) {
|
|
12367
|
-
|
|
12368
|
-
process.exit(1);
|
|
12330
|
+
exitWithError(error);
|
|
12369
12331
|
}
|
|
12370
12332
|
});
|
|
12371
12333
|
program.command("deploy:list").description("List Dokploy resources (projects, registries)").option("--endpoint <url>", "Dokploy server URL (uses stored credentials if logged in)").option("--projects", "List projects").option("--registries", "List registries").action(async (options) => {
|
|
@@ -12391,8 +12353,7 @@ program.command("deploy:list").description("List Dokploy resources (projects, re
|
|
|
12391
12353
|
});
|
|
12392
12354
|
}
|
|
12393
12355
|
} catch (error) {
|
|
12394
|
-
|
|
12395
|
-
process.exit(1);
|
|
12356
|
+
exitWithError(error);
|
|
12396
12357
|
}
|
|
12397
12358
|
});
|
|
12398
12359
|
program.command("login").description("Authenticate with a deployment or DNS provider").option("--provider <provider>", "Provider to log in to (dokploy, hostinger, godaddy)", "dokploy").option("--service <provider>", "[DEPRECATED] Use --provider instead").option("--token <token>", "API token (will prompt if not provided)").option("--endpoint <url>", "Service endpoint URL").action(async (options) => {
|
|
@@ -12414,8 +12375,7 @@ program.command("login").description("Authenticate with a deployment or DNS prov
|
|
|
12414
12375
|
endpoint: options.endpoint
|
|
12415
12376
|
});
|
|
12416
12377
|
} catch (error) {
|
|
12417
|
-
|
|
12418
|
-
process.exit(1);
|
|
12378
|
+
exitWithError(error);
|
|
12419
12379
|
}
|
|
12420
12380
|
});
|
|
12421
12381
|
program.command("logout").description("Remove stored credentials").option("--provider <provider>", "Whose credentials to remove (dokploy, godaddy, all)", "dokploy").option("--service <provider>", "[DEPRECATED] Use --provider instead").action(async (options) => {
|
|
@@ -12424,8 +12384,7 @@ program.command("logout").description("Remove stored credentials").option("--pro
|
|
|
12424
12384
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12425
12385
|
await logoutCommand({ provider: options.service ?? options.provider });
|
|
12426
12386
|
} catch (error) {
|
|
12427
|
-
|
|
12428
|
-
process.exit(1);
|
|
12387
|
+
exitWithError(error);
|
|
12429
12388
|
}
|
|
12430
12389
|
});
|
|
12431
12390
|
program.command("whoami").description("Show current authentication status").action(async () => {
|
|
@@ -12434,8 +12393,7 @@ program.command("whoami").description("Show current authentication status").acti
|
|
|
12434
12393
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12435
12394
|
await whoamiCommand();
|
|
12436
12395
|
} catch (error) {
|
|
12437
|
-
|
|
12438
|
-
process.exit(1);
|
|
12396
|
+
exitWithError(error);
|
|
12439
12397
|
}
|
|
12440
12398
|
});
|
|
12441
12399
|
program.command("state:pull").description("Pull deployment state from remote to local").requiredOption("--stage <stage>", "Deployment stage (e.g., production, staging)").action(async (options) => {
|
|
@@ -12444,8 +12402,7 @@ program.command("state:pull").description("Pull deployment state from remote to
|
|
|
12444
12402
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12445
12403
|
await statePullCommand(options);
|
|
12446
12404
|
} catch (error) {
|
|
12447
|
-
|
|
12448
|
-
process.exit(1);
|
|
12405
|
+
exitWithError(error);
|
|
12449
12406
|
}
|
|
12450
12407
|
});
|
|
12451
12408
|
program.command("state:push").description("Push deployment state from local to remote").requiredOption("--stage <stage>", "Deployment stage (e.g., production, staging)").action(async (options) => {
|
|
@@ -12454,8 +12411,7 @@ program.command("state:push").description("Push deployment state from local to r
|
|
|
12454
12411
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12455
12412
|
await statePushCommand(options);
|
|
12456
12413
|
} catch (error) {
|
|
12457
|
-
|
|
12458
|
-
process.exit(1);
|
|
12414
|
+
exitWithError(error);
|
|
12459
12415
|
}
|
|
12460
12416
|
});
|
|
12461
12417
|
program.command("state:show").description("Show deployment state for a stage").requiredOption("--stage <stage>", "Deployment stage (e.g., production, staging)").option("--json", "Output as JSON").action(async (options) => {
|
|
@@ -12464,8 +12420,7 @@ program.command("state:show").description("Show deployment state for a stage").r
|
|
|
12464
12420
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12465
12421
|
await stateShowCommand(options);
|
|
12466
12422
|
} catch (error) {
|
|
12467
|
-
|
|
12468
|
-
process.exit(1);
|
|
12423
|
+
exitWithError(error);
|
|
12469
12424
|
}
|
|
12470
12425
|
});
|
|
12471
12426
|
program.command("state:unlock").description("Release a stage deploy lock left behind by a run that crashed").requiredOption("--stage <stage>", "Deployment stage (e.g., production, staging)").action(async (options) => {
|
|
@@ -12474,8 +12429,7 @@ program.command("state:unlock").description("Release a stage deploy lock left be
|
|
|
12474
12429
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12475
12430
|
await stateUnlockCommand(options);
|
|
12476
12431
|
} catch (error) {
|
|
12477
|
-
|
|
12478
|
-
process.exit(1);
|
|
12432
|
+
exitWithError(error);
|
|
12479
12433
|
}
|
|
12480
12434
|
});
|
|
12481
12435
|
program.command("state:diff").description("Compare local and remote deployment state").requiredOption("--stage <stage>", "Deployment stage (e.g., production, staging)").action(async (options) => {
|
|
@@ -12484,8 +12438,7 @@ program.command("state:diff").description("Compare local and remote deployment s
|
|
|
12484
12438
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12485
12439
|
await stateDiffCommand(options);
|
|
12486
12440
|
} catch (error) {
|
|
12487
|
-
|
|
12488
|
-
process.exit(1);
|
|
12441
|
+
exitWithError(error);
|
|
12489
12442
|
}
|
|
12490
12443
|
});
|
|
12491
12444
|
program.command("upgrade").description("Upgrade @geekmidas/cli (with --all, every @geekmidas package) along the release line the project is on").option("--dry-run", "Show what would be upgraded without making changes").option("--all", "Every @geekmidas package, and the third-party packages their peers require").option("--tag <tag>", "npm dist-tag to follow (default: the line you are on)").action(async (options) => {
|
|
@@ -12494,15 +12447,13 @@ program.command("upgrade").description("Upgrade @geekmidas/cli (with --all, ever
|
|
|
12494
12447
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12495
12448
|
await upgradeCommand(options);
|
|
12496
12449
|
} catch (error) {
|
|
12497
|
-
|
|
12498
|
-
process.exit(1);
|
|
12450
|
+
exitWithError(error);
|
|
12499
12451
|
}
|
|
12500
12452
|
});
|
|
12501
12453
|
try {
|
|
12502
12454
|
assertDevServicesFlag(process.argv.slice(2));
|
|
12503
12455
|
} catch (error) {
|
|
12504
|
-
|
|
12505
|
-
process.exit(1);
|
|
12456
|
+
exitWithError(error);
|
|
12506
12457
|
}
|
|
12507
12458
|
program.parse();
|
|
12508
12459
|
//#endregion
|