theokit 0.48.13 → 0.50.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 +1 -0
- package/dist/{actions-virtual-module-YQXRSSMW.js → actions-virtual-module-5WBVSDOM.js} +22 -12
- package/dist/actions-virtual-module-5WBVSDOM.js.map +1 -0
- package/dist/{actions-virtual-module-LB4NGONI.js → actions-virtual-module-ZYLMNW6K.js} +13 -8
- package/dist/{actions-virtual-module-LB4NGONI.js.map → actions-virtual-module-ZYLMNW6K.js.map} +1 -1
- package/dist/adapters/agent-mount.d.ts +127 -0
- package/dist/adapters/agent-mount.js +24 -0
- package/dist/adapters/security-headers.d.ts +132 -0
- package/dist/adapters/security-headers.js +64 -0
- package/dist/adapters/security-headers.js.map +1 -0
- package/dist/adapters/web-shim.d.ts +100 -13
- package/dist/adapters/web-shim.js +158 -54
- package/dist/adapters/web-shim.js.map +1 -1
- package/dist/agent-GKUEL6OH.js +15 -0
- package/dist/agent-scan-BZa-pagG.d.ts +16 -0
- package/dist/{app-typed-client-GHO3EWZK.js → app-typed-client-4LAIEGFX.js} +23 -13
- package/dist/app-typed-client-4LAIEGFX.js.map +1 -0
- package/dist/{app-typed-client-G3J5G7E5.js → app-typed-client-DQM3Y6YY.js} +14 -9
- package/dist/app-typed-client-DQM3Y6YY.js.map +1 -0
- package/dist/aws-lambda-VKMYUMP2.js +261 -0
- package/dist/aws-lambda-VKMYUMP2.js.map +1 -0
- package/dist/{build-WU6AKKIB.js → build-FLX6VF7Q.js} +71 -26
- package/dist/build-FLX6VF7Q.js.map +1 -0
- package/dist/{bun-33RD6K7O.js → bun-L7PP6ID5.js} +105 -13
- package/dist/bun-L7PP6ID5.js.map +1 -0
- package/dist/{check-45NKUVSQ.js → check-GIPZBFTX.js} +2 -2
- package/dist/{chunk-KD5G3YXI.js → chunk-2AMLGJJA.js} +35 -9
- package/dist/chunk-2AMLGJJA.js.map +1 -0
- package/dist/chunk-3PBAN2YE.js +146 -0
- package/dist/chunk-3PBAN2YE.js.map +1 -0
- package/dist/{chunk-HBU2GIMZ.js → chunk-3QPVEJ7D.js} +15 -9
- package/dist/chunk-3QPVEJ7D.js.map +1 -0
- package/dist/{chunk-47CINLWF.js → chunk-44J2ANQC.js} +2 -2
- package/dist/{chunk-IEES3CHD.js → chunk-47MM2JUK.js} +8 -2
- package/dist/chunk-47MM2JUK.js.map +1 -0
- package/dist/chunk-4X6H2BXP.js +108 -0
- package/dist/chunk-4X6H2BXP.js.map +1 -0
- package/dist/{chunk-A7JBF5FO.js → chunk-5K4TDLRG.js} +8 -5
- package/dist/chunk-5K4TDLRG.js.map +1 -0
- package/dist/chunk-5YPXXSYY.js +181 -0
- package/dist/chunk-5YPXXSYY.js.map +1 -0
- package/dist/{chunk-YGAXV5HR.js → chunk-6J4JWHDJ.js} +191 -112
- package/dist/chunk-6J4JWHDJ.js.map +1 -0
- package/dist/chunk-72DMJBXI.js +424 -0
- package/dist/chunk-72DMJBXI.js.map +1 -0
- package/dist/chunk-7PM6K5EV.js +513 -0
- package/dist/chunk-7PM6K5EV.js.map +1 -0
- package/dist/{chunk-MTEWLGVY.js → chunk-BPYMC7SU.js} +4 -48
- package/dist/chunk-BPYMC7SU.js.map +1 -0
- package/dist/chunk-BU6RJPPJ.js +421 -0
- package/dist/chunk-BU6RJPPJ.js.map +1 -0
- package/dist/{chunk-FB2HBNIC.js → chunk-BX6EUYHU.js} +6 -2
- package/dist/chunk-BX6EUYHU.js.map +1 -0
- package/dist/{chunk-BIVCP6X5.js → chunk-C62IZEJI.js} +465 -202
- package/dist/chunk-C62IZEJI.js.map +1 -0
- package/dist/chunk-D4VP2QPR.js +16 -0
- package/dist/chunk-D4VP2QPR.js.map +1 -0
- package/dist/{chunk-J5MXCGKA.js → chunk-DHAD2O3S.js} +6 -6
- package/dist/chunk-DHAD2O3S.js.map +1 -0
- package/dist/chunk-E43VJ3E5.js +188 -0
- package/dist/chunk-E43VJ3E5.js.map +1 -0
- package/dist/chunk-EVZKNA2W.js +110 -0
- package/dist/chunk-EVZKNA2W.js.map +1 -0
- package/dist/chunk-FD4ZDTQ6.js +181 -0
- package/dist/chunk-FD4ZDTQ6.js.map +1 -0
- package/dist/chunk-FDOOBTXJ.js +17 -0
- package/dist/chunk-FDOOBTXJ.js.map +1 -0
- package/dist/chunk-FH3SQR6P.js +275 -0
- package/dist/chunk-FH3SQR6P.js.map +1 -0
- package/dist/chunk-HJHGTFEJ.js +23 -0
- package/dist/chunk-HJHGTFEJ.js.map +1 -0
- package/dist/{chunk-LXAESF4Y.js → chunk-HK4AZBKX.js} +7 -4
- package/dist/chunk-HK4AZBKX.js.map +1 -0
- package/dist/{chunk-T5C46IIU.js → chunk-HWBRS4DZ.js} +28 -269
- package/dist/chunk-HWBRS4DZ.js.map +1 -0
- package/dist/chunk-IRQGAC4L.js +52 -0
- package/dist/chunk-IRQGAC4L.js.map +1 -0
- package/dist/{chunk-FNTLKHZ7.js → chunk-JDN5SAAD.js} +7 -4
- package/dist/chunk-JDN5SAAD.js.map +1 -0
- package/dist/{chunk-GXEX4CBH.js → chunk-JIKNR5LX.js} +673 -484
- package/dist/chunk-JIKNR5LX.js.map +1 -0
- package/dist/{chunk-GRI4XHBJ.js → chunk-JWRCZIA4.js} +266 -108
- package/dist/chunk-JWRCZIA4.js.map +1 -0
- package/dist/{chunk-E576KYYT.js → chunk-KI4DOTN4.js} +25 -2
- package/dist/chunk-KI4DOTN4.js.map +1 -0
- package/dist/{chunk-ZB7D62OA.js → chunk-KUZVRJ7M.js} +3 -3
- package/dist/chunk-L4VFNFDL.js +248 -0
- package/dist/chunk-L4VFNFDL.js.map +1 -0
- package/dist/chunk-M2WC5MF7.js +127 -0
- package/dist/chunk-M2WC5MF7.js.map +1 -0
- package/dist/{chunk-O3JIAU3V.js → chunk-MCTC6HSE.js} +157 -103
- package/dist/chunk-MCTC6HSE.js.map +1 -0
- package/dist/{chunk-PXFXSFJL.js → chunk-NZ5JU6D3.js} +9 -9
- package/dist/{chunk-YRBR424R.js → chunk-OAUI273L.js} +338 -165
- package/dist/chunk-OAUI273L.js.map +1 -0
- package/dist/chunk-OGLS76RN.js +43 -0
- package/dist/chunk-OGLS76RN.js.map +1 -0
- package/dist/{chunk-7LVM22VG.js → chunk-OQCRCXCP.js} +6 -6
- package/dist/chunk-OQCRCXCP.js.map +1 -0
- package/dist/{chunk-OLGPYOLO.js → chunk-P6OS7652.js} +5 -2
- package/dist/chunk-P6OS7652.js.map +1 -0
- package/dist/chunk-Q5L5EGWZ.js +26 -0
- package/dist/chunk-Q5L5EGWZ.js.map +1 -0
- package/dist/{chunk-S433N3CT.js → chunk-QTHVHNJJ.js} +6 -36
- package/dist/chunk-QTHVHNJJ.js.map +1 -0
- package/dist/chunk-RPET332G.js +84 -0
- package/dist/chunk-RPET332G.js.map +1 -0
- package/dist/{chunk-646CA6RV.js → chunk-RQW5YMH7.js} +12 -4
- package/dist/chunk-RQW5YMH7.js.map +1 -0
- package/dist/{chunk-XALU5LCU.js → chunk-RWNYIU6A.js} +550 -146
- package/dist/chunk-RWNYIU6A.js.map +1 -0
- package/dist/chunk-SL7YUHPV.js +111 -0
- package/dist/chunk-SL7YUHPV.js.map +1 -0
- package/dist/chunk-U5PWXS3J.js +39 -0
- package/dist/chunk-U5PWXS3J.js.map +1 -0
- package/dist/chunk-ULDCFL2O.js +273 -0
- package/dist/chunk-ULDCFL2O.js.map +1 -0
- package/dist/{chunk-RWNSW4FM.js → chunk-UMNXCU3K.js} +12 -6
- package/dist/{chunk-RWNSW4FM.js.map → chunk-UMNXCU3K.js.map} +1 -1
- package/dist/chunk-VI7ZANB3.js +193 -0
- package/dist/chunk-VI7ZANB3.js.map +1 -0
- package/dist/chunk-VQPHPQ5L.js +14 -0
- package/dist/chunk-VQPHPQ5L.js.map +1 -0
- package/dist/chunk-WNJTJRM6.js +147 -0
- package/dist/chunk-WNJTJRM6.js.map +1 -0
- package/dist/chunk-WOBSEO75.js +790 -0
- package/dist/chunk-WOBSEO75.js.map +1 -0
- package/dist/{chunk-BMHS4WAN.js → chunk-XS7EX55U.js} +156 -42
- package/dist/chunk-XS7EX55U.js.map +1 -0
- package/dist/chunk-YN4W7LCX.js +31 -0
- package/dist/chunk-YN4W7LCX.js.map +1 -0
- package/dist/chunk-YSJOZEI6.js +1 -0
- package/dist/{chunk-JA2ZAT5Q.js → chunk-Z4PJMZLM.js} +2 -2
- package/dist/chunk-Z4PJMZLM.js.map +1 -0
- package/dist/{chunk-7VPQHEAJ.js → chunk-ZNZISJDZ.js} +6 -2
- package/dist/chunk-ZNZISJDZ.js.map +1 -0
- package/dist/chunk-ZWN3AODA.js +11 -0
- package/dist/chunk-ZWN3AODA.js.map +1 -0
- package/dist/cli/index.js +25 -10
- package/dist/cli/index.js.map +1 -1
- package/dist/client/core.d.ts +1 -1
- package/dist/client/core.js +2 -0
- package/dist/client/core.js.map +1 -1
- package/dist/client/index.d.ts +44 -10
- package/dist/client/index.js +35 -0
- package/dist/client/index.js.map +1 -1
- package/dist/cloudflare-SIG42OIW.js +335 -0
- package/dist/cloudflare-SIG42OIW.js.map +1 -0
- package/dist/config-support-WQHQIJTA.js +104 -0
- package/dist/config-support-WQHQIJTA.js.map +1 -0
- package/dist/{csrf-BBrEZSBW.d.ts → csrf-Dgot9qSM.d.ts} +1 -1
- package/dist/deno-deploy-LQAYOOPW.js +196 -0
- package/dist/deno-deploy-LQAYOOPW.js.map +1 -0
- package/dist/{dev-MUWJAZRD.js → dev-ANDSEVLB.js} +28 -18
- package/dist/dev-ANDSEVLB.js.map +1 -0
- package/dist/{dev-emit-GWD6IXV7.js → dev-emit-BFNMDCPB.js} +5 -5
- package/dist/{dev-emit-NBT6JD7R.js → dev-emit-MVAJAFGX.js} +5 -3
- package/dist/dev-emit-MVAJAFGX.js.map +1 -0
- package/dist/engine-singleton-X4R7AZBJ.js +315 -0
- package/dist/engine-singleton-X4R7AZBJ.js.map +1 -0
- package/dist/{generate-Y3GWM57K.js → generate-EN6EDITF.js} +43 -4
- package/dist/generate-EN6EDITF.js.map +1 -0
- package/dist/index-CzxtQcnp.d.ts +1058 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +24 -13
- package/dist/index.js.map +1 -1
- package/dist/{info-XW7HGUPH.js → info-Y55RWS42.js} +8 -6
- package/dist/{info-XW7HGUPH.js.map → info-Y55RWS42.js.map} +1 -1
- package/dist/{internal-api-V5L65YSJ.js → internal-api-IP35YU3G.js} +22 -12
- package/dist/{internal-api-WEOSTMSN.js → internal-api-OPU456AT.js} +30 -16
- package/dist/internal-api-OPU456AT.js.map +1 -0
- package/dist/load-config-4ATXQUN3.js +16 -0
- package/dist/match-DmGgxjIU.d.ts +44 -0
- package/dist/{mcp-ULUFJNSZ.js → mcp-5LLNAGKA.js} +7 -7
- package/dist/netlify-C2IRCZKI.js +245 -0
- package/dist/netlify-C2IRCZKI.js.map +1 -0
- package/dist/node-OSVPYQ3D.js +10 -0
- package/dist/nonce-BXt7Qu_C.d.ts +31 -0
- package/dist/observability-bootstrap-MZMSOE66.js +15 -0
- package/dist/{openapi-HZXR335W.js → openapi-VFPEZSRI.js} +13 -11
- package/dist/{openapi-HZXR335W.js.map → openapi-VFPEZSRI.js.map} +1 -1
- package/dist/{plugin-runner-BFEcgtmJ.d.ts → plugin-runner-BVMOSxvb.d.ts} +1 -1
- package/dist/{plugin-types-D69-lJZ9.d.ts → plugin-types-BUVfUQ0V.d.ts} +13 -1
- package/dist/preview-GHPT2EQ5.js +23 -0
- package/dist/preview-GHPT2EQ5.js.map +1 -0
- package/dist/provider-resolver-Dx6QuWrw.d.ts +128 -0
- package/dist/registry-KBZDCFVQ.js +23 -0
- package/dist/route-config-Cm_ZMA1C.d.ts +72 -0
- package/dist/route-policy-BxOycCDq.d.ts +65 -0
- package/dist/router/element-scroll-restoration.d.ts +28 -0
- package/dist/router/element-scroll-restoration.js +96 -0
- package/dist/router/element-scroll-restoration.js.map +1 -0
- package/dist/{routes-OLNQX7CT.js → routes-BPLU3ISV.js} +11 -9
- package/dist/{routes-OLNQX7CT.js.map → routes-BPLU3ISV.js.map} +1 -1
- package/dist/{scan-7MJC6PYU.js → scan-YJEE4KQK.js} +2 -2
- package/dist/{schema-ZO3OSWVG.js → schema-SOAD43RQ.js} +7 -5
- package/dist/schemas-4AXHQMV3.js +25 -0
- package/dist/schemas-4AXHQMV3.js.map +1 -0
- package/dist/security-headers-Ccj7ncNx.d.ts +129 -0
- package/dist/server/agent/index.d.ts +2 -90
- package/dist/server/agent/index.js +1 -1
- package/dist/server/auth/index.d.ts +2 -21
- package/dist/server/auth/index.js +3 -2
- package/dist/server/cron/index.js +4 -3
- package/dist/server/define/index.d.ts +51 -57
- package/dist/server/define/index.js +10 -1
- package/dist/server/http/index.d.ts +7 -5
- package/dist/server/http/index.js +56 -12
- package/dist/server/index.d.ts +47 -439
- package/dist/server/index.js +119 -201
- package/dist/server/index.js.map +1 -1
- package/dist/server/jobs/index.js +4 -3
- package/dist/server/observability/index.d.ts +109 -35
- package/dist/server/observability/index.js +10 -7
- package/dist/server/plugins/index.d.ts +3 -3
- package/dist/server/scan/index.d.ts +47 -12
- package/dist/server/scan/index.js +13 -4
- package/dist/server/security/index.d.ts +61 -103
- package/dist/server/security/index.js +15 -6
- package/dist/server/webhook/index.d.ts +90 -3
- package/dist/server/webhook/index.js +12 -2
- package/dist/server-boundary-6B4ZQUY7.js +148 -0
- package/dist/server-boundary-6B4ZQUY7.js.map +1 -0
- package/dist/server-boundary-7VZQRPPX.js +133 -0
- package/dist/server-boundary-7VZQRPPX.js.map +1 -0
- package/dist/{services-typed-client-PSAGRPFF.js → services-typed-client-XGT5SUUN.js} +2 -2
- package/dist/{start-KR2JJR7K.js → start-UZDMOT7I.js} +342 -111
- package/dist/start-UZDMOT7I.js.map +1 -0
- package/dist/{static-M2W4HUWS.js → static-SVDWIOXJ.js} +24 -13
- package/dist/static-SVDWIOXJ.js.map +1 -0
- package/dist/{theo-cloud-XAHWOUFK.js → theo-cloud-3ET4G5T6.js} +9 -2
- package/dist/theo-cloud-3ET4G5T6.js.map +1 -0
- package/dist/vercel-BMCQKCWE.js +277 -0
- package/dist/vercel-BMCQKCWE.js.map +1 -0
- package/dist/vite-plugin/index.js +24 -13
- package/dist/vite-plugin-VKCT2LF2.js +42 -0
- package/dist/vite-plugin-VKCT2LF2.js.map +1 -0
- package/package.json +19 -6
- package/dist/actions-virtual-module-YQXRSSMW.js.map +0 -1
- package/dist/agent-7JJW3TPB.js +0 -15
- package/dist/app-typed-client-G3J5G7E5.js.map +0 -1
- package/dist/app-typed-client-GHO3EWZK.js.map +0 -1
- package/dist/aws-lambda-CYNDGU5O.js +0 -172
- package/dist/aws-lambda-CYNDGU5O.js.map +0 -1
- package/dist/build-WU6AKKIB.js.map +0 -1
- package/dist/bun-33RD6K7O.js.map +0 -1
- package/dist/chunk-646CA6RV.js.map +0 -1
- package/dist/chunk-6E5WKMDS.js +0 -67
- package/dist/chunk-6E5WKMDS.js.map +0 -1
- package/dist/chunk-6GGWS7J3.js +0 -91
- package/dist/chunk-6GGWS7J3.js.map +0 -1
- package/dist/chunk-7LVM22VG.js.map +0 -1
- package/dist/chunk-7VPQHEAJ.js.map +0 -1
- package/dist/chunk-A7JBF5FO.js.map +0 -1
- package/dist/chunk-AM3QABW5.js +0 -161
- package/dist/chunk-AM3QABW5.js.map +0 -1
- package/dist/chunk-BIVCP6X5.js.map +0 -1
- package/dist/chunk-BMHS4WAN.js.map +0 -1
- package/dist/chunk-E576KYYT.js.map +0 -1
- package/dist/chunk-FB2HBNIC.js.map +0 -1
- package/dist/chunk-FNTLKHZ7.js.map +0 -1
- package/dist/chunk-GRI4XHBJ.js.map +0 -1
- package/dist/chunk-GVW5EKEU.js +0 -422
- package/dist/chunk-GVW5EKEU.js.map +0 -1
- package/dist/chunk-GXEX4CBH.js.map +0 -1
- package/dist/chunk-HBU2GIMZ.js.map +0 -1
- package/dist/chunk-IEES3CHD.js.map +0 -1
- package/dist/chunk-J5MXCGKA.js.map +0 -1
- package/dist/chunk-JA2ZAT5Q.js.map +0 -1
- package/dist/chunk-KD5G3YXI.js.map +0 -1
- package/dist/chunk-LNVMHQ2Z.js +0 -54
- package/dist/chunk-LNVMHQ2Z.js.map +0 -1
- package/dist/chunk-LXAESF4Y.js.map +0 -1
- package/dist/chunk-MTEWLGVY.js.map +0 -1
- package/dist/chunk-O3JIAU3V.js.map +0 -1
- package/dist/chunk-OJLL4YD6.js +0 -403
- package/dist/chunk-OJLL4YD6.js.map +0 -1
- package/dist/chunk-OLGPYOLO.js.map +0 -1
- package/dist/chunk-S433N3CT.js.map +0 -1
- package/dist/chunk-T5C46IIU.js.map +0 -1
- package/dist/chunk-U267AOWS.js +0 -28
- package/dist/chunk-U267AOWS.js.map +0 -1
- package/dist/chunk-UW2TEAGR.js +0 -77
- package/dist/chunk-UW2TEAGR.js.map +0 -1
- package/dist/chunk-WPJOTQA5.js +0 -1
- package/dist/chunk-XALU5LCU.js.map +0 -1
- package/dist/chunk-XR74JD4M.js +0 -457
- package/dist/chunk-XR74JD4M.js.map +0 -1
- package/dist/chunk-YGAXV5HR.js.map +0 -1
- package/dist/chunk-YRBR424R.js.map +0 -1
- package/dist/cloudflare-KYUWCEPL.js +0 -122
- package/dist/cloudflare-KYUWCEPL.js.map +0 -1
- package/dist/deno-deploy-CCTB7HGS.js +0 -107
- package/dist/deno-deploy-CCTB7HGS.js.map +0 -1
- package/dist/dev-MUWJAZRD.js.map +0 -1
- package/dist/dev-emit-NBT6JD7R.js.map +0 -1
- package/dist/generate-Y3GWM57K.js.map +0 -1
- package/dist/index-BEtEv6ZH.d.ts +0 -575
- package/dist/load-config-VKD6LKWU.js +0 -14
- package/dist/match-CfbEFRG4.d.ts +0 -26
- package/dist/netlify-AFMDNKT4.js +0 -150
- package/dist/netlify-AFMDNKT4.js.map +0 -1
- package/dist/node-ZJQEJSP3.js +0 -10
- package/dist/registry-GKR3EWRW.js +0 -23
- package/dist/start-KR2JJR7K.js.map +0 -1
- package/dist/static-M2W4HUWS.js.map +0 -1
- package/dist/theo-cloud-XAHWOUFK.js.map +0 -1
- package/dist/vercel-SRS2DH6O.js +0 -133
- package/dist/vercel-SRS2DH6O.js.map +0 -1
- package/dist/vite-plugin-VPJFD4HK.js +0 -36
- /package/dist/{chunk-WPJOTQA5.js.map → adapters/agent-mount.js.map} +0 -0
- /package/dist/{agent-7JJW3TPB.js.map → agent-GKUEL6OH.js.map} +0 -0
- /package/dist/{check-45NKUVSQ.js.map → check-GIPZBFTX.js.map} +0 -0
- /package/dist/{chunk-47CINLWF.js.map → chunk-44J2ANQC.js.map} +0 -0
- /package/dist/{chunk-ZB7D62OA.js.map → chunk-KUZVRJ7M.js.map} +0 -0
- /package/dist/{chunk-PXFXSFJL.js.map → chunk-NZ5JU6D3.js.map} +0 -0
- /package/dist/{internal-api-WEOSTMSN.js.map → chunk-YSJOZEI6.js.map} +0 -0
- /package/dist/{dev-emit-GWD6IXV7.js.map → dev-emit-BFNMDCPB.js.map} +0 -0
- /package/dist/{internal-api-V5L65YSJ.js.map → internal-api-IP35YU3G.js.map} +0 -0
- /package/dist/{load-config-VKD6LKWU.js.map → load-config-4ATXQUN3.js.map} +0 -0
- /package/dist/{mcp-ULUFJNSZ.js.map → mcp-5LLNAGKA.js.map} +0 -0
- /package/dist/{node-ZJQEJSP3.js.map → node-OSVPYQ3D.js.map} +0 -0
- /package/dist/{scan-7MJC6PYU.js.map → observability-bootstrap-MZMSOE66.js.map} +0 -0
- /package/dist/{registry-GKR3EWRW.js.map → registry-KBZDCFVQ.js.map} +0 -0
- /package/dist/{schema-ZO3OSWVG.js.map → scan-YJEE4KQK.js.map} +0 -0
- /package/dist/{vite-plugin-VPJFD4HK.js.map → schema-SOAD43RQ.js.map} +0 -0
- /package/dist/{services-typed-client-PSAGRPFF.js.map → services-typed-client-XGT5SUUN.js.map} +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -183,6 +183,10 @@ declare const theoConfigSchema: z.ZodObject<{
|
|
|
183
183
|
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
184
184
|
}, z.core.$strip>>>;
|
|
185
185
|
}, z.core.$strip>>;
|
|
186
|
+
observability: z.ZodOptional<z.ZodObject<{
|
|
187
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
188
|
+
provider: z.ZodOptional<z.ZodCustom<unknown, unknown>>;
|
|
189
|
+
}, z.core.$strip>>;
|
|
186
190
|
devtools: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodObject<{
|
|
187
191
|
position: z.ZodOptional<z.ZodEnum<{
|
|
188
192
|
"top-left": "top-left";
|
package/dist/index.js
CHANGED
|
@@ -8,31 +8,42 @@ import {
|
|
|
8
8
|
scanRoutes,
|
|
9
9
|
theoConfigSchema,
|
|
10
10
|
theoPlugin
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-JIKNR5LX.js";
|
|
12
|
+
import "./chunk-VQPHPQ5L.js";
|
|
12
13
|
import "./chunk-SSYDEKWF.js";
|
|
14
|
+
import "./chunk-SL7YUHPV.js";
|
|
13
15
|
import "./chunk-OIGJOYX6.js";
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-WOBSEO75.js";
|
|
17
|
+
import "./chunk-4X6H2BXP.js";
|
|
18
|
+
import "./chunk-OGLS76RN.js";
|
|
19
|
+
import "./chunk-RWNYIU6A.js";
|
|
17
20
|
import "./chunk-47FFT43U.js";
|
|
18
21
|
import "./chunk-NTDN54XO.js";
|
|
19
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-MCTC6HSE.js";
|
|
23
|
+
import "./chunk-72DMJBXI.js";
|
|
20
24
|
import "./chunk-VSLTKX5L.js";
|
|
21
25
|
import "./chunk-TNI4MARH.js";
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
26
|
+
import "./chunk-OQCRCXCP.js";
|
|
27
|
+
import "./chunk-6J4JWHDJ.js";
|
|
24
28
|
import "./chunk-DV34VG3N.js";
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
29
|
+
import "./chunk-L4VFNFDL.js";
|
|
30
|
+
import "./chunk-BX6EUYHU.js";
|
|
31
|
+
import "./chunk-BPYMC7SU.js";
|
|
32
|
+
import "./chunk-IRQGAC4L.js";
|
|
33
|
+
import "./chunk-P6OS7652.js";
|
|
28
34
|
import "./chunk-AVQU5CQF.js";
|
|
29
35
|
import "./chunk-ACKBVBUI.js";
|
|
30
36
|
import "./chunk-IZ3TIL6K.js";
|
|
31
37
|
import "./chunk-YOIVCCZT.js";
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-
|
|
38
|
+
import "./chunk-3PBAN2YE.js";
|
|
39
|
+
import "./chunk-YSJOZEI6.js";
|
|
40
|
+
import "./chunk-Z4PJMZLM.js";
|
|
41
|
+
import "./chunk-UMNXCU3K.js";
|
|
34
42
|
import "./chunk-52PDWL5S.js";
|
|
35
|
-
import "./chunk-
|
|
43
|
+
import "./chunk-5K4TDLRG.js";
|
|
44
|
+
import "./chunk-ZWN3AODA.js";
|
|
45
|
+
import "./chunk-D4VP2QPR.js";
|
|
46
|
+
import "./chunk-YN4W7LCX.js";
|
|
36
47
|
import "./chunk-XTHN6JBX.js";
|
|
37
48
|
|
|
38
49
|
// src/config/define-config.ts
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/config/define-config.ts","../src/config/config-builder.ts","../src/config/validate-structure.ts","../src/core/errors.ts"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/config/define-config.ts","../src/config/config-builder.ts","../src/config/validate-structure.ts","../src/core/errors.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,SAAS,aAAaA,SAAkD;AAC7E,SAAOA;AACT;;;ACiCA,SAAS,kBAAkB,MAA0C;AACnE,QAAM,QAAQ,CAAC,UACb,kBAAkB,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC;AACzC,SAAO;AAAA,IACL,MAAM,CAAC,UAAU,MAAM,EAAE,MAAM,MAAM,CAAC;AAAA,IACtC,WAAW,CAAC,UAAU,MAAM,EAAE,WAAW,MAAM,CAAC;AAAA,IAChD,QAAQ,CAAC,UAAU,MAAM,EAAE,QAAQ,MAAM,CAAC;AAAA,IAC1C,WAAW,CAAC,UAAU,MAAM,EAAE,WAAW,MAAM,CAAC;AAAA,IAChD,SAAS,CAAC,UAAU,MAAM,EAAE,SAAS,MAAM,CAAC;AAAA,IAC5C,MAAM,CAAC,UAAU,MAAM,EAAE,MAAM,MAAM,CAAC;AAAA,IACtC,MAAM,CAAC,UAAU,MAAM,EAAE,MAAM,MAAM,CAAC;AAAA,IACtC,KAAK,CAAC,UAAU,MAAM,EAAE,KAAK,MAAM,CAAC;AAAA,IACpC,KAAK,CAAC,YAAY,MAAM,OAAO;AAAA,IAC/B,OAAO,MAAM,aAAa,IAAI;AAAA,EAChC;AACF;AAKO,SAAS,SAAwB;AACtC,SAAO,kBAAkB,CAAC,CAAC;AAC7B;;;AC5DA,SAAS,kBAAkB;AAC3B,SAAS,YAAY;;;ACLd,IAAM,mBAAN,cAA+B,MAAM;AAAA,EAC1B;AAAA,EACA;AAAA,EAEhB,YAAY,QAAkB,SAAiB;AAC7C,UAAM,aAAa,OAAO,IAAI,CAAC,MAAM,OAAO,CAAC,EAAE,EAAE,KAAK,IAAI;AAE1D;AAAA,MACE;AAAA;AAAA,UACa,OAAO;AAAA;AAAA,KACjB,aAAa;AAAA,EAAc,UAAU;AAAA,IAAO;AAAA,IACjD;AAEA,SAAK,OAAO;AACZ,SAAK,SAAS;AACd,SAAK,UAAU;AAAA,EACjB;AACF;;;ADHA,IAAM,iBAAmC;AAAA,EACvC;AAAA,IACE,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AACF;AAIO,SAAS,yBAAyB,SAAiB,SAAS,OAAa;AAC9E,MAAI,CAAC,WAAW,OAAO,GAAG;AACxB,UAAM,IAAI,iBAAiB,CAAC,qCAAqC,OAAO,EAAE,GAAG,OAAO;AAAA,EACtF;AAEA,QAAM,SAAmB,CAAC;AAE1B,QAAM,eAAiC;AAAA,IACrC,EAAE,MAAM,QAAQ,cAAc,+BAA+B,MAAM,IAAI;AAAA,EACzE;AAEA,aAAW,QAAQ,cAAc;AAC/B,QAAI,CAAC,WAAW,KAAK,SAAS,KAAK,IAAI,CAAC,GAAG;AACzC,aAAO,KAAK,KAAK,YAAY;AAAA,IAC/B;AAAA,EACF;AAEA,aAAW,QAAQ,gBAAgB;AACjC,QAAI,CAAC,WAAW,KAAK,SAAS,KAAK,IAAI,CAAC,GAAG;AACzC,aAAO,KAAK,KAAK,YAAY;AAAA,IAC/B;AAAA,EACF;AAEA,MAAI,OAAO,SAAS,GAAG;AACrB,UAAM,IAAI,iBAAiB,QAAQ,OAAO;AAAA,EAC5C;AACF;","names":["config"]}
|
|
@@ -2,13 +2,15 @@
|
|
|
2
2
|
import "tsx/esm";
|
|
3
3
|
import {
|
|
4
4
|
scanRoutes
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-47MM2JUK.js";
|
|
6
6
|
import {
|
|
7
7
|
loadConfig
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-QTHVHNJJ.js";
|
|
9
|
+
import "./chunk-3QPVEJ7D.js";
|
|
10
|
+
import "./chunk-U5PWXS3J.js";
|
|
11
|
+
import "./chunk-FH3SQR6P.js";
|
|
12
|
+
import "./chunk-ZNZISJDZ.js";
|
|
13
|
+
import "./chunk-VI7ZANB3.js";
|
|
12
14
|
|
|
13
15
|
// src/cli/commands/info.ts
|
|
14
16
|
import { existsSync, readFileSync } from "fs";
|
|
@@ -101,4 +103,4 @@ export {
|
|
|
101
103
|
buildInfo,
|
|
102
104
|
infoCommand
|
|
103
105
|
};
|
|
104
|
-
//# sourceMappingURL=info-
|
|
106
|
+
//# sourceMappingURL=info-Y55RWS42.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/commands/info.ts"],"sourcesContent":["import { existsSync, readFileSync } from 'node:fs'\nimport { resolve } from 'node:path'\n\nimport { loadConfig } from '../../config/load-config.js'\nimport { scanRoutes } from '../../router/scan.js'\n\ninterface RuntimeInfo {\n name: 'node' | 'bun' | 'deno' | 'unknown'\n version: string\n}\n\ninterface PackageJsonMinimal {\n name?: string\n version?: string\n}\n\ninterface ConfigSummary {\n ok: boolean\n summary: string\n}\n\ninterface BuildInfoDeps {\n cwd: string\n readPackageJson?: () => PackageJsonMinimal | null\n detectRuntime?: () => RuntimeInfo\n loadConfig?: () => Promise<ConfigSummary>\n countRoutes?: () => number\n}\n\nfunction defaultDetectRuntime(): RuntimeInfo {\n const g = globalThis as { Bun?: { version: string }; Deno?: { version: { deno: string } } }\n if (g.Bun?.version) {\n return { name: 'bun', version: g.Bun.version }\n }\n if (g.Deno?.version) {\n return { name: 'deno', version: g.Deno.version.deno }\n }\n if (typeof process !== 'undefined' && process.versions.node) {\n return { name: 'node', version: process.versions.node }\n }\n return { name: 'unknown', version: '?' }\n}\n\nfunction defaultReadPackageJson(cwd: string): PackageJsonMinimal | null {\n const path = resolve(cwd, 'package.json')\n if (!existsSync(path)) return null\n try {\n const raw = readFileSync(path, 'utf-8')\n const parsed = JSON.parse(raw) as PackageJsonMinimal\n return parsed\n } catch {\n return null\n }\n}\n\nasync function defaultLoadConfig(cwd: string): Promise<ConfigSummary> {\n try {\n await loadConfig(cwd)\n return { ok: true, summary: 'config OK' }\n } catch (err) {\n return { ok: false, summary: (err as Error).message }\n }\n}\n\nfunction defaultCountRoutes(cwd: string): number {\n const appDir = resolve(cwd, 'app')\n if (!existsSync(appDir)) return 0\n const tree = scanRoutes(appDir)\n let count = 0\n function walk(node: { page?: string; children: { page?: string; children: unknown[] }[] }): void {\n if (node.page) count++\n for (const child of node.children) walk(child as never)\n }\n walk(tree)\n return count\n}\n\nexport async function buildInfo(deps: BuildInfoDeps): Promise<string> {\n const cwd = deps.cwd\n const readPkg = deps.readPackageJson ?? (() => defaultReadPackageJson(cwd))\n const runtime = (deps.detectRuntime ?? defaultDetectRuntime)()\n const loadCfg = deps.loadConfig ?? (() => defaultLoadConfig(cwd))\n const countRts = deps.countRoutes ?? (() => defaultCountRoutes(cwd))\n\n const pkg = readPkg()\n const config = await loadCfg()\n\n let routesCount = 0\n let scanError: string | null = null\n try {\n routesCount = countRts()\n } catch (err) {\n scanError = (err as Error).message\n }\n\n const projectLine = pkg?.name ? `${pkg.name}@${pkg.version ?? '?'}` : '(missing)'\n\n const configLine = config.ok ? 'OK' : `INVALID — ${config.summary}`\n\n const routesLine = scanError ? `Scan failed: ${scanError}` : `Routes: ${routesCount}`\n\n return [\n `# Theo info`,\n ``,\n `## Project`,\n `Project: ${projectLine}`,\n ``,\n `## Runtime`,\n `${runtime.name} ${runtime.version}`,\n ``,\n `## Config`,\n `Config: ${configLine}`,\n ``,\n `## App`,\n routesLine,\n ``,\n ].join('\\n')\n}\n\nexport async function infoCommand(): Promise<void> {\n const cwd = process.cwd()\n const output = await buildInfo({ cwd })\n console.log(output)\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/cli/commands/info.ts"],"sourcesContent":["import { existsSync, readFileSync } from 'node:fs'\nimport { resolve } from 'node:path'\n\nimport { loadConfig } from '../../config/load-config.js'\nimport { scanRoutes } from '../../router/scan.js'\n\ninterface RuntimeInfo {\n name: 'node' | 'bun' | 'deno' | 'unknown'\n version: string\n}\n\ninterface PackageJsonMinimal {\n name?: string\n version?: string\n}\n\ninterface ConfigSummary {\n ok: boolean\n summary: string\n}\n\ninterface BuildInfoDeps {\n cwd: string\n readPackageJson?: () => PackageJsonMinimal | null\n detectRuntime?: () => RuntimeInfo\n loadConfig?: () => Promise<ConfigSummary>\n countRoutes?: () => number\n}\n\nfunction defaultDetectRuntime(): RuntimeInfo {\n const g = globalThis as { Bun?: { version: string }; Deno?: { version: { deno: string } } }\n if (g.Bun?.version) {\n return { name: 'bun', version: g.Bun.version }\n }\n if (g.Deno?.version) {\n return { name: 'deno', version: g.Deno.version.deno }\n }\n if (typeof process !== 'undefined' && process.versions.node) {\n return { name: 'node', version: process.versions.node }\n }\n return { name: 'unknown', version: '?' }\n}\n\nfunction defaultReadPackageJson(cwd: string): PackageJsonMinimal | null {\n const path = resolve(cwd, 'package.json')\n if (!existsSync(path)) return null\n try {\n const raw = readFileSync(path, 'utf-8')\n const parsed = JSON.parse(raw) as PackageJsonMinimal\n return parsed\n } catch {\n return null\n }\n}\n\nasync function defaultLoadConfig(cwd: string): Promise<ConfigSummary> {\n try {\n await loadConfig(cwd)\n return { ok: true, summary: 'config OK' }\n } catch (err) {\n return { ok: false, summary: (err as Error).message }\n }\n}\n\nfunction defaultCountRoutes(cwd: string): number {\n const appDir = resolve(cwd, 'app')\n if (!existsSync(appDir)) return 0\n const tree = scanRoutes(appDir)\n let count = 0\n function walk(node: { page?: string; children: { page?: string; children: unknown[] }[] }): void {\n if (node.page) count++\n for (const child of node.children) walk(child as never)\n }\n walk(tree)\n return count\n}\n\nexport async function buildInfo(deps: BuildInfoDeps): Promise<string> {\n const cwd = deps.cwd\n const readPkg = deps.readPackageJson ?? (() => defaultReadPackageJson(cwd))\n const runtime = (deps.detectRuntime ?? defaultDetectRuntime)()\n const loadCfg = deps.loadConfig ?? (() => defaultLoadConfig(cwd))\n const countRts = deps.countRoutes ?? (() => defaultCountRoutes(cwd))\n\n const pkg = readPkg()\n const config = await loadCfg()\n\n let routesCount = 0\n let scanError: string | null = null\n try {\n routesCount = countRts()\n } catch (err) {\n scanError = (err as Error).message\n }\n\n const projectLine = pkg?.name ? `${pkg.name}@${pkg.version ?? '?'}` : '(missing)'\n\n const configLine = config.ok ? 'OK' : `INVALID — ${config.summary}`\n\n const routesLine = scanError ? `Scan failed: ${scanError}` : `Routes: ${routesCount}`\n\n return [\n `# Theo info`,\n ``,\n `## Project`,\n `Project: ${projectLine}`,\n ``,\n `## Runtime`,\n `${runtime.name} ${runtime.version}`,\n ``,\n `## Config`,\n `Config: ${configLine}`,\n ``,\n `## App`,\n routesLine,\n ``,\n ].join('\\n')\n}\n\nexport async function infoCommand(): Promise<void> {\n const cwd = process.cwd()\n const output = await buildInfo({ cwd })\n console.log(output)\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA,SAAS,YAAY,oBAAoB;AACzC,SAAS,eAAe;AA4BxB,SAAS,uBAAoC;AAC3C,QAAM,IAAI;AACV,MAAI,EAAE,KAAK,SAAS;AAClB,WAAO,EAAE,MAAM,OAAO,SAAS,EAAE,IAAI,QAAQ;AAAA,EAC/C;AACA,MAAI,EAAE,MAAM,SAAS;AACnB,WAAO,EAAE,MAAM,QAAQ,SAAS,EAAE,KAAK,QAAQ,KAAK;AAAA,EACtD;AACA,MAAI,OAAO,YAAY,eAAe,QAAQ,SAAS,MAAM;AAC3D,WAAO,EAAE,MAAM,QAAQ,SAAS,QAAQ,SAAS,KAAK;AAAA,EACxD;AACA,SAAO,EAAE,MAAM,WAAW,SAAS,IAAI;AACzC;AAEA,SAAS,uBAAuB,KAAwC;AACtE,QAAM,OAAO,QAAQ,KAAK,cAAc;AACxC,MAAI,CAAC,WAAW,IAAI,EAAG,QAAO;AAC9B,MAAI;AACF,UAAM,MAAM,aAAa,MAAM,OAAO;AACtC,UAAM,SAAS,KAAK,MAAM,GAAG;AAC7B,WAAO;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,eAAe,kBAAkB,KAAqC;AACpE,MAAI;AACF,UAAM,WAAW,GAAG;AACpB,WAAO,EAAE,IAAI,MAAM,SAAS,YAAY;AAAA,EAC1C,SAAS,KAAK;AACZ,WAAO,EAAE,IAAI,OAAO,SAAU,IAAc,QAAQ;AAAA,EACtD;AACF;AAEA,SAAS,mBAAmB,KAAqB;AAC/C,QAAM,SAAS,QAAQ,KAAK,KAAK;AACjC,MAAI,CAAC,WAAW,MAAM,EAAG,QAAO;AAChC,QAAM,OAAO,WAAW,MAAM;AAC9B,MAAI,QAAQ;AACZ,WAAS,KAAK,MAAmF;AAC/F,QAAI,KAAK,KAAM;AACf,eAAW,SAAS,KAAK,SAAU,MAAK,KAAc;AAAA,EACxD;AACA,OAAK,IAAI;AACT,SAAO;AACT;AAEA,eAAsB,UAAU,MAAsC;AACpE,QAAM,MAAM,KAAK;AACjB,QAAM,UAAU,KAAK,oBAAoB,MAAM,uBAAuB,GAAG;AACzE,QAAM,WAAW,KAAK,iBAAiB,sBAAsB;AAC7D,QAAM,UAAU,KAAK,eAAe,MAAM,kBAAkB,GAAG;AAC/D,QAAM,WAAW,KAAK,gBAAgB,MAAM,mBAAmB,GAAG;AAElE,QAAM,MAAM,QAAQ;AACpB,QAAM,SAAS,MAAM,QAAQ;AAE7B,MAAI,cAAc;AAClB,MAAI,YAA2B;AAC/B,MAAI;AACF,kBAAc,SAAS;AAAA,EACzB,SAAS,KAAK;AACZ,gBAAa,IAAc;AAAA,EAC7B;AAEA,QAAM,cAAc,KAAK,OAAO,GAAG,IAAI,IAAI,IAAI,IAAI,WAAW,GAAG,KAAK;AAEtE,QAAM,aAAa,OAAO,KAAK,OAAO,kBAAa,OAAO,OAAO;AAEjE,QAAM,aAAa,YAAY,gBAAgB,SAAS,KAAK,WAAW,WAAW;AAEnF,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY,WAAW;AAAA,IACvB;AAAA,IACA;AAAA,IACA,GAAG,QAAQ,IAAI,IAAI,QAAQ,OAAO;AAAA,IAClC;AAAA,IACA;AAAA,IACA,WAAW,UAAU;AAAA,IACrB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,EAAE,KAAK,IAAI;AACb;AAEA,eAAsB,cAA6B;AACjD,QAAM,MAAM,QAAQ,IAAI;AACxB,QAAM,SAAS,MAAM,UAAU,EAAE,IAAI,CAAC;AACtC,UAAQ,IAAI,MAAM;AACpB;","names":[]}
|
|
@@ -4,7 +4,6 @@ import {
|
|
|
4
4
|
BATCH_PATH,
|
|
5
5
|
CSP_REPORT_PATH,
|
|
6
6
|
CsrfReadinessStore,
|
|
7
|
-
TRACE_HEADER,
|
|
8
7
|
applySecurityHeaders,
|
|
9
8
|
createCorsHandler,
|
|
10
9
|
createPluginRunnerFromConfig,
|
|
@@ -12,39 +11,50 @@ import {
|
|
|
12
11
|
createViteLoader,
|
|
13
12
|
executeAction,
|
|
14
13
|
executeRoute,
|
|
15
|
-
extractTraceId,
|
|
16
14
|
findSuggestion,
|
|
17
|
-
generateNonce,
|
|
18
15
|
handleBatchRequest,
|
|
19
16
|
handleCspReport,
|
|
20
17
|
handleCsrfReadiness,
|
|
21
18
|
mountAgent
|
|
22
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-C62IZEJI.js";
|
|
23
20
|
import {
|
|
24
21
|
resolveProvider
|
|
25
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-5YPXXSYY.js";
|
|
26
23
|
import {
|
|
27
24
|
dispatchControllerRequest,
|
|
28
25
|
incomingMessageToHandlerRequest,
|
|
29
|
-
logRequest,
|
|
30
26
|
sendError
|
|
31
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-HWBRS4DZ.js";
|
|
28
|
+
import {
|
|
29
|
+
generateNonce
|
|
30
|
+
} from "./chunk-RPET332G.js";
|
|
31
|
+
import {
|
|
32
|
+
TRACE_HEADER,
|
|
33
|
+
extractTraceId
|
|
34
|
+
} from "./chunk-7PM6K5EV.js";
|
|
35
|
+
import {
|
|
36
|
+
logRequest
|
|
37
|
+
} from "./chunk-2AMLGJJA.js";
|
|
32
38
|
import {
|
|
33
39
|
generateManifest
|
|
34
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-KUZVRJ7M.js";
|
|
35
41
|
import {
|
|
36
42
|
scanAgents
|
|
37
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-EVZKNA2W.js";
|
|
38
44
|
import {
|
|
45
|
+
ACTION_SCHEMAS_DIR,
|
|
39
46
|
matchRoute,
|
|
40
47
|
scanServerActions,
|
|
41
48
|
scanServerActionsEnriched,
|
|
42
49
|
scanServerRoutes,
|
|
43
50
|
scanWebSocketRoutes
|
|
44
|
-
} from "./chunk-
|
|
45
|
-
import "./chunk-
|
|
51
|
+
} from "./chunk-XS7EX55U.js";
|
|
52
|
+
import "./chunk-FD4ZDTQ6.js";
|
|
53
|
+
import "./chunk-U5PWXS3J.js";
|
|
54
|
+
import "./chunk-VI7ZANB3.js";
|
|
46
55
|
import "./chunk-VQIUTCK2.js";
|
|
47
56
|
export {
|
|
57
|
+
ACTION_SCHEMAS_DIR,
|
|
48
58
|
BATCH_PATH,
|
|
49
59
|
CSP_REPORT_PATH,
|
|
50
60
|
CsrfReadinessStore,
|
|
@@ -76,4 +86,4 @@ export {
|
|
|
76
86
|
scanWebSocketRoutes,
|
|
77
87
|
sendError
|
|
78
88
|
};
|
|
79
|
-
//# sourceMappingURL=internal-api-
|
|
89
|
+
//# sourceMappingURL=internal-api-IP35YU3G.js.map
|
|
@@ -1,25 +1,28 @@
|
|
|
1
1
|
import {
|
|
2
|
-
dispatchControllerRequest
|
|
2
|
+
dispatchControllerRequest
|
|
3
|
+
} from "./chunk-SL7YUHPV.js";
|
|
4
|
+
import {
|
|
3
5
|
mountAgent
|
|
4
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-WOBSEO75.js";
|
|
5
7
|
import {
|
|
6
8
|
BATCH_PATH,
|
|
7
|
-
TRACE_HEADER,
|
|
8
9
|
createCorsHandler,
|
|
9
10
|
executeAction,
|
|
10
11
|
executeRoute,
|
|
11
|
-
extractTraceId,
|
|
12
12
|
handleBatchRequest,
|
|
13
13
|
incomingMessageToHandlerRequest,
|
|
14
14
|
sendError
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-RWNYIU6A.js";
|
|
16
16
|
import "./chunk-47FFT43U.js";
|
|
17
17
|
import {
|
|
18
18
|
findSuggestion
|
|
19
19
|
} from "./chunk-NTDN54XO.js";
|
|
20
|
+
import "./chunk-MCTC6HSE.js";
|
|
20
21
|
import {
|
|
22
|
+
TRACE_HEADER,
|
|
23
|
+
extractTraceId,
|
|
21
24
|
logRequest
|
|
22
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-72DMJBXI.js";
|
|
23
26
|
import {
|
|
24
27
|
createPluginRunnerFromConfig
|
|
25
28
|
} from "./chunk-VSLTKX5L.js";
|
|
@@ -28,38 +31,49 @@ import {
|
|
|
28
31
|
} from "./chunk-TNI4MARH.js";
|
|
29
32
|
import {
|
|
30
33
|
createViteLoader
|
|
31
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-OQCRCXCP.js";
|
|
32
35
|
import {
|
|
36
|
+
ACTION_SCHEMAS_DIR,
|
|
33
37
|
generateManifest,
|
|
34
38
|
matchRoute,
|
|
35
|
-
scanAgents,
|
|
36
39
|
scanServerActions,
|
|
37
40
|
scanServerActionsEnriched,
|
|
38
41
|
scanServerRoutes,
|
|
39
42
|
scanWebSocketRoutes
|
|
40
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-6J4JWHDJ.js";
|
|
41
44
|
import "./chunk-DV34VG3N.js";
|
|
42
|
-
import
|
|
45
|
+
import {
|
|
46
|
+
scanAgents
|
|
47
|
+
} from "./chunk-L4VFNFDL.js";
|
|
48
|
+
import "./chunk-BX6EUYHU.js";
|
|
43
49
|
import {
|
|
44
50
|
CSP_REPORT_PATH,
|
|
45
51
|
CsrfReadinessStore,
|
|
46
52
|
applySecurityHeaders,
|
|
47
53
|
handleCspReport,
|
|
48
54
|
handleCsrfReadiness
|
|
49
|
-
} from "./chunk-
|
|
50
|
-
import "./chunk-
|
|
55
|
+
} from "./chunk-BPYMC7SU.js";
|
|
56
|
+
import "./chunk-IRQGAC4L.js";
|
|
57
|
+
import "./chunk-P6OS7652.js";
|
|
51
58
|
import "./chunk-AVQU5CQF.js";
|
|
52
59
|
import "./chunk-ACKBVBUI.js";
|
|
53
60
|
import "./chunk-IZ3TIL6K.js";
|
|
54
61
|
import {
|
|
55
62
|
resolveProvider
|
|
56
|
-
} from "./chunk-
|
|
63
|
+
} from "./chunk-3PBAN2YE.js";
|
|
64
|
+
import "./chunk-YSJOZEI6.js";
|
|
57
65
|
import {
|
|
58
66
|
generateNonce
|
|
59
|
-
} from "./chunk-
|
|
60
|
-
import "./chunk-
|
|
67
|
+
} from "./chunk-Z4PJMZLM.js";
|
|
68
|
+
import "./chunk-UMNXCU3K.js";
|
|
69
|
+
import "./chunk-52PDWL5S.js";
|
|
70
|
+
import "./chunk-5K4TDLRG.js";
|
|
71
|
+
import "./chunk-ZWN3AODA.js";
|
|
72
|
+
import "./chunk-D4VP2QPR.js";
|
|
73
|
+
import "./chunk-YN4W7LCX.js";
|
|
61
74
|
import "./chunk-XTHN6JBX.js";
|
|
62
75
|
export {
|
|
76
|
+
ACTION_SCHEMAS_DIR,
|
|
63
77
|
BATCH_PATH,
|
|
64
78
|
CSP_REPORT_PATH,
|
|
65
79
|
CsrfReadinessStore,
|
|
@@ -91,4 +105,4 @@ export {
|
|
|
91
105
|
scanWebSocketRoutes,
|
|
92
106
|
sendError
|
|
93
107
|
};
|
|
94
|
-
//# sourceMappingURL=internal-api-
|
|
108
|
+
//# sourceMappingURL=internal-api-OPU456AT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import "tsx/esm";
|
|
3
|
+
import {
|
|
4
|
+
deepMerge,
|
|
5
|
+
loadConfig
|
|
6
|
+
} from "./chunk-QTHVHNJJ.js";
|
|
7
|
+
import "./chunk-3QPVEJ7D.js";
|
|
8
|
+
import "./chunk-U5PWXS3J.js";
|
|
9
|
+
import "./chunk-FH3SQR6P.js";
|
|
10
|
+
import "./chunk-ZNZISJDZ.js";
|
|
11
|
+
import "./chunk-VI7ZANB3.js";
|
|
12
|
+
export {
|
|
13
|
+
deepMerge,
|
|
14
|
+
loadConfig
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=load-config-4ATXQUN3.js.map
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ViteDevServer } from 'vite';
|
|
2
|
+
|
|
3
|
+
type LoadModule = (path: string) => Promise<Record<string, unknown>>;
|
|
4
|
+
declare function createViteLoader(vite: ViteDevServer): LoadModule;
|
|
5
|
+
/**
|
|
6
|
+
* The loader `theokit start` uses to read user-authored modules off disk.
|
|
7
|
+
*
|
|
8
|
+
* It delegates to {@link importUserModule} rather than calling `import()` itself
|
|
9
|
+
* (usetheokit/theokit#418). The raw call worked only because the CLI bin starts with
|
|
10
|
+
* `import "tsx/esm"`, registering a global ESM hook — so this function depended on a side effect it
|
|
11
|
+
* never performed, from a module it does not reference. Any caller that reached it another way (a
|
|
12
|
+
* test booting the real handler, an app embedding the framework) got
|
|
13
|
+
* `ERR_UNKNOWN_FILE_EXTENSION` for a `.ts` file, or `__filename is not defined in ES module scope`
|
|
14
|
+
* from tsx's CJS output.
|
|
15
|
+
*
|
|
16
|
+
* That was invisible above Node 22.18, where native type stripping loads the file regardless, which
|
|
17
|
+
* is how it survived on a project declaring `engines.node: ">=22.12.0"`.
|
|
18
|
+
*
|
|
19
|
+
* Production is unchanged in cost: `importUserModule` tries the native import FIRST, so with the
|
|
20
|
+
* hook registered it takes exactly the path this used to take, and the fallback only runs where the
|
|
21
|
+
* raw call would have thrown.
|
|
22
|
+
*/
|
|
23
|
+
declare function createProductionLoader(): LoadModule;
|
|
24
|
+
|
|
25
|
+
interface ServerRouteNode {
|
|
26
|
+
filePath: string;
|
|
27
|
+
routePath: string;
|
|
28
|
+
paramNames: string[];
|
|
29
|
+
pattern: RegExp;
|
|
30
|
+
/** HTTP methods (uppercase) the route file exports. Optional for backward
|
|
31
|
+
* compatibility with manifests generated before G1. Empty array means the
|
|
32
|
+
* file has no HTTP exports (util-only); undefined means "not detected". */
|
|
33
|
+
methods?: string[];
|
|
34
|
+
}
|
|
35
|
+
declare function compilePattern(routePath: string): {
|
|
36
|
+
pattern: RegExp;
|
|
37
|
+
paramNames: string[];
|
|
38
|
+
};
|
|
39
|
+
declare function matchRoute(url: string, routes: ServerRouteNode[]): {
|
|
40
|
+
route: ServerRouteNode;
|
|
41
|
+
params: Record<string, string>;
|
|
42
|
+
} | null;
|
|
43
|
+
|
|
44
|
+
export { type LoadModule as L, type ServerRouteNode as S, createProductionLoader as a, createViteLoader as b, compilePattern as c, matchRoute as m };
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
import "tsx/esm";
|
|
3
3
|
import {
|
|
4
4
|
createAgentSsrLoader
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-NZ5JU6D3.js";
|
|
6
6
|
import {
|
|
7
7
|
extractAppResources,
|
|
8
8
|
handleMcpJsonRpc
|
|
9
9
|
} from "./chunk-2CVV6CNN.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-6GGWS7J3.js";
|
|
10
|
+
import "./chunk-5YPXXSYY.js";
|
|
12
11
|
import {
|
|
13
12
|
scanAgents
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-EVZKNA2W.js";
|
|
14
|
+
import "./chunk-FD4ZDTQ6.js";
|
|
15
|
+
import "./chunk-3QPVEJ7D.js";
|
|
16
16
|
|
|
17
17
|
// src/cli/commands/mcp.ts
|
|
18
18
|
import { createInterface } from "readline";
|
|
@@ -46,7 +46,7 @@ async function serveMcpStdio(mod, name, appResources, streams) {
|
|
|
46
46
|
// src/cli/commands/mcp.ts
|
|
47
47
|
async function mcpCommand(name, deps = {}) {
|
|
48
48
|
const projectRoot = deps.projectRoot ?? process.cwd();
|
|
49
|
-
const agentsDir = deps.agentsDir ?? (await (await import("./load-config-
|
|
49
|
+
const agentsDir = deps.agentsDir ?? (await (await import("./load-config-4ATXQUN3.js")).loadConfig(projectRoot)).agentsDir;
|
|
50
50
|
const agent = scanAgents(projectRoot, agentsDir).find((a) => a.name === name);
|
|
51
51
|
if (!agent) {
|
|
52
52
|
const names = scanAgents(projectRoot, agentsDir).map((a) => a.name).join(", ");
|
|
@@ -75,4 +75,4 @@ async function mcpCommand(name, deps = {}) {
|
|
|
75
75
|
export {
|
|
76
76
|
mcpCommand
|
|
77
77
|
};
|
|
78
|
-
//# sourceMappingURL=mcp-
|
|
78
|
+
//# sourceMappingURL=mcp-5LLNAGKA.js.map
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import "tsx/esm";
|
|
3
|
+
import {
|
|
4
|
+
deployedCorsFragment,
|
|
5
|
+
deployedCsrfFragment,
|
|
6
|
+
deployedRuntimeConfigFragment,
|
|
7
|
+
deployedTraceFragment,
|
|
8
|
+
describeDeployedSecurityHeaders,
|
|
9
|
+
renderSecurityHeadersConfigLiteral
|
|
10
|
+
} from "./chunk-E43VJ3E5.js";
|
|
11
|
+
import {
|
|
12
|
+
nodeAdapter
|
|
13
|
+
} from "./chunk-KI4DOTN4.js";
|
|
14
|
+
import {
|
|
15
|
+
buildSecurityHeaders
|
|
16
|
+
} from "./chunk-RPET332G.js";
|
|
17
|
+
import {
|
|
18
|
+
assertServicesUnsupported,
|
|
19
|
+
readManifest
|
|
20
|
+
} from "./chunk-ZNZISJDZ.js";
|
|
21
|
+
|
|
22
|
+
// src/adapters/netlify.ts
|
|
23
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
|
|
24
|
+
import { resolve } from "path";
|
|
25
|
+
var NetlifyConflictError = class extends Error {
|
|
26
|
+
constructor(path, currentTo) {
|
|
27
|
+
super(
|
|
28
|
+
`netlify.toml has a conflicting redirect: "${path}" \u2192 "${currentTo}". Remove it manually or edit it to point to "/.netlify/functions/theo" before running the Netlify adapter again.`
|
|
29
|
+
);
|
|
30
|
+
this.name = "NetlifyConflictError";
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
function renderNetlifyFunction(opts = {}) {
|
|
34
|
+
const runtimeConfig = deployedRuntimeConfigFragment(opts);
|
|
35
|
+
return [
|
|
36
|
+
`// Generated by Theo \u2014 Netlify Functions adapter`,
|
|
37
|
+
`import { resolve } from 'node:path'`,
|
|
38
|
+
`import { scanServerRoutes, matchRoute, executeRoute, createProductionLoader, extractTraceIdFromRequest, TRACE_HEADER, createCorsWebHandler } from 'theokit/server'`,
|
|
39
|
+
`import { createWebShim } from 'theokit/adapters/web-shim'`,
|
|
40
|
+
`import { buildSecurityHeaders, withSecurityHeaders } from 'theokit/adapters/security-headers'`,
|
|
41
|
+
``,
|
|
42
|
+
`const cwd = process.cwd()`,
|
|
43
|
+
`const serverDir = resolve(cwd, 'server')`,
|
|
44
|
+
`let routesCache = null`,
|
|
45
|
+
`let loaderCache = null`,
|
|
46
|
+
``,
|
|
47
|
+
`// #410 \u2014 the security baseline \`theokit start\` puts on every response,`,
|
|
48
|
+
`// carried here as a literal because the deployed function has no`,
|
|
49
|
+
`// theo.config.ts to read. The netlify.toml redirect routes only /api/* here,`,
|
|
50
|
+
`// so this covers the API and not the document Netlify's static host serves`,
|
|
51
|
+
`// (usetheokit/theokit#412).`,
|
|
52
|
+
`const SECURITY_HEADERS_CONFIG = ${renderSecurityHeadersConfigLiteral(opts.securityHeaders)}`,
|
|
53
|
+
`const SECURITY_HEADERS = buildSecurityHeaders(SECURITY_HEADERS_CONFIG, { production: true })`,
|
|
54
|
+
``,
|
|
55
|
+
...runtimeConfig.imports,
|
|
56
|
+
...runtimeConfig.declarations,
|
|
57
|
+
...deployedCsrfFragment(opts),
|
|
58
|
+
``,
|
|
59
|
+
...deployedCorsFragment(opts.cors, "netlify"),
|
|
60
|
+
``,
|
|
61
|
+
`export default async (request, context) => {`,
|
|
62
|
+
` // #409 \u2014 the preflight is answered BEFORE anything routes: an OPTIONS the router`,
|
|
63
|
+
` // handles is an OPTIONS the browser never gets a CORS answer to.`,
|
|
64
|
+
` const preflight = corsPreflight(request)`,
|
|
65
|
+
` if (preflight !== null) return withSecurityHeaders(preflight, SECURITY_HEADERS)`,
|
|
66
|
+
` return withCors(request, withSecurityHeaders(await handleRequest(request), SECURITY_HEADERS))`,
|
|
67
|
+
`}`,
|
|
68
|
+
``,
|
|
69
|
+
`async function handleRequest(request) {`,
|
|
70
|
+
` const url = new URL(request.url)`,
|
|
71
|
+
` if (!url.pathname.startsWith('/api/')) {`,
|
|
72
|
+
` return new Response('Not Found', { status: 404 })`,
|
|
73
|
+
` }`,
|
|
74
|
+
``,
|
|
75
|
+
` if (!routesCache) routesCache = scanServerRoutes(serverDir)`,
|
|
76
|
+
` if (!loaderCache) loaderCache = createProductionLoader()`,
|
|
77
|
+
``,
|
|
78
|
+
` const match = matchRoute(url.pathname, routesCache)`,
|
|
79
|
+
` if (!match) {`,
|
|
80
|
+
` return new Response(JSON.stringify({ error: { code: 'NOT_FOUND' } }), {`,
|
|
81
|
+
` status: 404,`,
|
|
82
|
+
` headers: { 'content-type': 'application/json' },`,
|
|
83
|
+
` })`,
|
|
84
|
+
` }`,
|
|
85
|
+
``,
|
|
86
|
+
` const { req, res, toResponse } = createWebShim(request)`,
|
|
87
|
+
...deployedTraceFragment("request", " "),
|
|
88
|
+
` const method = request.method.toUpperCase()`,
|
|
89
|
+
` // #382 \u2014 the run is not awaited: toResponse() settles at the headers and`,
|
|
90
|
+
` // carries a live body, so Netlify streams while the handler writes.`,
|
|
91
|
+
` return toResponse(executeRoute({ route: match.route, method, params: match.params, req, res, loadModule: loaderCache, serverDir, requestId, ...CSRF_CONFIG, ${runtimeConfig.executeRouteSpread} }))`,
|
|
92
|
+
`}`
|
|
93
|
+
].join("\n");
|
|
94
|
+
}
|
|
95
|
+
var THEO_REDIRECT_FROM = "/api/*";
|
|
96
|
+
var THEO_REDIRECT_TO = "/.netlify/functions/theo";
|
|
97
|
+
function parseRedirectBlocks(lines) {
|
|
98
|
+
const blocks = [];
|
|
99
|
+
let current = null;
|
|
100
|
+
for (let i = 0; i < lines.length; i++) {
|
|
101
|
+
const trimmed = lines[i].trim();
|
|
102
|
+
if (trimmed === "[[redirects]]") {
|
|
103
|
+
if (current) {
|
|
104
|
+
current.endLine = i - 1;
|
|
105
|
+
blocks.push(current);
|
|
106
|
+
}
|
|
107
|
+
current = { startLine: i, endLine: i };
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
if (current && /^\[(\[|[^[])/.test(trimmed)) {
|
|
111
|
+
current.endLine = i - 1;
|
|
112
|
+
blocks.push(current);
|
|
113
|
+
current = null;
|
|
114
|
+
}
|
|
115
|
+
if (current) {
|
|
116
|
+
const fromMatch = /^from\s*=\s*"([^"]+)"/.exec(trimmed);
|
|
117
|
+
if (fromMatch) current.from = fromMatch[1];
|
|
118
|
+
const toMatch = /^to\s*=\s*"([^"]+)"/.exec(trimmed);
|
|
119
|
+
if (toMatch) current.to = toMatch[1];
|
|
120
|
+
current.endLine = i;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
if (current) blocks.push(current);
|
|
124
|
+
return blocks;
|
|
125
|
+
}
|
|
126
|
+
var THEO_REDIRECT_TARGET = [
|
|
127
|
+
"[[redirects]]",
|
|
128
|
+
' from = "/api/*"',
|
|
129
|
+
' to = "/.netlify/functions/theo"',
|
|
130
|
+
" status = 200",
|
|
131
|
+
" force = true"
|
|
132
|
+
].join("\n");
|
|
133
|
+
var THEO_HEADERS_MARKER = "# Generated by Theo \u2014 security baseline (usetheokit/theokit#412)";
|
|
134
|
+
function renderHeadersBlock(securityHeaders) {
|
|
135
|
+
const values = buildSecurityHeaders(securityHeaders ?? {}, { production: true });
|
|
136
|
+
return [
|
|
137
|
+
THEO_HEADERS_MARKER,
|
|
138
|
+
"[[headers]]",
|
|
139
|
+
' for = "/*"',
|
|
140
|
+
" [headers.values]",
|
|
141
|
+
...Object.entries(values).map(([k, v]) => ` ${k} = ${JSON.stringify(v)}`)
|
|
142
|
+
].join("\n");
|
|
143
|
+
}
|
|
144
|
+
function withoutGeneratedHeaders(source) {
|
|
145
|
+
const lines = source.split(/\r?\n/);
|
|
146
|
+
const start = lines.indexOf(THEO_HEADERS_MARKER);
|
|
147
|
+
if (start < 0) return source;
|
|
148
|
+
const opensSection = (line) => (line ?? "").startsWith("[");
|
|
149
|
+
let end = start + 1;
|
|
150
|
+
while (end < lines.length && !opensSection(lines[end])) end += 1;
|
|
151
|
+
end += 1;
|
|
152
|
+
while (end < lines.length && !opensSection(lines[end])) end += 1;
|
|
153
|
+
return [...lines.slice(0, start), ...lines.slice(end)].join("\n").replace(/\n{3,}/gu, "\n\n");
|
|
154
|
+
}
|
|
155
|
+
function mergeNetlifyToml(existing, securityHeaders) {
|
|
156
|
+
const headersBlock = renderHeadersBlock(securityHeaders);
|
|
157
|
+
if (existing === null || existing.trim().length === 0) {
|
|
158
|
+
return `${THEO_REDIRECT_TARGET}
|
|
159
|
+
|
|
160
|
+
${headersBlock}
|
|
161
|
+
`;
|
|
162
|
+
}
|
|
163
|
+
existing = withoutGeneratedHeaders(existing);
|
|
164
|
+
const blocks = parseRedirectBlocks(existing.split(/\r?\n/));
|
|
165
|
+
for (const b of blocks) {
|
|
166
|
+
if (b.from !== THEO_REDIRECT_FROM) continue;
|
|
167
|
+
if (b.to === THEO_REDIRECT_TO) {
|
|
168
|
+
const sep2 = existing.endsWith("\n") ? "" : "\n";
|
|
169
|
+
return `${existing}${sep2}
|
|
170
|
+
${headersBlock}
|
|
171
|
+
`;
|
|
172
|
+
}
|
|
173
|
+
throw new NetlifyConflictError(b.from, b.to ?? "(unknown)");
|
|
174
|
+
}
|
|
175
|
+
const sep = existing.endsWith("\n") ? "" : "\n";
|
|
176
|
+
return `${existing}${sep}
|
|
177
|
+
${THEO_REDIRECT_TARGET}
|
|
178
|
+
|
|
179
|
+
${headersBlock}
|
|
180
|
+
`;
|
|
181
|
+
}
|
|
182
|
+
async function buildNetlify(config, cwd, deps = {}, ctx) {
|
|
183
|
+
assertServicesUnsupported("netlify", readManifest(cwd));
|
|
184
|
+
const runNodeBuild = deps.runNodeBuild ?? nodeAdapter.build.bind(nodeAdapter);
|
|
185
|
+
await runNodeBuild(config, cwd, ctx);
|
|
186
|
+
const ensureDir = deps.ensureDir ?? ((p) => mkdirSync(p, { recursive: true }));
|
|
187
|
+
const writeFile = deps.writeFile ?? ((p, c) => {
|
|
188
|
+
writeFileSync(p, c);
|
|
189
|
+
});
|
|
190
|
+
const readTomlIfExists = deps.readTomlIfExists ?? (() => {
|
|
191
|
+
const p = resolve(cwd, "netlify.toml");
|
|
192
|
+
return existsSync(p) ? readFileSync(p, "utf-8") : null;
|
|
193
|
+
});
|
|
194
|
+
const fnDir = resolve(cwd, ".netlify/functions");
|
|
195
|
+
ensureDir(fnDir);
|
|
196
|
+
writeFile(
|
|
197
|
+
resolve(fnDir, "theo.mjs"),
|
|
198
|
+
renderNetlifyFunction({
|
|
199
|
+
securityHeaders: config.security?.headers,
|
|
200
|
+
csrf: config.security?.csrf,
|
|
201
|
+
disallowed: config.security?.disallowed,
|
|
202
|
+
cors: config.security?.cors,
|
|
203
|
+
// #425 — a selector, not a transformer, so it rides as a literal like the values above.
|
|
204
|
+
serialization: config.serialization
|
|
205
|
+
})
|
|
206
|
+
);
|
|
207
|
+
const existingToml = readTomlIfExists();
|
|
208
|
+
const merged = mergeNetlifyToml(existingToml, config.security?.headers);
|
|
209
|
+
writeFile(resolve(cwd, "netlify.toml"), merged);
|
|
210
|
+
console.log("\n \u2713 Netlify output \u2192 .netlify/functions/theo.mjs + netlify.toml");
|
|
211
|
+
console.log(
|
|
212
|
+
`${describeDeployedSecurityHeaders({
|
|
213
|
+
target: "netlify",
|
|
214
|
+
securityHeaders: config.security?.headers,
|
|
215
|
+
mintsNonce: false,
|
|
216
|
+
documentHeaders: "platform-configured"
|
|
217
|
+
})}
|
|
218
|
+
`
|
|
219
|
+
);
|
|
220
|
+
}
|
|
221
|
+
var netlifyAdapter = {
|
|
222
|
+
name: "netlify",
|
|
223
|
+
streamsResponses: true,
|
|
224
|
+
// #409 / #410 — the generated entry calls `executeRoute` with routes, loader
|
|
225
|
+
// and serverDir only. CSRF, route policy, file middleware and Zod validation
|
|
226
|
+
// still run because they live inside `executeRoute`; none of the remaining
|
|
227
|
+
// configurable concerns reach it. Declared explicitly rather than omitted so
|
|
228
|
+
// the gap is a statement in the source and not an absence.
|
|
229
|
+
//
|
|
230
|
+
// `securityHeaders` IS applied -- to every response this function returns.
|
|
231
|
+
// The document is served by Netlify's static host and does not pass through
|
|
232
|
+
// it (usetheokit/theokit#412).
|
|
233
|
+
appliesConfig: ["securityHeaders", "csrf", "disallowed", "cors", "serialization"],
|
|
234
|
+
build(config, cwd, ctx) {
|
|
235
|
+
return buildNetlify(config, cwd, {}, ctx);
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
export {
|
|
239
|
+
NetlifyConflictError,
|
|
240
|
+
buildNetlify,
|
|
241
|
+
mergeNetlifyToml,
|
|
242
|
+
netlifyAdapter,
|
|
243
|
+
renderNetlifyFunction
|
|
244
|
+
};
|
|
245
|
+
//# sourceMappingURL=netlify-C2IRCZKI.js.map
|