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
|
@@ -0,0 +1,424 @@
|
|
|
1
|
+
// src/server/body-parser.ts
|
|
2
|
+
import { basename } from "path";
|
|
3
|
+
import Busboy from "busboy";
|
|
4
|
+
var METHODS_WITH_BODY = /* @__PURE__ */ new Set(["POST", "PUT", "PATCH"]);
|
|
5
|
+
var DEFAULT_MAX_FILE_SIZE = 10 * 1024 * 1024;
|
|
6
|
+
var DEFAULT_MAX_FILES = 10;
|
|
7
|
+
var DEFAULT_MAX_FIELD_SIZE = 1 * 1024 * 1024;
|
|
8
|
+
var RequestBodyConsumedError = class extends Error {
|
|
9
|
+
code = "REQUEST_BODY_CONSUMED";
|
|
10
|
+
status = 500;
|
|
11
|
+
constructor(method, url) {
|
|
12
|
+
super(
|
|
13
|
+
`Request body for ${method} ${url ?? "(unknown url)"} was already consumed before the body parser ran, so it can never arrive. Something upstream read the request stream \u2014 a route dispatcher, a middleware, or an adapter that converted the request \u2014 without passing the parsed body on.`
|
|
14
|
+
);
|
|
15
|
+
this.name = "RequestBodyConsumedError";
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
function declaresEmptyBody(req) {
|
|
19
|
+
return (req.headers["content-length"] ?? "") === "0";
|
|
20
|
+
}
|
|
21
|
+
function bodyAlreadyConsumed(req) {
|
|
22
|
+
return req.readableEnded && !declaresEmptyBody(req);
|
|
23
|
+
}
|
|
24
|
+
var FileTooLargeError = class extends Error {
|
|
25
|
+
constructor(message, truncatedFilenames, maxFileSize) {
|
|
26
|
+
super(message);
|
|
27
|
+
this.truncatedFilenames = truncatedFilenames;
|
|
28
|
+
this.maxFileSize = maxFileSize;
|
|
29
|
+
this.name = "FileTooLargeError";
|
|
30
|
+
}
|
|
31
|
+
truncatedFilenames;
|
|
32
|
+
maxFileSize;
|
|
33
|
+
code = "FILE_TOO_LARGE";
|
|
34
|
+
status = 413;
|
|
35
|
+
};
|
|
36
|
+
function stashBodyPreview(req, body) {
|
|
37
|
+
try {
|
|
38
|
+
;
|
|
39
|
+
req[DEVTOOLS_BODY_PREVIEW] = body;
|
|
40
|
+
} catch {
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function parseJsonBody(req) {
|
|
44
|
+
return new Promise((resolve, reject) => {
|
|
45
|
+
if (req.readableEnded) {
|
|
46
|
+
if (declaresEmptyBody(req)) {
|
|
47
|
+
resolve(void 0);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
reject(new RequestBodyConsumedError(req.method ?? "POST", req.url));
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const chunks = [];
|
|
54
|
+
req.on("data", (chunk) => chunks.push(chunk));
|
|
55
|
+
req.on("end", () => {
|
|
56
|
+
const raw = Buffer.concat(chunks).toString();
|
|
57
|
+
if (!raw) {
|
|
58
|
+
resolve(void 0);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
try {
|
|
62
|
+
resolve(JSON.parse(raw));
|
|
63
|
+
} catch {
|
|
64
|
+
reject(new Error("Invalid JSON body"));
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
req.on("error", reject);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
function parseMultipartBody(req, contentType, options) {
|
|
71
|
+
if (!contentType.includes("boundary=")) {
|
|
72
|
+
return Promise.reject(new Error("Missing multipart boundary"));
|
|
73
|
+
}
|
|
74
|
+
if (bodyAlreadyConsumed(req)) {
|
|
75
|
+
return Promise.reject(new RequestBodyConsumedError(req.method ?? "POST", req.url));
|
|
76
|
+
}
|
|
77
|
+
return new Promise((resolve, reject) => {
|
|
78
|
+
const fields = {};
|
|
79
|
+
const files = [];
|
|
80
|
+
const truncatedFilenames = [];
|
|
81
|
+
let fileCount = 0;
|
|
82
|
+
const bb = Busboy({
|
|
83
|
+
headers: req.headers,
|
|
84
|
+
limits: {
|
|
85
|
+
fileSize: options.maxFileSize,
|
|
86
|
+
files: options.maxFiles,
|
|
87
|
+
fieldSize: options.maxFieldSize
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
bb.on("field", (name, value) => {
|
|
91
|
+
fields[name] = value;
|
|
92
|
+
});
|
|
93
|
+
bb.on(
|
|
94
|
+
"file",
|
|
95
|
+
(fieldname, stream, info) => {
|
|
96
|
+
fileCount++;
|
|
97
|
+
if (fileCount > options.maxFiles) {
|
|
98
|
+
stream.resume();
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
const safeName = basename(info.filename || "unnamed");
|
|
102
|
+
const chunks = [];
|
|
103
|
+
let size = 0;
|
|
104
|
+
let truncated = false;
|
|
105
|
+
stream.on("data", (chunk) => {
|
|
106
|
+
size += chunk.length;
|
|
107
|
+
if (size > options.maxFileSize) {
|
|
108
|
+
truncated = true;
|
|
109
|
+
stream.resume();
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
chunks.push(chunk);
|
|
113
|
+
});
|
|
114
|
+
stream.on("end", () => {
|
|
115
|
+
if (truncated) {
|
|
116
|
+
truncatedFilenames.push(safeName);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const buffer = Buffer.concat(chunks);
|
|
120
|
+
files.push({
|
|
121
|
+
fieldname,
|
|
122
|
+
filename: safeName,
|
|
123
|
+
encoding: info.encoding,
|
|
124
|
+
mimeType: info.mimeType,
|
|
125
|
+
buffer,
|
|
126
|
+
size: buffer.length
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
);
|
|
131
|
+
bb.on("filesLimit", () => {
|
|
132
|
+
reject(new Error(`Too many files. Maximum: ${options.maxFiles}`));
|
|
133
|
+
});
|
|
134
|
+
bb.on("error", (err) => {
|
|
135
|
+
reject(err);
|
|
136
|
+
});
|
|
137
|
+
bb.on("close", () => {
|
|
138
|
+
if (truncatedFilenames.length > 0) {
|
|
139
|
+
reject(
|
|
140
|
+
new FileTooLargeError(
|
|
141
|
+
`File too large (max ${options.maxFileSize} bytes): ${truncatedFilenames.join(", ")}`,
|
|
142
|
+
truncatedFilenames,
|
|
143
|
+
options.maxFileSize
|
|
144
|
+
)
|
|
145
|
+
);
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
resolve({ fields, files });
|
|
149
|
+
});
|
|
150
|
+
req.pipe(bb);
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
var DEVTOOLS_BODY_PREVIEW = /* @__PURE__ */ Symbol("theo:devtools:bodyPreview");
|
|
154
|
+
async function parseRequestBody(req, options) {
|
|
155
|
+
const method = req.method?.toUpperCase() ?? "GET";
|
|
156
|
+
if (!METHODS_WITH_BODY.has(method)) {
|
|
157
|
+
return { fields: {}, files: [], json: void 0 };
|
|
158
|
+
}
|
|
159
|
+
const contentType = req.headers["content-type"] ?? "";
|
|
160
|
+
if (contentType.includes("application/json")) {
|
|
161
|
+
const json = await parseJsonBody(req);
|
|
162
|
+
stashBodyPreview(req, json);
|
|
163
|
+
return { fields: {}, files: [], json };
|
|
164
|
+
}
|
|
165
|
+
if (contentType.includes("multipart/form-data")) {
|
|
166
|
+
const limits = {
|
|
167
|
+
maxFileSize: options?.maxFileSize ?? DEFAULT_MAX_FILE_SIZE,
|
|
168
|
+
maxFiles: options?.maxFiles ?? DEFAULT_MAX_FILES,
|
|
169
|
+
maxFieldSize: options?.maxFieldSize ?? DEFAULT_MAX_FIELD_SIZE
|
|
170
|
+
};
|
|
171
|
+
const { fields, files } = await parseMultipartBody(req, contentType, limits);
|
|
172
|
+
stashBodyPreview(req, {
|
|
173
|
+
fields,
|
|
174
|
+
files: files.map((f) => ({
|
|
175
|
+
fieldname: f.fieldname,
|
|
176
|
+
filename: f.filename,
|
|
177
|
+
mimeType: f.mimeType,
|
|
178
|
+
size: f.size
|
|
179
|
+
}))
|
|
180
|
+
});
|
|
181
|
+
return { fields, files };
|
|
182
|
+
}
|
|
183
|
+
if (!contentType) {
|
|
184
|
+
return { fields: {}, files: [] };
|
|
185
|
+
}
|
|
186
|
+
throw new Error(`Unsupported Content-Type: ${contentType}`);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
// src/server/observability/request-log.ts
|
|
190
|
+
var defaultLoggerFn = (log) => {
|
|
191
|
+
console.log(JSON.stringify(log));
|
|
192
|
+
};
|
|
193
|
+
function logRequest(info, customLogger, req) {
|
|
194
|
+
const log = {
|
|
195
|
+
level: "info",
|
|
196
|
+
...info,
|
|
197
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
198
|
+
};
|
|
199
|
+
const logger = customLogger ?? defaultLoggerFn;
|
|
200
|
+
logger(log);
|
|
201
|
+
broadcastRequestToDevtools(info, req);
|
|
202
|
+
}
|
|
203
|
+
function randomRequestId() {
|
|
204
|
+
return `req-${String(Date.now())}-${Math.random().toString(36).slice(2, 8)}`;
|
|
205
|
+
}
|
|
206
|
+
function broadcastToDevtoolsCore(info, headers, stashedBody) {
|
|
207
|
+
void Promise.all([
|
|
208
|
+
import("./broadcast-H64DJRBE.js"),
|
|
209
|
+
import("./build-request-body-preview-CKWWBF2M.js")
|
|
210
|
+
]).then(([{ broadcastRequest }, { buildRequestBodyPreview }]) => {
|
|
211
|
+
const bodyInfo = buildRequestBodyPreview(stashedBody);
|
|
212
|
+
broadcastRequest({
|
|
213
|
+
id: randomRequestId(),
|
|
214
|
+
traceId: info.requestId,
|
|
215
|
+
method: info.method,
|
|
216
|
+
path: info.url,
|
|
217
|
+
status: info.status,
|
|
218
|
+
durationMs: info.duration,
|
|
219
|
+
startedAt: Date.now() - info.duration,
|
|
220
|
+
...headers ? { headers } : {},
|
|
221
|
+
...bodyInfo ? {
|
|
222
|
+
bodyPreview: bodyInfo.preview,
|
|
223
|
+
bodyLength: bodyInfo.length,
|
|
224
|
+
bodyTruncated: bodyInfo.truncated
|
|
225
|
+
} : {}
|
|
226
|
+
});
|
|
227
|
+
}).catch(() => {
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
function broadcastRequestToDevtools(info, req) {
|
|
231
|
+
const headers = req?.headers ? Object.fromEntries(
|
|
232
|
+
Object.entries(req.headers).map(([k, v]) => [
|
|
233
|
+
k,
|
|
234
|
+
Array.isArray(v) ? v.join(", ") : v ?? ""
|
|
235
|
+
])
|
|
236
|
+
) : void 0;
|
|
237
|
+
const stashedBody = req ? req[DEVTOOLS_BODY_PREVIEW] : void 0;
|
|
238
|
+
broadcastToDevtoolsCore(info, headers, stashedBody);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
// src/server/observability/logger.ts
|
|
242
|
+
var LEVEL_ORDER = {
|
|
243
|
+
debug: 0,
|
|
244
|
+
info: 1,
|
|
245
|
+
warn: 2,
|
|
246
|
+
error: 3,
|
|
247
|
+
silent: 4
|
|
248
|
+
};
|
|
249
|
+
function shouldLog(msgLevel, configLevel) {
|
|
250
|
+
return LEVEL_ORDER[msgLevel] >= LEVEL_ORDER[configLevel];
|
|
251
|
+
}
|
|
252
|
+
function defaultOutput(log) {
|
|
253
|
+
console.log(JSON.stringify(log));
|
|
254
|
+
}
|
|
255
|
+
function createLogger(options) {
|
|
256
|
+
const level = options?.level ?? "info";
|
|
257
|
+
const output = options?.output ?? defaultOutput;
|
|
258
|
+
const baseContext = options?.context ?? {};
|
|
259
|
+
function log(msgLevel, msg, context) {
|
|
260
|
+
if (!shouldLog(msgLevel, level)) return;
|
|
261
|
+
const entry = {
|
|
262
|
+
level: msgLevel,
|
|
263
|
+
msg,
|
|
264
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
265
|
+
...baseContext,
|
|
266
|
+
...context
|
|
267
|
+
};
|
|
268
|
+
if (entry.error instanceof Error) {
|
|
269
|
+
entry.error = entry.error.stack ?? entry.error.message;
|
|
270
|
+
}
|
|
271
|
+
output(entry);
|
|
272
|
+
}
|
|
273
|
+
return {
|
|
274
|
+
debug: (msg, ctx) => {
|
|
275
|
+
log("debug", msg, ctx);
|
|
276
|
+
},
|
|
277
|
+
info: (msg, ctx) => {
|
|
278
|
+
log("info", msg, ctx);
|
|
279
|
+
},
|
|
280
|
+
warn: (msg, ctx) => {
|
|
281
|
+
log("warn", msg, ctx);
|
|
282
|
+
},
|
|
283
|
+
error: (msg, ctx) => {
|
|
284
|
+
log("error", msg, ctx);
|
|
285
|
+
},
|
|
286
|
+
child(ctx) {
|
|
287
|
+
return createLogger({
|
|
288
|
+
level,
|
|
289
|
+
output,
|
|
290
|
+
context: { ...baseContext, ...ctx }
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
var _warnOnceSeen = /* @__PURE__ */ new Set();
|
|
296
|
+
var MAX_SEEN = 1024;
|
|
297
|
+
function _resetWarnOnceForTests() {
|
|
298
|
+
_warnOnceSeen.clear();
|
|
299
|
+
}
|
|
300
|
+
function warnOnce(key, payload) {
|
|
301
|
+
if (_warnOnceSeen.has(key)) return;
|
|
302
|
+
if (_warnOnceSeen.size >= MAX_SEEN) {
|
|
303
|
+
const oldest = _warnOnceSeen.values().next().value;
|
|
304
|
+
if (oldest !== void 0) _warnOnceSeen.delete(oldest);
|
|
305
|
+
}
|
|
306
|
+
_warnOnceSeen.add(key);
|
|
307
|
+
let line;
|
|
308
|
+
try {
|
|
309
|
+
line = JSON.stringify({ ...payload, warnOnce: true });
|
|
310
|
+
} catch {
|
|
311
|
+
line = `[warnOnce] ${key} \u2014 (payload could not be serialized)`;
|
|
312
|
+
}
|
|
313
|
+
console.warn(line);
|
|
314
|
+
broadcastWarnOnceToDevtools(key, payload);
|
|
315
|
+
}
|
|
316
|
+
function payloadField(payload, key, fallback = "") {
|
|
317
|
+
const value = payload[key];
|
|
318
|
+
if (typeof value === "string") return value;
|
|
319
|
+
if (typeof value === "number" || typeof value === "boolean") return String(value);
|
|
320
|
+
return fallback;
|
|
321
|
+
}
|
|
322
|
+
function randomDevtoolsId() {
|
|
323
|
+
return `warn-${String(Date.now())}-${Math.random().toString(36).slice(2, 8)}`;
|
|
324
|
+
}
|
|
325
|
+
function broadcastWarnOnceToDevtools(key, payload) {
|
|
326
|
+
void import("./broadcast-H64DJRBE.js").then(({ broadcastCsrfWarn, broadcastError }) => {
|
|
327
|
+
if (payload.event === "csrf.warn" && typeof payload.code === "string" && typeof payload.docsUrl === "string") {
|
|
328
|
+
broadcastCsrfWarn({
|
|
329
|
+
event: "csrf.warn",
|
|
330
|
+
code: payload.code,
|
|
331
|
+
docsUrl: payload.docsUrl,
|
|
332
|
+
method: payloadField(payload, "method"),
|
|
333
|
+
path: payloadField(payload, "path"),
|
|
334
|
+
reason: payloadField(payload, "reason")
|
|
335
|
+
});
|
|
336
|
+
} else {
|
|
337
|
+
broadcastError({
|
|
338
|
+
id: randomDevtoolsId(),
|
|
339
|
+
type: "console",
|
|
340
|
+
message: payloadField(payload, "event", key),
|
|
341
|
+
timestamp: Date.now()
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
}).catch(() => {
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
// src/server/http/trace-context.ts
|
|
349
|
+
var TRACE_HEADER = "x-trace-id";
|
|
350
|
+
var TRACE_PARENT_HEADER = "traceparent";
|
|
351
|
+
var REQUEST_ID_HEADER = "x-request-id";
|
|
352
|
+
var TRACEPARENT_RE = /^00-([0-9a-f]{32})-([0-9a-f]{16})-[0-9a-f]{2}$/;
|
|
353
|
+
function parseTraceparentContext(value) {
|
|
354
|
+
if (!value) return null;
|
|
355
|
+
const m = TRACEPARENT_RE.exec(value);
|
|
356
|
+
if (!m) return null;
|
|
357
|
+
const traceId = m[1];
|
|
358
|
+
if (/^0+$/.test(traceId)) return null;
|
|
359
|
+
const parentSpanId = m[2];
|
|
360
|
+
return /^0+$/.test(parentSpanId) ? { traceId } : { traceId, parentSpanId };
|
|
361
|
+
}
|
|
362
|
+
function parseTraceparent(value) {
|
|
363
|
+
return parseTraceparentContext(value)?.traceId ?? null;
|
|
364
|
+
}
|
|
365
|
+
var REQUEST_ID_RE = /^[A-Za-z0-9_.:-]{1,128}$/;
|
|
366
|
+
function isTrustedRequestId(value) {
|
|
367
|
+
return REQUEST_ID_RE.test(value);
|
|
368
|
+
}
|
|
369
|
+
function pickHeader(value, isTrusted = () => true) {
|
|
370
|
+
if (Array.isArray(value)) {
|
|
371
|
+
for (const v of value) {
|
|
372
|
+
if (typeof v === "string" && v.length > 0 && isTrusted(v)) return v;
|
|
373
|
+
}
|
|
374
|
+
return null;
|
|
375
|
+
}
|
|
376
|
+
if (typeof value === "string" && value.length > 0 && isTrusted(value)) return value;
|
|
377
|
+
return null;
|
|
378
|
+
}
|
|
379
|
+
function resolveTraceIdFromHeaders(traceparent, requestId) {
|
|
380
|
+
if (traceparent !== null) {
|
|
381
|
+
const parsed = parseTraceparent(traceparent);
|
|
382
|
+
if (parsed !== null) return parsed;
|
|
383
|
+
}
|
|
384
|
+
if (requestId !== null) return requestId;
|
|
385
|
+
return globalThis.crypto.randomUUID();
|
|
386
|
+
}
|
|
387
|
+
function extractTraceId(req) {
|
|
388
|
+
return resolveTraceIdFromHeaders(
|
|
389
|
+
pickHeader(req.headers[TRACE_PARENT_HEADER]),
|
|
390
|
+
pickHeader(req.headers[REQUEST_ID_HEADER], isTrustedRequestId)
|
|
391
|
+
);
|
|
392
|
+
}
|
|
393
|
+
function extractW3CTraceContext(request) {
|
|
394
|
+
const traceparent = request.headers.get(TRACE_PARENT_HEADER);
|
|
395
|
+
if (traceparent === null) return void 0;
|
|
396
|
+
return parseTraceparentContext(traceparent) ?? void 0;
|
|
397
|
+
}
|
|
398
|
+
function extractTraceIdFromRequest(request) {
|
|
399
|
+
const requestId = request.headers.get(REQUEST_ID_HEADER);
|
|
400
|
+
return resolveTraceIdFromHeaders(
|
|
401
|
+
request.headers.get(TRACE_PARENT_HEADER),
|
|
402
|
+
// Same policy on both resolvers. A validation living on one side only is the
|
|
403
|
+
// gap an attacker picks the other transport to reach.
|
|
404
|
+
requestId !== null && isTrustedRequestId(requestId) ? requestId : null
|
|
405
|
+
);
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
export {
|
|
409
|
+
RequestBodyConsumedError,
|
|
410
|
+
FileTooLargeError,
|
|
411
|
+
parseRequestBody,
|
|
412
|
+
logRequest,
|
|
413
|
+
createLogger,
|
|
414
|
+
_resetWarnOnceForTests,
|
|
415
|
+
warnOnce,
|
|
416
|
+
TRACE_HEADER,
|
|
417
|
+
TRACE_PARENT_HEADER,
|
|
418
|
+
parseTraceparentContext,
|
|
419
|
+
parseTraceparent,
|
|
420
|
+
extractTraceId,
|
|
421
|
+
extractW3CTraceContext,
|
|
422
|
+
extractTraceIdFromRequest
|
|
423
|
+
};
|
|
424
|
+
//# sourceMappingURL=chunk-72DMJBXI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/body-parser.ts","../src/server/observability/request-log.ts","../src/server/observability/logger.ts","../src/server/http/trace-context.ts"],"mappings":"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","names":[]}
|