theokit 0.48.14 → 0.50.1

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.
Files changed (337) hide show
  1. package/README.md +1 -0
  2. package/dist/{actions-virtual-module-YZRZMHAX.js → actions-virtual-module-DSIVNGK7.js} +14 -8
  3. package/dist/{actions-virtual-module-YZRZMHAX.js.map → actions-virtual-module-DSIVNGK7.js.map} +1 -1
  4. package/dist/{actions-virtual-module-E4PISKMB.js → actions-virtual-module-RXL2RJTW.js} +23 -12
  5. package/dist/actions-virtual-module-RXL2RJTW.js.map +1 -0
  6. package/dist/adapters/agent-mount.d.ts +127 -0
  7. package/dist/adapters/agent-mount.js +25 -0
  8. package/dist/adapters/security-headers.d.ts +132 -0
  9. package/dist/adapters/security-headers.js +64 -0
  10. package/dist/adapters/security-headers.js.map +1 -0
  11. package/dist/adapters/web-shim.d.ts +100 -13
  12. package/dist/adapters/web-shim.js +158 -54
  13. package/dist/adapters/web-shim.js.map +1 -1
  14. package/dist/agent-7IPEVCAY.js +15 -0
  15. package/dist/agent-scan-BZa-pagG.d.ts +16 -0
  16. package/dist/{app-typed-client-I4X2UJWW.js → app-typed-client-UTBMJZOE.js} +15 -9
  17. package/dist/app-typed-client-UTBMJZOE.js.map +1 -0
  18. package/dist/{app-typed-client-HLP26EYM.js → app-typed-client-XGDZKH73.js} +24 -13
  19. package/dist/app-typed-client-XGDZKH73.js.map +1 -0
  20. package/dist/aws-lambda-VKMYUMP2.js +261 -0
  21. package/dist/aws-lambda-VKMYUMP2.js.map +1 -0
  22. package/dist/{body-parser-web-4Z2QTPDU.js → body-parser-web-ON5CUTEL.js} +5 -2
  23. package/dist/body-parser-web-ON5CUTEL.js.map +1 -0
  24. package/dist/{body-parser-web-TIOTXPDW.js → body-parser-web-RV2SSAI3.js} +5 -2
  25. package/dist/body-parser-web-RV2SSAI3.js.map +1 -0
  26. package/dist/{build-F2Q5QTSC.js → build-VZODSYIQ.js} +72 -26
  27. package/dist/build-VZODSYIQ.js.map +1 -0
  28. package/dist/{bun-A5B2MJMO.js → bun-L7PP6ID5.js} +105 -13
  29. package/dist/bun-L7PP6ID5.js.map +1 -0
  30. package/dist/{check-45NKUVSQ.js → check-GIPZBFTX.js} +2 -2
  31. package/dist/{chunk-WYHYOYRH.js → chunk-2COPDKIG.js} +468 -203
  32. package/dist/chunk-2COPDKIG.js.map +1 -0
  33. package/dist/chunk-3PBAN2YE.js +146 -0
  34. package/dist/chunk-3PBAN2YE.js.map +1 -0
  35. package/dist/{chunk-HBU2GIMZ.js → chunk-3QPVEJ7D.js} +15 -9
  36. package/dist/chunk-3QPVEJ7D.js.map +1 -0
  37. package/dist/{chunk-IEES3CHD.js → chunk-47MM2JUK.js} +8 -2
  38. package/dist/chunk-47MM2JUK.js.map +1 -0
  39. package/dist/chunk-4X6H2BXP.js +108 -0
  40. package/dist/chunk-4X6H2BXP.js.map +1 -0
  41. package/dist/{chunk-A7JBF5FO.js → chunk-5K4TDLRG.js} +8 -5
  42. package/dist/chunk-5K4TDLRG.js.map +1 -0
  43. package/dist/chunk-5YPXXSYY.js +181 -0
  44. package/dist/chunk-5YPXXSYY.js.map +1 -0
  45. package/dist/{chunk-YGAXV5HR.js → chunk-6J4JWHDJ.js} +191 -112
  46. package/dist/chunk-6J4JWHDJ.js.map +1 -0
  47. package/dist/{chunk-FTFN4MYN.js → chunk-7AEBH52I.js} +639 -516
  48. package/dist/chunk-7AEBH52I.js.map +1 -0
  49. package/dist/chunk-7UZZHCRN.js +21 -0
  50. package/dist/chunk-7UZZHCRN.js.map +1 -0
  51. package/dist/{chunk-MTEWLGVY.js → chunk-BPYMC7SU.js} +4 -48
  52. package/dist/chunk-BPYMC7SU.js.map +1 -0
  53. package/dist/chunk-BU6RJPPJ.js +421 -0
  54. package/dist/chunk-BU6RJPPJ.js.map +1 -0
  55. package/dist/{chunk-FB2HBNIC.js → chunk-BX6EUYHU.js} +6 -2
  56. package/dist/chunk-BX6EUYHU.js.map +1 -0
  57. package/dist/chunk-CHTAWXC2.js +18 -0
  58. package/dist/chunk-CHTAWXC2.js.map +1 -0
  59. package/dist/chunk-D4VP2QPR.js +16 -0
  60. package/dist/chunk-D4VP2QPR.js.map +1 -0
  61. package/dist/{chunk-YXG2SGQ3.js → chunk-DHAD2O3S.js} +6 -6
  62. package/dist/chunk-DHAD2O3S.js.map +1 -0
  63. package/dist/chunk-DOI4G4X3.js +428 -0
  64. package/dist/chunk-DOI4G4X3.js.map +1 -0
  65. package/dist/chunk-E43VJ3E5.js +188 -0
  66. package/dist/chunk-E43VJ3E5.js.map +1 -0
  67. package/dist/{chunk-47CINLWF.js → chunk-EDWEYQRG.js} +2 -2
  68. package/dist/chunk-EVZKNA2W.js +110 -0
  69. package/dist/chunk-EVZKNA2W.js.map +1 -0
  70. package/dist/chunk-FD4ZDTQ6.js +181 -0
  71. package/dist/chunk-FD4ZDTQ6.js.map +1 -0
  72. package/dist/chunk-FDOOBTXJ.js +17 -0
  73. package/dist/chunk-FDOOBTXJ.js.map +1 -0
  74. package/dist/chunk-FH3SQR6P.js +275 -0
  75. package/dist/chunk-FH3SQR6P.js.map +1 -0
  76. package/dist/{chunk-T5C46IIU.js → chunk-FMTRNQQ7.js} +28 -269
  77. package/dist/chunk-FMTRNQQ7.js.map +1 -0
  78. package/dist/chunk-H53KNS6Q.js +513 -0
  79. package/dist/chunk-H53KNS6Q.js.map +1 -0
  80. package/dist/chunk-HJHGTFEJ.js +23 -0
  81. package/dist/chunk-HJHGTFEJ.js.map +1 -0
  82. package/dist/{chunk-LXAESF4Y.js → chunk-HK4AZBKX.js} +7 -4
  83. package/dist/chunk-HK4AZBKX.js.map +1 -0
  84. package/dist/chunk-IRQGAC4L.js +52 -0
  85. package/dist/chunk-IRQGAC4L.js.map +1 -0
  86. package/dist/{chunk-FNTLKHZ7.js → chunk-JDN5SAAD.js} +7 -4
  87. package/dist/chunk-JDN5SAAD.js.map +1 -0
  88. package/dist/{chunk-XALU5LCU.js → chunk-JKF25N73.js} +555 -147
  89. package/dist/chunk-JKF25N73.js.map +1 -0
  90. package/dist/{chunk-BHOTGS7N.js → chunk-KI4DOTN4.js} +25 -2
  91. package/dist/chunk-KI4DOTN4.js.map +1 -0
  92. package/dist/chunk-KOS567NB.js +790 -0
  93. package/dist/chunk-KOS567NB.js.map +1 -0
  94. package/dist/{chunk-OOBYPCZC.js → chunk-KTS6G26H.js} +304 -195
  95. package/dist/chunk-KTS6G26H.js.map +1 -0
  96. package/dist/{chunk-ZB7D62OA.js → chunk-KUZVRJ7M.js} +3 -3
  97. package/dist/chunk-L4VFNFDL.js +248 -0
  98. package/dist/chunk-L4VFNFDL.js.map +1 -0
  99. package/dist/chunk-M2WC5MF7.js +127 -0
  100. package/dist/chunk-M2WC5MF7.js.map +1 -0
  101. package/dist/chunk-N42ZWWOW.js +273 -0
  102. package/dist/chunk-N42ZWWOW.js.map +1 -0
  103. package/dist/chunk-OGLS76RN.js +43 -0
  104. package/dist/chunk-OGLS76RN.js.map +1 -0
  105. package/dist/{chunk-7LVM22VG.js → chunk-OQCRCXCP.js} +6 -6
  106. package/dist/chunk-OQCRCXCP.js.map +1 -0
  107. package/dist/{chunk-OLGPYOLO.js → chunk-P6OS7652.js} +5 -2
  108. package/dist/chunk-P6OS7652.js.map +1 -0
  109. package/dist/{chunk-O3JIAU3V.js → chunk-PF3YM6NY.js} +157 -103
  110. package/dist/chunk-PF3YM6NY.js.map +1 -0
  111. package/dist/{chunk-NTWNO24W.js → chunk-PLUHPNGA.js} +266 -110
  112. package/dist/chunk-PLUHPNGA.js.map +1 -0
  113. package/dist/chunk-Q5L5EGWZ.js +26 -0
  114. package/dist/chunk-Q5L5EGWZ.js.map +1 -0
  115. package/dist/{chunk-AATSV4UV.js → chunk-QTHVHNJJ.js} +6 -36
  116. package/dist/chunk-QTHVHNJJ.js.map +1 -0
  117. package/dist/{chunk-KD5G3YXI.js → chunk-RARK7JBR.js} +39 -10
  118. package/dist/chunk-RARK7JBR.js.map +1 -0
  119. package/dist/chunk-RJJF457I.js +111 -0
  120. package/dist/chunk-RJJF457I.js.map +1 -0
  121. package/dist/chunk-RPET332G.js +84 -0
  122. package/dist/chunk-RPET332G.js.map +1 -0
  123. package/dist/{chunk-646CA6RV.js → chunk-RQW5YMH7.js} +12 -4
  124. package/dist/chunk-RQW5YMH7.js.map +1 -0
  125. package/dist/chunk-U5PWXS3J.js +39 -0
  126. package/dist/chunk-U5PWXS3J.js.map +1 -0
  127. package/dist/{chunk-RWNSW4FM.js → chunk-UMNXCU3K.js} +12 -6
  128. package/dist/{chunk-RWNSW4FM.js.map → chunk-UMNXCU3K.js.map} +1 -1
  129. package/dist/{chunk-DS5MCU2X.js → chunk-URCXSUI3.js} +9 -9
  130. package/dist/chunk-VI7ZANB3.js +193 -0
  131. package/dist/chunk-VI7ZANB3.js.map +1 -0
  132. package/dist/chunk-VQPHPQ5L.js +14 -0
  133. package/dist/chunk-VQPHPQ5L.js.map +1 -0
  134. package/dist/chunk-WNJTJRM6.js +147 -0
  135. package/dist/chunk-WNJTJRM6.js.map +1 -0
  136. package/dist/{chunk-BMHS4WAN.js → chunk-XS7EX55U.js} +156 -42
  137. package/dist/chunk-XS7EX55U.js.map +1 -0
  138. package/dist/chunk-YN4W7LCX.js +31 -0
  139. package/dist/chunk-YN4W7LCX.js.map +1 -0
  140. package/dist/chunk-YSJOZEI6.js +1 -0
  141. package/dist/{chunk-JA2ZAT5Q.js → chunk-Z4PJMZLM.js} +2 -2
  142. package/dist/chunk-Z4PJMZLM.js.map +1 -0
  143. package/dist/{chunk-WSXNGF7X.js → chunk-ZNZISJDZ.js} +6 -2
  144. package/dist/chunk-ZNZISJDZ.js.map +1 -0
  145. package/dist/chunk-ZWN3AODA.js +11 -0
  146. package/dist/chunk-ZWN3AODA.js.map +1 -0
  147. package/dist/cli/index.js +25 -10
  148. package/dist/cli/index.js.map +1 -1
  149. package/dist/client/core.d.ts +1 -1
  150. package/dist/client/core.js +2 -0
  151. package/dist/client/core.js.map +1 -1
  152. package/dist/client/index.d.ts +44 -10
  153. package/dist/client/index.js +35 -0
  154. package/dist/client/index.js.map +1 -1
  155. package/dist/cloudflare-SIG42OIW.js +335 -0
  156. package/dist/cloudflare-SIG42OIW.js.map +1 -0
  157. package/dist/config-support-WQHQIJTA.js +104 -0
  158. package/dist/config-support-WQHQIJTA.js.map +1 -0
  159. package/dist/{csrf-BBrEZSBW.d.ts → csrf-Dgot9qSM.d.ts} +1 -1
  160. package/dist/deno-deploy-LQAYOOPW.js +196 -0
  161. package/dist/deno-deploy-LQAYOOPW.js.map +1 -0
  162. package/dist/{dev-CDFPXISP.js → dev-3UQVD2W6.js} +29 -18
  163. package/dist/dev-3UQVD2W6.js.map +1 -0
  164. package/dist/{dev-emit-GWD6IXV7.js → dev-emit-BFNMDCPB.js} +5 -5
  165. package/dist/{dev-emit-NBT6JD7R.js → dev-emit-MVAJAFGX.js} +5 -3
  166. package/dist/dev-emit-MVAJAFGX.js.map +1 -0
  167. package/dist/engine-singleton-X4R7AZBJ.js +315 -0
  168. package/dist/engine-singleton-X4R7AZBJ.js.map +1 -0
  169. package/dist/{generate-Y3GWM57K.js → generate-EN6EDITF.js} +43 -4
  170. package/dist/generate-EN6EDITF.js.map +1 -0
  171. package/dist/index-DctfHtv-.d.ts +1058 -0
  172. package/dist/index.d.ts +8 -4
  173. package/dist/index.js +25 -13
  174. package/dist/index.js.map +1 -1
  175. package/dist/{info-QXZW722N.js → info-Y55RWS42.js} +8 -6
  176. package/dist/{info-QXZW722N.js.map → info-Y55RWS42.js.map} +1 -1
  177. package/dist/{internal-api-FBK2YXSI.js → internal-api-4X6NDS2F.js} +23 -12
  178. package/dist/{internal-api-ZCJWJ5EC.js → internal-api-XQHU5JKY.js} +31 -16
  179. package/dist/internal-api-XQHU5JKY.js.map +1 -0
  180. package/dist/load-config-4ATXQUN3.js +16 -0
  181. package/dist/match-DmGgxjIU.d.ts +44 -0
  182. package/dist/{mcp-KTYP4ZON.js → mcp-IQRHFP3Y.js} +7 -7
  183. package/dist/netlify-C2IRCZKI.js +245 -0
  184. package/dist/netlify-C2IRCZKI.js.map +1 -0
  185. package/dist/node-OSVPYQ3D.js +10 -0
  186. package/dist/nonce-BXt7Qu_C.d.ts +31 -0
  187. package/dist/observability-bootstrap-LERYDHKY.js +16 -0
  188. package/dist/{openapi-OUXNB2F2.js → openapi-VFPEZSRI.js} +13 -11
  189. package/dist/{openapi-OUXNB2F2.js.map → openapi-VFPEZSRI.js.map} +1 -1
  190. package/dist/{plugin-runner-DHVr1cC5.d.ts → plugin-runner-BVMOSxvb.d.ts} +1 -1
  191. package/dist/{plugin-types-4VN1GMqV.d.ts → plugin-types-BUVfUQ0V.d.ts} +1 -1
  192. package/dist/preview-BT47VMIB.js +23 -0
  193. package/dist/preview-BT47VMIB.js.map +1 -0
  194. package/dist/provider-resolver-Dx6QuWrw.d.ts +128 -0
  195. package/dist/registry-KBZDCFVQ.js +23 -0
  196. package/dist/route-config-Cm_ZMA1C.d.ts +72 -0
  197. package/dist/route-policy-BxOycCDq.d.ts +65 -0
  198. package/dist/router/element-scroll-restoration.d.ts +28 -0
  199. package/dist/router/element-scroll-restoration.js +96 -0
  200. package/dist/router/element-scroll-restoration.js.map +1 -0
  201. package/dist/{routes-NJR4ISCT.js → routes-BPLU3ISV.js} +11 -9
  202. package/dist/{routes-NJR4ISCT.js.map → routes-BPLU3ISV.js.map} +1 -1
  203. package/dist/{scan-7MJC6PYU.js → scan-YJEE4KQK.js} +2 -2
  204. package/dist/{schema-DNIT7JQX.js → schema-SOAD43RQ.js} +7 -5
  205. package/dist/schemas-4AXHQMV3.js +25 -0
  206. package/dist/schemas-4AXHQMV3.js.map +1 -0
  207. package/dist/security-headers-Ccj7ncNx.d.ts +129 -0
  208. package/dist/server/agent/index.d.ts +2 -105
  209. package/dist/server/agent/index.js +1 -1
  210. package/dist/server/auth/index.d.ts +2 -21
  211. package/dist/server/auth/index.js +3 -2
  212. package/dist/server/cron/index.js +4 -3
  213. package/dist/server/define/index.d.ts +43 -57
  214. package/dist/server/define/index.js +10 -1
  215. package/dist/server/http/index.d.ts +7 -5
  216. package/dist/server/http/index.js +57 -12
  217. package/dist/server/index.d.ts +47 -439
  218. package/dist/server/index.js +120 -201
  219. package/dist/server/index.js.map +1 -1
  220. package/dist/server/jobs/index.js +4 -3
  221. package/dist/server/observability/index.d.ts +109 -35
  222. package/dist/server/observability/index.js +11 -7
  223. package/dist/server/plugins/index.d.ts +3 -3
  224. package/dist/server/scan/index.d.ts +47 -12
  225. package/dist/server/scan/index.js +13 -4
  226. package/dist/server/security/index.d.ts +61 -103
  227. package/dist/server/security/index.js +15 -6
  228. package/dist/server/webhook/index.d.ts +90 -3
  229. package/dist/server/webhook/index.js +12 -2
  230. package/dist/server-boundary-2WFT546S.js +149 -0
  231. package/dist/server-boundary-2WFT546S.js.map +1 -0
  232. package/dist/server-boundary-A67OPRKO.js +134 -0
  233. package/dist/server-boundary-A67OPRKO.js.map +1 -0
  234. package/dist/{services-typed-client-P4JERLBL.js → services-typed-client-XGT5SUUN.js} +2 -2
  235. package/dist/{start-25OV2CAK.js → start-3K3C4Z2X.js} +224 -161
  236. package/dist/start-3K3C4Z2X.js.map +1 -0
  237. package/dist/{static-RTO637XW.js → static-SVDWIOXJ.js} +24 -13
  238. package/dist/static-SVDWIOXJ.js.map +1 -0
  239. package/dist/{theo-cloud-UZ3GINRU.js → theo-cloud-3ET4G5T6.js} +9 -2
  240. package/dist/theo-cloud-3ET4G5T6.js.map +1 -0
  241. package/dist/vercel-BMCQKCWE.js +277 -0
  242. package/dist/vercel-BMCQKCWE.js.map +1 -0
  243. package/dist/vite-plugin/index.js +25 -13
  244. package/dist/vite-plugin-USXUIV3H.js +43 -0
  245. package/dist/vite-plugin-USXUIV3H.js.map +1 -0
  246. package/package.json +19 -6
  247. package/dist/actions-virtual-module-E4PISKMB.js.map +0 -1
  248. package/dist/agent-XAQCUQNB.js +0 -15
  249. package/dist/app-typed-client-HLP26EYM.js.map +0 -1
  250. package/dist/app-typed-client-I4X2UJWW.js.map +0 -1
  251. package/dist/aws-lambda-KES4MFJV.js +0 -172
  252. package/dist/aws-lambda-KES4MFJV.js.map +0 -1
  253. package/dist/body-parser-web-4Z2QTPDU.js.map +0 -1
  254. package/dist/body-parser-web-TIOTXPDW.js.map +0 -1
  255. package/dist/build-F2Q5QTSC.js.map +0 -1
  256. package/dist/bun-A5B2MJMO.js.map +0 -1
  257. package/dist/chunk-646CA6RV.js.map +0 -1
  258. package/dist/chunk-7LVM22VG.js.map +0 -1
  259. package/dist/chunk-A7JBF5FO.js.map +0 -1
  260. package/dist/chunk-AATSV4UV.js.map +0 -1
  261. package/dist/chunk-AM3QABW5.js +0 -161
  262. package/dist/chunk-AM3QABW5.js.map +0 -1
  263. package/dist/chunk-AXKUA57G.js +0 -94
  264. package/dist/chunk-AXKUA57G.js.map +0 -1
  265. package/dist/chunk-BHOTGS7N.js.map +0 -1
  266. package/dist/chunk-BMHS4WAN.js.map +0 -1
  267. package/dist/chunk-CMYSHZFT.js +0 -422
  268. package/dist/chunk-CMYSHZFT.js.map +0 -1
  269. package/dist/chunk-DQIPV7L5.js +0 -118
  270. package/dist/chunk-DQIPV7L5.js.map +0 -1
  271. package/dist/chunk-FB2HBNIC.js.map +0 -1
  272. package/dist/chunk-FNTLKHZ7.js.map +0 -1
  273. package/dist/chunk-FTFN4MYN.js.map +0 -1
  274. package/dist/chunk-HBU2GIMZ.js.map +0 -1
  275. package/dist/chunk-IEES3CHD.js.map +0 -1
  276. package/dist/chunk-JA2ZAT5Q.js.map +0 -1
  277. package/dist/chunk-KD5G3YXI.js.map +0 -1
  278. package/dist/chunk-KTKTHIUF.js +0 -405
  279. package/dist/chunk-KTKTHIUF.js.map +0 -1
  280. package/dist/chunk-LNVMHQ2Z.js +0 -54
  281. package/dist/chunk-LNVMHQ2Z.js.map +0 -1
  282. package/dist/chunk-LXAESF4Y.js.map +0 -1
  283. package/dist/chunk-MTEWLGVY.js.map +0 -1
  284. package/dist/chunk-NTWNO24W.js.map +0 -1
  285. package/dist/chunk-O3JIAU3V.js.map +0 -1
  286. package/dist/chunk-OLGPYOLO.js.map +0 -1
  287. package/dist/chunk-OOBYPCZC.js.map +0 -1
  288. package/dist/chunk-T5C46IIU.js.map +0 -1
  289. package/dist/chunk-U267AOWS.js +0 -28
  290. package/dist/chunk-U267AOWS.js.map +0 -1
  291. package/dist/chunk-UW2TEAGR.js +0 -77
  292. package/dist/chunk-UW2TEAGR.js.map +0 -1
  293. package/dist/chunk-WPJOTQA5.js +0 -1
  294. package/dist/chunk-WSXNGF7X.js.map +0 -1
  295. package/dist/chunk-WYHYOYRH.js.map +0 -1
  296. package/dist/chunk-XALU5LCU.js.map +0 -1
  297. package/dist/chunk-XR74JD4M.js +0 -457
  298. package/dist/chunk-XR74JD4M.js.map +0 -1
  299. package/dist/chunk-YGAXV5HR.js.map +0 -1
  300. package/dist/chunk-YXG2SGQ3.js.map +0 -1
  301. package/dist/cloudflare-IN2WB7FZ.js +0 -122
  302. package/dist/cloudflare-IN2WB7FZ.js.map +0 -1
  303. package/dist/deno-deploy-LYXQEJ6A.js +0 -107
  304. package/dist/deno-deploy-LYXQEJ6A.js.map +0 -1
  305. package/dist/dev-CDFPXISP.js.map +0 -1
  306. package/dist/dev-emit-NBT6JD7R.js.map +0 -1
  307. package/dist/generate-Y3GWM57K.js.map +0 -1
  308. package/dist/index-D_PxPXgQ.d.ts +0 -575
  309. package/dist/load-config-FIWNKOJO.js +0 -14
  310. package/dist/match-CfbEFRG4.d.ts +0 -26
  311. package/dist/netlify-DLEOCFAD.js +0 -150
  312. package/dist/netlify-DLEOCFAD.js.map +0 -1
  313. package/dist/node-QXYSUWQ4.js +0 -10
  314. package/dist/registry-S7OMF3OS.js +0 -23
  315. package/dist/start-25OV2CAK.js.map +0 -1
  316. package/dist/static-RTO637XW.js.map +0 -1
  317. package/dist/theo-cloud-UZ3GINRU.js.map +0 -1
  318. package/dist/vercel-6D6EZUVD.js +0 -133
  319. package/dist/vercel-6D6EZUVD.js.map +0 -1
  320. package/dist/vite-plugin-RJFKLF2U.js +0 -36
  321. /package/dist/{chunk-WPJOTQA5.js.map → adapters/agent-mount.js.map} +0 -0
  322. /package/dist/{agent-XAQCUQNB.js.map → agent-7IPEVCAY.js.map} +0 -0
  323. /package/dist/{check-45NKUVSQ.js.map → check-GIPZBFTX.js.map} +0 -0
  324. /package/dist/{chunk-47CINLWF.js.map → chunk-EDWEYQRG.js.map} +0 -0
  325. /package/dist/{chunk-ZB7D62OA.js.map → chunk-KUZVRJ7M.js.map} +0 -0
  326. /package/dist/{chunk-DS5MCU2X.js.map → chunk-URCXSUI3.js.map} +0 -0
  327. /package/dist/{internal-api-ZCJWJ5EC.js.map → chunk-YSJOZEI6.js.map} +0 -0
  328. /package/dist/{dev-emit-GWD6IXV7.js.map → dev-emit-BFNMDCPB.js.map} +0 -0
  329. /package/dist/{internal-api-FBK2YXSI.js.map → internal-api-4X6NDS2F.js.map} +0 -0
  330. /package/dist/{load-config-FIWNKOJO.js.map → load-config-4ATXQUN3.js.map} +0 -0
  331. /package/dist/{mcp-KTYP4ZON.js.map → mcp-IQRHFP3Y.js.map} +0 -0
  332. /package/dist/{node-QXYSUWQ4.js.map → node-OSVPYQ3D.js.map} +0 -0
  333. /package/dist/{scan-7MJC6PYU.js.map → observability-bootstrap-LERYDHKY.js.map} +0 -0
  334. /package/dist/{registry-S7OMF3OS.js.map → registry-KBZDCFVQ.js.map} +0 -0
  335. /package/dist/{schema-DNIT7JQX.js.map → scan-YJEE4KQK.js.map} +0 -0
  336. /package/dist/{vite-plugin-RJFKLF2U.js.map → schema-SOAD43RQ.js.map} +0 -0
  337. /package/dist/{services-typed-client-P4JERLBL.js.map → services-typed-client-XGT5SUUN.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/vite-plugin/app-typed-client.ts","../src/vite-plugin/controller-client-emit.ts"],"mappings":"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","names":[]}
@@ -0,0 +1,261 @@
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 "./chunk-RPET332G.js";
15
+ import {
16
+ assertServicesUnsupported,
17
+ readManifest
18
+ } from "./chunk-ZNZISJDZ.js";
19
+
20
+ // src/adapters/aws-lambda.ts
21
+ import { mkdirSync, writeFileSync } from "fs";
22
+ import { resolve } from "path";
23
+ var BINARY_CONTENT_TYPES = [
24
+ "application/octet-stream",
25
+ "application/pdf",
26
+ "application/zip",
27
+ "image/",
28
+ "audio/",
29
+ "video/"
30
+ ];
31
+ function isBinaryContentType(contentType) {
32
+ if (!contentType) return false;
33
+ const ct = contentType.toLowerCase();
34
+ return BINARY_CONTENT_TYPES.some((prefix) => ct.startsWith(prefix));
35
+ }
36
+ function eventV2ToRequestShape(event) {
37
+ const headers = {};
38
+ for (const [k, v] of Object.entries(event.headers ?? {})) {
39
+ if (v !== void 0) headers[k] = v;
40
+ }
41
+ let body = event.body;
42
+ if (body !== void 0 && event.isBase64Encoded) {
43
+ body = Buffer.from(body, "base64").toString("utf-8");
44
+ }
45
+ return {
46
+ method: event.requestContext.http.method,
47
+ path: event.requestContext.http.path,
48
+ headers,
49
+ body
50
+ };
51
+ }
52
+ function responseToLambdaResultV2(statusCode, headers, body) {
53
+ const isBinary = isBinaryContentType(headers["content-type"]);
54
+ return {
55
+ statusCode,
56
+ headers,
57
+ body: isBinary ? Buffer.from(body, "binary").toString("base64") : body,
58
+ isBase64Encoded: isBinary
59
+ };
60
+ }
61
+ function awsLambdaHandlerFragment(runtimeSpread) {
62
+ return [
63
+ `// #382 \u2014 this target is DELISTED for response streaming, by construction.`,
64
+ `// The Lambda v2 result object below carries \`body\` as a string, so the`,
65
+ `// response cannot exist until the run has finished, no matter how the`,
66
+ `// framework's shim writes it. Streaming here would require`,
67
+ `// \`awslambda.streamifyResponse\` plus a Function URL in RESPONSE_STREAM`,
68
+ `// invoke mode \u2014 neither of which this adapter emits, and which would break`,
69
+ `// every API Gateway deployment of it. Rather than degrade in silence, a`,
70
+ `// response that is unambiguously a stream is named in the logs below.`,
71
+ `async function responseToV2Result(response, routePath) {`,
72
+ ` const headers = {}`,
73
+ ` response.headers.forEach((v, k) => { headers[k] = v })`,
74
+ ` const ct = headers['content-type'] ?? ''`,
75
+ ` if (ct.includes('text/event-stream')) {`,
76
+ ` console.warn(`,
77
+ ` '[theo][aws-lambda] ' + routePath + ' returned a streaming response (' + ct + '), ' +`,
78
+ ` 'but the aws-lambda target buffers it whole and delivers it when the run ends. ' +`,
79
+ ` 'This target is delisted for streaming (theokit#382). Deploy streaming routes to ' +`,
80
+ ` 'cloudflare, vercel, netlify, bun, deno-deploy or node.'`,
81
+ ` )`,
82
+ ` }`,
83
+ ` const isBinary = /^application\\/(octet-stream|pdf|zip)|^(image|audio|video)\\//.test(ct)`,
84
+ ` if (isBinary) {`,
85
+ ` const buf = Buffer.from(await response.arrayBuffer())`,
86
+ ` return {`,
87
+ ` statusCode: response.status,`,
88
+ ` headers,`,
89
+ ` body: buf.toString('base64'),`,
90
+ ` isBase64Encoded: true,`,
91
+ ` }`,
92
+ ` }`,
93
+ ` return {`,
94
+ ` statusCode: response.status,`,
95
+ ` headers,`,
96
+ ` body: await response.text(),`,
97
+ ` isBase64Encoded: false,`,
98
+ ` }`,
99
+ `}`,
100
+ ``,
101
+ `// Every outcome \u2014 including both 404s \u2014 is produced as a Web Response by`,
102
+ `// routeRequest, so the security baseline is applied at ONE place and the`,
103
+ `// v2 result object is built from headers that already carry it.`,
104
+ `export const handler = async (event) => {`,
105
+ ` const path = event.requestContext?.http?.path ?? '/'`,
106
+ ` // #409 \u2014 the same event, read as a Web Request so the CORS matcher can see the method and`,
107
+ ` // the \`origin\` header. \`eventV2ToRequest\` reads a body already present in the event, so`,
108
+ ` // unlike the Node targets there is no stream to drain twice.`,
109
+ ` const corsRequest = eventV2ToRequest(event)`,
110
+ ``,
111
+ ` // The preflight is answered BEFORE anything routes: an OPTIONS the router handles is an`,
112
+ ` // OPTIONS the browser never gets a CORS answer to.`,
113
+ ` const preflight = corsPreflight(corsRequest)`,
114
+ ` const response = preflight !== null`,
115
+ ` ? withSecurityHeaders(preflight, SECURITY_HEADERS)`,
116
+ ` : withCors(corsRequest, withSecurityHeaders(await routeRequest(event, path), SECURITY_HEADERS))`,
117
+ ` return responseToV2Result(response, path)`,
118
+ `}`,
119
+ ``,
120
+ `async function routeRequest(event, path) {`,
121
+ ` if (!path.startsWith('/api/')) {`,
122
+ ` return new Response(`,
123
+ ` 'Static assets must be served from CloudFront or a separate static host.',`,
124
+ ` { status: 404, headers: { 'content-type': 'text/plain' } },`,
125
+ ` )`,
126
+ ` }`,
127
+ ``,
128
+ ` if (!routesCache) routesCache = scanServerRoutes(serverDir)`,
129
+ ` if (!loaderCache) loaderCache = createProductionLoader()`,
130
+ ``,
131
+ ` const match = matchRoute(path, routesCache)`,
132
+ ` if (!match) {`,
133
+ ` return new Response(JSON.stringify({ error: { code: 'NOT_FOUND' } }), {`,
134
+ ` status: 404,`,
135
+ ` headers: { 'content-type': 'application/json' },`,
136
+ ` })`,
137
+ ` }`,
138
+ ``,
139
+ ` const request = eventV2ToRequest(event)`,
140
+ ` const { req, res, toResponse } = createWebShim(request)`,
141
+ ...deployedTraceFragment("request", " "),
142
+ ` const method = request.method.toUpperCase()`,
143
+ ` return toResponse(executeRoute({ route: match.route, method, params: match.params, req, res, loadModule: loaderCache, serverDir, requestId, ...CSRF_CONFIG, ${runtimeSpread} }))`,
144
+ `}`
145
+ ];
146
+ }
147
+ function renderAwsLambdaEntry(opts = {}) {
148
+ const runtimeConfig = deployedRuntimeConfigFragment(opts);
149
+ return [
150
+ `// Generated by Theo \u2014 AWS Lambda Adapter`,
151
+ `// Use with API Gateway HTTP API v2 (default).`,
152
+ ``,
153
+ `import { resolve } from 'node:path'`,
154
+ `import { scanServerRoutes, matchRoute, executeRoute, createProductionLoader, extractTraceIdFromRequest, TRACE_HEADER, createCorsWebHandler } from 'theokit/server'`,
155
+ `import { createWebShim } from 'theokit/adapters/web-shim'`,
156
+ `import { buildSecurityHeaders, withSecurityHeaders } from 'theokit/adapters/security-headers'`,
157
+ ``,
158
+ `const cwd = process.cwd()`,
159
+ `const serverDir = resolve(cwd, 'server')`,
160
+ `let routesCache = null`,
161
+ `let loaderCache = null`,
162
+ ``,
163
+ `// #410 \u2014 the security baseline \`theokit start\` puts on every response,`,
164
+ `// carried here as a literal because the deployed function has no`,
165
+ `// theo.config.ts to read. Non-API paths 404 here and the document is served`,
166
+ `// from CloudFront or another static host, so this covers the API and not the`,
167
+ `// page (usetheokit/theokit#412).`,
168
+ `const SECURITY_HEADERS_CONFIG = ${renderSecurityHeadersConfigLiteral(opts.securityHeaders)}`,
169
+ `const SECURITY_HEADERS = buildSecurityHeaders(SECURITY_HEADERS_CONFIG, { production: true })`,
170
+ ``,
171
+ ...runtimeConfig.imports,
172
+ ...runtimeConfig.declarations,
173
+ ...deployedCsrfFragment(opts),
174
+ ``,
175
+ ...deployedCorsFragment(opts.cors, "aws-lambda"),
176
+ ``,
177
+ `function eventV2ToRequest(event) {`,
178
+ ` const method = event.requestContext?.http?.method ?? 'GET'`,
179
+ ` const path = event.requestContext?.http?.path ?? '/'`,
180
+ ` const host = event.headers?.host ?? 'lambda'`,
181
+ ` const qs = event.rawQueryString ? '?' + event.rawQueryString : ''`,
182
+ ` const url = 'https://' + host + path + qs`,
183
+ ` const headers = new Headers()`,
184
+ ` for (const [k, v] of Object.entries(event.headers ?? {})) {`,
185
+ ` if (v !== undefined) headers.set(k, String(v))`,
186
+ ` }`,
187
+ ` let body = event.body`,
188
+ ` if (body && event.isBase64Encoded) {`,
189
+ ` body = Buffer.from(body, 'base64')`,
190
+ ` }`,
191
+ ` return new Request(url, {`,
192
+ ` method,`,
193
+ ` headers,`,
194
+ ` body: method === 'GET' || method === 'HEAD' ? undefined : body,`,
195
+ ` })`,
196
+ `}`,
197
+ ``,
198
+ ...awsLambdaHandlerFragment(runtimeConfig.executeRouteSpread)
199
+ ].join("\n");
200
+ }
201
+ async function buildAwsLambda(config, cwd, deps = {}, ctx) {
202
+ assertServicesUnsupported("aws-lambda", readManifest(cwd));
203
+ if (config.ssrStreaming) {
204
+ throw new Error(
205
+ "[adapter-aws-lambda] ssrStreaming is on, but the aws-lambda target does not stream responses: the Lambda v2 result object carries the body as a string, so nothing can leave the function before the run ends. Response streaming would need awslambda.streamifyResponse plus a Function URL in RESPONSE_STREAM invoke mode, which this adapter does not emit. Build a streaming target instead (cloudflare, vercel, netlify, bun, deno-deploy, node), or set ssrStreaming: false in theo.config.ts."
206
+ );
207
+ }
208
+ const runNodeBuild = deps.runNodeBuild ?? nodeAdapter.build.bind(nodeAdapter);
209
+ await runNodeBuild(config, cwd, ctx);
210
+ const outputDir = resolve(cwd, ".theokit/aws");
211
+ const ensureDir = deps.ensureDir ?? ((p) => mkdirSync(p, { recursive: true }));
212
+ ensureDir(outputDir);
213
+ const entry = renderAwsLambdaEntry({
214
+ securityHeaders: config.security?.headers,
215
+ csrf: config.security?.csrf,
216
+ disallowed: config.security?.disallowed,
217
+ cors: config.security?.cors,
218
+ // #425 — a selector, not a transformer, so it rides as a literal like the values above.
219
+ serialization: config.serialization
220
+ });
221
+ const write = deps.writeEntry ?? ((p, c) => {
222
+ writeFileSync(p, c);
223
+ });
224
+ write(resolve(outputDir, "handler.mjs"), entry);
225
+ console.log("\n \u2713 AWS Lambda output \u2192 .theokit/aws/handler.mjs");
226
+ console.log(
227
+ `${describeDeployedSecurityHeaders({
228
+ target: "aws-lambda",
229
+ securityHeaders: config.security?.headers,
230
+ mintsNonce: false,
231
+ documentHeaders: "platform-unmanaged"
232
+ })}
233
+ `
234
+ );
235
+ }
236
+ var awsLambdaAdapter = {
237
+ name: "aws-lambda",
238
+ // #382 — delisted for streaming, deliberately. See DeployAdapter.
239
+ streamsResponses: false,
240
+ // #409 / #410 — the generated entry calls `executeRoute` with routes, loader
241
+ // and serverDir only. CSRF, route policy, file middleware and Zod validation
242
+ // still run because they live inside `executeRoute`; none of the remaining
243
+ // configurable concerns reach it. Declared explicitly rather than omitted so
244
+ // the gap is a statement in the source and not an absence.
245
+ //
246
+ // `securityHeaders` IS applied -- to every response this function returns.
247
+ // The document comes from CloudFront or another static host and does not pass
248
+ // through it (usetheokit/theokit#412).
249
+ appliesConfig: ["securityHeaders", "csrf", "disallowed", "cors", "serialization"],
250
+ build(config, cwd, ctx) {
251
+ return buildAwsLambda(config, cwd, {}, ctx);
252
+ }
253
+ };
254
+ export {
255
+ awsLambdaAdapter,
256
+ buildAwsLambda,
257
+ eventV2ToRequestShape,
258
+ renderAwsLambdaEntry,
259
+ responseToLambdaResultV2
260
+ };
261
+ //# sourceMappingURL=aws-lambda-VKMYUMP2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/adapters/aws-lambda.ts"],"sourcesContent":["/* eslint-disable security/detect-non-literal-fs-filename --\n * AWS Lambda adapter. Writes to `cwd/.theokit/lambda/`. Build-time tool.\n */\nimport { mkdirSync, writeFileSync } from 'node:fs'\nimport { resolve } from 'node:path'\n\nimport type { TheoConfig } from '../config/schema.js'\nimport type { SecurityHeadersConfig } from '../core/contracts/security-headers.js'\nimport { assertServicesUnsupported, readManifest } from '../services/index.js'\n\nimport { deployedCorsFragment, type DeployedCorsOptions } from './deployed-cors.js'\nimport { deployedCsrfFragment, type DeployedCsrfOptions } from './deployed-csrf.js'\nimport {\n deployedRuntimeConfigFragment,\n type DeployedRuntimeConfigOptions,\n} from './deployed-runtime-config.js'\nimport { deployedTraceFragment } from './deployed-trace.js'\nimport { nodeAdapter } from './node.js'\nimport {\n describeDeployedSecurityHeaders,\n renderSecurityHeadersConfigLiteral,\n} from './security-headers.js'\nimport type { AdapterBuildContext, DeployAdapter } from './types.js'\n\nexport interface AwsLambdaBuildDeps {\n runNodeBuild?: (config: TheoConfig, cwd: string, ctx?: AdapterBuildContext) => Promise<void>\n writeEntry?: (path: string, content: string) => void\n ensureDir?: (path: string) => void\n}\n\nexport interface RequestShape {\n method: string\n path: string\n headers: Record<string, string>\n body?: string\n}\n\nexport interface LambdaResultV2 {\n statusCode: number\n headers: Record<string, string>\n body: string\n isBase64Encoded: boolean\n}\n\nconst BINARY_CONTENT_TYPES = [\n 'application/octet-stream',\n 'application/pdf',\n 'application/zip',\n 'image/',\n 'audio/',\n 'video/',\n]\n\nfunction isBinaryContentType(contentType: string | undefined): boolean {\n if (!contentType) return false\n const ct = contentType.toLowerCase()\n return BINARY_CONTENT_TYPES.some((prefix) => ct.startsWith(prefix))\n}\n\ninterface APIGatewayProxyEventV2 {\n version: string\n requestContext: {\n http: { method: string; path: string }\n }\n headers?: Record<string, string | undefined>\n body?: string\n isBase64Encoded?: boolean\n}\n\nexport function eventV2ToRequestShape(event: APIGatewayProxyEventV2): RequestShape {\n const headers: Record<string, string> = {}\n for (const [k, v] of Object.entries(event.headers ?? {})) {\n if (v !== undefined) headers[k] = v\n }\n let body: string | undefined = event.body\n if (body !== undefined && event.isBase64Encoded) {\n body = Buffer.from(body, 'base64').toString('utf-8')\n }\n return {\n method: event.requestContext.http.method,\n path: event.requestContext.http.path,\n headers,\n body,\n }\n}\n\nexport function responseToLambdaResultV2(\n statusCode: number,\n headers: Record<string, string>,\n body: string,\n): LambdaResultV2 {\n const isBinary = isBinaryContentType(headers['content-type'])\n return {\n statusCode,\n headers,\n body: isBinary ? Buffer.from(body, 'binary').toString('base64') : body,\n isBase64Encoded: isBinary,\n }\n}\n\n// Generated-code fragments — extracted so the parent emitter stays under the\n// max-lines-per-function ceiling.\n/** The v2 result conversion, the handler, and the routing that feeds them. */\nfunction awsLambdaHandlerFragment(runtimeSpread: string): string[] {\n return [\n `// #382 — this target is DELISTED for response streaming, by construction.`,\n `// The Lambda v2 result object below carries \\`body\\` as a string, so the`,\n `// response cannot exist until the run has finished, no matter how the`,\n `// framework's shim writes it. Streaming here would require`,\n `// \\`awslambda.streamifyResponse\\` plus a Function URL in RESPONSE_STREAM`,\n `// invoke mode — neither of which this adapter emits, and which would break`,\n `// every API Gateway deployment of it. Rather than degrade in silence, a`,\n `// response that is unambiguously a stream is named in the logs below.`,\n `async function responseToV2Result(response, routePath) {`,\n ` const headers = {}`,\n ` response.headers.forEach((v, k) => { headers[k] = v })`,\n ` const ct = headers['content-type'] ?? ''`,\n ` if (ct.includes('text/event-stream')) {`,\n ` console.warn(`,\n ` '[theo][aws-lambda] ' + routePath + ' returned a streaming response (' + ct + '), ' +`,\n ` 'but the aws-lambda target buffers it whole and delivers it when the run ends. ' +`,\n ` 'This target is delisted for streaming (theokit#382). Deploy streaming routes to ' +`,\n ` 'cloudflare, vercel, netlify, bun, deno-deploy or node.'`,\n ` )`,\n ` }`,\n ` const isBinary = /^application\\\\/(octet-stream|pdf|zip)|^(image|audio|video)\\\\//.test(ct)`,\n ` if (isBinary) {`,\n ` const buf = Buffer.from(await response.arrayBuffer())`,\n ` return {`,\n ` statusCode: response.status,`,\n ` headers,`,\n ` body: buf.toString('base64'),`,\n ` isBase64Encoded: true,`,\n ` }`,\n ` }`,\n ` return {`,\n ` statusCode: response.status,`,\n ` headers,`,\n ` body: await response.text(),`,\n ` isBase64Encoded: false,`,\n ` }`,\n `}`,\n ``,\n `// Every outcome — including both 404s — is produced as a Web Response by`,\n `// routeRequest, so the security baseline is applied at ONE place and the`,\n `// v2 result object is built from headers that already carry it.`,\n `export const handler = async (event) => {`,\n ` const path = event.requestContext?.http?.path ?? '/'`,\n ` // #409 — the same event, read as a Web Request so the CORS matcher can see the method and`,\n ` // the \\`origin\\` header. \\`eventV2ToRequest\\` reads a body already present in the event, so`,\n ` // unlike the Node targets there is no stream to drain twice.`,\n ` const corsRequest = eventV2ToRequest(event)`,\n ``,\n ` // The preflight is answered BEFORE anything routes: an OPTIONS the router handles is an`,\n ` // OPTIONS the browser never gets a CORS answer to.`,\n ` const preflight = corsPreflight(corsRequest)`,\n ` const response = preflight !== null`,\n ` ? withSecurityHeaders(preflight, SECURITY_HEADERS)`,\n ` : withCors(corsRequest, withSecurityHeaders(await routeRequest(event, path), SECURITY_HEADERS))`,\n ` return responseToV2Result(response, path)`,\n `}`,\n ``,\n `async function routeRequest(event, path) {`,\n ` if (!path.startsWith('/api/')) {`,\n ` return new Response(`,\n ` 'Static assets must be served from CloudFront or a separate static host.',`,\n ` { status: 404, headers: { 'content-type': 'text/plain' } },`,\n ` )`,\n ` }`,\n ``,\n ` if (!routesCache) routesCache = scanServerRoutes(serverDir)`,\n ` if (!loaderCache) loaderCache = createProductionLoader()`,\n ``,\n ` const match = matchRoute(path, routesCache)`,\n ` if (!match) {`,\n ` return new Response(JSON.stringify({ error: { code: 'NOT_FOUND' } }), {`,\n ` status: 404,`,\n ` headers: { 'content-type': 'application/json' },`,\n ` })`,\n ` }`,\n ``,\n ` const request = eventV2ToRequest(event)`,\n ` const { req, res, toResponse } = createWebShim(request)`,\n ...deployedTraceFragment('request', ' '),\n ` const method = request.method.toUpperCase()`,\n ` return toResponse(executeRoute({ route: match.route, method, params: match.params, req, res, loadModule: loaderCache, serverDir, requestId, ...CSRF_CONFIG, ${runtimeSpread} }))`,\n `}`,\n ]\n}\n\nexport function renderAwsLambdaEntry(\n opts: { securityHeaders?: SecurityHeadersConfig } & DeployedCsrfOptions &\n DeployedRuntimeConfigOptions &\n DeployedCorsOptions = {},\n): string {\n const runtimeConfig = deployedRuntimeConfigFragment(opts)\n return [\n `// Generated by Theo — AWS Lambda Adapter`,\n `// Use with API Gateway HTTP API v2 (default).`,\n ``,\n `import { resolve } from 'node:path'`,\n `import { scanServerRoutes, matchRoute, executeRoute, createProductionLoader, extractTraceIdFromRequest, TRACE_HEADER, createCorsWebHandler } from 'theokit/server'`,\n `import { createWebShim } from 'theokit/adapters/web-shim'`,\n `import { buildSecurityHeaders, withSecurityHeaders } from 'theokit/adapters/security-headers'`,\n ``,\n `const cwd = process.cwd()`,\n `const serverDir = resolve(cwd, 'server')`,\n `let routesCache = null`,\n `let loaderCache = null`,\n ``,\n `// #410 — the security baseline \\`theokit start\\` puts on every response,`,\n `// carried here as a literal because the deployed function has no`,\n `// theo.config.ts to read. Non-API paths 404 here and the document is served`,\n `// from CloudFront or another static host, so this covers the API and not the`,\n `// page (usetheokit/theokit#412).`,\n `const SECURITY_HEADERS_CONFIG = ${renderSecurityHeadersConfigLiteral(opts.securityHeaders)}`,\n `const SECURITY_HEADERS = buildSecurityHeaders(SECURITY_HEADERS_CONFIG, { production: true })`,\n ``,\n ...runtimeConfig.imports,\n ...runtimeConfig.declarations,\n ...deployedCsrfFragment(opts),\n ``,\n ...deployedCorsFragment(opts.cors, 'aws-lambda'),\n ``,\n `function eventV2ToRequest(event) {`,\n ` const method = event.requestContext?.http?.method ?? 'GET'`,\n ` const path = event.requestContext?.http?.path ?? '/'`,\n ` const host = event.headers?.host ?? 'lambda'`,\n ` const qs = event.rawQueryString ? '?' + event.rawQueryString : ''`,\n ` const url = 'https://' + host + path + qs`,\n ` const headers = new Headers()`,\n ` for (const [k, v] of Object.entries(event.headers ?? {})) {`,\n ` if (v !== undefined) headers.set(k, String(v))`,\n ` }`,\n ` let body = event.body`,\n ` if (body && event.isBase64Encoded) {`,\n ` body = Buffer.from(body, 'base64')`,\n ` }`,\n ` return new Request(url, {`,\n ` method,`,\n ` headers,`,\n ` body: method === 'GET' || method === 'HEAD' ? undefined : body,`,\n ` })`,\n `}`,\n ``,\n ...awsLambdaHandlerFragment(runtimeConfig.executeRouteSpread),\n ].join('\\n')\n}\n\nexport async function buildAwsLambda(\n config: TheoConfig,\n cwd: string,\n deps: AwsLambdaBuildDeps = {},\n ctx?: AdapterBuildContext,\n): Promise<void> {\n // Wave 2 (T2.2) — reject polyglot services on this adapter.\n assertServicesUnsupported('aws-lambda', readManifest(cwd))\n\n // #382 — refuse by name rather than build something that cannot do what was\n // asked. `ssrStreaming` is the config's declaration that responses stream,\n // and this target is delisted for that (see `awsLambdaAdapter.streamsResponses`).\n if (config.ssrStreaming) {\n throw new Error(\n '[adapter-aws-lambda] ssrStreaming is on, but the aws-lambda target does not stream ' +\n 'responses: the Lambda v2 result object carries the body as a string, so nothing can ' +\n 'leave the function before the run ends. Response streaming would need ' +\n 'awslambda.streamifyResponse plus a Function URL in RESPONSE_STREAM invoke mode, which ' +\n 'this adapter does not emit. Build a streaming target instead (cloudflare, vercel, ' +\n 'netlify, bun, deno-deploy, node), or set ssrStreaming: false in theo.config.ts.',\n )\n }\n\n const runNodeBuild = deps.runNodeBuild ?? nodeAdapter.build.bind(nodeAdapter)\n await runNodeBuild(config, cwd, ctx)\n\n const outputDir = resolve(cwd, '.theokit/aws')\n const ensureDir = deps.ensureDir ?? ((p: string) => mkdirSync(p, { recursive: true }))\n ensureDir(outputDir)\n\n const entry = renderAwsLambdaEntry({\n securityHeaders: config.security?.headers,\n csrf: config.security?.csrf,\n disallowed: config.security?.disallowed,\n cors: config.security?.cors,\n // #425 — a selector, not a transformer, so it rides as a literal like the values above.\n serialization: config.serialization,\n })\n const write =\n deps.writeEntry ??\n ((p, c) => {\n writeFileSync(p, c)\n })\n write(resolve(outputDir, 'handler.mjs'), entry)\n\n // eslint-disable-next-line no-console -- CLI build progress\n console.log('\\n ✓ AWS Lambda output → .theokit/aws/handler.mjs')\n // eslint-disable-next-line no-console -- CLI build progress\n console.log(\n `${describeDeployedSecurityHeaders({\n target: 'aws-lambda',\n securityHeaders: config.security?.headers,\n mintsNonce: false,\n documentHeaders: 'platform-unmanaged',\n })}\\n`,\n )\n}\n\nexport const awsLambdaAdapter: DeployAdapter = {\n name: 'aws-lambda',\n // #382 — delisted for streaming, deliberately. See DeployAdapter.\n streamsResponses: false,\n // #409 / #410 — the generated entry calls `executeRoute` with routes, loader\n // and serverDir only. CSRF, route policy, file middleware and Zod validation\n // still run because they live inside `executeRoute`; none of the remaining\n // configurable concerns reach it. Declared explicitly rather than omitted so\n // the gap is a statement in the source and not an absence.\n //\n // `securityHeaders` IS applied -- to every response this function returns.\n // The document comes from CloudFront or another static host and does not pass\n // through it (usetheokit/theokit#412).\n appliesConfig: ['securityHeaders', 'csrf', 'disallowed', 'cors', 'serialization'],\n build(config, cwd, ctx) {\n return buildAwsLambda(config, cwd, {}, ctx)\n },\n}\n"],"mappings":"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","names":[]}
@@ -1,3 +1,6 @@
1
+ import {
2
+ appendField
3
+ } from "./chunk-CHTAWXC2.js";
1
4
  import "./chunk-XTHN6JBX.js";
2
5
 
3
6
  // src/server/body-parser-web.ts
@@ -41,7 +44,7 @@ async function parseImpl(request, options) {
41
44
  let fileCount = 0;
42
45
  for (const [key, value] of form.entries()) {
43
46
  if (typeof value === "string") {
44
- fields[key] = value;
47
+ appendField(fields, key, value);
45
48
  } else {
46
49
  if (++fileCount > maxFiles) {
47
50
  throw new Error(`Too many files: max ${maxFiles}`);
@@ -67,4 +70,4 @@ export {
67
70
  RequestBodyTooLargeError,
68
71
  parseWebRequestBody
69
72
  };
70
- //# sourceMappingURL=body-parser-web-4Z2QTPDU.js.map
73
+ //# sourceMappingURL=body-parser-web-ON5CUTEL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/body-parser-web.ts"],"mappings":";;;;;;AA2BA,IAAM,wBAAwB,KAAK,OAAO;AAC1C,IAAM,oBAAoB;AAC1B,IAAM,gBAAgB;AAEf,IAAM,2BAAN,cAAuC,MAAM;AAAA,EAClD,YAAY,UAAkB,KAAa;AACzC,UAAM,mDAAmD,QAAQ,gBAAgB,GAAG,EAAE;AACtF,SAAK,OAAO;AAAA,EACd;AACF;AAGA,IAAM,aAAa,oBAAI,QAAyC;AAEzD,SAAS,oBACd,SACA,UAAgC,CAAC,GACT;AACxB,QAAM,SAAS,WAAW,IAAI,OAAO;AACrC,MAAI,OAAQ,QAAO;AACnB,QAAM,UAAU,UAAU,SAAS,OAAO;AAC1C,aAAW,IAAI,SAAS,OAAO;AAC/B,SAAO;AACT;AAEA,eAAe,UAAU,SAAkB,SAAuD;AAChG,QAAM,cAAc,QAAQ,eAAe;AAC3C,QAAM,WAAW,QAAQ,YAAY;AACrC,QAAM,WAAW,cAAc,WAAW;AAG1C,QAAM,KAAK,OAAO,QAAQ,QAAQ,IAAI,gBAAgB,KAAK,GAAG;AAC9D,MAAI,KAAK,UAAU;AACjB,UAAM,IAAI,yBAAyB,IAAI,QAAQ;AAAA,EACjD;AAEA,QAAM,QAAuB,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,EAAE;AACrD,MAAI,CAAC,QAAQ,KAAM,QAAO;AAE1B,QAAM,MAAM,QAAQ,QAAQ,IAAI,cAAc,KAAK,IAAI,YAAY;AACnE,MAAI,GAAG,SAAS,kBAAkB,GAAG;AACnC,UAAM,OAAO,MAAM,QAAQ,KAAK;AAChC,QAAI,CAAC,KAAM,QAAO;AAClB,WAAO,EAAE,GAAG,OAAO,MAAM,KAAK,MAAM,IAAI,EAAE;AAAA,EAC5C;AAEA,MAAI,GAAG,SAAS,qBAAqB,GAAG;AACtC,UAAM,OAAO,MAAM,QAAQ,SAAS;AACpC,UAAM,SAA4C,CAAC;AACnD,UAAM,QAAgC,CAAC;AACvC,QAAI,YAAY;AAChB,eAAW,CAAC,KAAK,KAAK,KAAK,KAAK,QAAQ,GAAG;AACzC,UAAI,OAAO,UAAU,UAAU;AAC7B,oBAAY,QAAQ,KAAK,KAAK;AAAA,MAChC,OAAO;AACL,YAAI,EAAE,YAAY,UAAU;AAC1B,gBAAM,IAAI,MAAM,uBAAuB,QAAQ,EAAE;AAAA,QACnD;AACA,YAAI,MAAM,OAAO,aAAa;AAC5B,gBAAM,IAAI,MAAM,QAAQ,MAAM,IAAI,wBAAwB,WAAW,EAAE;AAAA,QACzE;AACA,cAAM,MAAM,IAAI,WAAW,MAAM,MAAM,YAAY,CAAC;AACpD,cAAM,KAAK;AAAA,UACT,WAAW;AAAA,UACX,UAAU,MAAM;AAAA,UAChB,aAAa,MAAM;AAAA,UACnB,MAAM,MAAM;AAAA,UACZ,QAAQ;AAAA,QACV,CAAC;AAAA,MACH;AAAA,IACF;AACA,WAAO,EAAE,QAAQ,MAAM;AAAA,EACzB;AAEA,SAAO;AACT;","names":[]}
@@ -1,5 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import "tsx/esm";
3
+ import {
4
+ appendField
5
+ } from "./chunk-7UZZHCRN.js";
3
6
 
4
7
  // src/server/body-parser-web.ts
5
8
  var DEFAULT_MAX_FILE_SIZE = 10 * 1024 * 1024;
@@ -42,7 +45,7 @@ async function parseImpl(request, options) {
42
45
  let fileCount = 0;
43
46
  for (const [key, value] of form.entries()) {
44
47
  if (typeof value === "string") {
45
- fields[key] = value;
48
+ appendField(fields, key, value);
46
49
  } else {
47
50
  if (++fileCount > maxFiles) {
48
51
  throw new Error(`Too many files: max ${maxFiles}`);
@@ -68,4 +71,4 @@ export {
68
71
  RequestBodyTooLargeError,
69
72
  parseWebRequestBody
70
73
  };
71
- //# sourceMappingURL=body-parser-web-TIOTXPDW.js.map
74
+ //# sourceMappingURL=body-parser-web-RV2SSAI3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/body-parser-web.ts"],"sourcesContent":["/**\n * T5.1 — Web Standards body parser for non-Node runtimes (Bun, Deno, edge).\n *\n * Uses `request.formData()` for multipart and `request.json()`/`text()` for\n * JSON/text. EC-4: Content-Length pre-check prevents OOM. EC-12: per-Request\n * cache via WeakMap so multiple parse calls on the same Request are idempotent.\n */\n\nimport { appendField } from './multipart-fields.js'\n\ninterface ParsedWebBody {\n json?: unknown\n fields: Record<string, string | string[]>\n files: {\n fieldName: string\n filename: string\n contentType: string\n size: number\n buffer: Uint8Array\n }[]\n}\n\ninterface WebBodyParserOptions {\n maxFileSize?: number\n maxFiles?: number\n}\n\nconst DEFAULT_MAX_FILE_SIZE = 10 * 1024 * 1024 // 10MB\nconst DEFAULT_MAX_FILES = 10\nconst SAFETY_MARGIN = 1_048_576 // 1MB encoding overhead\n\nexport class RequestBodyTooLargeError extends Error {\n constructor(declared: number, max: number) {\n super(`Request body too large: declared Content-Length ${declared} exceeds max ${max}`)\n this.name = 'RequestBodyTooLargeError'\n }\n}\n\n// EC-12 cache — idempotent parse per Request\nconst parseCache = new WeakMap<Request, Promise<ParsedWebBody>>()\n\nexport function parseWebRequestBody(\n request: Request,\n options: WebBodyParserOptions = {},\n): Promise<ParsedWebBody> {\n const cached = parseCache.get(request)\n if (cached) return cached\n const promise = parseImpl(request, options)\n parseCache.set(request, promise)\n return promise\n}\n\nasync function parseImpl(request: Request, options: WebBodyParserOptions): Promise<ParsedWebBody> {\n const maxFileSize = options.maxFileSize ?? DEFAULT_MAX_FILE_SIZE\n const maxFiles = options.maxFiles ?? DEFAULT_MAX_FILES\n const maxTotal = maxFileSize * maxFiles + SAFETY_MARGIN\n\n // EC-4 — Content-Length pre-check before materializing body\n const cl = Number(request.headers.get('content-length') ?? '0')\n if (cl > maxTotal) {\n throw new RequestBodyTooLargeError(cl, maxTotal)\n }\n\n const empty: ParsedWebBody = { fields: {}, files: [] }\n if (!request.body) return empty\n\n const ct = (request.headers.get('content-type') ?? '').toLowerCase()\n if (ct.includes('application/json')) {\n const text = await request.text()\n if (!text) return empty\n return { ...empty, json: JSON.parse(text) }\n }\n\n if (ct.includes('multipart/form-data')) {\n const form = await request.formData()\n const fields: Record<string, string | string[]> = {}\n const files: ParsedWebBody['files'] = []\n let fileCount = 0\n for (const [key, value] of form.entries()) {\n if (typeof value === 'string') {\n appendField(fields, key, value)\n } else {\n if (++fileCount > maxFiles) {\n throw new Error(`Too many files: max ${maxFiles}`)\n }\n if (value.size > maxFileSize) {\n throw new Error(`File ${value.name} exceeds maxFileSize ${maxFileSize}`)\n }\n const buf = new Uint8Array(await value.arrayBuffer())\n files.push({\n fieldName: key,\n filename: value.name,\n contentType: value.type,\n size: value.size,\n buffer: buf,\n })\n }\n }\n return { fields, files }\n }\n\n return empty\n}\n"],"mappings":";;;;;;;AA2BA,IAAM,wBAAwB,KAAK,OAAO;AAC1C,IAAM,oBAAoB;AAC1B,IAAM,gBAAgB;AAEf,IAAM,2BAAN,cAAuC,MAAM;AAAA,EAClD,YAAY,UAAkB,KAAa;AACzC,UAAM,mDAAmD,QAAQ,gBAAgB,GAAG,EAAE;AACtF,SAAK,OAAO;AAAA,EACd;AACF;AAGA,IAAM,aAAa,oBAAI,QAAyC;AAEzD,SAAS,oBACd,SACA,UAAgC,CAAC,GACT;AACxB,QAAM,SAAS,WAAW,IAAI,OAAO;AACrC,MAAI,OAAQ,QAAO;AACnB,QAAM,UAAU,UAAU,SAAS,OAAO;AAC1C,aAAW,IAAI,SAAS,OAAO;AAC/B,SAAO;AACT;AAEA,eAAe,UAAU,SAAkB,SAAuD;AAChG,QAAM,cAAc,QAAQ,eAAe;AAC3C,QAAM,WAAW,QAAQ,YAAY;AACrC,QAAM,WAAW,cAAc,WAAW;AAG1C,QAAM,KAAK,OAAO,QAAQ,QAAQ,IAAI,gBAAgB,KAAK,GAAG;AAC9D,MAAI,KAAK,UAAU;AACjB,UAAM,IAAI,yBAAyB,IAAI,QAAQ;AAAA,EACjD;AAEA,QAAM,QAAuB,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,EAAE;AACrD,MAAI,CAAC,QAAQ,KAAM,QAAO;AAE1B,QAAM,MAAM,QAAQ,QAAQ,IAAI,cAAc,KAAK,IAAI,YAAY;AACnE,MAAI,GAAG,SAAS,kBAAkB,GAAG;AACnC,UAAM,OAAO,MAAM,QAAQ,KAAK;AAChC,QAAI,CAAC,KAAM,QAAO;AAClB,WAAO,EAAE,GAAG,OAAO,MAAM,KAAK,MAAM,IAAI,EAAE;AAAA,EAC5C;AAEA,MAAI,GAAG,SAAS,qBAAqB,GAAG;AACtC,UAAM,OAAO,MAAM,QAAQ,SAAS;AACpC,UAAM,SAA4C,CAAC;AACnD,UAAM,QAAgC,CAAC;AACvC,QAAI,YAAY;AAChB,eAAW,CAAC,KAAK,KAAK,KAAK,KAAK,QAAQ,GAAG;AACzC,UAAI,OAAO,UAAU,UAAU;AAC7B,oBAAY,QAAQ,KAAK,KAAK;AAAA,MAChC,OAAO;AACL,YAAI,EAAE,YAAY,UAAU;AAC1B,gBAAM,IAAI,MAAM,uBAAuB,QAAQ,EAAE;AAAA,QACnD;AACA,YAAI,MAAM,OAAO,aAAa;AAC5B,gBAAM,IAAI,MAAM,QAAQ,MAAM,IAAI,wBAAwB,WAAW,EAAE;AAAA,QACzE;AACA,cAAM,MAAM,IAAI,WAAW,MAAM,MAAM,YAAY,CAAC;AACpD,cAAM,KAAK;AAAA,UACT,WAAW;AAAA,UACX,UAAU,MAAM;AAAA,UAChB,aAAa,MAAM;AAAA,UACnB,MAAM,MAAM;AAAA,UACZ,QAAQ;AAAA,QACV,CAAC;AAAA,MACH;AAAA,IACF;AACA,WAAO,EAAE,QAAQ,MAAM;AAAA,EACzB;AAEA,SAAO;AACT;","names":[]}
@@ -3,43 +3,54 @@ import "tsx/esm";
3
3
  import {
4
4
  describeControllerArtifacts,
5
5
  emitControllerArtifacts
6
- } from "./chunk-47CINLWF.js";
7
- import {
8
- preflightNodeAndBindings
9
- } from "./chunk-KTMQUYED.js";
6
+ } from "./chunk-EDWEYQRG.js";
10
7
  import {
11
8
  validateProjectStructure
12
9
  } from "./chunk-GEQJAFSV.js";
10
+ import {
11
+ preflightNodeAndBindings
12
+ } from "./chunk-KTMQUYED.js";
13
13
  import {
14
14
  emitOpenApi,
15
15
  loadRoutesForOpenApi
16
16
  } from "./chunk-47VNWTL4.js";
17
+ import "./chunk-FMTRNQQ7.js";
18
+ import "./chunk-RARK7JBR.js";
19
+ import "./chunk-7UZZHCRN.js";
20
+ import {
21
+ generateManifest,
22
+ writeManifest as writeManifest2
23
+ } from "./chunk-KUZVRJ7M.js";
24
+ import {
25
+ scanAgents
26
+ } from "./chunk-EVZKNA2W.js";
27
+ import {
28
+ scanServerRoutes,
29
+ scanWebSocketRoutes
30
+ } from "./chunk-XS7EX55U.js";
31
+ import {
32
+ compareByCodeUnit,
33
+ walkSourceFiles
34
+ } from "./chunk-FD4ZDTQ6.js";
17
35
  import {
18
- importUserModule,
19
36
  loadConfig
20
- } from "./chunk-AATSV4UV.js";
37
+ } from "./chunk-QTHVHNJJ.js";
21
38
  import {
22
39
  loadEnv
23
- } from "./chunk-HBU2GIMZ.js";
24
- import "./chunk-CMYSHZFT.js";
40
+ } from "./chunk-3QPVEJ7D.js";
41
+ import {
42
+ importUserModule
43
+ } from "./chunk-U5PWXS3J.js";
44
+ import "./chunk-FH3SQR6P.js";
25
45
  import {
26
46
  buildManifest,
27
47
  writeManifest
28
- } from "./chunk-WSXNGF7X.js";
29
- import "./chunk-T5C46IIU.js";
30
- import {
31
- generateManifest,
32
- writeManifest as writeManifest2
33
- } from "./chunk-ZB7D62OA.js";
34
- import "./chunk-LNVMHQ2Z.js";
35
- import "./chunk-BMHS4WAN.js";
36
- import {
37
- walkSourceFiles
38
- } from "./chunk-A7JBF5FO.js";
48
+ } from "./chunk-ZNZISJDZ.js";
49
+ import "./chunk-VI7ZANB3.js";
39
50
 
40
51
  // src/cli/commands/build.ts
41
52
  import { existsSync as existsSync4 } from "fs";
42
- import { resolve } from "path";
53
+ import { dirname as dirname2, relative, resolve, sep as sep2 } from "path";
43
54
 
44
55
  // src/adapters/types.ts
45
56
  var VALID_TARGETS = [
@@ -306,7 +317,7 @@ async function scanCronDirs(dirs) {
306
317
  throw new DuplicateCronNameError(name, paths);
307
318
  }
308
319
  }
309
- return nodes.sort((a, b) => a.name.localeCompare(b.name));
320
+ return nodes.sort((a, b) => compareByCodeUnit(a.name, b.name));
310
321
  }
311
322
 
312
323
  // src/server/jobs/job-manifest.ts
@@ -402,7 +413,7 @@ async function scanJobs(jobsDir) {
402
413
  throw new DuplicateJobNameError(name, paths);
403
414
  }
404
415
  }
405
- return nodes.sort((a, b) => a.name.localeCompare(b.name));
416
+ return nodes.sort((a, b) => compareByCodeUnit(a.name, b.name));
406
417
  }
407
418
 
408
419
  // src/cli/cleanup/cleanup.ts
@@ -543,7 +554,7 @@ async function buildCommand(options) {
543
554
  `);
544
555
  }
545
556
  async function runAdapterBuild(target, config, cwd) {
546
- const { theoPluginAsync } = await import("./vite-plugin-RJFKLF2U.js");
557
+ const { theoPluginAsync } = await import("./vite-plugin-USXUIV3H.js");
547
558
  const { default: react } = await import("@vitejs/plugin-react");
548
559
  const ctx = {
549
560
  // `react()` may return Plugin or Plugin[] depending on version; spread the
@@ -559,10 +570,45 @@ async function runAdapterBuild(target, config, cwd) {
559
570
  serverDir: config.serverDir,
560
571
  agentsDir: config.agentsDir
561
572
  })
562
- ].flat()
573
+ ].flat(),
574
+ // #369 — the same inversion, for the same reason. A Worker has no filesystem, so the Cloudflare
575
+ // entry bakes its routes at build time; importing the scanner from `adapters/` would add the
576
+ // `adapters → server` edge that `adapters-may-only-depend-on-core-router-services` refuses. The
577
+ // CLI already imports both sides, so it composes the scan and hands over the result.
578
+ //
579
+ // Paths are made relative to the project root here, where `cwd` is known: that string is both
580
+ // the emitted import specifier and the key the executor looks a module up by, and the scanners
581
+ // return absolute paths.
582
+ scanRoutes: (serverDir) => {
583
+ const abs = resolve(cwd, serverDir);
584
+ const toProjectRelative = (p) => relative(cwd, p).split(sep2).join("/");
585
+ return {
586
+ routes: scanServerRoutes(abs).map((route) => ({
587
+ filePath: toProjectRelative(route.filePath),
588
+ routePath: route.routePath,
589
+ methods: route.methods ?? []
590
+ })),
591
+ wsRoutes: scanWebSocketRoutes(abs).map(
592
+ (ws) => toProjectRelative(typeof ws === "string" ? ws : ws.filePath)
593
+ ),
594
+ // #367 — agents are a DIFFERENT scan served by a DIFFERENT function, which is why no
595
+ // adapter had ever heard of them: the entries route `/api/` through `scanServerRoutes` +
596
+ // `executeRoute` alone, so `/api/agents/<name>` matched nothing and 404'd on every target.
597
+ // Scanned here, beside the routes, because the same inversion argument applies verbatim.
598
+ agents: scanAgents(dirname2(abs), config.agentsDir).map((agent) => ({
599
+ filePath: toProjectRelative(agent.filePath),
600
+ agentPath: agent.agentPath,
601
+ name: agent.name
602
+ }))
603
+ };
604
+ }
563
605
  };
564
- const { resolveAdapter } = await import("./registry-S7OMF3OS.js");
606
+ const { resolveAdapter } = await import("./registry-KBZDCFVQ.js");
565
607
  const adapter = await resolveAdapter(target);
608
+ const { warnUnappliedConfig } = await import("./config-support-WQHQIJTA.js");
609
+ warnUnappliedConfig(config, adapter, target, (message) => {
610
+ console.log(message);
611
+ });
566
612
  await adapter.build(config, cwd, ctx);
567
613
  }
568
614
  async function emitCronArtifacts(opts) {
@@ -629,4 +675,4 @@ function relativize3(absPath, root) {
629
675
  export {
630
676
  buildCommand
631
677
  };
632
- //# sourceMappingURL=build-F2Q5QTSC.js.map
678
+ //# sourceMappingURL=build-VZODSYIQ.js.map