theokit 0.72.1 → 0.74.0
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 -0
- package/dist/{actions-virtual-module-OHENNMQG.js → actions-virtual-module-J2HYO7QZ.js} +4 -4
- package/dist/{actions-virtual-module-EAKYEMGF.js → actions-virtual-module-JV7URROJ.js} +7 -7
- package/dist/adapters/agent-mount.js +3 -3
- package/dist/adapters/security-headers.d.ts +27 -11
- package/dist/adapters/security-headers.js +9 -4
- package/dist/adapters/security-headers.js.map +1 -1
- package/dist/{agent-VJTZ4DQ7.js → agent-GU6JIEFJ.js} +3 -3
- package/dist/{app-typed-client-ILLQYTXP.js → app-typed-client-EOA3A2AR.js} +5 -5
- package/dist/{app-typed-client-ILLQYTXP.js.map → app-typed-client-EOA3A2AR.js.map} +1 -1
- package/dist/{app-typed-client-LHH77QDB.js → app-typed-client-XD4DZBV7.js} +8 -8
- package/dist/app-typed-client-XD4DZBV7.js.map +1 -0
- package/dist/{aws-lambda-7AZNJGWU.js → aws-lambda-ZYSPTD3O.js} +61 -27
- package/dist/aws-lambda-ZYSPTD3O.js.map +1 -0
- package/dist/{build-23QF5FNQ.js → build-6FVZKORI.js} +81 -74
- package/dist/build-6FVZKORI.js.map +1 -0
- package/dist/{bun-NKVHOFSJ.js → bun-I7YM3RDB.js} +82 -21
- package/dist/bun-I7YM3RDB.js.map +1 -0
- package/dist/{chunk-WBB3MEEN.js → chunk-2NG5T77O.js} +47 -12
- package/dist/{chunk-WBB3MEEN.js.map → chunk-2NG5T77O.js.map} +1 -1
- package/dist/{chunk-NO6HA4FG.js → chunk-4WP7A7RX.js} +41 -35
- package/dist/chunk-4WP7A7RX.js.map +1 -0
- package/dist/chunk-4X43VTST.js +31 -0
- package/dist/chunk-4X43VTST.js.map +1 -0
- package/dist/{chunk-FHQP23Z5.js → chunk-6R5F5YF2.js} +17 -14
- package/dist/chunk-6R5F5YF2.js.map +1 -0
- package/dist/chunk-72RSCKMW.js +53 -0
- package/dist/chunk-72RSCKMW.js.map +1 -0
- package/dist/{chunk-V5SSTT3C.js → chunk-C43AHOHI.js} +1 -1
- package/dist/chunk-C43AHOHI.js.map +1 -0
- package/dist/{chunk-C5CAL3DX.js → chunk-EQJF2EH5.js} +8 -7
- package/dist/chunk-EQJF2EH5.js.map +1 -0
- package/dist/{chunk-QD5X56I3.js → chunk-FNJVSFEC.js} +1 -1
- package/dist/chunk-FNJVSFEC.js.map +1 -0
- package/dist/{chunk-6U67SO5U.js → chunk-HK57MPSZ.js} +2 -2
- package/dist/{chunk-R7G2B2WH.js → chunk-HKF6YNY4.js} +17 -14
- package/dist/{chunk-R7G2B2WH.js.map → chunk-HKF6YNY4.js.map} +1 -1
- package/dist/chunk-IJQQNHL7.js +34 -0
- package/dist/chunk-IJQQNHL7.js.map +1 -0
- package/dist/{chunk-RE2WE7CD.js → chunk-LOOOB46A.js} +2 -2
- package/dist/{chunk-PEL3MJLM.js → chunk-MX63AWEK.js} +1 -1
- package/dist/{chunk-PEL3MJLM.js.map → chunk-MX63AWEK.js.map} +1 -1
- package/dist/chunk-NPQ5A3RU.js +53 -0
- package/dist/chunk-NPQ5A3RU.js.map +1 -0
- package/dist/{chunk-DKX7LF5Q.js → chunk-ODYLKWRT.js} +3 -3
- package/dist/{chunk-L6UHMWXU.js → chunk-QAS5SKZP.js} +3 -3
- package/dist/chunk-QAS5SKZP.js.map +1 -0
- package/dist/{chunk-4EQEJ4PH.js → chunk-RFZ263XP.js} +68 -23
- package/dist/chunk-RFZ263XP.js.map +1 -0
- package/dist/{chunk-XLSJWKSP.js → chunk-S5QN3O22.js} +66 -21
- package/dist/{chunk-XLSJWKSP.js.map → chunk-S5QN3O22.js.map} +1 -1
- package/dist/{chunk-E2RC367T.js → chunk-SHIXTMQE.js} +49 -14
- package/dist/{chunk-E2RC367T.js.map → chunk-SHIXTMQE.js.map} +1 -1
- package/dist/{chunk-G7U7FQVC.js → chunk-UFBBFP75.js} +13 -3
- package/dist/chunk-UFBBFP75.js.map +1 -0
- package/dist/{chunk-4CIHLTSI.js → chunk-V7ISZGNS.js} +45 -39
- package/dist/chunk-V7ISZGNS.js.map +1 -0
- package/dist/{chunk-RCFD5W5V.js → chunk-WR5B2XNT.js} +6 -6
- package/dist/chunk-WR5B2XNT.js.map +1 -0
- package/dist/{chunk-IB5VIXLR.js → chunk-XLFDYTWO.js} +2 -2
- package/dist/cli/index.js +8 -8
- package/dist/client/index.d.ts +18 -1
- package/dist/client/index.js +15 -1
- package/dist/client/index.js.map +1 -1
- package/dist/{cloudflare-4M4XVNUH.js → cloudflare-AMH4TJNL.js} +104 -82
- package/dist/cloudflare-AMH4TJNL.js.map +1 -0
- package/dist/{config-support-SB5NDQZB.js → config-support-MOZYHRWG.js} +13 -2
- package/dist/{config-support-SB5NDQZB.js.map → config-support-MOZYHRWG.js.map} +1 -1
- package/dist/{deno-deploy-IVACZ62D.js → deno-deploy-6H354VRA.js} +17 -7
- package/dist/deno-deploy-6H354VRA.js.map +1 -0
- package/dist/{dev-JDJWMRLH.js → dev-HJUD6X3R.js} +9 -9
- package/dist/{dev-emit-7KZFUA7M.js → dev-emit-T3X6RR7M.js} +5 -5
- package/dist/{dev-emit-7KZFUA7M.js.map → dev-emit-T3X6RR7M.js.map} +1 -1
- package/dist/{dev-emit-JPJJFBXL.js → dev-emit-ZK5GCHXN.js} +6 -6
- package/dist/dev-emit-ZK5GCHXN.js.map +1 -0
- package/dist/index.js +5 -5
- package/dist/{internal-api-VDYOXOT7.js → internal-api-GKPJYL3G.js} +7 -7
- package/dist/{internal-api-6XNLCNI5.js → internal-api-ZUBUYGCQ.js} +4 -4
- package/dist/{mcp-WJNCTM7M.js → mcp-MVKDWZEQ.js} +3 -3
- package/dist/{netlify-3HEWV375.js → netlify-ALPCTQFO.js} +158 -48
- package/dist/netlify-ALPCTQFO.js.map +1 -0
- package/dist/{node-QUGTW6XV.js → node-4HQO6KKZ.js} +2 -2
- package/dist/{observability-bootstrap-FP6LMMJE.js → observability-bootstrap-DOWRMADT.js} +2 -2
- package/dist/{openapi-Q53YOBIU.js → openapi-C4UX2SFV.js} +5 -5
- package/dist/openapi-C4UX2SFV.js.map +1 -0
- package/dist/{preview-BARW75PN.js → preview-5HUID27O.js} +3 -3
- package/dist/registry-OMLCP4AS.js +34 -0
- package/dist/registry-OMLCP4AS.js.map +1 -0
- package/dist/{routes-FDF4SLOB.js → routes-3PTNISSO.js} +2 -2
- package/dist/server/index.js +2 -2
- package/dist/server/scan/index.d.ts +38 -2
- package/dist/server/scan/index.js +2 -2
- package/dist/{server-boundary-AO6EELRF.js → server-boundary-QCJNECJP.js} +7 -7
- package/dist/{server-boundary-E5GFVPLB.js → server-boundary-RTRPHX5I.js} +4 -4
- package/dist/{start-4JTYXQQJ.js → start-EREUCSN6.js} +10 -10
- package/dist/{static-NQPLPAB6.js → static-7LP7LPGN.js} +2 -2
- package/dist/{vercel-5PMYEEKF.js → vercel-VLR52RXT.js} +173 -73
- package/dist/vercel-VLR52RXT.js.map +1 -0
- package/dist/vite-plugin/index.js +5 -5
- package/dist/{vite-plugin-3ON45MQE.js → vite-plugin-JVGI6QUO.js} +9 -9
- package/package.json +4 -4
- package/dist/app-typed-client-LHH77QDB.js.map +0 -1
- package/dist/aws-lambda-7AZNJGWU.js.map +0 -1
- package/dist/build-23QF5FNQ.js.map +0 -1
- package/dist/bun-NKVHOFSJ.js.map +0 -1
- package/dist/chunk-4CIHLTSI.js.map +0 -1
- package/dist/chunk-4EQEJ4PH.js.map +0 -1
- package/dist/chunk-C5CAL3DX.js.map +0 -1
- package/dist/chunk-FHQP23Z5.js.map +0 -1
- package/dist/chunk-G7U7FQVC.js.map +0 -1
- package/dist/chunk-L6UHMWXU.js.map +0 -1
- package/dist/chunk-NO6HA4FG.js.map +0 -1
- package/dist/chunk-QD5X56I3.js.map +0 -1
- package/dist/chunk-RCFD5W5V.js.map +0 -1
- package/dist/chunk-V5SSTT3C.js.map +0 -1
- package/dist/cloudflare-4M4XVNUH.js.map +0 -1
- package/dist/deno-deploy-IVACZ62D.js.map +0 -1
- package/dist/dev-emit-JPJJFBXL.js.map +0 -1
- package/dist/netlify-3HEWV375.js.map +0 -1
- package/dist/openapi-Q53YOBIU.js.map +0 -1
- package/dist/registry-SDBODRU6.js +0 -23
- package/dist/registry-SDBODRU6.js.map +0 -1
- package/dist/vercel-5PMYEEKF.js.map +0 -1
- /package/dist/{actions-virtual-module-OHENNMQG.js.map → actions-virtual-module-J2HYO7QZ.js.map} +0 -0
- /package/dist/{actions-virtual-module-EAKYEMGF.js.map → actions-virtual-module-JV7URROJ.js.map} +0 -0
- /package/dist/{agent-VJTZ4DQ7.js.map → agent-GU6JIEFJ.js.map} +0 -0
- /package/dist/{chunk-6U67SO5U.js.map → chunk-HK57MPSZ.js.map} +0 -0
- /package/dist/{chunk-RE2WE7CD.js.map → chunk-LOOOB46A.js.map} +0 -0
- /package/dist/{chunk-DKX7LF5Q.js.map → chunk-ODYLKWRT.js.map} +0 -0
- /package/dist/{chunk-IB5VIXLR.js.map → chunk-XLFDYTWO.js.map} +0 -0
- /package/dist/{dev-JDJWMRLH.js.map → dev-HJUD6X3R.js.map} +0 -0
- /package/dist/{internal-api-VDYOXOT7.js.map → internal-api-GKPJYL3G.js.map} +0 -0
- /package/dist/{internal-api-6XNLCNI5.js.map → internal-api-ZUBUYGCQ.js.map} +0 -0
- /package/dist/{mcp-WJNCTM7M.js.map → mcp-MVKDWZEQ.js.map} +0 -0
- /package/dist/{node-QUGTW6XV.js.map → node-4HQO6KKZ.js.map} +0 -0
- /package/dist/{observability-bootstrap-FP6LMMJE.js.map → observability-bootstrap-DOWRMADT.js.map} +0 -0
- /package/dist/{preview-BARW75PN.js.map → preview-5HUID27O.js.map} +0 -0
- /package/dist/{routes-FDF4SLOB.js.map → routes-3PTNISSO.js.map} +0 -0
- /package/dist/{server-boundary-AO6EELRF.js.map → server-boundary-QCJNECJP.js.map} +0 -0
- /package/dist/{server-boundary-E5GFVPLB.js.map → server-boundary-RTRPHX5I.js.map} +0 -0
- /package/dist/{start-4JTYXQQJ.js.map → start-EREUCSN6.js.map} +0 -0
- /package/dist/{static-NQPLPAB6.js.map → static-7LP7LPGN.js.map} +0 -0
- /package/dist/{vite-plugin-3ON45MQE.js.map → vite-plugin-JVGI6QUO.js.map} +0 -0
|
@@ -11,22 +11,22 @@ import {
|
|
|
11
11
|
} from "./chunk-KTMQUYED.js";
|
|
12
12
|
import {
|
|
13
13
|
theoPluginAsync
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-RFZ263XP.js";
|
|
15
|
+
import "./chunk-QAS5SKZP.js";
|
|
16
16
|
import "./chunk-BDH5GKFZ.js";
|
|
17
17
|
import "./chunk-3PWQQWT6.js";
|
|
18
18
|
import "./chunk-FDOOBTXJ.js";
|
|
19
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-SHIXTMQE.js";
|
|
20
20
|
import "./chunk-BINRCILF.js";
|
|
21
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-FNJVSFEC.js";
|
|
22
22
|
import "./chunk-WSMLSIS5.js";
|
|
23
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-MX63AWEK.js";
|
|
24
24
|
import "./chunk-C27VRUVN.js";
|
|
25
25
|
import "./chunk-7UZZHCRN.js";
|
|
26
26
|
import "./chunk-47MM2JUK.js";
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-WR5B2XNT.js";
|
|
28
|
+
import "./chunk-HKF6YNY4.js";
|
|
29
|
+
import "./chunk-4WP7A7RX.js";
|
|
30
30
|
import "./chunk-Z7CJHDLS.js";
|
|
31
31
|
import {
|
|
32
32
|
loadConfig
|
|
@@ -128,4 +128,4 @@ export {
|
|
|
128
128
|
devCommand,
|
|
129
129
|
startDevServer
|
|
130
130
|
};
|
|
131
|
-
//# sourceMappingURL=dev-
|
|
131
|
+
//# sourceMappingURL=dev-HJUD6X3R.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
generateManifest
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-V7ISZGNS.js";
|
|
4
|
+
import "./chunk-6R5F5YF2.js";
|
|
5
5
|
import "./chunk-DV34VG3N.js";
|
|
6
6
|
import "./chunk-SOYOYGWY.js";
|
|
7
7
|
import "./chunk-ZWN3AODA.js";
|
|
@@ -311,7 +311,7 @@ async function createDefaultLoader(serverDir) {
|
|
|
311
311
|
|
|
312
312
|
// src/vite-plugin/openapi-emit/dev-emit.ts
|
|
313
313
|
var inFlight = false;
|
|
314
|
-
async function reEmitOpenApi(serverDir, distDir, openApiConfig) {
|
|
314
|
+
async function reEmitOpenApi(serverDir, distDir, openApiConfig, projectRoot, agentsDir) {
|
|
315
315
|
if (inFlight) {
|
|
316
316
|
console.warn(
|
|
317
317
|
"[openapi-emit] previous emit still running; skipping watcher event (EC-8 single-flight guard)"
|
|
@@ -320,7 +320,7 @@ async function reEmitOpenApi(serverDir, distDir, openApiConfig) {
|
|
|
320
320
|
}
|
|
321
321
|
inFlight = true;
|
|
322
322
|
try {
|
|
323
|
-
const manifest = generateManifest(serverDir);
|
|
323
|
+
const manifest = generateManifest(serverDir, projectRoot, agentsDir);
|
|
324
324
|
const hydrated = await loadRoutesForOpenApi({ serverDir, routes: manifest.routes });
|
|
325
325
|
emitOpenApi({
|
|
326
326
|
manifest: hydrated,
|
|
@@ -339,4 +339,4 @@ export {
|
|
|
339
339
|
_resetInFlightForTests,
|
|
340
340
|
reEmitOpenApi
|
|
341
341
|
};
|
|
342
|
-
//# sourceMappingURL=dev-emit-
|
|
342
|
+
//# sourceMappingURL=dev-emit-T3X6RR7M.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/vite-plugin/openapi-emit/emit.ts","../src/vite-plugin/openapi-emit/zod-to-openapi.ts","../src/vite-plugin/openapi-emit/load-routes.ts","../src/vite-plugin/openapi-emit/dev-emit.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../src/vite-plugin/openapi-emit/emit.ts","../src/vite-plugin/openapi-emit/zod-to-openapi.ts","../src/vite-plugin/openapi-emit/load-routes.ts","../src/vite-plugin/openapi-emit/dev-emit.ts"],"mappings":"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","names":[]}
|
|
@@ -6,14 +6,14 @@ import {
|
|
|
6
6
|
} from "./chunk-47VNWTL4.js";
|
|
7
7
|
import {
|
|
8
8
|
generateManifest
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-WR5B2XNT.js";
|
|
10
|
+
import "./chunk-HKF6YNY4.js";
|
|
11
|
+
import "./chunk-4WP7A7RX.js";
|
|
12
12
|
import "./chunk-Z7CJHDLS.js";
|
|
13
13
|
|
|
14
14
|
// src/vite-plugin/openapi-emit/dev-emit.ts
|
|
15
15
|
var inFlight = false;
|
|
16
|
-
async function reEmitOpenApi(serverDir, distDir, openApiConfig) {
|
|
16
|
+
async function reEmitOpenApi(serverDir, distDir, openApiConfig, projectRoot, agentsDir) {
|
|
17
17
|
if (inFlight) {
|
|
18
18
|
console.warn(
|
|
19
19
|
"[openapi-emit] previous emit still running; skipping watcher event (EC-8 single-flight guard)"
|
|
@@ -22,7 +22,7 @@ async function reEmitOpenApi(serverDir, distDir, openApiConfig) {
|
|
|
22
22
|
}
|
|
23
23
|
inFlight = true;
|
|
24
24
|
try {
|
|
25
|
-
const manifest = generateManifest(serverDir);
|
|
25
|
+
const manifest = generateManifest(serverDir, projectRoot, agentsDir);
|
|
26
26
|
const hydrated = await loadRoutesForOpenApi({ serverDir, routes: manifest.routes });
|
|
27
27
|
emitOpenApi({
|
|
28
28
|
manifest: hydrated,
|
|
@@ -41,4 +41,4 @@ export {
|
|
|
41
41
|
_resetInFlightForTests,
|
|
42
42
|
reEmitOpenApi
|
|
43
43
|
};
|
|
44
|
-
//# sourceMappingURL=dev-emit-
|
|
44
|
+
//# sourceMappingURL=dev-emit-ZK5GCHXN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/vite-plugin/openapi-emit/dev-emit.ts"],"sourcesContent":["/**\n * Dev-mode OpenAPI emit helper for `theokit dev`.\n *\n * Per P#3 plan v1.3 T1.1 (ADRs D3 + D4 + EC-8). Called once on `theokit dev`\n * boot AND on every chokidar 'change'/'add'/'unlink' watcher event for\n * route files when `config.openapi !== undefined`. Re-runs G2's\n * `emitOpenApi()` orchestrator to keep `<distDir>/openapi.json` always\n * fresh in dev.\n *\n * EC-8 absorbed (single-flight guard): if a previous invocation is still\n * awaiting `loadRoutesForOpenApi` (Vite SSR loader can hang on circular\n * imports or syntax errors), skip the new call and emit a `console.warn`\n * so watcher events don't pile up + dev server doesn't deadlock.\n *\n * Best-effort: ALL errors caught + warned. Never throws out of the\n * exported function (would crash Vite dev's chokidar handler).\n *\n * NEVER ship to runtime — dev-only artifact gated on `config.openapi`.\n */\nimport { generateManifest } from '../../server/scan/manifest.js'\n\nimport { emitOpenApi } from './emit.js'\nimport { loadRoutesForOpenApi } from './load-routes.js'\n\ninterface DevEmitConfig {\n servers: { url: string; description?: string }[]\n specVersion: '3.1.0' | '3.0.3'\n title: string\n version: string\n}\n\nlet inFlight = false\n\nexport async function reEmitOpenApi(\n serverDir: string,\n distDir: string,\n openApiConfig: DevEmitConfig,\n /** The project root. B-313 — `generateManifest` guessed it as the server dir's parent. */\n projectRoot: string,\n /** The agents dir NAME relative to the root, passed through undefaulted. */\n agentsDir: string | undefined,\n): Promise<void> {\n if (inFlight) {\n console.warn(\n '[openapi-emit] previous emit still running; skipping watcher event (EC-8 single-flight guard)',\n )\n return\n }\n inFlight = true\n try {\n const manifest = generateManifest(serverDir, projectRoot, agentsDir)\n const hydrated = await loadRoutesForOpenApi({ serverDir, routes: manifest.routes })\n emitOpenApi({\n manifest: hydrated,\n config: { ...openApiConfig, outDir: distDir },\n })\n } catch (err) {\n console.warn(`[openapi-emit] re-emit failed: ${(err as Error).message}`)\n } finally {\n inFlight = false\n }\n}\n\n/** Test seam — resets the inFlight flag between tests. NOT for production use. */\nexport function _resetInFlightForTests(): void {\n inFlight = false\n}\n"],"mappings":";;;;;;;;;;;;;;AA+BA,IAAI,WAAW;AAEf,eAAsB,cACpB,WACA,SACA,eAEA,aAEA,WACe;AACf,MAAI,UAAU;AACZ,YAAQ;AAAA,MACN;AAAA,IACF;AACA;AAAA,EACF;AACA,aAAW;AACX,MAAI;AACF,UAAM,WAAW,iBAAiB,WAAW,aAAa,SAAS;AACnE,UAAM,WAAW,MAAM,qBAAqB,EAAE,WAAW,QAAQ,SAAS,OAAO,CAAC;AAClF,gBAAY;AAAA,MACV,UAAU;AAAA,MACV,QAAQ,EAAE,GAAG,eAAe,QAAQ,QAAQ;AAAA,IAC9C,CAAC;AAAA,EACH,SAAS,KAAK;AACZ,YAAQ,KAAK,kCAAmC,IAAc,OAAO,EAAE;AAAA,EACzE,UAAE;AACA,eAAW;AAAA,EACb;AACF;AAGO,SAAS,yBAA+B;AAC7C,aAAW;AACb;","names":[]}
|
package/dist/index.js
CHANGED
|
@@ -8,12 +8,12 @@ import {
|
|
|
8
8
|
scanRoutes,
|
|
9
9
|
theoConfigSchema,
|
|
10
10
|
theoPlugin
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-S5QN3O22.js";
|
|
12
12
|
import "./chunk-7NRFZBAL.js";
|
|
13
13
|
import "./chunk-SSYDEKWF.js";
|
|
14
14
|
import "./chunk-D7STTNQN.js";
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-HK57MPSZ.js";
|
|
16
|
+
import "./chunk-2NG5T77O.js";
|
|
17
17
|
import "./chunk-OIGJOYX6.js";
|
|
18
18
|
import "./chunk-U3SPBLJF.js";
|
|
19
19
|
import "./chunk-WSOAN4KN.js";
|
|
@@ -33,8 +33,8 @@ import "./chunk-AVQU5CQF.js";
|
|
|
33
33
|
import "./chunk-VSLTKX5L.js";
|
|
34
34
|
import "./chunk-SFGGRC35.js";
|
|
35
35
|
import "./chunk-4ERYQBL6.js";
|
|
36
|
-
import "./chunk-
|
|
37
|
-
import "./chunk-
|
|
36
|
+
import "./chunk-V7ISZGNS.js";
|
|
37
|
+
import "./chunk-6R5F5YF2.js";
|
|
38
38
|
import "./chunk-DV34VG3N.js";
|
|
39
39
|
import "./chunk-V6Y2SMRG.js";
|
|
40
40
|
import "./chunk-ACKBVBUI.js";
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
handleCspReport,
|
|
17
17
|
handleCsrfReadiness,
|
|
18
18
|
mountAgent
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-SHIXTMQE.js";
|
|
20
20
|
import {
|
|
21
21
|
resolveProvider
|
|
22
22
|
} from "./chunk-BINRCILF.js";
|
|
@@ -24,24 +24,24 @@ import {
|
|
|
24
24
|
dispatchControllerRequest,
|
|
25
25
|
incomingMessageToHandlerRequest,
|
|
26
26
|
sendError
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-FNJVSFEC.js";
|
|
28
28
|
import {
|
|
29
29
|
generateNonce
|
|
30
30
|
} from "./chunk-WSMLSIS5.js";
|
|
31
31
|
import {
|
|
32
32
|
TRACE_HEADER,
|
|
33
33
|
extractTraceId
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-MX63AWEK.js";
|
|
35
35
|
import {
|
|
36
36
|
logRequest
|
|
37
37
|
} from "./chunk-C27VRUVN.js";
|
|
38
38
|
import "./chunk-7UZZHCRN.js";
|
|
39
39
|
import {
|
|
40
40
|
generateManifest
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-WR5B2XNT.js";
|
|
42
42
|
import {
|
|
43
43
|
scanAgents
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-HKF6YNY4.js";
|
|
45
45
|
import {
|
|
46
46
|
ACTION_SCHEMAS_DIR,
|
|
47
47
|
matchRoute,
|
|
@@ -49,7 +49,7 @@ import {
|
|
|
49
49
|
scanServerActionsEnriched,
|
|
50
50
|
scanServerRoutes,
|
|
51
51
|
scanWebSocketRoutes
|
|
52
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-4WP7A7RX.js";
|
|
53
53
|
import "./chunk-Z7CJHDLS.js";
|
|
54
54
|
import "./chunk-U5PWXS3J.js";
|
|
55
55
|
import "./chunk-D2R5SJEL.js";
|
|
@@ -87,4 +87,4 @@ export {
|
|
|
87
87
|
scanWebSocketRoutes,
|
|
88
88
|
sendError
|
|
89
89
|
};
|
|
90
|
-
//# sourceMappingURL=internal-api-
|
|
90
|
+
//# sourceMappingURL=internal-api-GKPJYL3G.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-D7STTNQN.js";
|
|
4
4
|
import {
|
|
5
5
|
mountAgent
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-2NG5T77O.js";
|
|
7
7
|
import {
|
|
8
8
|
CSP_REPORT_PATH,
|
|
9
9
|
CsrfReadinessStore,
|
|
@@ -55,10 +55,10 @@ import {
|
|
|
55
55
|
scanServerActionsEnriched,
|
|
56
56
|
scanServerRoutes,
|
|
57
57
|
scanWebSocketRoutes
|
|
58
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-V7ISZGNS.js";
|
|
59
59
|
import {
|
|
60
60
|
scanAgents
|
|
61
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-6R5F5YF2.js";
|
|
62
62
|
import "./chunk-DV34VG3N.js";
|
|
63
63
|
import "./chunk-V6Y2SMRG.js";
|
|
64
64
|
import "./chunk-ACKBVBUI.js";
|
|
@@ -108,4 +108,4 @@ export {
|
|
|
108
108
|
scanWebSocketRoutes,
|
|
109
109
|
sendError
|
|
110
110
|
};
|
|
111
|
-
//# sourceMappingURL=internal-api-
|
|
111
|
+
//# sourceMappingURL=internal-api-ZUBUYGCQ.js.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import "tsx/esm";
|
|
3
3
|
import {
|
|
4
4
|
createAgentSsrLoader
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-ODYLKWRT.js";
|
|
6
6
|
import {
|
|
7
7
|
extractAppResources,
|
|
8
8
|
handleMcpJsonRpc
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
import "./chunk-BINRCILF.js";
|
|
11
11
|
import {
|
|
12
12
|
scanAgents
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-HKF6YNY4.js";
|
|
14
14
|
import "./chunk-Z7CJHDLS.js";
|
|
15
15
|
import "./chunk-3QPVEJ7D.js";
|
|
16
16
|
|
|
@@ -75,4 +75,4 @@ async function mcpCommand(name, deps = {}) {
|
|
|
75
75
|
export {
|
|
76
76
|
mcpCommand
|
|
77
77
|
};
|
|
78
|
-
//# sourceMappingURL=mcp-
|
|
78
|
+
//# sourceMappingURL=mcp-MVKDWZEQ.js.map
|
|
@@ -1,22 +1,28 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import "tsx/esm";
|
|
3
|
+
import {
|
|
4
|
+
bundleDeployedFunction
|
|
5
|
+
} from "./chunk-NPQ5A3RU.js";
|
|
6
|
+
import {
|
|
7
|
+
renderBakedRoutes,
|
|
8
|
+
routeRuntimeLines
|
|
9
|
+
} from "./chunk-72RSCKMW.js";
|
|
3
10
|
import {
|
|
4
11
|
deployedEntryPreamble
|
|
5
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-XLFDYTWO.js";
|
|
6
13
|
import {
|
|
7
14
|
JSON_NOT_FOUND_RESPONSE,
|
|
8
|
-
agentsDirLiteral,
|
|
9
15
|
deployedAgentsFragment,
|
|
10
16
|
deployedRateLimitFragment,
|
|
11
17
|
deployedRuntimeConfigFragment,
|
|
12
18
|
deployedTraceFragment,
|
|
13
19
|
describeDeployedSecurityHeaders,
|
|
14
20
|
rateLimitCheckFragment,
|
|
15
|
-
|
|
16
|
-
} from "./chunk-
|
|
21
|
+
serverDirLiteral
|
|
22
|
+
} from "./chunk-EQJF2EH5.js";
|
|
17
23
|
import {
|
|
18
24
|
nodeAdapter
|
|
19
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-UFBBFP75.js";
|
|
20
26
|
import {
|
|
21
27
|
buildSecurityHeaders
|
|
22
28
|
} from "./chunk-WSMLSIS5.js";
|
|
@@ -36,24 +42,43 @@ var NetlifyConflictError = class extends Error {
|
|
|
36
42
|
this.name = "NetlifyConflictError";
|
|
37
43
|
}
|
|
38
44
|
};
|
|
45
|
+
var NetlifyFunctionsConflictError = class extends Error {
|
|
46
|
+
constructor(key, declared, required) {
|
|
47
|
+
super(
|
|
48
|
+
`netlify.toml declares \`[functions] ${key} = "${declared}"\`, and this adapter needs "${required}". Measured on the Netlify emulator: \`directory\` is what makes the generated function discoverable at all (without it the redirect answers "Function not found"), and \`node_bundler = "none"\` is what stops Netlify re-bundling a function theokit already bundled \u2014 which produces a SyntaxError. Change the value, or remove the key and let this adapter write it.`
|
|
49
|
+
);
|
|
50
|
+
this.name = "NetlifyFunctionsConflictError";
|
|
51
|
+
}
|
|
52
|
+
};
|
|
39
53
|
function renderNetlifyFunction(opts = {}) {
|
|
54
|
+
const { routeImports, routeModuleEntries, routeTableEntries } = renderBakedRoutes(
|
|
55
|
+
opts.routes ?? []
|
|
56
|
+
);
|
|
40
57
|
const runtimeConfig = deployedRuntimeConfigFragment(opts);
|
|
41
|
-
const agentsFragment = deployedAgentsFragment(
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
58
|
+
const agentsFragment = deployedAgentsFragment(
|
|
59
|
+
{ kind: "baked", agents: opts.agents ?? [], contextModule: opts.contextModule },
|
|
60
|
+
{
|
|
61
|
+
// Netlify answers its own 404 inline rather than through a helper, so the fragment is given
|
|
62
|
+
// the expression instead of a call it would have to declare.
|
|
63
|
+
notFound: `new Response('Not Found', { status: 404 })`
|
|
64
|
+
}
|
|
65
|
+
);
|
|
46
66
|
return [
|
|
47
67
|
`// Generated by Theo \u2014 Netlify Functions adapter`,
|
|
48
68
|
`import { resolve } from 'node:path'`,
|
|
49
|
-
`import {
|
|
69
|
+
`import { matchRoute, compilePattern } from 'theokit/server/scan'
|
|
70
|
+
import { executeRoute, extractTraceIdFromRequest, TRACE_HEADER, createCorsWebHandler } from 'theokit/server/http'`,
|
|
71
|
+
...routeImports,
|
|
50
72
|
`import { createWebShim } from 'theokit/adapters/web-shim'`,
|
|
51
73
|
`import { buildSecurityHeaders, withSecurityHeaders } from 'theokit/adapters/security-headers'`,
|
|
52
74
|
``,
|
|
53
75
|
`const cwd = process.cwd()`,
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
76
|
+
// B-338 — was `resolve(cwd, 'server')`, a literal. A project declaring `src/server` got a function
|
|
77
|
+
// scanning a directory that does not exist, and every `/api/*` answered 404 — measured on the Netlify
|
|
78
|
+
// emulator. The FOURTH target with this shape: B-185 (bun, deno), B-235 (agentsDir here), B-315
|
|
79
|
+
// (vercel, aws-lambda, cloudflare), and this file's own call site already names two of them.
|
|
80
|
+
`const serverDir = resolve(cwd, ${serverDirLiteral(opts)})`,
|
|
81
|
+
...routeRuntimeLines(routeModuleEntries, routeTableEntries, "netlify"),
|
|
57
82
|
``,
|
|
58
83
|
`// #410 \u2014 the security baseline \`theokit start\` puts on every response,`,
|
|
59
84
|
`// carried here as a literal because the deployed function has no`,
|
|
@@ -64,7 +89,11 @@ function renderNetlifyFunction(opts = {}) {
|
|
|
64
89
|
``,
|
|
65
90
|
// B-027 — emitted only when a limit is declared.
|
|
66
91
|
...opts.rateLimit === void 0 ? [] : [
|
|
67
|
-
|
|
92
|
+
// B-338 — the sub-path, not the umbrella. The umbrella re-exports the whole server half and
|
|
93
|
+
// @swc/core's native .node addon is down that graph; the guard against it could not see this
|
|
94
|
+
// adapter, because the shared comment stripper read this file's "/*" redirect glob as a
|
|
95
|
+
// comment opener and deleted 36% of it before the sweep looked.
|
|
96
|
+
`import { createRateLimiterWeb } from 'theokit/server/rate-limit'`,
|
|
68
97
|
`import { resolveClientIpFromRequest } from 'theokit/server/rate-limit'`,
|
|
69
98
|
``
|
|
70
99
|
],
|
|
@@ -96,12 +125,10 @@ function renderNetlifyFunction(opts = {}) {
|
|
|
96
125
|
` return new Response('Not Found', { status: 404 })`,
|
|
97
126
|
` }`,
|
|
98
127
|
``,
|
|
99
|
-
` if (!routesCache) routesCache = scanServerRoutes(serverDir)`,
|
|
100
|
-
` if (!loaderCache) loaderCache = createProductionLoader()`,
|
|
101
128
|
``,
|
|
102
129
|
...agentsFragment.branch,
|
|
103
130
|
``,
|
|
104
|
-
` const match = matchRoute(url.pathname,
|
|
131
|
+
` const match = matchRoute(url.pathname, routes)`,
|
|
105
132
|
` if (!match) return ${JSON_NOT_FOUND_RESPONSE}`,
|
|
106
133
|
``,
|
|
107
134
|
` const { req, res, toResponse } = createWebShim(request)`,
|
|
@@ -109,7 +136,7 @@ function renderNetlifyFunction(opts = {}) {
|
|
|
109
136
|
` const method = request.method.toUpperCase()`,
|
|
110
137
|
` // #382 \u2014 the run is not awaited: toResponse() settles at the headers and`,
|
|
111
138
|
` // carries a live body, so Netlify streams while the handler writes.`,
|
|
112
|
-
` return toResponse(executeRoute({ route: match.route, method, params: match.params, req, res, loadModule
|
|
139
|
+
` return toResponse(executeRoute({ route: match.route, method, params: match.params, req, res, loadModule, serverDir, requestId, ...CSRF_CONFIG, ${runtimeConfig.executeRouteSpread} }))`,
|
|
113
140
|
`}`
|
|
114
141
|
].join("\n");
|
|
115
142
|
}
|
|
@@ -144,6 +171,16 @@ function parseRedirectBlocks(lines) {
|
|
|
144
171
|
if (current) blocks.push(current);
|
|
145
172
|
return blocks;
|
|
146
173
|
}
|
|
174
|
+
var THEO_FUNCTIONS_DIR = ".netlify/functions";
|
|
175
|
+
var THEO_FUNCTION_NAME = "theo";
|
|
176
|
+
var THEO_FUNCTIONS_KEYS = [
|
|
177
|
+
["directory", THEO_FUNCTIONS_DIR],
|
|
178
|
+
["node_bundler", "none"]
|
|
179
|
+
];
|
|
180
|
+
var THEO_FUNCTIONS_TARGET = [
|
|
181
|
+
"[functions]",
|
|
182
|
+
...THEO_FUNCTIONS_KEYS.map(([key, value]) => ` ${key} = "${value}"`)
|
|
183
|
+
].join("\n");
|
|
147
184
|
var THEO_REDIRECT_TARGET = [
|
|
148
185
|
"[[redirects]]",
|
|
149
186
|
' from = "/api/*"',
|
|
@@ -173,13 +210,54 @@ function withoutGeneratedHeaders(source) {
|
|
|
173
210
|
while (end < lines.length && !opensSection(lines[end])) end += 1;
|
|
174
211
|
return [...lines.slice(0, start), ...lines.slice(end)].join("\n").replace(/\n{3,}/gu, "\n\n");
|
|
175
212
|
}
|
|
213
|
+
function readTomlScalar(raw) {
|
|
214
|
+
for (const quote of ['"', "'"]) {
|
|
215
|
+
if (!raw.startsWith(quote)) continue;
|
|
216
|
+
const close = raw.indexOf(quote, 1);
|
|
217
|
+
return close < 0 ? raw.slice(1) : raw.slice(1, close);
|
|
218
|
+
}
|
|
219
|
+
const hash = raw.indexOf("#");
|
|
220
|
+
return (hash < 0 ? raw : raw.slice(0, hash)).trim();
|
|
221
|
+
}
|
|
222
|
+
function declaredIn(lines, from, to, key) {
|
|
223
|
+
for (let i = from; i < to; i += 1) {
|
|
224
|
+
const line = lines[i] ?? "";
|
|
225
|
+
const eq = line.indexOf("=");
|
|
226
|
+
if (eq < 0 || line.slice(0, eq).trim() !== key) continue;
|
|
227
|
+
return readTomlScalar(line.slice(eq + 1).trim());
|
|
228
|
+
}
|
|
229
|
+
return null;
|
|
230
|
+
}
|
|
231
|
+
function withFunctionsDeclared(source) {
|
|
232
|
+
const lines = source.split(/\r?\n/);
|
|
233
|
+
const at = lines.findIndex((line) => line.trimEnd() === "[functions]");
|
|
234
|
+
if (at < 0) {
|
|
235
|
+
const sep = source.endsWith("\n") ? "" : "\n";
|
|
236
|
+
return `${source}${sep}
|
|
237
|
+
${THEO_FUNCTIONS_TARGET}
|
|
238
|
+
`;
|
|
239
|
+
}
|
|
240
|
+
let end = at + 1;
|
|
241
|
+
while (end < lines.length && !(lines[end] ?? "").startsWith("[")) end += 1;
|
|
242
|
+
const missing = [];
|
|
243
|
+
for (const [key, required] of THEO_FUNCTIONS_KEYS) {
|
|
244
|
+
const declared = declaredIn(lines, at + 1, end, key);
|
|
245
|
+
if (declared === null) {
|
|
246
|
+
missing.push(` ${key} = "${required}"`);
|
|
247
|
+
continue;
|
|
248
|
+
}
|
|
249
|
+
if (declared !== required) throw new NetlifyFunctionsConflictError(key, declared, required);
|
|
250
|
+
}
|
|
251
|
+
if (missing.length === 0) return source;
|
|
252
|
+
return [...lines.slice(0, at + 1), ...missing, ...lines.slice(at + 1)].join("\n");
|
|
253
|
+
}
|
|
176
254
|
function mergeNetlifyToml(existing, securityHeaders) {
|
|
177
255
|
const headersBlock = renderHeadersBlock(securityHeaders);
|
|
178
256
|
if (existing === null || existing.trim().length === 0) {
|
|
179
|
-
return `${THEO_REDIRECT_TARGET}
|
|
257
|
+
return withFunctionsDeclared(`${THEO_REDIRECT_TARGET}
|
|
180
258
|
|
|
181
259
|
${headersBlock}
|
|
182
|
-
|
|
260
|
+
`);
|
|
183
261
|
}
|
|
184
262
|
existing = withoutGeneratedHeaders(existing);
|
|
185
263
|
const blocks = parseRedirectBlocks(existing.split(/\r?\n/));
|
|
@@ -187,52 +265,78 @@ ${headersBlock}
|
|
|
187
265
|
if (b.from !== THEO_REDIRECT_FROM) continue;
|
|
188
266
|
if (b.to === THEO_REDIRECT_TO) {
|
|
189
267
|
const sep2 = existing.endsWith("\n") ? "" : "\n";
|
|
190
|
-
return `${existing}${sep2}
|
|
268
|
+
return withFunctionsDeclared(`${existing}${sep2}
|
|
191
269
|
${headersBlock}
|
|
192
|
-
|
|
270
|
+
`);
|
|
193
271
|
}
|
|
194
272
|
throw new NetlifyConflictError(b.from, b.to ?? "(unknown)");
|
|
195
273
|
}
|
|
196
274
|
const sep = existing.endsWith("\n") ? "" : "\n";
|
|
197
|
-
return `${existing}${sep}
|
|
275
|
+
return withFunctionsDeclared(`${existing}${sep}
|
|
198
276
|
${THEO_REDIRECT_TARGET}
|
|
199
277
|
|
|
200
278
|
${headersBlock}
|
|
201
|
-
|
|
279
|
+
`);
|
|
280
|
+
}
|
|
281
|
+
function resolveNetlifyDeps(cwd, deps) {
|
|
282
|
+
return {
|
|
283
|
+
runNodeBuild: deps.runNodeBuild ?? nodeAdapter.build.bind(nodeAdapter),
|
|
284
|
+
writeFile: deps.writeFile ?? ((path, content) => {
|
|
285
|
+
writeFileSync(path, content);
|
|
286
|
+
}),
|
|
287
|
+
ensureDir: deps.ensureDir ?? ((path) => mkdirSync(path, { recursive: true })),
|
|
288
|
+
readTomlIfExists: deps.readTomlIfExists ?? (() => {
|
|
289
|
+
const path = resolve(cwd, "netlify.toml");
|
|
290
|
+
return existsSync(path) ? readFileSync(path, "utf-8") : null;
|
|
291
|
+
}),
|
|
292
|
+
bundleFunction: deps.bundleFunction ?? bundleDeployedFunction
|
|
293
|
+
};
|
|
202
294
|
}
|
|
203
295
|
async function buildNetlify(config, cwd, deps = {}, ctx) {
|
|
204
296
|
assertServicesUnsupported("netlify", readManifest(cwd));
|
|
205
|
-
const runNodeBuild
|
|
297
|
+
const { runNodeBuild, writeFile, ensureDir, readTomlIfExists, bundleFunction } = resolveNetlifyDeps(cwd, deps);
|
|
298
|
+
const merged = mergeNetlifyToml(readTomlIfExists(), config.security?.headers);
|
|
206
299
|
await runNodeBuild(config, cwd, ctx);
|
|
207
|
-
const
|
|
208
|
-
const
|
|
209
|
-
writeFileSync(p, c);
|
|
210
|
-
});
|
|
211
|
-
const readTomlIfExists = deps.readTomlIfExists ?? (() => {
|
|
212
|
-
const p = resolve(cwd, "netlify.toml");
|
|
213
|
-
return existsSync(p) ? readFileSync(p, "utf-8") : null;
|
|
214
|
-
});
|
|
215
|
-
const fnDir = resolve(cwd, ".netlify/functions");
|
|
300
|
+
const scanned = ctx?.scanRoutes?.(config.serverDir);
|
|
301
|
+
const fnDir = resolve(cwd, THEO_FUNCTIONS_DIR);
|
|
216
302
|
ensureDir(fnDir);
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
renderNetlifyFunction({
|
|
303
|
+
await bundleFunction({
|
|
304
|
+
projectRoot: cwd,
|
|
305
|
+
entrySource: renderNetlifyFunction({
|
|
306
|
+
routes: scanned?.routes,
|
|
307
|
+
// B-339 — from the same scan as the routes, for the same reason: this target bundles, so a
|
|
308
|
+
// runtime agents scan has no source tree to read.
|
|
309
|
+
agents: scanned?.agents,
|
|
310
|
+
contextModule: scanned?.contextModule,
|
|
220
311
|
securityHeaders: config.security?.headers,
|
|
221
|
-
// B-235
|
|
222
|
-
//
|
|
223
|
-
//
|
|
224
|
-
|
|
312
|
+
// B-235 wired `agentsDir` through to this renderer, and B-339 made it unreadable here: the
|
|
313
|
+
// agents are baked from the BUILD's scan now, so the entry never resolves a directory. An
|
|
314
|
+
// option a renderer accepts and ignores is the defect `rules/foreign-config-surfaces.md` is
|
|
315
|
+
// about, so it is dropped rather than left looking wired. The scan the build performs still
|
|
316
|
+
// honours `config.agentsDir` — that is where the option belongs.
|
|
317
|
+
// B-338 — the same pillar as the comment above, one option over. The sweep in
|
|
318
|
+
// `every-deployed-entry-is-told-its-server-dir.test.ts` could not see this adapter: its
|
|
319
|
+
// population was the adapters that CALL `serverDirLiteral(opts)`, so the one that never
|
|
320
|
+
// adopted it was outside the population the case iterates.
|
|
321
|
+
serverDir: config.serverDir,
|
|
225
322
|
csrf: config.security?.csrf,
|
|
226
323
|
disallowed: config.security?.disallowed,
|
|
227
324
|
cors: config.security?.cors,
|
|
228
325
|
// #425 — a selector, not a transformer, so it rides as a literal like the values above.
|
|
229
326
|
serialization: config.serialization
|
|
230
|
-
})
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
327
|
+
}),
|
|
328
|
+
stagePath: ".theokit/netlify/entry.mjs",
|
|
329
|
+
// A DIRECTORY, not a bare file. The bundler code-splits: this project emitted `theo.mjs` plus
|
|
330
|
+
// 40 chunks under `assets/`, which `theo.mjs` imports. Netlify zips a directory-shaped function
|
|
331
|
+
// whole, so the chunks travel; a bare `theo.mjs` with a sibling `assets/` loads in `netlify dev`
|
|
332
|
+
// (it reads from disk) and would reach a deploy without them. Vercel already uses a dedicated
|
|
333
|
+
// `functions/api.func` for the same reason.
|
|
334
|
+
outDir: resolve(fnDir, THEO_FUNCTION_NAME),
|
|
335
|
+
entryFileName: `${THEO_FUNCTION_NAME}.mjs`
|
|
336
|
+
});
|
|
234
337
|
writeFile(resolve(cwd, "netlify.toml"), merged);
|
|
235
|
-
console.log(
|
|
338
|
+
console.log(`
|
|
339
|
+
\u2713 Netlify output \u2192 ${THEO_FUNCTIONS_DIR}/${THEO_FUNCTION_NAME}/ + netlify.toml`);
|
|
236
340
|
console.log(
|
|
237
341
|
`${describeDeployedSecurityHeaders({
|
|
238
342
|
target: "netlify",
|
|
@@ -244,6 +348,11 @@ async function buildNetlify(config, cwd, deps = {}, ctx) {
|
|
|
244
348
|
);
|
|
245
349
|
}
|
|
246
350
|
var netlifyAdapter = {
|
|
351
|
+
// B-339 / B-341 / B-343 — measured on the Netlify emulator. Its own bundler turned the raw
|
|
352
|
+
// source into a `ReferenceError`, and re-bundled an already-bundled file into a `SyntaxError`;
|
|
353
|
+
// the toml declares `node_bundler = "none"` so the bundle this adapter produces ships intact.
|
|
354
|
+
readsSourceAtRunTime: false,
|
|
355
|
+
specifiersResolvedBy: "this-adapter",
|
|
247
356
|
name: "netlify",
|
|
248
357
|
streamsResponses: true,
|
|
249
358
|
// #409 / #410 — the generated entry calls `executeRoute` with routes, loader
|
|
@@ -264,9 +373,10 @@ var netlifyAdapter = {
|
|
|
264
373
|
};
|
|
265
374
|
export {
|
|
266
375
|
NetlifyConflictError,
|
|
376
|
+
NetlifyFunctionsConflictError,
|
|
267
377
|
buildNetlify,
|
|
268
378
|
mergeNetlifyToml,
|
|
269
379
|
netlifyAdapter,
|
|
270
380
|
renderNetlifyFunction
|
|
271
381
|
};
|
|
272
|
-
//# sourceMappingURL=netlify-
|
|
382
|
+
//# sourceMappingURL=netlify-ALPCTQFO.js.map
|