@geekmidas/cli 10.0.0-alpha.53 → 10.0.0-alpha.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/{HostingerProvider-GF6NAZAK.mjs → HostingerProvider-cL-6oQ5r.mjs} +2 -2
- package/dist/{HostingerProvider-GF6NAZAK.mjs.map → HostingerProvider-cL-6oQ5r.mjs.map} +1 -1
- package/dist/LegacyStateStore-ByRWQ9s1.mjs +89 -0
- package/dist/LegacyStateStore-ByRWQ9s1.mjs.map +1 -0
- package/dist/LegacyStateStore-C_OFs1gN.cjs +89 -0
- package/dist/LegacyStateStore-C_OFs1gN.cjs.map +1 -0
- package/dist/LocalStateStore-BupdV-VN.mjs +163 -0
- package/dist/LocalStateStore-BupdV-VN.mjs.map +1 -0
- package/dist/LocalStateStore-DDDU0HkI.cjs +163 -0
- package/dist/LocalStateStore-DDDU0HkI.cjs.map +1 -0
- package/dist/{OpenApiTsGenerator-BzIGy8KE.mjs → OpenApiTsGenerator-DKmAorGX.mjs} +34 -11
- package/dist/{OpenApiTsGenerator-BzIGy8KE.mjs.map → OpenApiTsGenerator-DKmAorGX.mjs.map} +1 -1
- package/dist/{OpenApiTsGenerator-BN0PIZxd.cjs → OpenApiTsGenerator-WlUHjimW.cjs} +34 -11
- package/dist/{OpenApiTsGenerator-BN0PIZxd.cjs.map → OpenApiTsGenerator-WlUHjimW.cjs.map} +1 -1
- package/dist/S3StateStore-C7eBae0G.cjs +160 -0
- package/dist/S3StateStore-C7eBae0G.cjs.map +1 -0
- package/dist/S3StateStore-FhzyENrN.mjs +161 -0
- package/dist/S3StateStore-FhzyENrN.mjs.map +1 -0
- package/dist/SSMStateStore-DD7jKrCO.cjs +146 -0
- package/dist/SSMStateStore-DD7jKrCO.cjs.map +1 -0
- package/dist/SSMStateStore-oda9xOGc.mjs +147 -0
- package/dist/SSMStateStore-oda9xOGc.mjs.map +1 -0
- package/dist/{backends-Dfeu5Dgc.mjs → backends-BNrMPlJb.mjs} +2 -2
- package/dist/{backends-Dfeu5Dgc.mjs.map → backends-BNrMPlJb.mjs.map} +1 -1
- package/dist/{backends-D5aDWxuA.cjs → backends-nBauiBkt.cjs} +2 -2
- package/dist/{backends-D5aDWxuA.cjs.map → backends-nBauiBkt.cjs.map} +1 -1
- package/dist/{bundler--fyybf1N.mjs → bundler-URImKj-A.mjs} +2 -2
- package/dist/{bundler--fyybf1N.mjs.map → bundler-URImKj-A.mjs.map} +1 -1
- package/dist/{config-Cvr5fCbn.cjs → config-C7NZG2tr.cjs} +2 -2
- package/dist/{config-Cvr5fCbn.cjs.map → config-C7NZG2tr.cjs.map} +1 -1
- package/dist/{config-SOkDH-n1.mjs → config-XEd-dKVX.mjs} +2 -2
- package/dist/{config-SOkDH-n1.mjs.map → config-XEd-dKVX.mjs.map} +1 -1
- package/dist/config.cjs +2 -2
- package/dist/config.d.cts +2 -2
- package/dist/config.d.mts +2 -2
- package/dist/config.mjs +2 -2
- package/dist/{encryption-O-XdeNxe.mjs → encryption-Bc1cMdeY.mjs} +4 -4
- package/dist/{encryption-O-XdeNxe.mjs.map → encryption-Bc1cMdeY.mjs.map} +1 -1
- package/dist/{encryption-tB4LqLKN.cjs → encryption-DSHYN5ap.cjs} +4 -4
- package/dist/{encryption-tB4LqLKN.cjs.map → encryption-DSHYN5ap.cjs.map} +1 -1
- package/dist/{github-BGx4U61b.cjs → github-CWflxaV4.cjs} +3 -3
- package/dist/{github-BGx4U61b.cjs.map → github-CWflxaV4.cjs.map} +1 -1
- package/dist/{github-U_frvZgD.mjs → github-DWHXTcwL.mjs} +3 -3
- package/dist/{github-U_frvZgD.mjs.map → github-DWHXTcwL.mjs.map} +1 -1
- package/dist/{index-fU3qHy7c.d.cts → index-B8nraKvg.d.mts} +2 -2
- package/dist/{index-DYh5TrsZ.d.mts.map → index-B8nraKvg.d.mts.map} +1 -1
- package/dist/{index-DYh5TrsZ.d.mts → index-BvBQS89a.d.cts} +2 -2
- package/dist/{index-fU3qHy7c.d.cts.map → index-BvBQS89a.d.cts.map} +1 -1
- package/dist/index.cjs +993 -215
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +991 -221
- package/dist/index.mjs.map +1 -1
- package/dist/{migrate-SDIRUyY5.cjs → migrate-DHMRgnP6.cjs} +4 -4
- package/dist/{migrate-SDIRUyY5.cjs.map → migrate-DHMRgnP6.cjs.map} +1 -1
- package/dist/{migrate-CHQyNzj-.mjs → migrate-PcQg692O.mjs} +4 -4
- package/dist/{migrate-CHQyNzj-.mjs.map → migrate-PcQg692O.mjs.map} +1 -1
- package/dist/openapi.cjs +3 -3
- package/dist/openapi.d.cts +1 -1
- package/dist/openapi.d.mts +1 -1
- package/dist/openapi.mjs +3 -3
- package/dist/{ready-VkNwfJu7.cjs → ready-BefA4mM0.cjs} +2 -2
- package/dist/{ready-VkNwfJu7.cjs.map → ready-BefA4mM0.cjs.map} +1 -1
- package/dist/{ready-C8wG_d0v.mjs → ready-bES_Jk5v.mjs} +2 -2
- package/dist/{ready-C8wG_d0v.mjs.map → ready-bES_Jk5v.mjs.map} +1 -1
- package/dist/reconcile/public.d.cts +1 -1
- package/dist/reconcile/public.d.mts +1 -1
- package/dist/{types-DYDT4FfE.d.cts → types-Cgj-cq2m.d.mts} +136 -5
- package/dist/types-Cgj-cq2m.d.mts.map +1 -0
- package/dist/{types-CT0ymlBk.d.mts → types-CmxMhLGp.d.cts} +137 -4
- package/dist/types-CmxMhLGp.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-qcva2dTt.mjs → workspace-BE0WHPw9.mjs} +9 -9
- package/dist/workspace-BE0WHPw9.mjs.map +1 -0
- package/dist/{workspace-P_V5t4Uk.cjs → workspace-CXvYabDJ.cjs} +7 -7
- package/dist/workspace-CXvYabDJ.cjs.map +1 -0
- package/dist/{workspace-bOsks1uk.mjs → workspace-DHK2N1mq.mjs} +22 -3
- package/dist/{workspace-bOsks1uk.mjs.map → workspace-DHK2N1mq.mjs.map} +1 -1
- package/dist/{workspace-BcCiLzTO.cjs → workspace-DL_99LJC.cjs} +22 -3
- package/dist/{workspace-BcCiLzTO.cjs.map → workspace-DL_99LJC.cjs.map} +1 -1
- package/package.json +14 -14
- package/dist/types-CT0ymlBk.d.mts.map +0 -1
- package/dist/types-DYDT4FfE.d.cts.map +0 -1
- package/dist/workspace-P_V5t4Uk.cjs.map +0 -1
- package/dist/workspace-qcva2dTt.mjs.map +0 -1
|
@@ -976,11 +976,15 @@ ${context.storageDrivers?.setup ? `// Which storage drivers exist is the entry p
|
|
|
976
976
|
// a provider.
|
|
977
977
|
${context.storageDrivers.setup}
|
|
978
978
|
` : ""}
|
|
979
|
-
|
|
979
|
+
${context.surface ? `// Who this server is to Postgres: application_name on every connection.
|
|
980
|
+
process.env.GKM_APP_NAME ??= ${JSON.stringify(context.surface.id)};
|
|
981
|
+
|
|
982
|
+
` : ""}export interface ServerApp {
|
|
980
983
|
app: HonoType;
|
|
981
984
|
start: (options?: {
|
|
982
985
|
port?: number;
|
|
983
|
-
|
|
986
|
+
/** Returns the server, so a shutdown can stop it taking requests. */
|
|
987
|
+
serve: (app: HonoType, port: number) => unknown;
|
|
984
988
|
}) => Promise<void>;
|
|
985
989
|
}
|
|
986
990
|
|
|
@@ -1148,20 +1152,35 @@ export const handler = adapter.handler;
|
|
|
1148
1152
|
import { setupQueues } from './queues.js';
|
|
1149
1153
|
import { setupCrons } from './crons.js';` : "";
|
|
1150
1154
|
const gracefulShutdownCode = enableGracefulShutdown ? `
|
|
1151
|
-
// Graceful shutdown
|
|
1155
|
+
// Graceful shutdown: stop taking requests, let in-flight ones finish, then
|
|
1156
|
+
// close what constructs opened (database pools) — so a rolling deploy does
|
|
1157
|
+
// not leave the old task holding connections. Bounded by
|
|
1158
|
+
// GKM_SHUTDOWN_TIMEOUT_MS, 8s by default: under Docker's 10s stop timeout,
|
|
1159
|
+
// so the process exits on its own terms rather than being killed mid-drain.
|
|
1152
1160
|
let isShuttingDown = false;
|
|
1153
1161
|
|
|
1154
1162
|
const shutdown = async () => {
|
|
1155
1163
|
if (isShuttingDown) return;
|
|
1156
1164
|
isShuttingDown = true;
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
setTimeout(() =>
|
|
1165
|
+
const deadline = Number(process.env.GKM_SHUTDOWN_TIMEOUT_MS) || 8000;
|
|
1166
|
+
logger.info({ deadline }, 'Graceful shutdown initiated');
|
|
1167
|
+
setTimeout(() => {
|
|
1168
|
+
logger.warn({ deadline }, 'Shutdown deadline reached, exiting');
|
|
1169
|
+
process.exit(1);
|
|
1170
|
+
}, deadline).unref();
|
|
1171
|
+
await new Promise<void>((resolve) => {
|
|
1172
|
+
const close = (server as { close?: (done: () => void) => void } | undefined)?.close;
|
|
1173
|
+
if (typeof close === 'function') close.call(server, () => resolve());
|
|
1174
|
+
else resolve();
|
|
1175
|
+
});
|
|
1176
|
+
await runShutdownHooks((error) => logger.error({ error }, 'Shutdown hook failed'));
|
|
1177
|
+
process.exit(0);
|
|
1160
1178
|
};
|
|
1161
1179
|
|
|
1162
1180
|
process.on('SIGTERM', shutdown);
|
|
1163
1181
|
process.on('SIGINT', shutdown);
|
|
1164
1182
|
` : "";
|
|
1183
|
+
const endpointsImportPath = production.optimizedHandlers ? "./endpoints/index.js" : "./endpoints.js";
|
|
1165
1184
|
const content = `/**
|
|
1166
1185
|
* Generated production server application
|
|
1167
1186
|
*
|
|
@@ -1173,7 +1192,7 @@ import { setupCrons } from './crons.js';` : "";
|
|
|
1173
1192
|
*/
|
|
1174
1193
|
import { Hono } from 'hono';
|
|
1175
1194
|
import type { Hono as HonoType } from 'hono';
|
|
1176
|
-
import {
|
|
1195
|
+
${enableGracefulShutdown ? "import { runShutdownHooks } from '@geekmidas/constructs';\n" : ""}import { setupEndpoints } from '${endpointsImportPath}';
|
|
1177
1196
|
${subscriberImport}
|
|
1178
1197
|
${runtime.imports}
|
|
1179
1198
|
${runtime.bindings}
|
|
@@ -1184,7 +1203,10 @@ ${context.storageDrivers?.imports ?? ""}
|
|
|
1184
1203
|
${context.storageDrivers?.setup ? `// The entry point registers the drivers its target needs.
|
|
1185
1204
|
${context.storageDrivers.setup}
|
|
1186
1205
|
` : ""}
|
|
1187
|
-
|
|
1206
|
+
${context.surface ? `// Who this server is to Postgres: application_name on every connection.
|
|
1207
|
+
process.env.GKM_APP_NAME ??= ${JSON.stringify(context.surface.id)};
|
|
1208
|
+
|
|
1209
|
+
` : ""}export interface ServerApp {
|
|
1188
1210
|
app: HonoType;
|
|
1189
1211
|
start: (options?: {
|
|
1190
1212
|
port?: number;
|
|
@@ -1217,11 +1239,12 @@ ${afterSetupCall}
|
|
|
1217
1239
|
}
|
|
1218
1240
|
|
|
1219
1241
|
const port = options.port ?? Number(process.env.PORT) ?? 3000;
|
|
1242
|
+
let server: unknown;
|
|
1220
1243
|
${gracefulShutdownCode}${subscriberSetup}
|
|
1221
1244
|
logger.info({ port }, 'Starting production server');
|
|
1222
1245
|
|
|
1223
1246
|
// Start HTTP server using provided serve function
|
|
1224
|
-
await options.serve(honoApp, port);
|
|
1247
|
+
server = await options.serve(honoApp, port);
|
|
1225
1248
|
|
|
1226
1249
|
logger.info({ port }, 'Production server started');
|
|
1227
1250
|
${includeSubscribers ? "\n await subscribeForPush(port);" : ""}
|
|
@@ -1255,7 +1278,7 @@ const { start } = await createApp();
|
|
|
1255
1278
|
|
|
1256
1279
|
await start({
|
|
1257
1280
|
port,
|
|
1258
|
-
serve: (app, port) =>
|
|
1281
|
+
serve: (app, port) => serve({ fetch: app.fetch, port }),
|
|
1259
1282
|
});
|
|
1260
1283
|
`);
|
|
1261
1284
|
}
|
|
@@ -1785,4 +1808,4 @@ Object.defineProperty(exports, "runtimeFor", {
|
|
|
1785
1808
|
}
|
|
1786
1809
|
});
|
|
1787
1810
|
|
|
1788
|
-
//# sourceMappingURL=OpenApiTsGenerator-
|
|
1811
|
+
//# sourceMappingURL=OpenApiTsGenerator-WlUHjimW.cjs.map
|