@geekmidas/cli 10.0.0-alpha.70 → 10.0.0-alpha.72
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/{OpenApiTsGenerator-CpRWM0N6.cjs → OpenApiTsGenerator-BlP53kf2.cjs} +18 -630
- package/dist/OpenApiTsGenerator-BlP53kf2.cjs.map +1 -0
- package/dist/{OpenApiTsGenerator-BYD9EcJi.mjs → OpenApiTsGenerator-Dv0gT2DL.mjs} +18 -630
- package/dist/OpenApiTsGenerator-Dv0gT2DL.mjs.map +1 -0
- package/dist/{add-DHIk61nK.cjs → add-DeC2Kyyv.cjs} +2 -2
- package/dist/{add-DHIk61nK.cjs.map → add-DeC2Kyyv.cjs.map} +1 -1
- package/dist/{add-BuviRszv.mjs → add-XTLU19_E.mjs} +2 -2
- package/dist/{add-BuviRszv.mjs.map → add-XTLU19_E.mjs.map} +1 -1
- package/dist/{bundler-D7dcJVgj.cjs → bundler-CEaR6Dpb.cjs} +6 -6
- package/dist/bundler-CEaR6Dpb.cjs.map +1 -0
- package/dist/{bundler-DJlsYzm7.mjs → bundler-CNTVLCCA.mjs} +6 -6
- package/dist/bundler-CNTVLCCA.mjs.map +1 -0
- package/dist/{cli-BjnqVnE6.mjs → cli-D1arS0p1.mjs} +3 -3
- package/dist/{cli-BjnqVnE6.mjs.map → cli-D1arS0p1.mjs.map} +1 -1
- package/dist/{cli-7zCum6uN.cjs → cli-MMgBrHx7.cjs} +3 -3
- package/dist/{cli-7zCum6uN.cjs.map → cli-MMgBrHx7.cjs.map} +1 -1
- package/dist/{compose-BJYHmuvx.cjs → compose-B-MME-4C.cjs} +2 -2
- package/dist/{compose-BJYHmuvx.cjs.map → compose-B-MME-4C.cjs.map} +1 -1
- package/dist/{compose-CByVaaeR.mjs → compose-T3hnnjKZ.mjs} +2 -2
- package/dist/{compose-CByVaaeR.mjs.map → compose-T3hnnjKZ.mjs.map} +1 -1
- package/dist/deploy/public.cjs +5 -5
- package/dist/deploy/public.mjs +5 -5
- package/dist/{deploy--ZU9gOOa.cjs → deploy-CZE0m6jd.cjs} +3 -3
- package/dist/{deploy--ZU9gOOa.cjs.map → deploy-CZE0m6jd.cjs.map} +1 -1
- package/dist/{deploy-CCSGr7be.mjs → deploy-ClC53rc6.mjs} +3 -3
- package/dist/{deploy-CCSGr7be.mjs.map → deploy-ClC53rc6.mjs.map} +1 -1
- package/dist/{dokploy-Bskfn1g5.mjs → dokploy-D1UwQKm3.mjs} +2 -2
- package/dist/{dokploy-Bskfn1g5.mjs.map → dokploy-D1UwQKm3.mjs.map} +1 -1
- package/dist/{dokploy-BOupc9PK.cjs → dokploy-lwmH05zr.cjs} +2 -2
- package/dist/{dokploy-BOupc9PK.cjs.map → dokploy-lwmH05zr.cjs.map} +1 -1
- package/dist/{encryption-D-VkoJG4.cjs → encryption-D05sNwED.cjs} +2 -2
- package/dist/{encryption-D-VkoJG4.cjs.map → encryption-D05sNwED.cjs.map} +1 -1
- package/dist/{encryption-DR-py9GX.mjs → encryption-DcrxWl1s.mjs} +2 -2
- package/dist/{encryption-DR-py9GX.mjs.map → encryption-DcrxWl1s.mjs.map} +1 -1
- package/dist/{engine-Da8dBxt5.cjs → engine-Cry1vwMz.cjs} +2 -2
- package/dist/{engine-Da8dBxt5.cjs.map → engine-Cry1vwMz.cjs.map} +1 -1
- package/dist/{engine-Xbv8NNdX.mjs → engine-DmQS3XHX.mjs} +2 -2
- package/dist/{engine-Xbv8NNdX.mjs.map → engine-DmQS3XHX.mjs.map} +1 -1
- package/dist/{github-DeXzs11c.cjs → github-BchWoiVx.cjs} +2 -2
- package/dist/{github-DeXzs11c.cjs.map → github-BchWoiVx.cjs.map} +1 -1
- package/dist/{github-D2pYzY7L.mjs → github-CqYOP8cI.mjs} +2 -2
- package/dist/{github-D2pYzY7L.mjs.map → github-CqYOP8cI.mjs.map} +1 -1
- package/dist/index.cjs +84 -54
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +84 -54
- package/dist/index.mjs.map +1 -1
- package/dist/{migrate-DiJT84g9.mjs → migrate-guck0NJK.mjs} +2 -2
- package/dist/{migrate-DiJT84g9.mjs.map → migrate-guck0NJK.mjs.map} +1 -1
- package/dist/{migrate-BURDS8vy.cjs → migrate-qKeGYq21.cjs} +2 -2
- package/dist/{migrate-BURDS8vy.cjs.map → migrate-qKeGYq21.cjs.map} +1 -1
- package/dist/openapi.cjs +1 -1
- package/dist/openapi.mjs +1 -1
- package/dist/{ready-C-qNcux-.cjs → ready-B-7LayMF.cjs} +78 -13
- package/dist/ready-B-7LayMF.cjs.map +1 -0
- package/dist/{ready-CfIiMts4.mjs → ready-ULc5BTOb.mjs} +73 -14
- package/dist/ready-ULc5BTOb.mjs.map +1 -0
- package/dist/{resolve-Dj5TQKoD.mjs → resolve-BsXEXAUz.mjs} +3 -3
- package/dist/{resolve-Dj5TQKoD.mjs.map → resolve-BsXEXAUz.mjs.map} +1 -1
- package/dist/{resolve-B7jJQmTo.cjs → resolve-wEjEvbJ5.cjs} +3 -3
- package/dist/{resolve-B7jJQmTo.cjs.map → resolve-wEjEvbJ5.cjs.map} +1 -1
- package/dist/{rollback-Bw9kESjz.mjs → rollback-Bk91csFg.mjs} +3 -3
- package/dist/{rollback-Bw9kESjz.mjs.map → rollback-Bk91csFg.mjs.map} +1 -1
- package/dist/{rollback-DNK1HEHY.cjs → rollback-DmcU-efZ.cjs} +3 -3
- package/dist/{rollback-DNK1HEHY.cjs.map → rollback-DmcU-efZ.cjs.map} +1 -1
- package/dist/{state-527OmqvN.mjs → state-BJFherj1.mjs} +7 -2
- package/dist/state-BJFherj1.mjs.map +1 -0
- package/dist/{state-nS6I6s4u.cjs → state-CCuTJNRH.cjs} +7 -2
- package/dist/state-CCuTJNRH.cjs.map +1 -0
- package/dist/target/public.cjs +1 -1
- package/dist/target/public.mjs +1 -1
- package/dist/vitest.cjs +1 -1
- package/dist/vitest.mjs +1 -1
- package/package.json +15 -15
- package/dist/OpenApiTsGenerator-BYD9EcJi.mjs.map +0 -1
- package/dist/OpenApiTsGenerator-CpRWM0N6.cjs.map +0 -1
- package/dist/bundler-D7dcJVgj.cjs.map +0 -1
- package/dist/bundler-DJlsYzm7.mjs.map +0 -1
- package/dist/ready-C-qNcux-.cjs.map +0 -1
- package/dist/ready-CfIiMts4.mjs.map +0 -1
- package/dist/state-527OmqvN.mjs.map +0 -1
- package/dist/state-nS6I6s4u.cjs.map +0 -1
package/dist/index.mjs
CHANGED
|
@@ -6,15 +6,15 @@ import { l as withOwningTsconfigJsx, r as discover, u as ConstructGenerator } fr
|
|
|
6
6
|
import { t as appKey } from "./derive-B4vDpzgP.mjs";
|
|
7
7
|
import { A as deployedProblems, D as InvalidStages, O as TEST_STAGE, c as getAppGkmConfig, j as stageProblems, n as allConstructGlobs, s as getAppBuildOrder } from "./workspace-C7NqCsQF.mjs";
|
|
8
8
|
import { ConfigNotFound, NotABackendApp, NotInAnApp, loadAppConfig, loadConfig, loadWorkspaceConfig, loadWorkspaceSettings, parseModuleConfig } from "./config.mjs";
|
|
9
|
-
import { At as findAvailablePort, Dt as primaryPortKey, G as constructGlobs, H as keyFingerprint, I as parseDevServices, It as secretsStoreFor, K as derivedContainers, Mt as loadEnvFiles, Nt as loadSecretsForApp, Ot as createCredentialsPreload, Pt as prepareEntryCredentials, Qt as maskPassword, Rt as FileSecretsStore, Tt as fakeKey, U as FAKE_ENV, Vt as projectKey, W as backendsOf$1, Wt as deployIdentity, X as forgetState, Y as LOCAL_CA_PATH, en as toEmbeddableSecrets, jt as isPortAvailable, kt as createEntryWrapper, ot as pgClient, q as reconcileWorkspace, rt as quoteIdentifier, tn as withCustomSecret, tt as postgresDatabaseNames, wt as describeServices, xt as providerOf, y as dockerCommand, yt as cacheBackendFor, zt as getKeyPath } from "./state-
|
|
10
|
-
import { i as telemetryFor, n as EndpointGenerator, r as runtimeFor } from "./OpenApiTsGenerator-
|
|
9
|
+
import { At as findAvailablePort, Dt as primaryPortKey, G as constructGlobs, H as keyFingerprint, I as parseDevServices, It as secretsStoreFor, K as derivedContainers, Mt as loadEnvFiles, Nt as loadSecretsForApp, Ot as createCredentialsPreload, Pt as prepareEntryCredentials, Qt as maskPassword, Rt as FileSecretsStore, Tt as fakeKey, U as FAKE_ENV, Vt as projectKey, W as backendsOf$1, Wt as deployIdentity, X as forgetState, Y as LOCAL_CA_PATH, bt as eventsBackendFor, en as toEmbeddableSecrets, jt as isPortAvailable, kt as createEntryWrapper, ot as pgClient, q as reconcileWorkspace, rt as quoteIdentifier, tn as withCustomSecret, tt as postgresDatabaseNames, wt as describeServices, xt as providerOf, y as dockerCommand, yt as cacheBackendFor, zt as getKeyPath } from "./state-BJFherj1.mjs";
|
|
10
|
+
import { i as telemetryFor, n as EndpointGenerator, r as runtimeFor } from "./OpenApiTsGenerator-Dv0gT2DL.mjs";
|
|
11
11
|
import { g as createStateStore, n as sniffAppEnvironment, o as DokployApi } from "./sniffer-vAXsU_4G.mjs";
|
|
12
12
|
import { generateOpenApi, openapiCommand, resolveOpenApiConfig } from "./openapi.mjs";
|
|
13
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";
|
|
14
|
-
import { a as writeTestHarness, c as driversFor, i as TEST_MANIFEST_ENV, n as TEST_READY_FILE, o as SubscriberGenerator, s as cacheBackendsIn, t as TEST_READY_ENV } from "./ready-
|
|
14
|
+
import { a as writeTestHarness, c as driversFor, i as TEST_MANIFEST_ENV, l as eventsBackendsIn, n as TEST_READY_FILE, o as SubscriberGenerator, s as cacheBackendsIn, t as TEST_READY_ENV } from "./ready-ULc5BTOb.mjs";
|
|
15
15
|
import { n as withCompute, r as withRoutes, t as manifestModule } from "./emit-C1e8qD08.mjs";
|
|
16
|
-
import { t as deploy$1 } from "./deploy-
|
|
17
|
-
import { a as stackDir, i as composeProject, o as dockerCompose, r as stackOverrideFile, t as composeTarget } from "./compose-
|
|
16
|
+
import { t as deploy$1 } from "./deploy-ClC53rc6.mjs";
|
|
17
|
+
import { a as stackDir, i as composeProject, o as dockerCompose, r as stackOverrideFile, t as composeTarget } from "./compose-T3hnnjKZ.mjs";
|
|
18
18
|
import { o as loadCredentialSchemas, t as CredentialsInvalid } from "./credentialSchemas-BmYxnEz_.mjs";
|
|
19
19
|
import { t as LocalStateStore } from "./LocalStateStore-DUoG2wA_.mjs";
|
|
20
20
|
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";
|
|
@@ -47,7 +47,7 @@ import { Function } from "@geekmidas/constructs/functions";
|
|
|
47
47
|
import { Queue } from "@geekmidas/constructs/queue";
|
|
48
48
|
import { Topic } from "@geekmidas/constructs/topic";
|
|
49
49
|
//#region package.json
|
|
50
|
-
var version = "10.0.0-alpha.
|
|
50
|
+
var version = "10.0.0-alpha.72";
|
|
51
51
|
//#endregion
|
|
52
52
|
//#region src/prompt.ts
|
|
53
53
|
/**
|
|
@@ -1618,8 +1618,7 @@ function normalizeProductionConfig(cliProduction) {
|
|
|
1618
1618
|
gracefulShutdown: true,
|
|
1619
1619
|
external: [],
|
|
1620
1620
|
subscribers: "include",
|
|
1621
|
-
openapi: false
|
|
1622
|
-
optimizedHandlers: true
|
|
1621
|
+
openapi: false
|
|
1623
1622
|
};
|
|
1624
1623
|
}
|
|
1625
1624
|
/** Read by the generated server: no subscriber is subscribed or polled. */
|
|
@@ -1675,6 +1674,7 @@ async function devCommand(options) {
|
|
|
1675
1674
|
target: "server",
|
|
1676
1675
|
enableOpenApi,
|
|
1677
1676
|
cacheBackend: cacheBackendFor(providerOf(workspace ?? config)),
|
|
1677
|
+
eventsBackend: eventsBackendFor(providerOf(workspace ?? config)),
|
|
1678
1678
|
telescope,
|
|
1679
1679
|
databaseApi: true,
|
|
1680
1680
|
hooks,
|
|
@@ -2036,9 +2036,9 @@ async function workspaceDevCommand(configured, options) {
|
|
|
2036
2036
|
for (const { id, port } of fakes) logger$5.log(`🎭 ${id} fake: http://localhost:${port}`);
|
|
2037
2037
|
logger$5.log(options.migrate || options.seed ? "🗄️ Migrating the databases" : "🗄️ Checking for pending migrations");
|
|
2038
2038
|
if (options.migrate || options.seed) {
|
|
2039
|
-
const { prepareDevDatabases } = await import("./migrate-
|
|
2039
|
+
const { prepareDevDatabases } = await import("./migrate-guck0NJK.mjs");
|
|
2040
2040
|
await prepareDevDatabases(workspace, reconciled.env, { seed: !!options.seed });
|
|
2041
|
-
} else await import("./migrate-
|
|
2041
|
+
} else await import("./migrate-guck0NJK.mjs").then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
|
|
2042
2042
|
logger$5.log(`⚠️ Could not check for pending migrations: ${error instanceof Error ? error.message : String(error)}`);
|
|
2043
2043
|
});
|
|
2044
2044
|
const appUrls = {};
|
|
@@ -2644,6 +2644,22 @@ var CronGenerator = class extends ConstructGenerator {
|
|
|
2644
2644
|
async generateServerCronsFile(outputDir, crons) {
|
|
2645
2645
|
await mkdir(outputDir, { recursive: true });
|
|
2646
2646
|
const cronsPath = join(outputDir, "crons.ts");
|
|
2647
|
+
if (crons.length === 0) {
|
|
2648
|
+
await writeFile(cronsPath, `/**
|
|
2649
|
+
* Generated cron setup — this app declares none.
|
|
2650
|
+
*/
|
|
2651
|
+
import type { EnvironmentParser } from '@geekmidas/envkit';
|
|
2652
|
+
import type { Logger } from '@geekmidas/logger';
|
|
2653
|
+
|
|
2654
|
+
export async function setupCrons(
|
|
2655
|
+
_envParser: EnvironmentParser<any>,
|
|
2656
|
+
_logger: Logger,
|
|
2657
|
+
): Promise<void> {}
|
|
2658
|
+
|
|
2659
|
+
export async function stopCrons(): Promise<void> {}
|
|
2660
|
+
`);
|
|
2661
|
+
return cronsPath;
|
|
2662
|
+
}
|
|
2647
2663
|
const importsByFile = /* @__PURE__ */ new Map();
|
|
2648
2664
|
for (const { path, key } of crons) {
|
|
2649
2665
|
const importPath = relative(dirname(cronsPath), path.relative).replace(/\.ts$/, ".js");
|
|
@@ -2701,7 +2717,7 @@ export async function setupCrons(
|
|
|
2701
2717
|
} catch (error) {
|
|
2702
2718
|
// An unrepresentable schedule is a build-time mistake, and failing the
|
|
2703
2719
|
// process for it would take the HTTP server down with it.
|
|
2704
|
-
logger.error({ error, cron: name }, 'Cron has no runnable schedule, skipping');
|
|
2720
|
+
logger.error({ err: error, cron: name }, 'Cron has no runnable schedule, skipping');
|
|
2705
2721
|
}
|
|
2706
2722
|
}
|
|
2707
2723
|
|
|
@@ -2712,7 +2728,7 @@ export async function setupCrons(
|
|
|
2712
2728
|
// \`handler\` a Cron does not have, so every firing logged a failure.
|
|
2713
2729
|
await runCron(entry.cron, serviceDiscovery);
|
|
2714
2730
|
} catch (error) {
|
|
2715
|
-
logger.error({ error, cron: entry.name }, 'Cron failed');
|
|
2731
|
+
logger.error({ err: error, cron: entry.name }, 'Cron failed');
|
|
2716
2732
|
}
|
|
2717
2733
|
};
|
|
2718
2734
|
|
|
@@ -2753,8 +2769,13 @@ export async function setupCrons(
|
|
|
2753
2769
|
return;
|
|
2754
2770
|
}
|
|
2755
2771
|
|
|
2756
|
-
|
|
2757
|
-
|
|
2772
|
+
// Through the registered pg-boss driver, which the entry registers for a
|
|
2773
|
+
// server whose broker is pg-boss. Naming \`@geekmidas/events/pgboss\` here
|
|
2774
|
+
// made every bundle with a cron resolve pg-boss, whatever its broker.
|
|
2775
|
+
const { EventConnectionFactory } = await import('@geekmidas/events');
|
|
2776
|
+
const connection = (await EventConnectionFactory.fromConnectionString(
|
|
2777
|
+
url,
|
|
2778
|
+
)) as import('@geekmidas/events').EventConnection & { instance?: any };
|
|
2758
2779
|
const boss = connection.instance!;
|
|
2759
2780
|
|
|
2760
2781
|
// What this app declares now. Anything else under the prefix belonged to a
|
|
@@ -2802,8 +2823,9 @@ export async function stopCrons(): Promise<void> {
|
|
|
2802
2823
|
const content = `import { AWSScheduledFunction } from '@geekmidas/constructs/aws';
|
|
2803
2824
|
import { ${exportName} } from '${importPath}';
|
|
2804
2825
|
${runtime.imports}
|
|
2826
|
+
${context.storageDrivers?.imports ?? ""}
|
|
2805
2827
|
${runtime.bindings}
|
|
2806
|
-
|
|
2828
|
+
${context.storageDrivers?.setup ? `\n// The handler registers the drivers its target needs.\n${context.storageDrivers.setup}\n` : ""}
|
|
2807
2829
|
const adapter = new AWSScheduledFunction(envParser, ${exportName});
|
|
2808
2830
|
|
|
2809
2831
|
export const handler = adapter.handler;
|
|
@@ -2847,8 +2869,9 @@ var FunctionGenerator = class extends ConstructGenerator {
|
|
|
2847
2869
|
const content = `import { AWSLambdaFunction } from '@geekmidas/constructs/aws';
|
|
2848
2870
|
import { ${exportName} } from '${importPath}';
|
|
2849
2871
|
${runtime.imports}
|
|
2872
|
+
${context.storageDrivers?.imports ?? ""}
|
|
2850
2873
|
${runtime.bindings}
|
|
2851
|
-
|
|
2874
|
+
${context.storageDrivers?.setup ? `\n// The handler registers the drivers its target needs.\n${context.storageDrivers.setup}\n` : ""}
|
|
2852
2875
|
const adapter = new AWSLambdaFunction(envParser, ${exportName});
|
|
2853
2876
|
|
|
2854
2877
|
export const handler = adapter.handler;
|
|
@@ -2906,8 +2929,9 @@ var QueueGenerator = class extends ConstructGenerator {
|
|
|
2906
2929
|
const content = `import { AWSLambdaQueue } from '@geekmidas/constructs/aws';
|
|
2907
2930
|
import { ${exportName} } from '${importPath}';
|
|
2908
2931
|
${runtime.imports}
|
|
2932
|
+
${context.storageDrivers?.imports ?? ""}
|
|
2909
2933
|
${runtime.bindings}
|
|
2910
|
-
|
|
2934
|
+
${context.storageDrivers?.setup ? `\n// The handler registers the drivers its target needs.\n${context.storageDrivers.setup}\n` : ""}
|
|
2911
2935
|
const adapter = new AWSLambdaQueue(envParser, ${exportName});
|
|
2912
2936
|
|
|
2913
2937
|
export const handler = adapter.handler;
|
|
@@ -3006,14 +3030,14 @@ export async function setupQueues(
|
|
|
3006
3030
|
db,
|
|
3007
3031
|
} as any);
|
|
3008
3032
|
} catch (error) {
|
|
3009
|
-
logger.error({ error, queue: queue.name }, 'Failed to process queue message');
|
|
3033
|
+
logger.error({ err: error, queue: queue.name }, 'Failed to process queue message');
|
|
3010
3034
|
// Rethrown so the transport keeps the message for a retry.
|
|
3011
3035
|
throw error;
|
|
3012
3036
|
}
|
|
3013
3037
|
});
|
|
3014
3038
|
logger.info({ queue: queue.name }, 'Queue consumer started polling');
|
|
3015
3039
|
} catch (error) {
|
|
3016
|
-
logger.error({ error, queue: queue.name }, 'Failed to set up queue consumer');
|
|
3040
|
+
logger.error({ err: error, queue: queue.name }, 'Failed to set up queue consumer');
|
|
3017
3041
|
}
|
|
3018
3042
|
}
|
|
3019
3043
|
|
|
@@ -3337,6 +3361,7 @@ function backendsOf(workspace) {
|
|
|
3337
3361
|
async function buildOneApp(input) {
|
|
3338
3362
|
const { config, options, workspace, appRoot, target } = input;
|
|
3339
3363
|
const cacheBackend = cacheBackendFor(providerOf(workspace));
|
|
3364
|
+
const eventsBackend = eventsBackendFor(providerOf(workspace));
|
|
3340
3365
|
const production = normalizeProductionConfig(options.production ?? false);
|
|
3341
3366
|
if (production) logger$4.log(`🏭 Building for PRODUCTION`);
|
|
3342
3367
|
logger$4.log(`Building for ${target}`);
|
|
@@ -3352,6 +3377,7 @@ async function buildOneApp(input) {
|
|
|
3352
3377
|
target,
|
|
3353
3378
|
enableOpenApi: options.enableOpenApi ?? false,
|
|
3354
3379
|
cacheBackend,
|
|
3380
|
+
eventsBackend,
|
|
3355
3381
|
production,
|
|
3356
3382
|
telescope,
|
|
3357
3383
|
hooks,
|
|
@@ -3397,7 +3423,7 @@ async function writeManifest(input) {
|
|
|
3397
3423
|
* dev did not, and failed on exactly the apps the build had learned to handle.
|
|
3398
3424
|
*/
|
|
3399
3425
|
async function buildApp(input) {
|
|
3400
|
-
const { config, workspaceRoot, appRoot, target, enableOpenApi, cacheBackend, production, telescope, databaseApi, hooks, bustCache = false } = input;
|
|
3426
|
+
const { config, workspaceRoot, appRoot, target, enableOpenApi, cacheBackend, eventsBackend, production, telescope, databaseApi, hooks, bustCache = false } = input;
|
|
3401
3427
|
const constructGlobs = config.constructs;
|
|
3402
3428
|
const constructSources = {};
|
|
3403
3429
|
const declared = constructGlobs ? await discover({
|
|
@@ -3418,7 +3444,7 @@ async function buildApp(input) {
|
|
|
3418
3444
|
if (production?.bundle && !input.skipBundle) {
|
|
3419
3445
|
const outputDir = join(appRoot, ".gkm", "server");
|
|
3420
3446
|
const entryPoint = await writeSurfaceServer(outputDir, production);
|
|
3421
|
-
const { bundleServer } = await import("./bundler-
|
|
3447
|
+
const { bundleServer } = await import("./bundler-CNTVLCCA.mjs");
|
|
3422
3448
|
await bundleServer({
|
|
3423
3449
|
entryPoint,
|
|
3424
3450
|
outputDir: join(outputDir, "dist"),
|
|
@@ -3438,6 +3464,7 @@ async function buildApp(input) {
|
|
|
3438
3464
|
appRoot,
|
|
3439
3465
|
databaseApi
|
|
3440
3466
|
});
|
|
3467
|
+
const eventsBackends = eventsBackendsIn(declared, eventsBackend);
|
|
3441
3468
|
const buildContext = {
|
|
3442
3469
|
...derived,
|
|
3443
3470
|
telescope,
|
|
@@ -3448,8 +3475,10 @@ async function buildApp(input) {
|
|
|
3448
3475
|
emailBackend: "ses",
|
|
3449
3476
|
storageDrivers: driversFor({
|
|
3450
3477
|
appRoot,
|
|
3451
|
-
cache: cacheBackendsIn(declared, cacheBackend)
|
|
3478
|
+
cache: cacheBackendsIn(declared, cacheBackend),
|
|
3479
|
+
events: eventsBackends
|
|
3452
3480
|
}),
|
|
3481
|
+
eventsBackends,
|
|
3453
3482
|
markOptional: input.markOptional ?? false,
|
|
3454
3483
|
...production && { telemetry: telemetryFor({
|
|
3455
3484
|
appRoot,
|
|
@@ -3556,7 +3585,7 @@ async function buildForTarget(target, context, appRoot, workspaceRoot, endpointG
|
|
|
3556
3585
|
let masterKey;
|
|
3557
3586
|
if (context.production?.bundle && !skipBundle) {
|
|
3558
3587
|
logger$4.log(`\n📦 Bundling production server...`);
|
|
3559
|
-
const { bundleServer } = await import("./bundler-
|
|
3588
|
+
const { bundleServer } = await import("./bundler-CNTVLCCA.mjs");
|
|
3560
3589
|
const allConstructs = [
|
|
3561
3590
|
...endpoints.map((e) => e.construct),
|
|
3562
3591
|
...functions.map((f) => f.construct),
|
|
@@ -5255,25 +5284,25 @@ function loadPackageJson() {
|
|
|
5255
5284
|
* Run: pnpm --filter @geekmidas/cli sync-versions
|
|
5256
5285
|
*/
|
|
5257
5286
|
const GEEKMIDAS_VERSIONS = {
|
|
5258
|
-
"@geekmidas/audit": "~10.0.0-alpha.
|
|
5259
|
-
"@geekmidas/auth": "~10.0.0-alpha.
|
|
5260
|
-
"@geekmidas/cache": "~10.0.0-alpha.
|
|
5261
|
-
"@geekmidas/client": "~10.0.0-alpha.
|
|
5262
|
-
"@geekmidas/cloud": "~10.0.0-alpha.
|
|
5263
|
-
"@geekmidas/constructs": "~10.0.0-alpha.
|
|
5264
|
-
"@geekmidas/db": "~10.0.0-alpha.
|
|
5265
|
-
"@geekmidas/emailkit": "~10.0.0-alpha.
|
|
5266
|
-
"@geekmidas/envkit": "~10.0.0-alpha.
|
|
5267
|
-
"@geekmidas/errors": "~10.0.0-alpha.
|
|
5268
|
-
"@geekmidas/events": "~10.0.0-alpha.
|
|
5269
|
-
"@geekmidas/logger": "~10.0.0-alpha.
|
|
5270
|
-
"@geekmidas/manifest": "~10.0.0-alpha.
|
|
5271
|
-
"@geekmidas/rate-limit": "~10.0.0-alpha.
|
|
5272
|
-
"@geekmidas/schema": "~10.0.0-alpha.
|
|
5273
|
-
"@geekmidas/services": "~10.0.0-alpha.
|
|
5274
|
-
"@geekmidas/storage": "~10.0.0-alpha.
|
|
5275
|
-
"@geekmidas/telescope": "~10.0.0-alpha.
|
|
5276
|
-
"@geekmidas/testkit": "~10.0.0-alpha.
|
|
5287
|
+
"@geekmidas/audit": "~10.0.0-alpha.72",
|
|
5288
|
+
"@geekmidas/auth": "~10.0.0-alpha.72",
|
|
5289
|
+
"@geekmidas/cache": "~10.0.0-alpha.72",
|
|
5290
|
+
"@geekmidas/client": "~10.0.0-alpha.72",
|
|
5291
|
+
"@geekmidas/cloud": "~10.0.0-alpha.72",
|
|
5292
|
+
"@geekmidas/constructs": "~10.0.0-alpha.72",
|
|
5293
|
+
"@geekmidas/db": "~10.0.0-alpha.72",
|
|
5294
|
+
"@geekmidas/emailkit": "~10.0.0-alpha.72",
|
|
5295
|
+
"@geekmidas/envkit": "~10.0.0-alpha.72",
|
|
5296
|
+
"@geekmidas/errors": "~10.0.0-alpha.72",
|
|
5297
|
+
"@geekmidas/events": "~10.0.0-alpha.72",
|
|
5298
|
+
"@geekmidas/logger": "~10.0.0-alpha.72",
|
|
5299
|
+
"@geekmidas/manifest": "~10.0.0-alpha.72",
|
|
5300
|
+
"@geekmidas/rate-limit": "~10.0.0-alpha.72",
|
|
5301
|
+
"@geekmidas/schema": "~10.0.0-alpha.72",
|
|
5302
|
+
"@geekmidas/services": "~10.0.0-alpha.72",
|
|
5303
|
+
"@geekmidas/storage": "~10.0.0-alpha.72",
|
|
5304
|
+
"@geekmidas/telescope": "~10.0.0-alpha.72",
|
|
5305
|
+
"@geekmidas/testkit": "~10.0.0-alpha.72",
|
|
5277
5306
|
"@geekmidas/cli": `~${loadPackageJson().version}`
|
|
5278
5307
|
};
|
|
5279
5308
|
//#endregion
|
|
@@ -10989,6 +11018,7 @@ async function testCommand(options = {}) {
|
|
|
10989
11018
|
targets: [workspace.root, ...Object.values(workspace.apps).map((app) => isAbsolute(app.path) ? app.path : join(workspace.root, app.path))],
|
|
10990
11019
|
patterns: constructGlobs(workspace),
|
|
10991
11020
|
cacheBackend: backendsOf$1(workspace).cache,
|
|
11021
|
+
eventsBackend: backendsOf$1(workspace).events,
|
|
10992
11022
|
stage: TEST_STAGE,
|
|
10993
11023
|
env: finalCredentials,
|
|
10994
11024
|
factories: join(workspace.root, workspace.test.factories ?? "test/factories")
|
|
@@ -11063,7 +11093,7 @@ function testDatabases(reconciled) {
|
|
|
11063
11093
|
* starts without the reference data the app needs.
|
|
11064
11094
|
*/
|
|
11065
11095
|
async function migrateTestStage(workspace, env) {
|
|
11066
|
-
const { migrateAndSeed } = await import("./migrate-
|
|
11096
|
+
const { migrateAndSeed } = await import("./migrate-guck0NJK.mjs");
|
|
11067
11097
|
const { discover } = await import("./discover-Buwf1z4P.mjs").then((n) => n.i);
|
|
11068
11098
|
const sources = {};
|
|
11069
11099
|
const manifest = await discover({
|
|
@@ -11494,7 +11524,7 @@ program.command("migrate").description("Apply each database construct's migratio
|
|
|
11494
11524
|
try {
|
|
11495
11525
|
const globalOptions = program.opts();
|
|
11496
11526
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11497
|
-
const { migrateCommand } = await import("./migrate-
|
|
11527
|
+
const { migrateCommand } = await import("./migrate-guck0NJK.mjs");
|
|
11498
11528
|
await migrateCommand({
|
|
11499
11529
|
...options,
|
|
11500
11530
|
...construct ? { construct } : {}
|
|
@@ -11508,7 +11538,7 @@ program.command("seed").description("Migrate, then run each database construct's
|
|
|
11508
11538
|
try {
|
|
11509
11539
|
const globalOptions = program.opts();
|
|
11510
11540
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11511
|
-
const { seedCommand } = await import("./migrate-
|
|
11541
|
+
const { seedCommand } = await import("./migrate-guck0NJK.mjs");
|
|
11512
11542
|
await seedCommand({
|
|
11513
11543
|
...options,
|
|
11514
11544
|
...construct ? { construct } : {}
|
|
@@ -11522,7 +11552,7 @@ program.command("migration").description("Write a construct's next migration: an
|
|
|
11522
11552
|
try {
|
|
11523
11553
|
const globalOptions = program.opts();
|
|
11524
11554
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11525
|
-
const { migrationCommand } = await import("./migrate-
|
|
11555
|
+
const { migrationCommand } = await import("./migrate-guck0NJK.mjs");
|
|
11526
11556
|
await migrationCommand({
|
|
11527
11557
|
construct,
|
|
11528
11558
|
...name ? { name } : {}
|
|
@@ -11616,7 +11646,7 @@ program.command("secrets:add").description("Build the keys a stage must be given
|
|
|
11616
11646
|
try {
|
|
11617
11647
|
const globalOptions = program.opts();
|
|
11618
11648
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11619
|
-
const { secretsAddCommand } = await import("./add-
|
|
11649
|
+
const { secretsAddCommand } = await import("./add-XTLU19_E.mjs");
|
|
11620
11650
|
await secretsAddCommand(options);
|
|
11621
11651
|
} catch (error) {
|
|
11622
11652
|
console.error(formatError(error));
|
|
@@ -11627,7 +11657,7 @@ program.command("encryption:rotate").description("Add a new current key to an En
|
|
|
11627
11657
|
try {
|
|
11628
11658
|
const globalOptions = program.opts();
|
|
11629
11659
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11630
|
-
const { encryptionRotateCommand } = await import("./encryption-
|
|
11660
|
+
const { encryptionRotateCommand } = await import("./encryption-DcrxWl1s.mjs");
|
|
11631
11661
|
await encryptionRotateCommand(construct, options);
|
|
11632
11662
|
} catch (error) {
|
|
11633
11663
|
console.error(formatError(error));
|
|
@@ -11638,7 +11668,7 @@ program.command("encryption:retire").description("Remove an old key from an Encr
|
|
|
11638
11668
|
try {
|
|
11639
11669
|
const globalOptions = program.opts();
|
|
11640
11670
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11641
|
-
const { encryptionRetireCommand } = await import("./encryption-
|
|
11671
|
+
const { encryptionRetireCommand } = await import("./encryption-DcrxWl1s.mjs");
|
|
11642
11672
|
await encryptionRetireCommand(construct, key, options);
|
|
11643
11673
|
} catch (error) {
|
|
11644
11674
|
console.error(formatError(error));
|
|
@@ -11681,7 +11711,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
|
|
|
11681
11711
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11682
11712
|
const { loadWorkspaceConfig } = await import("./config.mjs");
|
|
11683
11713
|
const { reconcileMissingSecrets } = await import("./reconcile--I7V4Klj.mjs");
|
|
11684
|
-
const { secretsStoreFor } = await import("./state-
|
|
11714
|
+
const { secretsStoreFor } = await import("./state-BJFherj1.mjs").then((n) => n.Lt);
|
|
11685
11715
|
const { workspace } = await loadWorkspaceConfig();
|
|
11686
11716
|
const stage = options.stage ?? workspace.stages.local;
|
|
11687
11717
|
const store = await secretsStoreFor(workspace, stage);
|
|
@@ -11690,7 +11720,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
|
|
|
11690
11720
|
console.error(`No secrets found for stage "${stage}". Run "gkm secrets:init --stage ${stage}" first.`);
|
|
11691
11721
|
process.exit(1);
|
|
11692
11722
|
}
|
|
11693
|
-
const { derivedContainers } = await import("./state-
|
|
11723
|
+
const { derivedContainers } = await import("./state-BJFherj1.mjs").then((n) => n.J);
|
|
11694
11724
|
const result = reconcileMissingSecrets(secrets, workspace, await derivedContainers(workspace, stage));
|
|
11695
11725
|
if (!result) {
|
|
11696
11726
|
console.log(`\n✓ Secrets for stage "${stage}" are up-to-date`);
|
|
@@ -11705,7 +11735,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
|
|
|
11705
11735
|
}
|
|
11706
11736
|
});
|
|
11707
11737
|
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 <list>", "Server targets: run MinIO and/or Mailpit (minio,mailpit) for mail and buckets the stage's secrets don't configure. Not production-grade").action(async (options) => {
|
|
11708
|
-
const { deployCli } = await import("./cli-
|
|
11738
|
+
const { deployCli } = await import("./cli-D1arS0p1.mjs");
|
|
11709
11739
|
const globalOptions = program.opts();
|
|
11710
11740
|
const code = await deployCli({
|
|
11711
11741
|
cwd: resolve(globalOptions.cwd ?? process.cwd()),
|
|
@@ -11722,7 +11752,7 @@ program.command("deploy").description("Deploy a stage through its target").optio
|
|
|
11722
11752
|
});
|
|
11723
11753
|
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) => {
|
|
11724
11754
|
try {
|
|
11725
|
-
const { rollbackStage } = await import("./rollback-
|
|
11755
|
+
const { rollbackStage } = await import("./rollback-Bk91csFg.mjs").then((n) => n.a);
|
|
11726
11756
|
const { terminalCredentials } = await import("./terminal-C6TBo_SA.mjs");
|
|
11727
11757
|
const globalOptions = program.opts();
|
|
11728
11758
|
await rollbackStage({
|
|
@@ -11758,7 +11788,7 @@ program.command("deploy:github").description("Let GitHub Actions deploy a stage:
|
|
|
11758
11788
|
try {
|
|
11759
11789
|
const globalOptions = program.opts();
|
|
11760
11790
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
11761
|
-
const { deployGithubCommand } = await import("./github-
|
|
11791
|
+
const { deployGithubCommand } = await import("./github-CqYOP8cI.mjs");
|
|
11762
11792
|
await deployGithubCommand(options);
|
|
11763
11793
|
} catch (error) {
|
|
11764
11794
|
console.error(formatError(error));
|