@geekmidas/cli 10.0.0-alpha.110 → 10.0.0-alpha.112
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{GoDaddyProvider-CjeOduia.mjs → GoDaddyProvider-CPabc3XW.mjs} +2 -2
- package/dist/{GoDaddyProvider-CjeOduia.mjs.map → GoDaddyProvider-CPabc3XW.mjs.map} +1 -1
- package/dist/{GoDaddyProvider-qNUzTXI7.cjs → GoDaddyProvider-DWrDIXzQ.cjs} +2 -2
- package/dist/{GoDaddyProvider-qNUzTXI7.cjs.map → GoDaddyProvider-DWrDIXzQ.cjs.map} +1 -1
- package/dist/{LegacyStateStore-pgscYsiG.mjs → LegacyStateStore-BdXoAlYY.mjs} +3 -3
- package/dist/{LegacyStateStore-pgscYsiG.mjs.map → LegacyStateStore-BdXoAlYY.mjs.map} +1 -1
- package/dist/{LegacyStateStore-MxiSu7KJ.cjs → LegacyStateStore-fsyPGBWu.cjs} +3 -3
- package/dist/{LegacyStateStore-MxiSu7KJ.cjs.map → LegacyStateStore-fsyPGBWu.cjs.map} +1 -1
- package/dist/{LocalStateStore-Bm8Vmwjb.cjs → LocalStateStore-AtviUBky.cjs} +2 -2
- package/dist/{LocalStateStore-Bm8Vmwjb.cjs.map → LocalStateStore-AtviUBky.cjs.map} +1 -1
- package/dist/{LocalStateStore-BcvyKbAw.mjs → LocalStateStore-BrAX5yy7.mjs} +2 -2
- package/dist/{LocalStateStore-BcvyKbAw.mjs.map → LocalStateStore-BrAX5yy7.mjs.map} +1 -1
- package/dist/{S3StateStore-H2XsAzpJ.mjs → S3StateStore-Cx7njkBz.mjs} +2 -2
- package/dist/{S3StateStore-H2XsAzpJ.mjs.map → S3StateStore-Cx7njkBz.mjs.map} +1 -1
- package/dist/{S3StateStore-DXHSBVsV.cjs → S3StateStore-tn5g80Sx.cjs} +2 -2
- package/dist/{S3StateStore-DXHSBVsV.cjs.map → S3StateStore-tn5g80Sx.cjs.map} +1 -1
- package/dist/{SSMStateStore-BLPSNl-U.cjs → SSMStateStore-CAFde-Fq.cjs} +2 -2
- package/dist/{SSMStateStore-BLPSNl-U.cjs.map → SSMStateStore-CAFde-Fq.cjs.map} +1 -1
- package/dist/{SSMStateStore-CENciQEM.mjs → SSMStateStore-sqZ3oDmn.mjs} +2 -2
- package/dist/{SSMStateStore-CENciQEM.mjs.map → SSMStateStore-sqZ3oDmn.mjs.map} +1 -1
- package/dist/{add-Cdg1kEqN.cjs → add-Cs8yT5iH.cjs} +3 -3
- package/dist/{add-Cdg1kEqN.cjs.map → add-Cs8yT5iH.cjs.map} +1 -1
- package/dist/{add-snhdVmR-.mjs → add-DJE7zqJ4.mjs} +3 -3
- package/dist/{add-snhdVmR-.mjs.map → add-DJE7zqJ4.mjs.map} +1 -1
- package/dist/{bundler-Wd9H4QLJ.mjs → bundler-DrySVbXF.mjs} +5 -5
- package/dist/{bundler-Wd9H4QLJ.mjs.map → bundler-DrySVbXF.mjs.map} +1 -1
- package/dist/{bundler-B4GDxImV.cjs → bundler-NrtItVBp.cjs} +5 -5
- package/dist/{bundler-B4GDxImV.cjs.map → bundler-NrtItVBp.cjs.map} +1 -1
- package/dist/{cli-BZYz55tO.cjs → cli-CHzpFBh-.cjs} +2 -2
- package/dist/{cli-BZYz55tO.cjs.map → cli-CHzpFBh-.cjs.map} +1 -1
- package/dist/{cli-BzrDSNSg.mjs → cli-DDY3jfTt.mjs} +4 -4
- package/dist/{cli-BzrDSNSg.mjs.map → cli-DDY3jfTt.mjs.map} +1 -1
- package/dist/{compose-DN9zySvQ.cjs → compose-ByIbIrzs.cjs} +20 -5
- package/dist/compose-ByIbIrzs.cjs.map +1 -0
- package/dist/{compose-Gsd1Nq7R.mjs → compose-CDC2bCme.mjs} +20 -5
- package/dist/compose-CDC2bCme.mjs.map +1 -0
- package/dist/deploy/public.cjs +6 -6
- package/dist/deploy/public.mjs +6 -6
- package/dist/{deploy-H2S8_mTx.mjs → deploy-DLq9-m6H.mjs} +5 -5
- package/dist/{deploy-H2S8_mTx.mjs.map → deploy-DLq9-m6H.mjs.map} +1 -1
- package/dist/{deploy-CFvq8daZ.cjs → deploy-Dl_NavYE.cjs} +5 -5
- package/dist/{deploy-CFvq8daZ.cjs.map → deploy-Dl_NavYE.cjs.map} +1 -1
- package/dist/{dns-BdETzP10.cjs → dns-C2TGXUF4.cjs} +2 -2
- package/dist/{dns-BdETzP10.cjs.map → dns-C2TGXUF4.cjs.map} +1 -1
- package/dist/{dns-pFMShDqW.mjs → dns-pzftumxg.mjs} +2 -2
- package/dist/{dns-pFMShDqW.mjs.map → dns-pzftumxg.mjs.map} +1 -1
- package/dist/{dokploy-oDJbnvCb.mjs → dokploy-B7-OwY2s.mjs} +2 -2
- package/dist/{dokploy-oDJbnvCb.mjs.map → dokploy-B7-OwY2s.mjs.map} +1 -1
- package/dist/{dokploy-HioAjP7K.cjs → dokploy-OqBh8G4g.cjs} +2 -2
- package/dist/{dokploy-HioAjP7K.cjs.map → dokploy-OqBh8G4g.cjs.map} +1 -1
- package/dist/eas-Cne743nQ.cjs +337 -0
- package/dist/eas-Cne743nQ.cjs.map +1 -0
- package/dist/eas-DEpwISrQ.mjs +334 -0
- package/dist/eas-DEpwISrQ.mjs.map +1 -0
- package/dist/{encryption-D5pDJyp2.mjs → encryption-DJv_jEXi.mjs} +2 -2
- package/dist/{encryption-D5pDJyp2.mjs.map → encryption-DJv_jEXi.mjs.map} +1 -1
- package/dist/{encryption-DVCxD-gV.cjs → encryption-DoVnVU82.cjs} +2 -2
- package/dist/{encryption-DVCxD-gV.cjs.map → encryption-DoVnVU82.cjs.map} +1 -1
- package/dist/{engine-BaJGPzte.cjs → engine-CJhQb50j.cjs} +3 -3
- package/dist/{engine-BaJGPzte.cjs.map → engine-CJhQb50j.cjs.map} +1 -1
- package/dist/{engine-CfAKgr2_.mjs → engine-Db71-OZL.mjs} +3 -3
- package/dist/{engine-CfAKgr2_.mjs.map → engine-Db71-OZL.mjs.map} +1 -1
- package/dist/{github-E-ZxqFPq.mjs → github-D2eABlxM.mjs} +4 -4
- package/dist/{github-E-ZxqFPq.mjs.map → github-D2eABlxM.mjs.map} +1 -1
- package/dist/{github-D902Vwr9.cjs → github-DDOHjdS9.cjs} +4 -4
- package/dist/{github-D902Vwr9.cjs.map → github-DDOHjdS9.cjs.map} +1 -1
- package/dist/googlePlay-B6uiHi65.cjs +931 -0
- package/dist/googlePlay-B6uiHi65.cjs.map +1 -0
- package/dist/googlePlay-BYZ-J5sC.mjs +931 -0
- package/dist/googlePlay-BYZ-J5sC.mjs.map +1 -0
- package/dist/index.cjs +268 -94
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +268 -97
- package/dist/index.mjs.map +1 -1
- package/dist/{migrate-BZ0GnSZQ.mjs → migrate-CQUGbptv.mjs} +2 -2
- package/dist/{migrate-BZ0GnSZQ.mjs.map → migrate-CQUGbptv.mjs.map} +1 -1
- package/dist/{migrate-Df81ew0k.cjs → migrate-GLBZlrlJ.cjs} +2 -2
- package/dist/{migrate-Df81ew0k.cjs.map → migrate-GLBZlrlJ.cjs.map} +1 -1
- package/dist/{migrate-CTqhWtev.cjs → migrate-bDQzFvBN.cjs} +2 -2
- package/dist/{migrate-CTqhWtev.cjs.map → migrate-bDQzFvBN.cjs.map} +1 -1
- package/dist/{migrate-DCXwHcWX.mjs → migrate-xHYaeBkd.mjs} +3 -3
- package/dist/{migrate-DCXwHcWX.mjs.map → migrate-xHYaeBkd.mjs.map} +1 -1
- package/dist/publish-CSctCNf4.mjs +123 -0
- package/dist/publish-CSctCNf4.mjs.map +1 -0
- package/dist/publish-SDG1WfYn.cjs +124 -0
- package/dist/publish-SDG1WfYn.cjs.map +1 -0
- package/dist/{resolve-BMpPd8x3.mjs → resolve-CxDqDmCD.mjs} +3 -3
- package/dist/{resolve-BMpPd8x3.mjs.map → resolve-CxDqDmCD.mjs.map} +1 -1
- package/dist/{resolve-D043YmW9.cjs → resolve-wG49Woex.cjs} +3 -3
- package/dist/{resolve-D043YmW9.cjs.map → resolve-wG49Woex.cjs.map} +1 -1
- package/dist/{rollback-CDs_XNb0.mjs → rollback-BQgEdr_p.mjs} +4 -4
- package/dist/{rollback-CDs_XNb0.mjs.map → rollback-BQgEdr_p.mjs.map} +1 -1
- package/dist/{rollback-CBiYsQ3T.cjs → rollback-Cw-Z0mWn.cjs} +4 -4
- package/dist/{rollback-CBiYsQ3T.cjs.map → rollback-Cw-Z0mWn.cjs.map} +1 -1
- package/dist/{seeds-BjcO4DDa.mjs → seeds-CIk0l4SC.mjs} +13 -10
- package/dist/seeds-CIk0l4SC.mjs.map +1 -0
- package/dist/{seeds-DNqRA1aQ.cjs → seeds-Dk8YkLkM.cjs} +18 -15
- package/dist/seeds-Dk8YkLkM.cjs.map +1 -0
- package/dist/{sniffer-DipSS8r8.cjs → sniffer-2aK7cB2u.cjs} +6 -6
- package/dist/{sniffer-DipSS8r8.cjs.map → sniffer-2aK7cB2u.cjs.map} +1 -1
- package/dist/{sniffer-b0XPmSyT.mjs → sniffer-CABMO-Bh.mjs} +6 -6
- package/dist/{sniffer-b0XPmSyT.mjs.map → sniffer-CABMO-Bh.mjs.map} +1 -1
- package/dist/{stage-DrDmZusd.mjs → stage-ClKTHQoM.mjs} +69 -33
- package/dist/stage-ClKTHQoM.mjs.map +1 -0
- package/dist/{stage-C_y2UovO.cjs → stage-DrCS0vKD.cjs} +79 -32
- package/dist/stage-DrCS0vKD.cjs.map +1 -0
- package/dist/target/public.cjs +1 -1
- package/dist/target/public.mjs +1 -1
- package/dist/{terminal-CvRLxz6g.mjs → terminal-CybB-cjk.mjs} +2 -2
- package/dist/{terminal-CvRLxz6g.mjs.map → terminal-CybB-cjk.mjs.map} +1 -1
- package/package.json +15 -15
- package/dist/compose-DN9zySvQ.cjs.map +0 -1
- package/dist/compose-Gsd1Nq7R.mjs.map +0 -1
- package/dist/seeds-BjcO4DDa.mjs.map +0 -1
- package/dist/seeds-DNqRA1aQ.cjs.map +0 -1
- package/dist/stage-C_y2UovO.cjs.map +0 -1
- package/dist/stage-DrDmZusd.mjs.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -4,25 +4,25 @@ const require_rolldown_runtime = require("./rolldown-runtime-C0BPl7ul.cjs");
|
|
|
4
4
|
const require_errors = require("./errors-DMC4Umsb.cjs");
|
|
5
5
|
const require_run = require("./run-fVZ-rLnc.cjs");
|
|
6
6
|
const require_credentials = require("./credentials-Zqr3QQYB.cjs");
|
|
7
|
-
const require_compose = require("./compose-
|
|
7
|
+
const require_compose = require("./compose-ByIbIrzs.cjs");
|
|
8
8
|
const require_workspace = require("./workspace-BwqQnool.cjs");
|
|
9
|
-
const require_dns = require("./dns-
|
|
10
|
-
const require_seeds = require("./seeds-
|
|
9
|
+
const require_dns = require("./dns-C2TGXUF4.cjs");
|
|
10
|
+
const require_seeds = require("./seeds-Dk8YkLkM.cjs");
|
|
11
11
|
const require_derive = require("./derive-DAbo49sm.cjs");
|
|
12
12
|
const require_SubscriberGenerator = require("./SubscriberGenerator-CeH7wbYt.cjs");
|
|
13
13
|
const require_identity = require("./identity-CbLfgQNT.cjs");
|
|
14
14
|
const require_EndpointGenerator = require("./EndpointGenerator-BwbYTMtB.cjs");
|
|
15
15
|
const require_discover = require("./discover-Bsr7HjqJ.cjs");
|
|
16
16
|
const require_config = require("./config.cjs");
|
|
17
|
-
const require_deploy = require("./deploy-
|
|
17
|
+
const require_deploy = require("./deploy-Dl_NavYE.cjs");
|
|
18
18
|
const require_openapi = require("./openapi.cjs");
|
|
19
19
|
const require_appPorts = require("./appPorts-IW-OZmRi.cjs");
|
|
20
20
|
const require_drivers = require("./drivers-GKaA6ITM.cjs");
|
|
21
21
|
const require_emit = require("./emit-Dmc1nvdS.cjs");
|
|
22
22
|
const require_local = require("./local-DNhnkugT.cjs");
|
|
23
|
-
const require_sniffer = require("./sniffer-
|
|
23
|
+
const require_sniffer = require("./sniffer-2aK7cB2u.cjs");
|
|
24
24
|
const require_credentialSchemas = require("./credentialSchemas-D_VUCDUh.cjs");
|
|
25
|
-
const require_LocalStateStore = require("./LocalStateStore-
|
|
25
|
+
const require_LocalStateStore = require("./LocalStateStore-AtviUBky.cjs");
|
|
26
26
|
const require_utils = require("./utils-D2Nk1Nv2.cjs");
|
|
27
27
|
const require_ready = require("./ready-BMFjxBYA.cjs");
|
|
28
28
|
let node_path = require("node:path");
|
|
@@ -57,7 +57,7 @@ crypto = require_rolldown_runtime.__toESM(crypto, 1);
|
|
|
57
57
|
let _geekmidas_constructs_functions = require("@geekmidas/constructs/functions");
|
|
58
58
|
let _geekmidas_constructs_topic = require("@geekmidas/constructs/topic");
|
|
59
59
|
//#region package.json
|
|
60
|
-
var version = "10.0.0-alpha.
|
|
60
|
+
var version = "10.0.0-alpha.112";
|
|
61
61
|
//#endregion
|
|
62
62
|
//#region src/prompt.ts
|
|
63
63
|
/**
|
|
@@ -140,7 +140,7 @@ const logger$8 = console;
|
|
|
140
140
|
* Validate Dokploy token by making a test API call
|
|
141
141
|
*/
|
|
142
142
|
async function validateDokployToken(endpoint, token) {
|
|
143
|
-
const { DokployApi } = await Promise.resolve().then(() => require("./sniffer-
|
|
143
|
+
const { DokployApi } = await Promise.resolve().then(() => require("./sniffer-2aK7cB2u.cjs")).then((n) => n.dokploy_api_exports);
|
|
144
144
|
return new DokployApi({
|
|
145
145
|
baseUrl: endpoint,
|
|
146
146
|
token
|
|
@@ -2180,7 +2180,7 @@ async function execCommand(commandArgs, options = {}, stageDeps) {
|
|
|
2180
2180
|
const cwd = options.cwd ?? process.cwd();
|
|
2181
2181
|
if (!commandArgs[0]) throw new NoCommandSpecified();
|
|
2182
2182
|
if (options.stage && !require_seeds.isImageBuild()) {
|
|
2183
|
-
const { execOnStage } = await Promise.resolve().then(() => require("./stage-
|
|
2183
|
+
const { execOnStage } = await Promise.resolve().then(() => require("./stage-DrCS0vKD.cjs")).then((n) => n.stage_exports);
|
|
2184
2184
|
const { loadWorkspaceConfig } = await Promise.resolve().then(() => require("./config.cjs"));
|
|
2185
2185
|
const { workspace } = await loadWorkspaceConfig(cwd);
|
|
2186
2186
|
if (options.stage !== workspace.stages.local) {
|
|
@@ -2753,9 +2753,9 @@ async function workspaceDevCommand(configured, options) {
|
|
|
2753
2753
|
for (const { id, port } of fakes) logger$5.log(`🎭 ${id} fake: http://localhost:${port}`);
|
|
2754
2754
|
logger$5.log(options.migrate || options.seed ? "🗄️ Migrating the databases" : "🗄️ Checking for pending migrations");
|
|
2755
2755
|
if (options.migrate || options.seed) {
|
|
2756
|
-
const { prepareDevDatabases } = await Promise.resolve().then(() => require("./migrate-
|
|
2756
|
+
const { prepareDevDatabases } = await Promise.resolve().then(() => require("./migrate-bDQzFvBN.cjs"));
|
|
2757
2757
|
await prepareDevDatabases(workspace, reconciled.env, { seed: !!options.seed });
|
|
2758
|
-
} else await Promise.resolve().then(() => require("./migrate-
|
|
2758
|
+
} else await Promise.resolve().then(() => require("./migrate-bDQzFvBN.cjs")).then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
|
|
2759
2759
|
logger$5.log(`⚠️ Could not check for pending migrations: ${error instanceof Error ? error.message : String(error)}`);
|
|
2760
2760
|
});
|
|
2761
2761
|
const appUrls = {};
|
|
@@ -3831,7 +3831,7 @@ async function buildApp(input) {
|
|
|
3831
3831
|
...production,
|
|
3832
3832
|
...telemetry ? { telemetry } : {}
|
|
3833
3833
|
});
|
|
3834
|
-
const { bundleServer } = await Promise.resolve().then(() => require("./bundler-
|
|
3834
|
+
const { bundleServer } = await Promise.resolve().then(() => require("./bundler-NrtItVBp.cjs"));
|
|
3835
3835
|
await bundleServer({
|
|
3836
3836
|
entryPoint,
|
|
3837
3837
|
outputDir: (0, node_path.join)(outputDir, "dist"),
|
|
@@ -4030,7 +4030,7 @@ async function buildWorkers(input) {
|
|
|
4030
4030
|
});
|
|
4031
4031
|
logger$4.log(`Generated worker ${worker.id}: ${crons.length} crons, ${queues.length} queues, ${subscribers.length} subscribers`);
|
|
4032
4032
|
if (!input.bundle) continue;
|
|
4033
|
-
const { bundleServer } = await Promise.resolve().then(() => require("./bundler-
|
|
4033
|
+
const { bundleServer } = await Promise.resolve().then(() => require("./bundler-NrtItVBp.cjs"));
|
|
4034
4034
|
const outfile = require_seeds.workerBundleName(worker.id);
|
|
4035
4035
|
await bundleServer({
|
|
4036
4036
|
entryPoint,
|
|
@@ -4116,7 +4116,7 @@ async function buildForTarget(target, context, appRoot, workspaceRoot, endpointG
|
|
|
4116
4116
|
let masterKey;
|
|
4117
4117
|
if (context.production?.bundle && !skipBundle) {
|
|
4118
4118
|
logger$4.log(`\n📦 Bundling production server...`);
|
|
4119
|
-
const { bundleServer } = await Promise.resolve().then(() => require("./bundler-
|
|
4119
|
+
const { bundleServer } = await Promise.resolve().then(() => require("./bundler-NrtItVBp.cjs"));
|
|
4120
4120
|
const allConstructs = [
|
|
4121
4121
|
...endpoints.map((e) => e.construct),
|
|
4122
4122
|
...functions.map((f) => f.construct),
|
|
@@ -5949,25 +5949,25 @@ function loadPackageJson() {
|
|
|
5949
5949
|
* Run: pnpm --filter @geekmidas/cli sync-versions
|
|
5950
5950
|
*/
|
|
5951
5951
|
const GEEKMIDAS_VERSIONS = {
|
|
5952
|
-
"@geekmidas/audit": "~10.0.0-alpha.
|
|
5953
|
-
"@geekmidas/auth": "~10.0.0-alpha.
|
|
5954
|
-
"@geekmidas/cache": "~10.0.0-alpha.
|
|
5955
|
-
"@geekmidas/client": "~10.0.0-alpha.
|
|
5956
|
-
"@geekmidas/cloud": "~10.0.0-alpha.
|
|
5957
|
-
"@geekmidas/constructs": "~10.0.0-alpha.
|
|
5958
|
-
"@geekmidas/db": "~10.0.0-alpha.
|
|
5959
|
-
"@geekmidas/emailkit": "~10.0.0-alpha.
|
|
5960
|
-
"@geekmidas/envkit": "~10.0.0-alpha.
|
|
5961
|
-
"@geekmidas/errors": "~10.0.0-alpha.
|
|
5962
|
-
"@geekmidas/events": "~10.0.0-alpha.
|
|
5963
|
-
"@geekmidas/logger": "~10.0.0-alpha.
|
|
5964
|
-
"@geekmidas/manifest": "~10.0.0-alpha.
|
|
5965
|
-
"@geekmidas/rate-limit": "~10.0.0-alpha.
|
|
5966
|
-
"@geekmidas/schema": "~10.0.0-alpha.
|
|
5967
|
-
"@geekmidas/services": "~10.0.0-alpha.
|
|
5968
|
-
"@geekmidas/storage": "~10.0.0-alpha.
|
|
5969
|
-
"@geekmidas/telescope": "~10.0.0-alpha.
|
|
5970
|
-
"@geekmidas/testkit": "~10.0.0-alpha.
|
|
5952
|
+
"@geekmidas/audit": "~10.0.0-alpha.112",
|
|
5953
|
+
"@geekmidas/auth": "~10.0.0-alpha.112",
|
|
5954
|
+
"@geekmidas/cache": "~10.0.0-alpha.112",
|
|
5955
|
+
"@geekmidas/client": "~10.0.0-alpha.112",
|
|
5956
|
+
"@geekmidas/cloud": "~10.0.0-alpha.112",
|
|
5957
|
+
"@geekmidas/constructs": "~10.0.0-alpha.112",
|
|
5958
|
+
"@geekmidas/db": "~10.0.0-alpha.112",
|
|
5959
|
+
"@geekmidas/emailkit": "~10.0.0-alpha.112",
|
|
5960
|
+
"@geekmidas/envkit": "~10.0.0-alpha.112",
|
|
5961
|
+
"@geekmidas/errors": "~10.0.0-alpha.112",
|
|
5962
|
+
"@geekmidas/events": "~10.0.0-alpha.112",
|
|
5963
|
+
"@geekmidas/logger": "~10.0.0-alpha.112",
|
|
5964
|
+
"@geekmidas/manifest": "~10.0.0-alpha.112",
|
|
5965
|
+
"@geekmidas/rate-limit": "~10.0.0-alpha.112",
|
|
5966
|
+
"@geekmidas/schema": "~10.0.0-alpha.112",
|
|
5967
|
+
"@geekmidas/services": "~10.0.0-alpha.112",
|
|
5968
|
+
"@geekmidas/storage": "~10.0.0-alpha.112",
|
|
5969
|
+
"@geekmidas/telescope": "~10.0.0-alpha.112",
|
|
5970
|
+
"@geekmidas/testkit": "~10.0.0-alpha.112",
|
|
5971
5971
|
"@geekmidas/cli": `~${loadPackageJson().version}`
|
|
5972
5972
|
};
|
|
5973
5973
|
//#endregion
|
|
@@ -7160,7 +7160,7 @@ const COMMIT = /^[0-9a-f]{40}$/;
|
|
|
7160
7160
|
* The `uses:` value for the stages action, with a comment saying which CLI
|
|
7161
7161
|
* release the pinned commit is.
|
|
7162
7162
|
*/
|
|
7163
|
-
function stagesActionUses(commit = "
|
|
7163
|
+
function stagesActionUses(commit = "4f82632d8355cb858b895c3caf36228e040d39b0", version = cliVersion()) {
|
|
7164
7164
|
return commit && COMMIT.test(commit) ? `${STAGES_ACTION}@${commit} # @geekmidas/cli ${version}` : `${STAGES_ACTION}@main # pin to a commit SHA: see the action's README`;
|
|
7165
7165
|
}
|
|
7166
7166
|
//#endregion
|
|
@@ -7764,6 +7764,133 @@ function generateGithubFiles(options) {
|
|
|
7764
7764
|
return files;
|
|
7765
7765
|
}
|
|
7766
7766
|
//#endregion
|
|
7767
|
+
//#region src/mobile/easWorkflow.ts
|
|
7768
|
+
/**
|
|
7769
|
+
* A stage's EAS workflow (`.eas/workflows/publish-<stage>.yml`): what
|
|
7770
|
+
* `gkm publish` does, run by EAS itself — so shipping the app needs no CI
|
|
7771
|
+
* of the project's own, no runner and no token in GitHub.
|
|
7772
|
+
*
|
|
7773
|
+
* Per platform: the native code's fingerprint, read with the stage's EAS
|
|
7774
|
+
* environment; a finished store build of the stage's profile with that
|
|
7775
|
+
* fingerprint; then an update on the stage's channel when there is one, or
|
|
7776
|
+
* a store build, submitted with the stage's submit profile, when there is
|
|
7777
|
+
* not. iOS is submitted once `submit.<stage>.ios.ascAppId` is set — until
|
|
7778
|
+
* then it is built and not submitted.
|
|
7779
|
+
*
|
|
7780
|
+
* It runs when the stage is deployed: the protected stage on a release tag
|
|
7781
|
+
* (`v*`), every other deployed stage on a push to `main` — and on demand,
|
|
7782
|
+
* `eas workflow:run .eas/workflows/publish-<stage>.yml`. The values a build
|
|
7783
|
+
* reads are the stage's EAS environment, which `gkm eas:sync` keeps.
|
|
7784
|
+
*
|
|
7785
|
+
* Generated: written by `gkm eas:sync`, and overwritten by the next one.
|
|
7786
|
+
*/
|
|
7787
|
+
/** Where a stage's workflow is written, relative to the app. */
|
|
7788
|
+
function easWorkflowPath(stage) {
|
|
7789
|
+
return `.eas/workflows/publish-${stage}.yml`;
|
|
7790
|
+
}
|
|
7791
|
+
/** The stage's EAS workflow, as YAML. */
|
|
7792
|
+
function easWorkflow(stage, options) {
|
|
7793
|
+
const profile = stage.stage;
|
|
7794
|
+
const jobs = { fingerprint: {
|
|
7795
|
+
name: "Fingerprint",
|
|
7796
|
+
type: "fingerprint",
|
|
7797
|
+
environment: stage.environment
|
|
7798
|
+
} };
|
|
7799
|
+
for (const platform of ["android", "ios"]) {
|
|
7800
|
+
const existing = `get_${platform}_build`;
|
|
7801
|
+
const build = `build_${platform}`;
|
|
7802
|
+
const name = platform === "ios" ? "iOS" : "Android";
|
|
7803
|
+
jobs[existing] = {
|
|
7804
|
+
name: `Find an ${name} store build with this native code`,
|
|
7805
|
+
needs: ["fingerprint"],
|
|
7806
|
+
type: "get-build",
|
|
7807
|
+
params: {
|
|
7808
|
+
fingerprint_hash: `\${{ needs.fingerprint.outputs.${platform}_fingerprint_hash }}`,
|
|
7809
|
+
profile,
|
|
7810
|
+
platform,
|
|
7811
|
+
distribution: "store"
|
|
7812
|
+
}
|
|
7813
|
+
};
|
|
7814
|
+
jobs[build] = {
|
|
7815
|
+
name: `Build ${name}`,
|
|
7816
|
+
needs: [existing],
|
|
7817
|
+
if: `\${{ !needs.${existing}.outputs.build_id }}`,
|
|
7818
|
+
type: "build",
|
|
7819
|
+
params: {
|
|
7820
|
+
platform,
|
|
7821
|
+
profile
|
|
7822
|
+
}
|
|
7823
|
+
};
|
|
7824
|
+
if (platform === "android" || options.iosSubmits) jobs[`submit_${platform}`] = {
|
|
7825
|
+
name: `Submit ${name}`,
|
|
7826
|
+
needs: [build],
|
|
7827
|
+
type: "submit",
|
|
7828
|
+
params: {
|
|
7829
|
+
build_id: `\${{ needs.${build}.outputs.build_id }}`,
|
|
7830
|
+
profile
|
|
7831
|
+
}
|
|
7832
|
+
};
|
|
7833
|
+
jobs[`update_${platform}`] = {
|
|
7834
|
+
name: `Update ${name} on '${stage.channel}'`,
|
|
7835
|
+
needs: [existing],
|
|
7836
|
+
if: `\${{ needs.${existing}.outputs.build_id }}`,
|
|
7837
|
+
type: "update",
|
|
7838
|
+
environment: stage.environment,
|
|
7839
|
+
params: {
|
|
7840
|
+
platform,
|
|
7841
|
+
channel: stage.channel
|
|
7842
|
+
}
|
|
7843
|
+
};
|
|
7844
|
+
}
|
|
7845
|
+
return `${[
|
|
7846
|
+
`# Generated by \`gkm eas:sync --stage ${stage.stage}\`: run it again rather than`,
|
|
7847
|
+
"# editing this file. An update when a store build has this native code,",
|
|
7848
|
+
`# a store build submitted to the stores when none does. Run by hand:`,
|
|
7849
|
+
`# eas workflow:run ${easWorkflowPath(stage.stage)}`,
|
|
7850
|
+
""
|
|
7851
|
+
].join("\n")}${(0, yaml.stringify)({
|
|
7852
|
+
name: `Publish to ${stage.stage}`,
|
|
7853
|
+
on: options.release ? { push: { tags: ["v*"] } } : { push: { branches: ["main"] } },
|
|
7854
|
+
jobs
|
|
7855
|
+
}, { lineWidth: 0 })}`;
|
|
7856
|
+
}
|
|
7857
|
+
//#endregion
|
|
7858
|
+
//#region src/mobile/stage.ts
|
|
7859
|
+
/** A `MobileApp`'s `stages` names a stage the project does not deploy. */
|
|
7860
|
+
var MobileAppStageUndeclared = class extends require_errors.GkmError {
|
|
7861
|
+
app;
|
|
7862
|
+
stage;
|
|
7863
|
+
deployed;
|
|
7864
|
+
constructor(app, stage, deployed) {
|
|
7865
|
+
super(`'${app}' says how the stage '${stage}' ships it, and '${stage}' is not a deployed stage (gkm.config.ts deploys ${deployed.join(", ") || "nothing"}). Rename it in the MobileApp's stages, or add it to stages.deployed.`);
|
|
7866
|
+
this.app = app;
|
|
7867
|
+
this.stage = stage;
|
|
7868
|
+
this.deployed = deployed;
|
|
7869
|
+
this.name = "MobileAppStageUndeclared";
|
|
7870
|
+
}
|
|
7871
|
+
};
|
|
7872
|
+
/**
|
|
7873
|
+
* `stage`'s way of shipping `app`.
|
|
7874
|
+
*
|
|
7875
|
+
* @throws {MobileAppStageUndeclared} when the app's `stages` names a stage
|
|
7876
|
+
* the workspace does not deploy
|
|
7877
|
+
*/
|
|
7878
|
+
function mobileStage(workspace, app, stage) {
|
|
7879
|
+
const { deployed } = workspace.stages;
|
|
7880
|
+
for (const named of Object.keys(app.stages ?? {})) if (!deployed.includes(named)) throw new MobileAppStageUndeclared(app.id, named, deployed);
|
|
7881
|
+
const users = workspace.stages.protected?.includes(stage) ?? false;
|
|
7882
|
+
const given = app.stages?.[stage];
|
|
7883
|
+
return {
|
|
7884
|
+
stage,
|
|
7885
|
+
environment: given?.environment ?? (users ? "production" : "preview"),
|
|
7886
|
+
channel: stage,
|
|
7887
|
+
android: {
|
|
7888
|
+
track: given?.android?.track ?? (users ? "production" : "internal"),
|
|
7889
|
+
releaseStatus: given?.android?.releaseStatus ?? "draft"
|
|
7890
|
+
}
|
|
7891
|
+
};
|
|
7892
|
+
}
|
|
7893
|
+
//#endregion
|
|
7767
7894
|
//#region src/init/generators/mobile-expo.ts
|
|
7768
7895
|
/**
|
|
7769
7896
|
* The fullstack template's mobile app, when it has one (`mobileApp`).
|
|
@@ -7903,6 +8030,14 @@ export default function expoConfig({ config: base }: ConfigContext): ExpoConfig
|
|
|
7903
8030
|
};
|
|
7904
8031
|
}
|
|
7905
8032
|
`;
|
|
8033
|
+
const mobile = {
|
|
8034
|
+
kind: "mobile-app",
|
|
8035
|
+
id: "App",
|
|
8036
|
+
variant: "expo",
|
|
8037
|
+
app: { path: "apps/app" },
|
|
8038
|
+
dependencies: []
|
|
8039
|
+
};
|
|
8040
|
+
const stages = options.stages.deployed.map((stage) => mobileStage({ stages: options.stages }, mobile, stage));
|
|
7906
8041
|
const easJson = {
|
|
7907
8042
|
cli: {
|
|
7908
8043
|
version: ">= 10.2.1",
|
|
@@ -7914,25 +8049,16 @@ export default function expoConfig({ config: base }: ConfigContext): ExpoConfig
|
|
|
7914
8049
|
distribution: "internal",
|
|
7915
8050
|
environment: "development"
|
|
7916
8051
|
},
|
|
7917
|
-
|
|
7918
|
-
distribution: "internal",
|
|
7919
|
-
environment: "preview",
|
|
7920
|
-
env: {
|
|
7921
|
-
APP_SCHEME: scheme,
|
|
7922
|
-
EXPO_PUBLIC_API_URL: "https://api.example.com",
|
|
7923
|
-
EXPO_PUBLIC_AUTH_URL: "https://auth.example.com"
|
|
7924
|
-
}
|
|
7925
|
-
},
|
|
7926
|
-
production: {
|
|
8052
|
+
...Object.fromEntries(stages.map((stage) => [stage.stage, {
|
|
7927
8053
|
autoIncrement: true,
|
|
7928
|
-
environment:
|
|
7929
|
-
|
|
7930
|
-
|
|
7931
|
-
|
|
7932
|
-
|
|
7933
|
-
|
|
7934
|
-
|
|
7935
|
-
}
|
|
8054
|
+
environment: stage.environment,
|
|
8055
|
+
channel: stage.channel
|
|
8056
|
+
}]))
|
|
8057
|
+
},
|
|
8058
|
+
submit: Object.fromEntries(stages.map((stage) => [stage.stage, { android: {
|
|
8059
|
+
track: stage.android.track,
|
|
8060
|
+
releaseStatus: stage.android.releaseStatus
|
|
8061
|
+
} }]))
|
|
7936
8062
|
};
|
|
7937
8063
|
const babelConfig = `module.exports = function (api) {
|
|
7938
8064
|
api.cache(true);
|
|
@@ -8647,6 +8773,35 @@ export default function SigningInScreen() {
|
|
|
8647
8773
|
</SafeAreaView>
|
|
8648
8774
|
);
|
|
8649
8775
|
}
|
|
8776
|
+
`;
|
|
8777
|
+
const appConstructTs = `import { MobileApp } from '@geekmidas/constructs/mobile-app';
|
|
8778
|
+
import { api } from './api.ts';
|
|
8779
|
+
import { auth } from './auth.ts';
|
|
8780
|
+
import { email } from './email.ts';
|
|
8781
|
+
|
|
8782
|
+
/**
|
|
8783
|
+
* The mobile app — a construct like a site, which is what makes it an app.
|
|
8784
|
+
*
|
|
8785
|
+
* \`.dependsOn()\` is the single fact behind what a mobile app otherwise has
|
|
8786
|
+
* written down by hand: its API and auth URLs, its URL scheme, the scheme in
|
|
8787
|
+
* the auth server's trusted origins, Better Auth's Expo plugin, sign-in links
|
|
8788
|
+
* a phone can open — and, on a local stage, the mailer's inbox, so a link sent
|
|
8789
|
+
* in development is read on the device.
|
|
8790
|
+
*/
|
|
8791
|
+
export const app = new MobileApp('App', { path: 'apps/app' }).dependsOn([
|
|
8792
|
+
api,
|
|
8793
|
+
auth,
|
|
8794
|
+
email,
|
|
8795
|
+
]);
|
|
8796
|
+
`;
|
|
8797
|
+
const gitignore = `node_modules/
|
|
8798
|
+
.expo/
|
|
8799
|
+
dist/
|
|
8800
|
+
*.log
|
|
8801
|
+
.env*.local
|
|
8802
|
+
ios/
|
|
8803
|
+
android/
|
|
8804
|
+
.eas/
|
|
8650
8805
|
`;
|
|
8651
8806
|
return [
|
|
8652
8807
|
{
|
|
@@ -8661,6 +8816,13 @@ export default function SigningInScreen() {
|
|
|
8661
8816
|
path: "apps/app/eas.json",
|
|
8662
8817
|
content: `${JSON.stringify(easJson, null, 2)}\n`
|
|
8663
8818
|
},
|
|
8819
|
+
...stages.map((stage) => ({
|
|
8820
|
+
path: `apps/app/${easWorkflowPath(stage.stage)}`,
|
|
8821
|
+
content: easWorkflow(stage, {
|
|
8822
|
+
release: options.stages.protected?.includes(stage.stage) ?? false,
|
|
8823
|
+
iosSubmits: false
|
|
8824
|
+
})
|
|
8825
|
+
})),
|
|
8664
8826
|
{
|
|
8665
8827
|
path: "apps/app/babel.config.js",
|
|
8666
8828
|
content: babelConfig
|
|
@@ -8751,38 +8913,11 @@ export default function SigningInScreen() {
|
|
|
8751
8913
|
},
|
|
8752
8914
|
{
|
|
8753
8915
|
path: "apps/app/.gitignore",
|
|
8754
|
-
content:
|
|
8755
|
-
.expo/
|
|
8756
|
-
dist/
|
|
8757
|
-
*.log
|
|
8758
|
-
.env*.local
|
|
8759
|
-
ios/
|
|
8760
|
-
android/
|
|
8761
|
-
.eas/
|
|
8762
|
-
`
|
|
8916
|
+
content: gitignore
|
|
8763
8917
|
},
|
|
8764
8918
|
{
|
|
8765
8919
|
path: "constructs/app.ts",
|
|
8766
|
-
content:
|
|
8767
|
-
import { api } from './api.ts';
|
|
8768
|
-
import { auth } from './auth.ts';
|
|
8769
|
-
import { email } from './email.ts';
|
|
8770
|
-
|
|
8771
|
-
/**
|
|
8772
|
-
* The mobile app — a construct like a site, which is what makes it an app.
|
|
8773
|
-
*
|
|
8774
|
-
* \`.dependsOn()\` is the single fact behind what a mobile app otherwise has
|
|
8775
|
-
* written down by hand: its API and auth URLs, its URL scheme, the scheme in
|
|
8776
|
-
* the auth server's trusted origins, Better Auth's Expo plugin, sign-in links
|
|
8777
|
-
* a phone can open — and, on a local stage, the mailer's inbox, so a link sent
|
|
8778
|
-
* in development is read on the device.
|
|
8779
|
-
*/
|
|
8780
|
-
export const app = new MobileApp('App', { path: 'apps/app' }).dependsOn([
|
|
8781
|
-
api,
|
|
8782
|
-
auth,
|
|
8783
|
-
email,
|
|
8784
|
-
]);
|
|
8785
|
-
`
|
|
8920
|
+
content: appConstructTs
|
|
8786
8921
|
}
|
|
8787
8922
|
];
|
|
8788
8923
|
}
|
|
@@ -15860,7 +15995,7 @@ function testDatabases(reconciled) {
|
|
|
15860
15995
|
* starts without the reference data the app needs.
|
|
15861
15996
|
*/
|
|
15862
15997
|
async function migrateTestStage(workspace, env) {
|
|
15863
|
-
const { migrateAndSeed } = await Promise.resolve().then(() => require("./migrate-
|
|
15998
|
+
const { migrateAndSeed } = await Promise.resolve().then(() => require("./migrate-bDQzFvBN.cjs"));
|
|
15864
15999
|
const { discover } = await Promise.resolve().then(() => require("./discover-Bsr7HjqJ.cjs")).then((n) => n.discover_exports);
|
|
15865
16000
|
const sources = {};
|
|
15866
16001
|
const manifest = await discover({
|
|
@@ -16280,6 +16415,42 @@ program.command("exec").description("Run a command with secrets injected into Cr
|
|
|
16280
16415
|
exitWithError(error);
|
|
16281
16416
|
}
|
|
16282
16417
|
});
|
|
16418
|
+
program.command("eas:sync").description("Set up a mobile app's EAS project for a deployed stage: its eas.json profiles, and its public values in the stage's EAS environment").requiredOption("--stage <stage>", "A deployed compose stage").option("--app <app>", "The mobile app (default: the one here, or the only one)").option("--profile <profile>", "AWS profile for the stage's account").option("--dry-run", "Say what would be written, and write nothing").action(async (options) => {
|
|
16419
|
+
try {
|
|
16420
|
+
const globalOptions = program.opts();
|
|
16421
|
+
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
16422
|
+
const { easSync } = await Promise.resolve().then(() => require("./eas-Cne743nQ.cjs"));
|
|
16423
|
+
await easSync(options);
|
|
16424
|
+
} catch (error) {
|
|
16425
|
+
exitWithError(error);
|
|
16426
|
+
}
|
|
16427
|
+
});
|
|
16428
|
+
program.command("publish").description("Ship a mobile app for a deployed stage: sync its EAS project, then an update when a store build has its native code, a store build submitted to the stores when none does").requiredOption("--stage <stage>", "A deployed compose stage").option("--app <app>", "The mobile app (default: the one here, or the only one)").option("--platform <platform>", "ios, android or all", "all").option("--build", "A store build, whatever the fingerprint says").option("--update", "An update, whatever the fingerprint says").option("--wait", "Wait for a build to finish, and submit, on EAS").option("--message <message>", "An update's message (default: the commit's subject)").option("--profile <profile>", "AWS profile for the stage's account").option("--dry-run", "Say what would be released, and release nothing").action(async (options) => {
|
|
16429
|
+
try {
|
|
16430
|
+
const globalOptions = program.opts();
|
|
16431
|
+
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
16432
|
+
const { publish, PublishModeConflict } = await Promise.resolve().then(() => require("./publish-SDG1WfYn.cjs"));
|
|
16433
|
+
if (options.build && options.update) throw new PublishModeConflict();
|
|
16434
|
+
const { build, update, ...rest } = options;
|
|
16435
|
+
await publish({
|
|
16436
|
+
...rest,
|
|
16437
|
+
...build ? { mode: "build" } : {},
|
|
16438
|
+
...update ? { mode: "update" } : {}
|
|
16439
|
+
});
|
|
16440
|
+
} catch (error) {
|
|
16441
|
+
exitWithError(error);
|
|
16442
|
+
}
|
|
16443
|
+
});
|
|
16444
|
+
program.command("deploy:google-play").description("Let EAS Submit publish a mobile app to Google Play: a service account with a grant on the app alone, its key in EAS, each stage's track in eas.json, and the store listing from store/play/").option("--developer <id>", "The Play developer account (the number in Play Console's address)").option("--app <app>", "The mobile app (default: the one here, or the only one)").option("--project <project>", "The Google Cloud project (default: <workspace>-play, created when absent)").option("--stage <stage>", "The stage whose values evaluate the app's Expo config (default: the protected one)").option("--profile <profile>", "AWS profile for that stage's account").action(async (options) => {
|
|
16445
|
+
try {
|
|
16446
|
+
const globalOptions = program.opts();
|
|
16447
|
+
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
16448
|
+
const { deployGooglePlay } = await Promise.resolve().then(() => require("./googlePlay-B6uiHi65.cjs"));
|
|
16449
|
+
await deployGooglePlay(options);
|
|
16450
|
+
} catch (error) {
|
|
16451
|
+
exitWithError(error);
|
|
16452
|
+
}
|
|
16453
|
+
});
|
|
16283
16454
|
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) => {
|
|
16284
16455
|
try {
|
|
16285
16456
|
const globalOptions = program.opts();
|
|
@@ -16296,7 +16467,7 @@ program.command("migrate").description("Apply each database construct's migratio
|
|
|
16296
16467
|
try {
|
|
16297
16468
|
const globalOptions = program.opts();
|
|
16298
16469
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
16299
|
-
const { migrateCommand } = await Promise.resolve().then(() => require("./migrate-
|
|
16470
|
+
const { migrateCommand } = await Promise.resolve().then(() => require("./migrate-bDQzFvBN.cjs"));
|
|
16300
16471
|
await migrateCommand({
|
|
16301
16472
|
...options,
|
|
16302
16473
|
...construct ? { construct } : {}
|
|
@@ -16309,7 +16480,7 @@ program.command("seed").description("Migrate, then run each database construct's
|
|
|
16309
16480
|
try {
|
|
16310
16481
|
const globalOptions = program.opts();
|
|
16311
16482
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
16312
|
-
const { seedCommand } = await Promise.resolve().then(() => require("./migrate-
|
|
16483
|
+
const { seedCommand } = await Promise.resolve().then(() => require("./migrate-bDQzFvBN.cjs"));
|
|
16313
16484
|
await seedCommand({
|
|
16314
16485
|
...options,
|
|
16315
16486
|
...construct ? { construct } : {}
|
|
@@ -16322,7 +16493,7 @@ program.command("migration").description("Write a construct's next migration: an
|
|
|
16322
16493
|
try {
|
|
16323
16494
|
const globalOptions = program.opts();
|
|
16324
16495
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
16325
|
-
const { migrationCommand } = await Promise.resolve().then(() => require("./migrate-
|
|
16496
|
+
const { migrationCommand } = await Promise.resolve().then(() => require("./migrate-bDQzFvBN.cjs"));
|
|
16326
16497
|
await migrationCommand({
|
|
16327
16498
|
construct,
|
|
16328
16499
|
...name ? { name } : {}
|
|
@@ -16422,7 +16593,7 @@ program.command("secrets:add").description("Build the keys a stage must be given
|
|
|
16422
16593
|
try {
|
|
16423
16594
|
const globalOptions = program.opts();
|
|
16424
16595
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
16425
|
-
const { secretsAddCommand } = await Promise.resolve().then(() => require("./add-
|
|
16596
|
+
const { secretsAddCommand } = await Promise.resolve().then(() => require("./add-Cs8yT5iH.cjs"));
|
|
16426
16597
|
await secretsAddCommand(options);
|
|
16427
16598
|
} catch (error) {
|
|
16428
16599
|
exitWithError(error);
|
|
@@ -16432,7 +16603,7 @@ program.command("encryption:rotate").description("Add a new current key to an En
|
|
|
16432
16603
|
try {
|
|
16433
16604
|
const globalOptions = program.opts();
|
|
16434
16605
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
16435
|
-
const { encryptionRotateCommand } = await Promise.resolve().then(() => require("./encryption-
|
|
16606
|
+
const { encryptionRotateCommand } = await Promise.resolve().then(() => require("./encryption-DoVnVU82.cjs"));
|
|
16436
16607
|
await encryptionRotateCommand(construct, options);
|
|
16437
16608
|
} catch (error) {
|
|
16438
16609
|
exitWithError(error);
|
|
@@ -16442,7 +16613,7 @@ program.command("encryption:retire").description("Remove an old key from an Encr
|
|
|
16442
16613
|
try {
|
|
16443
16614
|
const globalOptions = program.opts();
|
|
16444
16615
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
16445
|
-
const { encryptionRetireCommand } = await Promise.resolve().then(() => require("./encryption-
|
|
16616
|
+
const { encryptionRetireCommand } = await Promise.resolve().then(() => require("./encryption-DoVnVU82.cjs"));
|
|
16446
16617
|
await encryptionRetireCommand(construct, key, options);
|
|
16447
16618
|
} catch (error) {
|
|
16448
16619
|
exitWithError(error);
|
|
@@ -16481,7 +16652,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
|
|
|
16481
16652
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
16482
16653
|
const { loadWorkspaceConfig } = await Promise.resolve().then(() => require("./config.cjs"));
|
|
16483
16654
|
const { reconcileMissingSecrets } = await Promise.resolve().then(() => require("./reconcile-CuCQBa5-.cjs"));
|
|
16484
|
-
const { secretsStoreFor } = await Promise.resolve().then(() => require("./seeds-
|
|
16655
|
+
const { secretsStoreFor } = await Promise.resolve().then(() => require("./seeds-Dk8YkLkM.cjs")).then((n) => n.store_exports);
|
|
16485
16656
|
const { workspace } = await loadWorkspaceConfig();
|
|
16486
16657
|
const stage = options.stage ?? workspace.stages.local;
|
|
16487
16658
|
const store = await secretsStoreFor(workspace, stage);
|
|
@@ -16490,7 +16661,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
|
|
|
16490
16661
|
console.error(`No secrets found for stage "${stage}". Run "gkm secrets:init --stage ${stage}" first.`);
|
|
16491
16662
|
process.exit(1);
|
|
16492
16663
|
}
|
|
16493
|
-
const { derivedContainers } = await Promise.resolve().then(() => require("./seeds-
|
|
16664
|
+
const { derivedContainers } = await Promise.resolve().then(() => require("./seeds-Dk8YkLkM.cjs")).then((n) => n.workspace_exports);
|
|
16494
16665
|
const result = reconcileMissingSecrets(secrets, workspace, await derivedContainers(workspace, stage));
|
|
16495
16666
|
if (!result) {
|
|
16496
16667
|
console.log(`\n✓ Secrets for stage "${stage}" are up-to-date`);
|
|
@@ -16507,14 +16678,14 @@ program.command("secrets:migrate").description("Copy a deployed stage's secrets
|
|
|
16507
16678
|
try {
|
|
16508
16679
|
const globalOptions = program.opts();
|
|
16509
16680
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
16510
|
-
const { secretsMigrateCommand } = await Promise.resolve().then(() => require("./migrate-
|
|
16681
|
+
const { secretsMigrateCommand } = await Promise.resolve().then(() => require("./migrate-GLBZlrlJ.cjs"));
|
|
16511
16682
|
await secretsMigrateCommand(options);
|
|
16512
16683
|
} catch (error) {
|
|
16513
16684
|
exitWithError(error);
|
|
16514
16685
|
}
|
|
16515
16686
|
});
|
|
16516
16687
|
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", "Compose: neither write the public hosts' DNS records nor check they point at GKM_SERVER_IPV4 (a CDN or proxy in front, or records written elsewhere)").option("--rotate-keys", "Deployed stage: each provider issues its runtime keys a successor (the old one is deleted by the next deploy)").option("--retire-old-keys", "Deployed stage: delete a rotated-out key now instead of on the next deploy").action(async (options) => {
|
|
16517
|
-
const { deployCli } = await Promise.resolve().then(() => require("./cli-
|
|
16688
|
+
const { deployCli } = await Promise.resolve().then(() => require("./cli-CHzpFBh-.cjs"));
|
|
16518
16689
|
const globalOptions = program.opts();
|
|
16519
16690
|
const code = await deployCli({
|
|
16520
16691
|
cwd: (0, node_path.resolve)(globalOptions.cwd ?? process.cwd()),
|
|
@@ -16534,7 +16705,7 @@ program.command("deploy").description("Deploy a stage through its target").optio
|
|
|
16534
16705
|
});
|
|
16535
16706
|
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) => {
|
|
16536
16707
|
try {
|
|
16537
|
-
const { rollbackStage } = await Promise.resolve().then(() => require("./rollback-
|
|
16708
|
+
const { rollbackStage } = await Promise.resolve().then(() => require("./rollback-Cw-Z0mWn.cjs")).then((n) => n.rollback_exports);
|
|
16538
16709
|
const { terminalCredentials } = await Promise.resolve().then(() => require("./terminal-D_NRPW4W.cjs"));
|
|
16539
16710
|
const globalOptions = program.opts();
|
|
16540
16711
|
await rollbackStage({
|
|
@@ -16568,7 +16739,7 @@ program.command("deploy:github").description("Let GitHub Actions deploy a stage:
|
|
|
16568
16739
|
try {
|
|
16569
16740
|
const globalOptions = program.opts();
|
|
16570
16741
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
16571
|
-
const { deployGithubCommand } = await Promise.resolve().then(() => require("./github-
|
|
16742
|
+
const { deployGithubCommand } = await Promise.resolve().then(() => require("./github-DDOHjdS9.cjs"));
|
|
16572
16743
|
await deployGithubCommand(options);
|
|
16573
16744
|
} catch (error) {
|
|
16574
16745
|
exitWithError(error);
|
|
@@ -16748,8 +16919,11 @@ try {
|
|
|
16748
16919
|
program.parse();
|
|
16749
16920
|
//#endregion
|
|
16750
16921
|
exports.canPrompt = canPrompt;
|
|
16922
|
+
exports.easWorkflow = easWorkflow;
|
|
16923
|
+
exports.easWorkflowPath = easWorkflowPath;
|
|
16751
16924
|
exports.formatError = formatError;
|
|
16752
16925
|
exports.generateFullstackCustomSecrets = generateFullstackCustomSecrets;
|
|
16926
|
+
exports.mobileStage = mobileStage;
|
|
16753
16927
|
exports.prompt = prompt;
|
|
16754
16928
|
exports.slug = slug;
|
|
16755
16929
|
exports.stamp = stamp;
|