devflare 1.0.0-next.16 → 1.0.0-next.18

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 (982) hide show
  1. package/LLM.md +688 -229
  2. package/README.md +70 -8
  3. package/bin/devflare.js +1 -1
  4. package/dist/{account-fw8nafav.js → account-0evqkmnc.js} +8 -8
  5. package/dist/{account-0w8wdzjv.js → account-0v11zbzk.js} +9 -9
  6. package/dist/{account-eygq6qx7.js → account-2w85efas.js} +9 -9
  7. package/dist/{account-pzq69nys.js → account-61gw9s7t.js} +9 -9
  8. package/dist/account-65sk9q34.js +475 -0
  9. package/dist/account-77vx7q2f.js +475 -0
  10. package/dist/account-7z38mgqf.js +475 -0
  11. package/dist/account-8wgprpbt.js +475 -0
  12. package/dist/account-9gt3tej1.js +475 -0
  13. package/dist/account-dtndtbad.js +475 -0
  14. package/dist/account-e95v7f4s.js +475 -0
  15. package/dist/account-fbyyptg7.js +475 -0
  16. package/dist/account-gnzhz1c9.js +475 -0
  17. package/dist/account-m6jq6fnp.js +475 -0
  18. package/dist/account-mvnfagh9.js +475 -0
  19. package/dist/account-p0crq2gh.js +475 -0
  20. package/dist/account-qkcevx7a.js +475 -0
  21. package/dist/account-txwqg1rx.js +475 -0
  22. package/dist/account-w5n5bjh2.js +475 -0
  23. package/dist/account-zd61t0ey.js +475 -0
  24. package/dist/api-11gkk043.js +33 -0
  25. package/dist/api-2n6dd2ws.js +33 -0
  26. package/dist/api-dbxvch9h.js +33 -0
  27. package/dist/api-p9hf69kr.js +33 -0
  28. package/dist/api-r10j00ev.js +33 -0
  29. package/dist/api-senf2569.js +33 -0
  30. package/dist/api-swcgnp72.js +33 -0
  31. package/dist/{api-d6ekexs5.js → api-th82mps4.js} +3 -1
  32. package/dist/bridge/client.d.ts +29 -6
  33. package/dist/bridge/client.d.ts.map +1 -1
  34. package/dist/bridge/gateway-runtime.d.ts +8 -0
  35. package/dist/bridge/gateway-runtime.d.ts.map +1 -0
  36. package/dist/bridge/index.d.ts +2 -2
  37. package/dist/bridge/index.d.ts.map +1 -1
  38. package/dist/bridge/log.d.ts +5 -0
  39. package/dist/bridge/log.d.ts.map +1 -0
  40. package/dist/bridge/miniflare.d.ts.map +1 -1
  41. package/dist/bridge/proxy.d.ts +7 -5
  42. package/dist/bridge/proxy.d.ts.map +1 -1
  43. package/dist/bridge/serialization.d.ts +36 -16
  44. package/dist/bridge/serialization.d.ts.map +1 -1
  45. package/dist/bridge/server.d.ts +1 -0
  46. package/dist/bridge/server.d.ts.map +1 -1
  47. package/dist/bridge/v2/body-streams.d.ts +53 -0
  48. package/dist/bridge/v2/body-streams.d.ts.map +1 -0
  49. package/dist/bridge/v2/codec.d.ts +106 -0
  50. package/dist/bridge/v2/codec.d.ts.map +1 -0
  51. package/dist/bridge/v2/control-messages.d.ts +51 -0
  52. package/dist/bridge/v2/control-messages.d.ts.map +1 -0
  53. package/dist/bridge/v2/frames.d.ts +109 -0
  54. package/dist/bridge/v2/frames.d.ts.map +1 -0
  55. package/dist/bridge/v2/index.d.ts +11 -0
  56. package/dist/bridge/v2/index.d.ts.map +1 -0
  57. package/dist/bridge/v2/legacy-protocol.d.ts +146 -0
  58. package/dist/bridge/v2/legacy-protocol.d.ts.map +1 -0
  59. package/dist/bridge/v2/legacy-serialization.d.ts +103 -0
  60. package/dist/bridge/v2/legacy-serialization.d.ts.map +1 -0
  61. package/dist/bridge/v2/serialization.d.ts +48 -0
  62. package/dist/bridge/v2/serialization.d.ts.map +1 -0
  63. package/dist/bridge/v2/transport.d.ts +31 -0
  64. package/dist/bridge/v2/transport.d.ts.map +1 -0
  65. package/dist/bridge/v2/value-codec.d.ts +61 -0
  66. package/dist/bridge/v2/value-codec.d.ts.map +1 -0
  67. package/dist/bridge/v2/value-serialization.d.ts +103 -0
  68. package/dist/bridge/v2/value-serialization.d.ts.map +1 -0
  69. package/dist/bridge/v2/wire.d.ts +170 -0
  70. package/dist/bridge/v2/wire.d.ts.map +1 -0
  71. package/dist/bridge/v2/ws-relay.d.ts +53 -0
  72. package/dist/bridge/v2/ws-relay.d.ts.map +1 -0
  73. package/dist/browser-shim/server.d.ts +63 -0
  74. package/dist/browser-shim/server.d.ts.map +1 -1
  75. package/dist/browser.d.ts +396 -38
  76. package/dist/browser.d.ts.map +1 -1
  77. package/dist/{src/browser.js → browser.js} +19 -33
  78. package/dist/build-07mjrvsn.js +53 -0
  79. package/dist/build-0rfr8k1s.js +53 -0
  80. package/dist/build-1313sg73.js +52 -0
  81. package/dist/build-1hnntbks.js +53 -0
  82. package/dist/build-1r3myv0k.js +53 -0
  83. package/dist/build-28561w5v.js +54 -0
  84. package/dist/build-50yqpwb3.js +54 -0
  85. package/dist/build-55z8psd6.js +53 -0
  86. package/dist/build-5b9wj2p0.js +53 -0
  87. package/dist/build-5frhzh1m.js +53 -0
  88. package/dist/{build-p3r3117t.js → build-6ye9vnab.js} +8 -9
  89. package/dist/build-8gv18jrq.js +52 -0
  90. package/dist/build-9bgqypy6.js +53 -0
  91. package/dist/{build-506kjhcm.js → build-9em4ymqn.js} +12 -13
  92. package/dist/build-eh3x12qc.js +52 -0
  93. package/dist/build-emhyycp7.js +53 -0
  94. package/dist/build-f1m9jn7b.js +53 -0
  95. package/dist/build-ffe72jjv.js +54 -0
  96. package/dist/build-fx90y6za.js +53 -0
  97. package/dist/build-h31egsze.js +53 -0
  98. package/dist/build-hpczwagb.js +53 -0
  99. package/dist/{build-1kmkwqgh.js → build-hpkbanpw.js} +16 -15
  100. package/dist/build-j2re91xe.js +54 -0
  101. package/dist/{build-66866ahs.js → build-j78389rg.js} +12 -13
  102. package/dist/build-m3kckn5g.js +53 -0
  103. package/dist/build-mf3thcjm.js +53 -0
  104. package/dist/build-n3n5bv37.js +52 -0
  105. package/dist/build-ngfy4v5x.js +53 -0
  106. package/dist/build-pr843h0d.js +52 -0
  107. package/dist/build-qyg2b45p.js +52 -0
  108. package/dist/build-r6884kyt.js +53 -0
  109. package/dist/build-re370wkf.js +53 -0
  110. package/dist/build-vvndgwg0.js +52 -0
  111. package/dist/build-wp559jkf.js +54 -0
  112. package/dist/{build-g1adm3ww.js → build-x4r67275.js} +12 -13
  113. package/dist/build-xp4pfhvv.js +52 -0
  114. package/dist/build-y489r2h9.js +54 -0
  115. package/dist/build-y6g4bvx5.js +52 -0
  116. package/dist/build-yvn0yhwx.js +52 -0
  117. package/dist/build-z4vmhs5c.js +53 -0
  118. package/dist/bundler/defaults.d.ts +23 -0
  119. package/dist/bundler/defaults.d.ts.map +1 -0
  120. package/dist/bundler/do-bundler.d.ts.map +1 -1
  121. package/dist/bundler/index.d.ts +1 -0
  122. package/dist/bundler/index.d.ts.map +1 -1
  123. package/dist/bundler/rolldown-shared.d.ts +29 -0
  124. package/dist/bundler/rolldown-shared.d.ts.map +1 -1
  125. package/dist/bundler/worker-bundler.d.ts.map +1 -1
  126. package/dist/bundler/worker-compat.d.ts.map +1 -1
  127. package/dist/cli/build-manifest.d.ts +54 -0
  128. package/dist/cli/build-manifest.d.ts.map +1 -0
  129. package/dist/cli/commands/build-artifacts.d.ts +13 -0
  130. package/dist/cli/commands/build-artifacts.d.ts.map +1 -1
  131. package/dist/cli/commands/deploy.d.ts.map +1 -1
  132. package/dist/cli/dependencies.d.ts +1 -0
  133. package/dist/cli/dependencies.d.ts.map +1 -1
  134. package/dist/cli/deploy-strategy.d.ts +3 -3
  135. package/dist/cli/deploy-strategy.d.ts.map +1 -1
  136. package/dist/cli/help-pages/pages/core.d.ts.map +1 -1
  137. package/dist/cli/index.js +12 -0
  138. package/dist/cli/preview-bindings.d.ts +8 -1
  139. package/dist/cli/preview-bindings.d.ts.map +1 -1
  140. package/dist/cli/preview.d.ts +1 -2
  141. package/dist/cli/preview.d.ts.map +1 -1
  142. package/dist/cloudflare/account-resources.d.ts.map +1 -1
  143. package/dist/cloudflare/api.d.ts +67 -3
  144. package/dist/cloudflare/api.d.ts.map +1 -1
  145. package/dist/cloudflare/auth.d.ts.map +1 -1
  146. package/dist/{src/cloudflare → cloudflare}/index.js +7 -7
  147. package/dist/cloudflare/known-permission-group-ids.generated.d.ts +10 -0
  148. package/dist/cloudflare/known-permission-group-ids.generated.d.ts.map +1 -0
  149. package/dist/cloudflare/kv-namespace.d.ts +2 -1
  150. package/dist/cloudflare/kv-namespace.d.ts.map +1 -1
  151. package/dist/cloudflare/preferences.d.ts +7 -0
  152. package/dist/cloudflare/preferences.d.ts.map +1 -1
  153. package/dist/cloudflare/preview-registry-inference.d.ts +14 -0
  154. package/dist/cloudflare/preview-registry-inference.d.ts.map +1 -0
  155. package/dist/cloudflare/preview-registry-records.d.ts +3 -60
  156. package/dist/cloudflare/preview-registry-records.d.ts.map +1 -1
  157. package/dist/cloudflare/preview-registry-shape.d.ts +47 -0
  158. package/dist/cloudflare/preview-registry-shape.d.ts.map +1 -0
  159. package/dist/cloudflare/preview-registry-transport.d.ts +4 -0
  160. package/dist/cloudflare/preview-registry-transport.d.ts.map +1 -0
  161. package/dist/cloudflare/preview-urls.d.ts +3 -0
  162. package/dist/cloudflare/preview-urls.d.ts.map +1 -0
  163. package/dist/cloudflare/tokens.d.ts +23 -0
  164. package/dist/cloudflare/tokens.d.ts.map +1 -1
  165. package/dist/cloudflare/types.d.ts +1 -1
  166. package/dist/cloudflare/types.d.ts.map +1 -1
  167. package/dist/cloudflare/usage.d.ts +30 -2
  168. package/dist/cloudflare/usage.d.ts.map +1 -1
  169. package/dist/config/binding-resolution-helpers.d.ts +36 -0
  170. package/dist/config/binding-resolution-helpers.d.ts.map +1 -0
  171. package/dist/config/compatibility.d.ts +3 -0
  172. package/dist/config/compatibility.d.ts.map +1 -0
  173. package/dist/config/compiler.d.ts +61 -20
  174. package/dist/config/compiler.d.ts.map +1 -1
  175. package/dist/config/deploy-resources.d.ts +58 -0
  176. package/dist/config/deploy-resources.d.ts.map +1 -0
  177. package/dist/config/index.d.ts +5 -2
  178. package/dist/config/index.d.ts.map +1 -1
  179. package/dist/config/preview-resources.d.ts +6 -0
  180. package/dist/config/preview-resources.d.ts.map +1 -1
  181. package/dist/config/preview.d.ts.map +1 -1
  182. package/dist/config/ref.d.ts +14 -1
  183. package/dist/config/ref.d.ts.map +1 -1
  184. package/dist/config/resolve-phased.d.ts +72 -0
  185. package/dist/config/resolve-phased.d.ts.map +1 -0
  186. package/dist/config/resolve.d.ts +7 -0
  187. package/dist/config/resolve.d.ts.map +1 -1
  188. package/dist/config/resource-resolution.d.ts +26 -6
  189. package/dist/config/resource-resolution.d.ts.map +1 -1
  190. package/dist/config/schema-bindings.d.ts +262 -0
  191. package/dist/config/schema-bindings.d.ts.map +1 -1
  192. package/dist/config/schema-env.d.ts +375 -39
  193. package/dist/config/schema-env.d.ts.map +1 -1
  194. package/dist/config/schema-normalization.d.ts +26 -2
  195. package/dist/config/schema-normalization.d.ts.map +1 -1
  196. package/dist/config/schema.d.ts +994 -63
  197. package/dist/config/schema.d.ts.map +1 -1
  198. package/dist/config/service-bindings-validation.d.ts +36 -0
  199. package/dist/config/service-bindings-validation.d.ts.map +1 -0
  200. package/dist/{config-hwdqjse7.js → config-1japnjmx.js} +5 -5
  201. package/dist/{config-q0g5qdga.js → config-287wjn1m.js} +6 -6
  202. package/dist/{config-fjwke42y.js → config-4x6vq82e.js} +6 -6
  203. package/dist/{config-pxvewrhv.js → config-5n0avhcx.js} +6 -6
  204. package/dist/config-70s2ap5j.js +59 -0
  205. package/dist/config-7hge8ze6.js +59 -0
  206. package/dist/config-7rbp7aek.js +59 -0
  207. package/dist/config-b8xbbmta.js +59 -0
  208. package/dist/config-baee5690.js +59 -0
  209. package/dist/config-bczpc1ey.js +59 -0
  210. package/dist/{src/config-entry.js → config-entry.js} +3 -3
  211. package/dist/config-fhmwzaw6.js +59 -0
  212. package/dist/config-g9vkfa4x.js +59 -0
  213. package/dist/config-gpexkzth.js +59 -0
  214. package/dist/config-nspw7sgv.js +59 -0
  215. package/dist/config-ntm4x9wt.js +59 -0
  216. package/dist/config-nv6hfpg6.js +59 -0
  217. package/dist/config-pjc33wew.js +59 -0
  218. package/dist/config-pnz2e8s3.js +59 -0
  219. package/dist/config-qts6nh6g.js +59 -0
  220. package/dist/config-sg2xrdt4.js +59 -0
  221. package/dist/config-vzwckat3.js +59 -0
  222. package/dist/config-x90dkmm7.js +59 -0
  223. package/dist/{src/decorators → decorators}/index.js +2 -2
  224. package/dist/deploy-1s6nv5rp.js +921 -0
  225. package/dist/{deploy-ykpcjkc2.js → deploy-30ph1rrd.js} +263 -32
  226. package/dist/{deploy-ex4g5avz.js → deploy-39dmfn9d.js} +338 -38
  227. package/dist/deploy-44n2pshy.js +1016 -0
  228. package/dist/deploy-45qxpsfe.js +921 -0
  229. package/dist/deploy-64e57w1g.js +1040 -0
  230. package/dist/deploy-82j43vta.js +1040 -0
  231. package/dist/deploy-99m8qhpa.js +1041 -0
  232. package/dist/deploy-9twkd32f.js +1040 -0
  233. package/dist/deploy-a2eq2c1n.js +1040 -0
  234. package/dist/{deploy-csfhdr64.js → deploy-a3pb1qs5.js} +259 -29
  235. package/dist/deploy-agbtfm04.js +921 -0
  236. package/dist/{deploy-jnb0bhka.js → deploy-aswbtbf3.js} +361 -49
  237. package/dist/deploy-bqf3kxy5.js +972 -0
  238. package/dist/deploy-fv4z648h.js +921 -0
  239. package/dist/deploy-gsybda2f.js +1038 -0
  240. package/dist/deploy-h17nzysm.js +921 -0
  241. package/dist/deploy-hc89h4wg.js +1045 -0
  242. package/dist/deploy-jey5pnqn.js +1040 -0
  243. package/dist/deploy-jv0yfqvk.js +1040 -0
  244. package/dist/deploy-kn3z6spd.js +941 -0
  245. package/dist/deploy-m22xmz9w.js +921 -0
  246. package/dist/deploy-nefp2njy.js +1038 -0
  247. package/dist/deploy-ppp8pg6w.js +1038 -0
  248. package/dist/deploy-qah2eag6.js +1041 -0
  249. package/dist/deploy-qdq2gpad.js +1045 -0
  250. package/dist/deploy-r1yf8913.js +1038 -0
  251. package/dist/deploy-r8nam9rr.js +1038 -0
  252. package/dist/deploy-rrm4a0xw.js +921 -0
  253. package/dist/deploy-s0tfnc12.js +1040 -0
  254. package/dist/deploy-s636ks9k.js +1041 -0
  255. package/dist/deploy-sany8t54.js +1045 -0
  256. package/dist/deploy-skqn61j3.js +1038 -0
  257. package/dist/deploy-smv2870h.js +921 -0
  258. package/dist/deploy-sp16nxs5.js +972 -0
  259. package/dist/deploy-sr805bvq.js +921 -0
  260. package/dist/deploy-t9dehmn0.js +1041 -0
  261. package/dist/deploy-taxt7njz.js +1041 -0
  262. package/dist/deploy-tnfvfh9m.js +1040 -0
  263. package/dist/deploy-w5f8db4s.js +1040 -0
  264. package/dist/deploy-wsxcectr.js +921 -0
  265. package/dist/deploy-xyfbhj3v.js +1038 -0
  266. package/dist/deploy-yv1y5xaa.js +921 -0
  267. package/dist/deploy-z3ejw37k.js +1040 -0
  268. package/dist/{dev-8nssqatr.js → dev-02tgdc4f.js} +199 -448
  269. package/dist/dev-0tqhveye.js +2314 -0
  270. package/dist/dev-3dj2gkfq.js +2314 -0
  271. package/dist/dev-3e0etsww.js +2314 -0
  272. package/dist/dev-47dk7c13.js +2314 -0
  273. package/dist/dev-4a2a31cm.js +2314 -0
  274. package/dist/dev-4w1stcn8.js +2427 -0
  275. package/dist/dev-5wkh1z4a.js +2188 -0
  276. package/dist/dev-6t22zmey.js +2350 -0
  277. package/dist/dev-89p1sdv7.js +2395 -0
  278. package/dist/dev-8d1gxjky.js +2427 -0
  279. package/dist/dev-8yawx3cv.js +2314 -0
  280. package/dist/dev-9h4p8a0c.js +2393 -0
  281. package/dist/dev-9xmttj4c.js +2314 -0
  282. package/dist/dev-at6gy2td.js +2427 -0
  283. package/dist/dev-bkbz97z0.js +2314 -0
  284. package/dist/{dev-grznx8fn.js → dev-ct3344kv.js} +199 -448
  285. package/dist/{dev-7ef5e2j1.js → dev-dg8dh5c1.js} +123 -298
  286. package/dist/dev-dr5jb965.js +2427 -0
  287. package/dist/dev-e4sjqtbq.js +2314 -0
  288. package/dist/dev-ecq26mg4.js +2350 -0
  289. package/dist/dev-ef237vgp.js +2324 -0
  290. package/dist/dev-enbdg4st.js +2314 -0
  291. package/dist/dev-jcrxg8hq.js +2160 -0
  292. package/dist/dev-jk0gqges.js +2432 -0
  293. package/dist/dev-k62936am.js +2314 -0
  294. package/dist/dev-k8ptbvrs.js +2160 -0
  295. package/dist/dev-kqm107h4.js +2422 -0
  296. package/dist/dev-n0gx7eya.js +2350 -0
  297. package/dist/dev-n23m6rtb.js +2314 -0
  298. package/dist/dev-ny8fmkzg.js +2432 -0
  299. package/dist/dev-p1c65cga.js +2386 -0
  300. package/dist/dev-p4fjbb4h.js +2395 -0
  301. package/dist/dev-pnfcv79z.js +2160 -0
  302. package/dist/dev-qnrrv5ey.js +2393 -0
  303. package/dist/dev-qqysg50t.js +2427 -0
  304. package/dist/dev-r9f3n11q.js +2410 -0
  305. package/dist/dev-s0815dw4.js +2427 -0
  306. package/dist/dev-s4tpkg60.js +2314 -0
  307. package/dist/dev-s82fcesg.js +2314 -0
  308. package/dist/dev-s9sz53me.js +2401 -0
  309. package/dist/dev-sdka7z0d.js +2427 -0
  310. package/dist/dev-server/d1-migrations.d.ts +22 -0
  311. package/dist/dev-server/d1-migrations.d.ts.map +1 -1
  312. package/dist/dev-server/dev-server-state.d.ts +56 -0
  313. package/dist/dev-server/dev-server-state.d.ts.map +1 -0
  314. package/dist/dev-server/gateway-script.d.ts +14 -1
  315. package/dist/dev-server/gateway-script.d.ts.map +1 -1
  316. package/dist/dev-server/miniflare-bindings.d.ts +16 -0
  317. package/dist/dev-server/miniflare-bindings.d.ts.map +1 -0
  318. package/dist/dev-server/miniflare-dev-config.d.ts +30 -0
  319. package/dist/dev-server/miniflare-dev-config.d.ts.map +1 -0
  320. package/dist/dev-server/miniflare-worker-config.d.ts +44 -0
  321. package/dist/dev-server/miniflare-worker-config.d.ts.map +1 -0
  322. package/dist/dev-server/reload-queue.d.ts +13 -0
  323. package/dist/dev-server/reload-queue.d.ts.map +1 -0
  324. package/dist/dev-server/server-startup-helpers.d.ts +84 -0
  325. package/dist/dev-server/server-startup-helpers.d.ts.map +1 -0
  326. package/dist/dev-server/server.d.ts.map +1 -1
  327. package/dist/dev-server/vite-utils.d.ts +18 -0
  328. package/dist/dev-server/vite-utils.d.ts.map +1 -1
  329. package/dist/dev-server/worker-source-watcher.d.ts +6 -0
  330. package/dist/dev-server/worker-source-watcher.d.ts.map +1 -1
  331. package/dist/dev-t3tjscah.js +2350 -0
  332. package/dist/dev-t50kdb1j.js +2338 -0
  333. package/dist/dev-t5xf55pt.js +2314 -0
  334. package/dist/dev-t63c44bb.js +2314 -0
  335. package/dist/dev-wg3d38sy.js +2433 -0
  336. package/dist/dev-wh4rfgsh.js +2427 -0
  337. package/dist/{dev-2pd33m28.js → dev-wjh8gdd1.js} +200 -325
  338. package/dist/dev-xzxy9qvq.js +2314 -0
  339. package/dist/dev-yymaq4ph.js +2392 -0
  340. package/dist/dev-zg2w2ve3.js +2422 -0
  341. package/dist/dev-zsb2xk1x.js +2427 -0
  342. package/dist/dev-zty3yhzg.js +2324 -0
  343. package/dist/{doctor-04ammrrh.js → doctor-3mqavqg3.js} +10 -10
  344. package/dist/{doctor-fzkznce1.js → doctor-5nek32fz.js} +10 -10
  345. package/dist/{doctor-sa5xv1bz.js → doctor-7ra1w0sk.js} +10 -10
  346. package/dist/doctor-ak830a0k.js +245 -0
  347. package/dist/doctor-bye3cs8a.js +245 -0
  348. package/dist/{doctor-fmjj65mc.js → doctor-c5m9pmwq.js} +8 -8
  349. package/dist/doctor-cqfkgxvw.js +245 -0
  350. package/dist/doctor-e1h9mhzp.js +245 -0
  351. package/dist/doctor-fmqsrafk.js +245 -0
  352. package/dist/doctor-hgs7wr5g.js +245 -0
  353. package/dist/doctor-j8ytsy94.js +245 -0
  354. package/dist/doctor-mcmkgp6e.js +245 -0
  355. package/dist/doctor-qb6m2exc.js +245 -0
  356. package/dist/doctor-qq4tsh8q.js +245 -0
  357. package/dist/doctor-tecv869a.js +245 -0
  358. package/dist/doctor-wg0245pe.js +245 -0
  359. package/dist/doctor-z3jfqxtz.js +245 -0
  360. package/dist/durable-object-4hey8fgy.js +13 -0
  361. package/dist/durable-object-v3gsnybk.js +13 -0
  362. package/dist/env.d.ts.map +1 -1
  363. package/dist/index-0krb65s3.js +215 -0
  364. package/dist/index-0mantew0.js +513 -0
  365. package/dist/{index-p03n4qet.js → index-0mezg6ar.js} +26 -21
  366. package/dist/{index-mqekt778.js → index-0tk2rs0q.js} +1 -1
  367. package/dist/{index-h18pxvzs.js → index-124e9t4t.js} +1 -1
  368. package/dist/{index-na3mnm1k.js → index-1546yrn0.js} +2 -2
  369. package/dist/index-15fpa5tx.js +232 -0
  370. package/dist/{index-jb75kwa4.js → index-18mp5v50.js} +33 -14
  371. package/dist/{index-4v9bc2pc.js → index-195tc6qh.js} +26 -21
  372. package/dist/{index-0kfzdywd.js → index-1bg8w2gf.js} +1 -1
  373. package/dist/index-1d4jg11n.js +542 -0
  374. package/dist/index-1e2qtrmj.js +188 -0
  375. package/dist/{index-v5nmqthy.js → index-1ghhgb9d.js} +2 -2
  376. package/dist/index-1nhd9nkd.js +232 -0
  377. package/dist/{index-6psz1h4c.js → index-1wn8mjep.js} +116 -96
  378. package/dist/index-1xhd5czz.js +185 -0
  379. package/dist/index-2a2g4fwp.js +993 -0
  380. package/dist/{index-fvsadj32.js → index-2bmtj21z.js} +2 -2
  381. package/dist/{index-816krz9p.js → index-2dpmd14d.js} +1 -1
  382. package/dist/{index-3ke5d2vn.js → index-2fa0afdp.js} +173 -30
  383. package/dist/{index-d8etnfef.js → index-2rcrefqd.js} +173 -30
  384. package/dist/index-2t2m5148.js +1372 -0
  385. package/dist/index-2vbzamev.js +437 -0
  386. package/dist/index-2vdep9h0.js +993 -0
  387. package/dist/{index-zfhq6s96.js → index-2y90j9cz.js} +2 -2
  388. package/dist/index-33ep0z9x.js +385 -0
  389. package/dist/index-37jgbaw6.js +1372 -0
  390. package/dist/index-380ncsqc.js +977 -0
  391. package/dist/{index-thna1tkd.js → index-3e1x39fc.js} +111 -26
  392. package/dist/index-3e7by9sy.js +223 -0
  393. package/dist/{index-xk9djfjp.js → index-3egad6wm.js} +34 -15
  394. package/dist/index-3f8rzmjw.js +232 -0
  395. package/dist/index-3vd4r37r.js +1372 -0
  396. package/dist/index-3vgn5e89.js +1682 -0
  397. package/dist/index-3x7k3t0f.js +513 -0
  398. package/dist/index-3xfe2dst.js +399 -0
  399. package/dist/index-464j1zb4.js +513 -0
  400. package/dist/{index-pnbs1b8k.js → index-48rxsj95.js} +110 -25
  401. package/dist/index-4bezcdd1.js +385 -0
  402. package/dist/index-4fp11z9e.js +973 -0
  403. package/dist/{index-m3fmw6mx.js → index-4knecthc.js} +2 -2
  404. package/dist/index-502y7w13.js +538 -0
  405. package/dist/index-50mxxb4q.js +185 -0
  406. package/dist/index-5achzspr.js +185 -0
  407. package/dist/index-5ef3jmv7.js +1372 -0
  408. package/dist/index-5eswe8yv.js +844 -0
  409. package/dist/index-5gevxfgs.js +513 -0
  410. package/dist/index-5gmf048z.js +817 -0
  411. package/dist/index-5jtkxpjf.js +971 -0
  412. package/dist/{index-72mve6vh.js → index-5m85bd9x.js} +1 -1
  413. package/dist/{index-4rrttqj5.js → index-5n5nn0a8.js} +62 -176
  414. package/dist/index-5p3bgjwr.js +808 -0
  415. package/dist/index-5vzcszr2.js +1230 -0
  416. package/dist/index-5w77r4w9.js +513 -0
  417. package/dist/index-62srkqcm.js +168 -0
  418. package/dist/index-63cgqe43.js +1372 -0
  419. package/dist/index-65e7xx1a.js +19 -0
  420. package/dist/index-65qrje14.js +185 -0
  421. package/dist/index-66sx3b3v.js +385 -0
  422. package/dist/{index-b8m6883k.js → index-678j0n13.js} +2 -2
  423. package/dist/{index-epw1jxz5.js → index-6ftrth7n.js} +194 -180
  424. package/dist/index-6g90pvxa.js +215 -0
  425. package/dist/index-6j4m5x2d.js +1372 -0
  426. package/dist/{index-7v583xan.js → index-6jwpke14.js} +13 -46
  427. package/dist/index-6knsjvxh.js +1372 -0
  428. package/dist/index-6kwq6yf8.js +979 -0
  429. package/dist/index-6mg4yvc6.js +74 -0
  430. package/dist/{index-e9yw4d6y.js → index-6phry941.js} +5 -5
  431. package/dist/index-6r59wbek.js +232 -0
  432. package/dist/index-6sf815ps.js +74 -0
  433. package/dist/index-6zd89k6y.js +1230 -0
  434. package/dist/{index-ry131z23.js → index-71rwg0cn.js} +62 -176
  435. package/dist/index-75ex2m0x.js +695 -0
  436. package/dist/{index-htzf0py1.js → index-79exzs3q.js} +194 -180
  437. package/dist/{index-1sp39f2f.js → index-7bxj118m.js} +62 -176
  438. package/dist/index-7c6np4mq.js +397 -0
  439. package/dist/{index-7x0ybbtx.js → index-7cm339qz.js} +5 -5
  440. package/dist/index-7e359eb5.js +895 -0
  441. package/dist/index-7eqyr4j8.js +70 -0
  442. package/dist/index-7k278fgz.js +273 -0
  443. package/dist/index-7kazxkjt.js +1372 -0
  444. package/dist/index-7m0x8m9r.js +844 -0
  445. package/dist/index-7p74smg8.js +1372 -0
  446. package/dist/index-7q8fke3k.js +188 -0
  447. package/dist/index-7qk6eafn.js +1682 -0
  448. package/dist/{index-yzddwp02.js → index-7vbjt6ba.js} +110 -93
  449. package/dist/{index-7kcxjhta.js → index-7z4b0vgd.js} +19 -5
  450. package/dist/index-82xn4azv.js +74 -0
  451. package/dist/index-83wns7cz.js +70 -0
  452. package/dist/index-852945d4.js +413 -0
  453. package/dist/{index-8t5nb4qx.js → index-86rvj79f.js} +5 -5
  454. package/dist/index-88tcq0t4.js +542 -0
  455. package/dist/{index-q4kaz181.js → index-8evn52g1.js} +279 -268
  456. package/dist/index-8jkf4nsd.js +695 -0
  457. package/dist/{index-sqrksgb2.js → index-8nx4ce3e.js} +7 -7
  458. package/dist/index-8q1bcnrh.js +1372 -0
  459. package/dist/index-8t5gynct.js +971 -0
  460. package/dist/index-905svbb6.js +470 -0
  461. package/dist/index-94cb0sac.js +1372 -0
  462. package/dist/index-95mmvbw7.js +538 -0
  463. package/dist/index-97x94h0m.js +438 -0
  464. package/dist/index-9an9qqr1.js +728 -0
  465. package/dist/index-9d125myk.js +1372 -0
  466. package/dist/index-9gg0kqw0.js +470 -0
  467. package/dist/index-9ryw7mcw.js +971 -0
  468. package/dist/index-a3e13a7m.js +478 -0
  469. package/dist/index-a6j44jmr.js +1372 -0
  470. package/dist/index-a75ejnvt.js +1711 -0
  471. package/dist/index-ab2nck1h.js +1372 -0
  472. package/dist/index-abrqnq3e.js +488 -0
  473. package/dist/index-afjbpgb1.js +1218 -0
  474. package/dist/index-at89fpde.js +470 -0
  475. package/dist/{index-cgbvmse6.js → index-awr0tp6p.js} +1 -1
  476. package/dist/index-b1be9bdh.js +1372 -0
  477. package/dist/index-b1xs3wc4.js +513 -0
  478. package/dist/index-b50x7seh.js +513 -0
  479. package/dist/{index-9az6s7ad.js → index-b5ra8w3q.js} +1 -1
  480. package/dist/index-b64sbzgv.js +884 -0
  481. package/dist/index-b7r8ntpm.js +1372 -0
  482. package/dist/index-ba9gyy13.js +513 -0
  483. package/dist/{index-k29yjhv0.js → index-bb66mn7p.js} +1 -1
  484. package/dist/index-bc5pvbbd.js +1193 -0
  485. package/dist/index-bj0mk3dw.js +74 -0
  486. package/dist/index-bj3a8dr0.js +1372 -0
  487. package/dist/index-bk3eez1g.js +513 -0
  488. package/dist/index-btjx137w.js +774 -0
  489. package/dist/index-btrfqp9h.js +133 -0
  490. package/dist/index-bx6gangy.js +402 -0
  491. package/dist/index-c0tc0yts.js +471 -0
  492. package/dist/{index-6jef5emv.js → index-c0whkev9.js} +27 -3
  493. package/dist/index-ca96qkva.js +1372 -0
  494. package/dist/index-cdtzkedk.js +993 -0
  495. package/dist/index-cejgenma.js +1372 -0
  496. package/dist/index-cp8jt5pr.js +52 -0
  497. package/dist/index-cpz69pek.js +1372 -0
  498. package/dist/{index-gs4y9gdf.js → index-crrdegk5.js} +2 -2
  499. package/dist/index-cskszwkx.js +1372 -0
  500. package/dist/index-cxf22a0s.js +74 -0
  501. package/dist/index-cy3c3w81.js +270 -0
  502. package/dist/index-d5dgb1j6.js +74 -0
  503. package/dist/index-da397xcx.js +1372 -0
  504. package/dist/index-damyy8bw.js +1372 -0
  505. package/dist/{index-x9cwdxw5.js → index-dd6fwwmq.js} +3 -3
  506. package/dist/index-dh1954bp.js +52 -0
  507. package/dist/index-djp2wd1f.js +1372 -0
  508. package/dist/{index-0apbm26n.js → index-dmbdj6va.js} +111 -94
  509. package/dist/index-dmf76tac.js +1372 -0
  510. package/dist/index-dphr32gc.js +420 -0
  511. package/dist/index-dxh2qyyw.js +52 -0
  512. package/dist/index-dzayfxjy.js +492 -0
  513. package/dist/index-e05q77kt.js +397 -0
  514. package/dist/index-e11b1fb2.js +495 -0
  515. package/dist/index-e3zvspqj.js +968 -0
  516. package/dist/index-e4tzzbn9.js +1372 -0
  517. package/dist/index-e5ct1gwb.js +1372 -0
  518. package/dist/index-e7ptcz1a.js +1372 -0
  519. package/dist/index-e7wt0203.js +513 -0
  520. package/dist/{index-61jsjnsv.js → index-ebwsvf9t.js} +110 -25
  521. package/dist/index-ed73jn3d.js +185 -0
  522. package/dist/index-ed7n5d07.js +185 -0
  523. package/dist/index-ejs2a4kd.js +513 -0
  524. package/dist/index-esjrgt3y.js +467 -0
  525. package/dist/index-ev03khsd.js +513 -0
  526. package/dist/index-f1gsqm54.js +168 -0
  527. package/dist/index-f90314kt.js +52 -0
  528. package/dist/index-f9mhsept.js +185 -0
  529. package/dist/index-fa6zwffw.js +70 -0
  530. package/dist/index-fama7kpt.js +52 -0
  531. package/dist/index-fgk87mk2.js +1067 -0
  532. package/dist/index-fkyvxe4b.js +968 -0
  533. package/dist/index-g0h40xke.js +513 -0
  534. package/dist/index-g0rqh52c.js +385 -0
  535. package/dist/{index-0eqksag4.js → index-g170d619.js} +13 -46
  536. package/dist/index-g3qtxkms.js +881 -0
  537. package/dist/index-gactvqcs.js +467 -0
  538. package/dist/index-gaew61v4.js +470 -0
  539. package/dist/index-gba371j7.js +542 -0
  540. package/dist/index-gegyyfnw.js +1372 -0
  541. package/dist/index-get7he2s.js +133 -0
  542. package/dist/index-gn5wy09x.js +205 -0
  543. package/dist/{index-2pb7b9mw.js → index-gtbgzwfs.js} +62 -176
  544. package/dist/index-gtpz0gkz.js +185 -0
  545. package/dist/index-h1s66pmp.js +52 -0
  546. package/dist/{index-11m5a8wd.js → index-h8r2d8y5.js} +112 -26
  547. package/dist/index-heeqwrfd.js +385 -0
  548. package/dist/{index-7g8zyws4.js → index-hheb5dyt.js} +2 -2
  549. package/dist/index-hjz2x9nq.js +441 -0
  550. package/dist/index-hkex7ns5.js +513 -0
  551. package/dist/index-hmbctwv6.js +517 -0
  552. package/dist/index-hpzasdhw.js +513 -0
  553. package/dist/index-hqdr9wdm.js +74 -0
  554. package/dist/index-hrvz8d26.js +1372 -0
  555. package/dist/index-hyvhnf6r.js +971 -0
  556. package/dist/index-j2kc5rbv.js +895 -0
  557. package/dist/index-j2xdxwsz.js +133 -0
  558. package/dist/index-j47hhb3r.js +694 -0
  559. package/dist/index-j5aphr5x.js +185 -0
  560. package/dist/index-j68v36q1.js +188 -0
  561. package/dist/index-j7cf22x7.js +968 -0
  562. package/dist/index-j7xxrbnr.js +694 -0
  563. package/dist/index-jptqxkew.js +470 -0
  564. package/dist/index-jsymy3mb.js +781 -0
  565. package/dist/index-jwvy32xk.js +188 -0
  566. package/dist/index-jxe1b19v.js +133 -0
  567. package/dist/index-jz96ry5g.js +513 -0
  568. package/dist/index-k6wtsgs1.js +971 -0
  569. package/dist/index-kawa49m8.js +371 -0
  570. package/dist/index-key4e5c9.js +168 -0
  571. package/dist/index-khbmdrn2.js +884 -0
  572. package/dist/index-kpzfwex6.js +264 -0
  573. package/dist/index-kse4gn99.js +74 -0
  574. package/dist/index-ktscz0r2.js +264 -0
  575. package/dist/index-kybmjvad.js +1212 -0
  576. package/dist/index-kzm9cea8.js +185 -0
  577. package/dist/index-m2d74gqg.js +808 -0
  578. package/dist/index-m56w7mjt.js +513 -0
  579. package/dist/index-m95ha3n4.js +264 -0
  580. package/dist/index-ma151p8g.js +264 -0
  581. package/dist/index-mg8vwqxf.js +514 -0
  582. package/dist/index-mhdsywhs.js +264 -0
  583. package/dist/index-mjgx910r.js +895 -0
  584. package/dist/index-mkrmaea3.js +185 -0
  585. package/dist/index-mkxnyyjn.js +264 -0
  586. package/dist/index-mp5mrst6.js +1372 -0
  587. package/dist/index-ms15cr86.js +513 -0
  588. package/dist/index-mt99xkc6.js +133 -0
  589. package/dist/index-mttv6k25.js +881 -0
  590. package/dist/index-myxfx52v.js +385 -0
  591. package/dist/index-mzw7732t.js +74 -0
  592. package/dist/index-n3mjwz22.js +188 -0
  593. package/dist/index-n3yksgz0.js +1372 -0
  594. package/dist/{index-9n6djthj.js → index-n4jr3dmk.js} +32 -38
  595. package/dist/index-n5drt64b.js +74 -0
  596. package/dist/index-n8frmffg.js +264 -0
  597. package/dist/index-n8k8chde.js +694 -0
  598. package/dist/index-na796ka6.js +994 -0
  599. package/dist/index-nbs4q0qg.js +1218 -0
  600. package/dist/index-newpq2zf.js +968 -0
  601. package/dist/index-nexg9p7j.js +1271 -0
  602. package/dist/index-nfm8tb5n.js +74 -0
  603. package/dist/index-nga2tg9z.js +1372 -0
  604. package/dist/{index-43dq8yx8.js → index-ngbzr9gz.js} +111 -94
  605. package/dist/index-nh90nk7j.js +380 -0
  606. package/dist/index-njnmfxm5.js +1372 -0
  607. package/dist/index-nqma24j3.js +385 -0
  608. package/dist/index-ntddf5d9.js +993 -0
  609. package/dist/index-nte9n8w9.js +538 -0
  610. package/dist/index-ntxp7ke1.js +264 -0
  611. package/dist/index-nwxnmw41.js +264 -0
  612. package/dist/index-p1xe5eem.js +513 -0
  613. package/dist/{index-wztc9stx.js → index-p477xm52.js} +13 -46
  614. package/dist/index-p8nmkrgw.js +470 -0
  615. package/dist/{index-yqbxjysa.js → index-p97s12vf.js} +50 -43
  616. package/dist/index-p9hvv0yd.js +401 -0
  617. package/dist/index-pac7wv88.js +307 -0
  618. package/dist/index-ptp2pfq1.js +52 -0
  619. package/dist/index-pyeycp3f.js +74 -0
  620. package/dist/index-q23xf3vr.js +479 -0
  621. package/dist/index-q34rvh5a.js +247 -0
  622. package/dist/{index-j185x270.js → index-q5errwrj.js} +53 -46
  623. package/dist/{index-2jnrqbny.js → index-q5nhzc9m.js} +4 -88
  624. package/dist/index-q8f4kawk.js +204 -0
  625. package/dist/index-qer8zv2r.js +997 -0
  626. package/dist/index-qhyy018y.js +467 -0
  627. package/dist/index-qmhdydwy.js +70 -0
  628. package/dist/index-qpmvca5j.js +470 -0
  629. package/dist/index-qr96vaj1.js +52 -0
  630. package/dist/{index-74198nxd.js → index-qtyhg3dn.js} +53 -46
  631. package/dist/index-qye17gq5.js +264 -0
  632. package/dist/index-r0839f5k.js +133 -0
  633. package/dist/index-r1rqg72v.js +1372 -0
  634. package/dist/index-rbckga8p.js +971 -0
  635. package/dist/index-rbxb5x2w.js +1372 -0
  636. package/dist/index-rck779bj.js +739 -0
  637. package/dist/index-rfn2gt5f.js +1658 -0
  638. package/dist/index-rg21w26a.js +470 -0
  639. package/dist/index-rgcz45t0.js +1372 -0
  640. package/dist/index-rhnd376q.js +133 -0
  641. package/dist/index-rjc5z3w6.js +971 -0
  642. package/dist/index-rkhtayd6.js +385 -0
  643. package/dist/index-rm8srzmv.js +371 -0
  644. package/dist/index-rmhk5j03.js +968 -0
  645. package/dist/index-rp4t86bt.js +993 -0
  646. package/dist/index-rpq5ktdy.js +264 -0
  647. package/dist/index-rpsmhdd4.js +1218 -0
  648. package/dist/index-rqpakjyr.js +470 -0
  649. package/dist/index-rttk33x6.js +232 -0
  650. package/dist/index-rwa82e89.js +385 -0
  651. package/dist/index-rz185crv.js +695 -0
  652. package/dist/index-s22verzj.js +1218 -0
  653. package/dist/index-s2s3g1nt.js +133 -0
  654. package/dist/index-s7ytytth.js +781 -0
  655. package/dist/index-sefnpzwa.js +185 -0
  656. package/dist/index-sgxw0xzd.js +513 -0
  657. package/dist/index-stc0caq6.js +1009 -0
  658. package/dist/index-svz82w9h.js +513 -0
  659. package/dist/index-sx49e8x9.js +884 -0
  660. package/dist/index-sxadwvw9.js +185 -0
  661. package/dist/index-sxn223fz.js +1372 -0
  662. package/dist/index-sy0c2mh0.js +1372 -0
  663. package/dist/index-syeh1hca.js +264 -0
  664. package/dist/index-t18wyhgf.js +418 -0
  665. package/dist/index-t4fhcx1n.js +71 -0
  666. package/dist/index-td4hbgj5.js +1372 -0
  667. package/dist/{index-hjy8ctpc.js → index-tkvt9mmq.js} +47 -14
  668. package/dist/index-tmmcf4m6.js +808 -0
  669. package/dist/index-tpgs5v64.js +366 -0
  670. package/dist/index-tt4fsv91.js +412 -0
  671. package/dist/{index-t08te69w.js → index-tte89s31.js} +28 -11
  672. package/dist/index-tvjg7swe.js +1372 -0
  673. package/dist/index-txndxr4w.js +513 -0
  674. package/dist/index-tyh5jc55.js +990 -0
  675. package/dist/index-tyt0wa52.js +470 -0
  676. package/dist/index-tyt3wcfr.js +1372 -0
  677. package/dist/index-v3znz08m.js +968 -0
  678. package/dist/index-v78xbj6n.js +808 -0
  679. package/dist/index-v915brjk.js +1372 -0
  680. package/dist/index-v922fmsx.js +52 -0
  681. package/dist/index-v9w1bbfe.js +842 -0
  682. package/dist/index-vbbgtm8p.js +513 -0
  683. package/dist/{index-k6vq6kkt.js → index-vcjgrmzj.js} +3 -3
  684. package/dist/{index-9ba1etyz.js → index-vdewcg1r.js} +204 -54
  685. package/dist/index-vhqww6tt.js +307 -0
  686. package/dist/index-vse8620z.js +1372 -0
  687. package/dist/index-vtjp46c3.js +52 -0
  688. package/dist/{index-jwd8pcb2.js → index-vxhxk8mf.js} +53 -46
  689. package/dist/index-w3azfsa0.js +695 -0
  690. package/dist/index-w4tq35dn.js +52 -0
  691. package/dist/index-w5qxvxzq.js +991 -0
  692. package/dist/index-w5sedpqn.js +986 -0
  693. package/dist/index-waha3chv.js +1230 -0
  694. package/dist/index-wdxww0kj.js +1006 -0
  695. package/dist/index-wdy5y07x.js +1372 -0
  696. package/dist/index-wf9pnh6j.js +385 -0
  697. package/dist/index-wnnbbbkt.js +1192 -0
  698. package/dist/index-wvcmvtjf.js +1372 -0
  699. package/dist/index-x0jbntp0.js +470 -0
  700. package/dist/index-x6scc3nx.js +70 -0
  701. package/dist/index-x8e2wsbv.js +971 -0
  702. package/dist/index-xec4p3v5.js +560 -0
  703. package/dist/index-xgfyxpfs.js +1218 -0
  704. package/dist/index-xm9hp9xc.js +1372 -0
  705. package/dist/index-xp7zkxcx.js +1372 -0
  706. package/dist/index-xrbj0ebk.js +185 -0
  707. package/dist/index-xskax7r3.js +50 -0
  708. package/dist/index-xvk5n96q.js +694 -0
  709. package/dist/index-xy1jvt4w.js +1229 -0
  710. package/dist/index-xzg9hhf3.js +470 -0
  711. package/dist/index-xzpg0kaz.js +70 -0
  712. package/dist/index-y3q6qvv3.js +316 -0
  713. package/dist/index-y44ts1dk.js +52 -0
  714. package/dist/index-y5nt1wjb.js +971 -0
  715. package/dist/index-y82b8w14.js +1372 -0
  716. package/dist/index-yb07t3c5.js +1372 -0
  717. package/dist/index-yc3xz3vm.js +431 -0
  718. package/dist/index-yeaqrevg.js +1372 -0
  719. package/dist/index-ygwsd1nn.js +438 -0
  720. package/dist/index-yhdavjk7.js +371 -0
  721. package/dist/index-yjhns95b.js +188 -0
  722. package/dist/index-yk23p7he.js +1372 -0
  723. package/dist/index-ykfgpsmm.js +190 -0
  724. package/dist/index-ymz3cfab.js +968 -0
  725. package/dist/index-yq9g1sq7.js +264 -0
  726. package/dist/index-ys5q9ch9.js +366 -0
  727. package/dist/index-yt0n4p46.js +973 -0
  728. package/dist/index-ytq1t9jx.js +232 -0
  729. package/dist/index-ywmtmf3b.js +513 -0
  730. package/dist/index-yzb44q6d.js +1372 -0
  731. package/dist/index-z043xk61.js +133 -0
  732. package/dist/index-z0gsf674.js +431 -0
  733. package/dist/index-z32n0ndp.js +1372 -0
  734. package/dist/index-z4qgk76w.js +1372 -0
  735. package/dist/{index-yc0gcchc.js → index-z8njfj2g.js} +11 -44
  736. package/dist/{index-0w826dsr.js → index-z9fjnwa8.js} +21 -3
  737. package/dist/{index-1xpj0m4r.js → index-z9gy8w6b.js} +1 -1
  738. package/dist/index-zapkc14c.js +264 -0
  739. package/dist/index-zes6w8yr.js +185 -0
  740. package/dist/index-zgrqest7.js +695 -0
  741. package/dist/index-zsngz131.js +1372 -0
  742. package/dist/index-zxhc6sb0.js +192 -0
  743. package/dist/index.d.ts +1 -5
  744. package/dist/index.d.ts.map +1 -1
  745. package/dist/index.js +61 -0
  746. package/dist/{init-r4hnxan3.js → init-wfh63bfz.js} +1 -1
  747. package/dist/{login-5bsxxpvc.js → login-1amyp1jy.js} +10 -10
  748. package/dist/{login-bhaw72zc.js → login-1cdwn1dj.js} +11 -11
  749. package/dist/{login-2hnz4m4n.js → login-456h8jk3.js} +11 -11
  750. package/dist/{login-6tzvczw2.js → login-4n470c4j.js} +11 -11
  751. package/dist/login-4sh7s849.js +77 -0
  752. package/dist/login-5dmkf0pz.js +77 -0
  753. package/dist/login-88tp4gbb.js +77 -0
  754. package/dist/login-b51faqpc.js +77 -0
  755. package/dist/login-bxyjqmbj.js +77 -0
  756. package/dist/login-c4649qss.js +77 -0
  757. package/dist/login-d80a2qxd.js +77 -0
  758. package/dist/login-dp0napaz.js +77 -0
  759. package/dist/login-j3r6z2t4.js +77 -0
  760. package/dist/login-jkfkdjg4.js +77 -0
  761. package/dist/login-kch6f2yj.js +77 -0
  762. package/dist/login-pmqh94ws.js +77 -0
  763. package/dist/login-rc82x5j8.js +77 -0
  764. package/dist/login-tvppwyx2.js +77 -0
  765. package/dist/login-w76jx22q.js +77 -0
  766. package/dist/login-ze7y36rc.js +77 -0
  767. package/dist/{previews-gm3z0syj.js → previews-02jmcwft.js} +140 -94
  768. package/dist/previews-31bq82km.js +1225 -0
  769. package/dist/{previews-j9ymq4ys.js → previews-62pcvvpe.js} +140 -95
  770. package/dist/{previews-3rn8mz2c.js → previews-76fxkp59.js} +140 -94
  771. package/dist/previews-844bp6kf.js +1214 -0
  772. package/dist/previews-8amn46qv.js +1214 -0
  773. package/dist/previews-a5xbkksy.js +1214 -0
  774. package/dist/previews-bgnryzav.js +1214 -0
  775. package/dist/previews-bkhv9dnr.js +1214 -0
  776. package/dist/previews-c2c64z5m.js +1214 -0
  777. package/dist/previews-e4wgscsb.js +1214 -0
  778. package/dist/previews-ew4reetn.js +1214 -0
  779. package/dist/previews-hzqke1fg.js +1214 -0
  780. package/dist/previews-j8wa3sge.js +1214 -0
  781. package/dist/previews-k5n6vhpm.js +1214 -0
  782. package/dist/previews-n4sdyxa5.js +1214 -0
  783. package/dist/previews-npwrwb0b.js +1214 -0
  784. package/dist/previews-q8ph9wbe.js +1214 -0
  785. package/dist/previews-rfswrh7q.js +1214 -0
  786. package/dist/previews-s0y5yp8s.js +1214 -0
  787. package/dist/previews-s5b6mnz5.js +1214 -0
  788. package/dist/{previews-d487qde5.js → previews-sdte4984.js} +23 -23
  789. package/dist/previews-t5tdm6t0.js +1225 -0
  790. package/dist/previews-tk7vpzj9.js +1214 -0
  791. package/dist/previews-tqt4pk27.js +1214 -0
  792. package/dist/previews-vqg4psk2.js +1225 -0
  793. package/dist/{productions-x9p0pym1.js → productions-4abj58kx.js} +12 -12
  794. package/dist/{productions-5ev5qweg.js → productions-4dpec71r.js} +13 -13
  795. package/dist/{productions-120xg0aq.js → productions-4nedsanh.js} +13 -13
  796. package/dist/{productions-p5rbgp2f.js → productions-5c58yafp.js} +13 -13
  797. package/dist/{productions-me3tdvr9.js → productions-5xq5cjhx.js} +13 -13
  798. package/dist/productions-6dr0bmd7.js +505 -0
  799. package/dist/productions-8f6s8dqr.js +505 -0
  800. package/dist/productions-a2hcwwzf.js +505 -0
  801. package/dist/productions-b7svyjp7.js +505 -0
  802. package/dist/productions-bf2cnr05.js +505 -0
  803. package/dist/productions-dkgry3gv.js +505 -0
  804. package/dist/productions-eqh105tk.js +505 -0
  805. package/dist/productions-etvcm7yf.js +505 -0
  806. package/dist/productions-f1zpbmjz.js +505 -0
  807. package/dist/productions-j14pvx93.js +505 -0
  808. package/dist/productions-j7s1ywvg.js +505 -0
  809. package/dist/productions-jp3v3q3p.js +505 -0
  810. package/dist/productions-m9p42amj.js +505 -0
  811. package/dist/productions-mxbneawa.js +505 -0
  812. package/dist/productions-np4exh9p.js +505 -0
  813. package/dist/productions-rr1hqgda.js +505 -0
  814. package/dist/productions-rtf9ksgg.js +505 -0
  815. package/dist/productions-w2nzftcz.js +505 -0
  816. package/dist/productions-wbks5h7e.js +505 -0
  817. package/dist/productions-y99ayk6h.js +505 -0
  818. package/dist/productions-zpqyw5gm.js +505 -0
  819. package/dist/runtime/context-events.d.ts.map +1 -1
  820. package/dist/runtime/context.d.ts +8 -1
  821. package/dist/runtime/context.d.ts.map +1 -1
  822. package/dist/runtime/exports.d.ts +1 -4
  823. package/dist/runtime/exports.d.ts.map +1 -1
  824. package/dist/runtime/index.d.ts +3 -3
  825. package/dist/runtime/index.d.ts.map +1 -1
  826. package/dist/{src/runtime → runtime}/index.js +22 -7
  827. package/dist/runtime/middleware.d.ts +55 -0
  828. package/dist/runtime/middleware.d.ts.map +1 -1
  829. package/dist/runtime/router/index.d.ts +7 -0
  830. package/dist/runtime/router/index.d.ts.map +1 -0
  831. package/dist/runtime/router/types.d.ts +24 -0
  832. package/dist/runtime/router/types.d.ts.map +1 -0
  833. package/dist/runtime/validation.d.ts +9 -1
  834. package/dist/runtime/validation.d.ts.map +1 -1
  835. package/dist/{src/sveltekit → sveltekit}/index.js +36 -71
  836. package/dist/sveltekit/platform.d.ts +10 -0
  837. package/dist/sveltekit/platform.d.ts.map +1 -1
  838. package/dist/test/binding-hints.d.ts +11 -0
  839. package/dist/test/binding-hints.d.ts.map +1 -0
  840. package/dist/test/bridge-context.d.ts +7 -0
  841. package/dist/test/bridge-context.d.ts.map +1 -1
  842. package/dist/test/index.d.ts +0 -1
  843. package/dist/test/index.d.ts.map +1 -1
  844. package/dist/{index-2x53aqjm.js → test/index.js} +836 -774
  845. package/dist/test/simple-context-bindings.d.ts +13 -0
  846. package/dist/test/simple-context-bindings.d.ts.map +1 -0
  847. package/dist/test/simple-context-env.d.ts +35 -0
  848. package/dist/test/simple-context-env.d.ts.map +1 -0
  849. package/dist/test/simple-context-gateway-script.d.ts.map +1 -1
  850. package/dist/test/simple-context-handlers.d.ts +12 -0
  851. package/dist/test/simple-context-handlers.d.ts.map +1 -0
  852. package/dist/test/simple-context-lifecycle.d.ts +32 -0
  853. package/dist/test/simple-context-lifecycle.d.ts.map +1 -0
  854. package/dist/test/simple-context-mfconfig.d.ts +7 -0
  855. package/dist/test/simple-context-mfconfig.d.ts.map +1 -0
  856. package/dist/test/simple-context-multi-worker.d.ts +16 -0
  857. package/dist/test/simple-context-multi-worker.d.ts.map +1 -0
  858. package/dist/test/simple-context-runtime.d.ts +19 -0
  859. package/dist/test/simple-context-runtime.d.ts.map +1 -0
  860. package/dist/test/simple-context-startup.d.ts +11 -0
  861. package/dist/test/simple-context-startup.d.ts.map +1 -0
  862. package/dist/test/simple-context-transport.d.ts +14 -0
  863. package/dist/test/simple-context-transport.d.ts.map +1 -0
  864. package/dist/test/simple-context.d.ts +6 -3
  865. package/dist/test/simple-context.d.ts.map +1 -1
  866. package/dist/test/utilities.d.ts +13 -5
  867. package/dist/test/utilities.d.ts.map +1 -1
  868. package/dist/test/worker.d.ts +1 -1
  869. package/dist/test/worker.d.ts.map +1 -1
  870. package/dist/{token-kedhcret.js → token-3b9wws58.js} +3 -3
  871. package/dist/{token-m8jmnjwk.js → token-47kcz18j.js} +3 -3
  872. package/dist/token-exz78pth.js +419 -0
  873. package/dist/token-fcthx92c.js +419 -0
  874. package/dist/token-grwp8z4q.js +419 -0
  875. package/dist/token-jkmm44z2.js +419 -0
  876. package/dist/token-qxtvzm3b.js +419 -0
  877. package/dist/token-rq8mvtz9.js +419 -0
  878. package/dist/token-sct51r47.js +419 -0
  879. package/dist/token-sfgxcgen.js +419 -0
  880. package/dist/transform/durable-object.d.ts.map +1 -1
  881. package/dist/transform/worker-entrypoint.d.ts +5 -0
  882. package/dist/transform/worker-entrypoint.d.ts.map +1 -1
  883. package/dist/types-0qv4xces.js +572 -0
  884. package/dist/types-2nvrs9jg.js +572 -0
  885. package/dist/types-2pbe8kzw.js +572 -0
  886. package/dist/types-2zyt0m43.js +572 -0
  887. package/dist/types-4xxer9ep.js +572 -0
  888. package/dist/{types-6e5yx6km.js → types-5t5y7a5n.js} +9 -9
  889. package/dist/{types-1gwr2ex6.js → types-5wd2rygw.js} +9 -9
  890. package/dist/types-7j3ykgx7.js +572 -0
  891. package/dist/types-8g78x34n.js +572 -0
  892. package/dist/types-e6d336q3.js +572 -0
  893. package/dist/types-hqh2fx0x.js +572 -0
  894. package/dist/types-j12xmdnd.js +572 -0
  895. package/dist/types-jqn26et3.js +572 -0
  896. package/dist/types-n0mxbq26.js +572 -0
  897. package/dist/types-naz9hvw5.js +572 -0
  898. package/dist/{types-p0gckpn6.js → types-qjcd1jks.js} +7 -7
  899. package/dist/types-r9zb8sw1.js +572 -0
  900. package/dist/types-rv5xwgsn.js +572 -0
  901. package/dist/types-t39njdqx.js +572 -0
  902. package/dist/types-tkgch3xv.js +572 -0
  903. package/dist/{types-0sqwkp7x.js → types-vvtb7rrh.js} +9 -9
  904. package/dist/types-w1grncdj.js +572 -0
  905. package/dist/types-wmw49exb.js +572 -0
  906. package/dist/types-ymxz9jga.js +572 -0
  907. package/dist/utils/resolve-package.d.ts.map +1 -1
  908. package/dist/utils/send-email.js +19 -0
  909. package/dist/vite/config-file.d.ts.map +1 -1
  910. package/dist/{src/vite → vite}/index.js +12 -11
  911. package/dist/vite/plugin-config-hook.d.ts +28 -0
  912. package/dist/vite/plugin-config-hook.d.ts.map +1 -0
  913. package/dist/vite/plugin-context.d.ts +25 -0
  914. package/dist/vite/plugin-context.d.ts.map +1 -0
  915. package/dist/vite/plugin-durable-objects.d.ts +18 -0
  916. package/dist/vite/plugin-durable-objects.d.ts.map +1 -0
  917. package/dist/vite/plugin-programmatic.d.ts +44 -0
  918. package/dist/vite/plugin-programmatic.d.ts.map +1 -0
  919. package/dist/vite/plugin-transform.d.ts +41 -0
  920. package/dist/vite/plugin-transform.d.ts.map +1 -0
  921. package/dist/vite/plugin.d.ts +6 -39
  922. package/dist/vite/plugin.d.ts.map +1 -1
  923. package/dist/{worker-y9ha6g44.js → worker-18ceqscc.js} +11 -11
  924. package/dist/{worker-0srh2jfr.js → worker-1yqpwte2.js} +12 -12
  925. package/dist/{worker-qtam8grz.js → worker-2aw27zxy.js} +12 -12
  926. package/dist/{worker-4xrfd10a.js → worker-45tp4a8f.js} +12 -12
  927. package/dist/worker-68zttchg.js +513 -0
  928. package/dist/worker-729cf3fh.js +513 -0
  929. package/dist/worker-aydzxt4f.js +513 -0
  930. package/dist/worker-ejdxma7k.js +513 -0
  931. package/dist/worker-entry/composed-worker.d.ts +1 -0
  932. package/dist/worker-entry/composed-worker.d.ts.map +1 -1
  933. package/dist/worker-entry/durable-object-discovery.d.ts +20 -0
  934. package/dist/worker-entry/durable-object-discovery.d.ts.map +1 -0
  935. package/dist/worker-entry/extensions.d.ts +5 -0
  936. package/dist/worker-entry/extensions.d.ts.map +1 -0
  937. package/dist/worker-entry/routes.d.ts +1 -1
  938. package/dist/worker-entry/routes.d.ts.map +1 -1
  939. package/dist/worker-entry/surface-paths.d.ts +13 -4
  940. package/dist/worker-entry/surface-paths.d.ts.map +1 -1
  941. package/dist/worker-entrypoint-4xp7msd7.js +16 -0
  942. package/dist/worker-entrypoint-f1v9y4s8.js +15 -0
  943. package/dist/{worker-qzm0b7br.js → worker-f6xqjg65.js} +12 -12
  944. package/dist/worker-fdnn62de.js +513 -0
  945. package/dist/worker-frnh95rg.js +513 -0
  946. package/dist/worker-k55nfrmp.js +513 -0
  947. package/dist/worker-kqc6w7ry.js +513 -0
  948. package/dist/worker-ksvcq8be.js +513 -0
  949. package/dist/worker-mjzfstv5.js +513 -0
  950. package/dist/worker-p4rtsndj.js +513 -0
  951. package/dist/worker-p6d53qan.js +513 -0
  952. package/dist/worker-qh2qbv97.js +513 -0
  953. package/dist/worker-r234vnv9.js +513 -0
  954. package/dist/worker-r47bv7gt.js +513 -0
  955. package/dist/worker-s4nvbqsm.js +513 -0
  956. package/dist/worker-ttj7vwce.js +513 -0
  957. package/dist/worker-wv4jdneg.js +513 -0
  958. package/dist/worker-xcbscr75.js +513 -0
  959. package/dist/worker-ywwkf3cp.js +513 -0
  960. package/dist/worker-z8wtk0sh.js +513 -0
  961. package/package.json +138 -123
  962. package/dist/account-s66jb15j.js +0 -475
  963. package/dist/browser-shim/worker.d.ts +0 -14
  964. package/dist/browser-shim/worker.d.ts.map +0 -1
  965. package/dist/deploy-7nmzc9r8.js +0 -609
  966. package/dist/deploy-tp0g6qdp.js +0 -609
  967. package/dist/index-091sh1ma.js +0 -1229
  968. package/dist/index-f85s8gj3.js +0 -2649
  969. package/dist/index-fe2ngvh7.js +0 -1229
  970. package/dist/index-hfj1a2c4.js +0 -2649
  971. package/dist/index-maxpsfk8.js +0 -402
  972. package/dist/index-mbdmrner.js +0 -402
  973. package/dist/index-mea5bc45.js +0 -418
  974. package/dist/index-sgb7c8nm.js +0 -402
  975. package/dist/index-vt4yxkmf.js +0 -470
  976. package/dist/index-wyq6c6yj.js +0 -402
  977. package/dist/index-zyt5byt6.js +0 -2649
  978. package/dist/login-x8tgckqm.js +0 -77
  979. package/dist/previews-q031mx34.js +0 -1168
  980. package/dist/src/cli/index.js +0 -12
  981. package/dist/src/index.js +0 -144
  982. package/dist/src/test/index.js +0 -77
@@ -1,12 +1,13 @@
1
1
  import {
2
2
  bundleWorkerEntry,
3
3
  createDOBundler
4
- } from "./index-9fbtk7gv.js";
4
+ } from "./index-5gmf048z.js";
5
5
  import {
6
6
  detectViteProject,
7
+ resolveViteMode,
7
8
  stopSpawnedProcessTree,
8
9
  waitForViteReady
9
- } from "./index-y1d8za14.js";
10
+ } from "./index-gn5wy09x.js";
10
11
  import {
11
12
  createCliTheme,
12
13
  cyanBold,
@@ -25,29 +26,32 @@ import {
25
26
  resolveEffectiveViteProject,
26
27
  resolveWorkerSurfacePaths,
27
28
  writeGeneratedViteConfig
28
- } from "./index-jwd8pcb2.js";
29
+ } from "./index-v3znz08m.js";
29
30
  import {
30
31
  discoverRoutes,
31
32
  getRouteDirectoryCandidate
32
33
  } from "./index-1p814k7s.js";
33
34
  import"./index-rbht7m9r.js";
34
- import"./index-9wt9x09k.js";
35
+ import"./index-vhqww6tt.js";
36
+ import {
37
+ GATEWAY_RUNTIME_JS
38
+ } from "./index-3xfe2dst.js";
35
39
  import {
36
40
  clearLocalSendEmailBindings,
37
41
  setLocalSendEmailBindings
38
- } from "./index-h18pxvzs.js";
39
- import"./index-61jsjnsv.js";
42
+ } from "./index-124e9t4t.js";
43
+ import"./index-j47hhb3r.js";
40
44
  import {
41
45
  getLocalD1DatabaseIdentifier,
42
46
  getLocalKVNamespaceIdentifier,
43
47
  getSingleBrowserBindingName,
44
48
  loadConfig,
45
49
  resolveConfigPath
46
- } from "./index-43dq8yx8.js";
47
- import"./index-xk9djfjp.js";
48
- import"./index-0w826dsr.js";
49
- import"./index-6jef5emv.js";
50
- import"./index-t08te69w.js";
50
+ } from "./index-ngbzr9gz.js";
51
+ import"./index-3egad6wm.js";
52
+ import"./index-hjz2x9nq.js";
53
+ import"./index-p296ban8.js";
54
+ import"./index-tte89s31.js";
51
55
  import {
52
56
  __require
53
57
  } from "./index-37x76zdn.js";
@@ -71,8 +75,6 @@ import {
71
75
  detectBrowserPlatform,
72
76
  Browser as BrowserType
73
77
  } from "@puppeteer/browsers";
74
- var sessions = new Map;
75
- var history = [];
76
78
  var cachedExecutablePath = null;
77
79
  async function ensureChrome(cacheDir, logger) {
78
80
  if (cachedExecutablePath && existsSync(cachedExecutablePath)) {
@@ -112,8 +114,45 @@ function createBrowserShim(options = {}) {
112
114
  } = options;
113
115
  let server = null;
114
116
  let executablePath = null;
117
+ const sessions = new Map;
118
+ const history = [];
115
119
  let WebSocketServerClass = null;
116
120
  let WebSocketClass = null;
121
+ const maxRequestBodyBytes = 1024 * 1024;
122
+ function getRequestOrigin(req) {
123
+ const origin = req.headers.origin;
124
+ if (typeof origin === "string") {
125
+ return origin;
126
+ }
127
+ if (Array.isArray(origin) && origin[0]) {
128
+ return origin[0];
129
+ }
130
+ return null;
131
+ }
132
+ function isLoopbackOrigin(origin) {
133
+ try {
134
+ const url = new URL(origin);
135
+ return url.hostname === "127.0.0.1" || url.hostname === "localhost" || url.hostname === "::1" || url.hostname === "[::1]";
136
+ } catch {
137
+ return false;
138
+ }
139
+ }
140
+ function applyCorsHeaders(req, res) {
141
+ const origin = getRequestOrigin(req);
142
+ if (!origin) {
143
+ return true;
144
+ }
145
+ if (!isLoopbackOrigin(origin)) {
146
+ res.writeHead(403, { "Content-Type": "application/json" });
147
+ res.end(JSON.stringify({ error: "Forbidden origin" }));
148
+ return false;
149
+ }
150
+ res.setHeader("Access-Control-Allow-Origin", origin);
151
+ res.setHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
152
+ res.setHeader("Access-Control-Allow-Headers", "Content-Type");
153
+ res.setHeader("Vary", "Origin");
154
+ return true;
155
+ }
117
156
  async function acquireSession(acquireOptions) {
118
157
  if (!executablePath) {
119
158
  throw new Error("Chrome not initialized");
@@ -192,9 +231,9 @@ function createBrowserShim(options = {}) {
192
231
  const url = new URL(req.url || "/", `http://${host}:${port}`);
193
232
  const method = req.method || "GET";
194
233
  logger?.debug(`[BrowserShim] ${method} ${url.pathname}${url.search ? url.search : ""}`);
195
- res.setHeader("Access-Control-Allow-Origin", "*");
196
- res.setHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
197
- res.setHeader("Access-Control-Allow-Headers", "Content-Type");
234
+ if (!applyCorsHeaders(req, res)) {
235
+ return;
236
+ }
198
237
  if (method === "OPTIONS") {
199
238
  res.writeHead(204);
200
239
  res.end();
@@ -282,7 +321,16 @@ function createBrowserShim(options = {}) {
282
321
  function readBody(req) {
283
322
  return new Promise((resolve, reject) => {
284
323
  const chunks = [];
285
- req.on("data", (chunk) => chunks.push(chunk));
324
+ let totalBytes = 0;
325
+ req.on("data", (chunk) => {
326
+ totalBytes += chunk.length;
327
+ if (totalBytes > maxRequestBodyBytes) {
328
+ req.destroy();
329
+ reject(new Error(`Request body exceeds ${maxRequestBodyBytes} bytes`));
330
+ return;
331
+ }
332
+ chunks.push(chunk);
333
+ });
286
334
  req.on("end", () => resolve(Buffer.concat(chunks).toString()));
287
335
  req.on("error", reject);
288
336
  });
@@ -316,6 +364,14 @@ function createBrowserShim(options = {}) {
316
364
  if (WebSocketServerClass) {
317
365
  const wss = new WebSocketServerClass({ noServer: true });
318
366
  server.on("upgrade", (request, socket, head) => {
367
+ const origin = getRequestOrigin(request);
368
+ if (origin && !isLoopbackOrigin(origin)) {
369
+ socket.write(`HTTP/1.1 403 Forbidden\r
370
+ \r
371
+ `);
372
+ socket.destroy();
373
+ return;
374
+ }
319
375
  const url = new URL(request.url || "/", `http://${host}:${port}`);
320
376
  if (url.pathname !== "/v1/connectDevtools") {
321
377
  socket.destroy();
@@ -433,7 +489,7 @@ function createBrowserShim(options = {}) {
433
489
  logger?.success(`Browser shim server ready on http://${host}:${port}`);
434
490
  }
435
491
  async function stop() {
436
- for (const sessionId of sessions.keys()) {
492
+ for (const sessionId of Array.from(sessions.keys())) {
437
493
  await closeSession(sessionId, 3, "ServerShutdown");
438
494
  }
439
495
  if (server) {
@@ -879,33 +935,59 @@ async function runD1Migrations(options) {
879
935
  if (!config?.bindings?.d1) {
880
936
  return;
881
937
  }
882
- const { existsSync: existsSync2, readdirSync, readFileSync } = await import("node:fs");
938
+ const { existsSync: existsSync2, readdirSync, readFileSync, statSync } = await import("node:fs");
883
939
  const migrationsDir = resolve(cwd, "migrations");
884
940
  if (!existsSync2(migrationsDir)) {
885
941
  logger?.debug("No migrations/ directory found, skipping D1 migrations");
886
942
  return;
887
943
  }
888
- const files = readdirSync(migrationsDir).filter((file) => file.endsWith(".sql")).sort();
889
- if (files.length === 0) {
890
- logger?.debug("No SQL migration files found");
891
- return;
892
- }
893
- logger?.info(`Running ${files.length} D1 migration(s)...`);
894
- const allStatements = [];
895
- for (const file of files) {
896
- const sql = readFileSync(resolve(migrationsDir, file), "utf-8");
897
- const statements = collectMigrationStatements(sql);
898
- allStatements.push(...statements);
899
- logger?.debug(`File ${file}: ${statements.length} statement(s)`);
900
- }
901
- if (allStatements.length === 0) {
902
- logger?.debug("No executable D1 migration statements found");
903
- return;
944
+ const sharedFiles = readdirSync(migrationsDir).filter((file) => file.endsWith(".sql")).sort();
945
+ let sharedStatements = null;
946
+ if (sharedFiles.length > 0) {
947
+ sharedStatements = [];
948
+ for (const file of sharedFiles) {
949
+ const sql = readFileSync(resolve(migrationsDir, file), "utf-8");
950
+ const fileStatements = collectMigrationStatements(sql);
951
+ sharedStatements.push(...fileStatements);
952
+ logger?.debug(`Shared file ${file}: ${fileStatements.length} statement(s)`);
953
+ }
904
954
  }
905
955
  for (const [bindingName] of Object.entries(config.bindings.d1)) {
956
+ const perBindingDir = resolve(migrationsDir, bindingName);
957
+ const hasPerBindingDir = existsSync2(perBindingDir) && statSync(perBindingDir).isDirectory();
958
+ let statements = [];
959
+ let fileCount = 0;
960
+ let sourceLabel = "";
961
+ if (hasPerBindingDir) {
962
+ const perBindingFiles = readdirSync(perBindingDir).filter((file) => file.endsWith(".sql")).sort();
963
+ if (perBindingFiles.length === 0) {
964
+ logger?.debug(`No SQL migration files in migrations/${bindingName}/, skipping ${bindingName}`);
965
+ continue;
966
+ }
967
+ for (const file of perBindingFiles) {
968
+ const sql = readFileSync(resolve(perBindingDir, file), "utf-8");
969
+ const fileStatements = collectMigrationStatements(sql);
970
+ statements.push(...fileStatements);
971
+ logger?.debug(`File ${bindingName}/${file}: ${fileStatements.length} statement(s)`);
972
+ }
973
+ fileCount = perBindingFiles.length;
974
+ sourceLabel = `migrations/${bindingName}/`;
975
+ } else if (sharedStatements !== null) {
976
+ statements = sharedStatements;
977
+ fileCount = sharedFiles.length;
978
+ sourceLabel = "migrations/ [shared fallback]";
979
+ } else {
980
+ logger?.debug(`No migrations found for ${bindingName}, skipping`);
981
+ continue;
982
+ }
983
+ logger?.info(`Running ${fileCount} D1 migration(s) for ${bindingName} (from ${sourceLabel})`);
984
+ if (statements.length === 0) {
985
+ logger?.debug(`No executable D1 migration statements for ${bindingName}`);
986
+ continue;
987
+ }
906
988
  await applyMigrationsToBinding({
907
989
  bindingName,
908
- statements: allStatements,
990
+ statements,
909
991
  miniflarePort,
910
992
  logger
911
993
  });
@@ -917,18 +999,15 @@ function getGatewayScript(wsRoutes = [], debug = false, appServiceBindingName =
917
999
  const wsRoutesJson = JSON.stringify(wsRoutes);
918
1000
  const appServiceBindingJson = JSON.stringify(appServiceBindingName);
919
1001
  return `
920
- // Bridge Gateway Worker — RPC Handler
921
- // Handles all binding operations via WebSocket RPC
922
- // Also handles WebSocket proxying to Durable Objects
1002
+ ${GATEWAY_RUNTIME_JS}
1003
+
1004
+ // Bridge Gateway Worker Dev Server
1005
+ // Dev-server-specific overlay on top of the shared GATEWAY_RUNTIME_JS:
1006
+ // WS route DO forwarding, D1 migration, email ingest, app-worker fallthrough.
923
1007
 
924
1008
  const DEBUG = ${debug}
925
1009
  const log = (...args) => DEBUG && console.log('[Gateway]', ...args)
926
1010
 
927
- const activeStreams = new Map()
928
- const wsProxies = new Map()
929
- const incomingStreams = new Map()
930
-
931
- // WebSocket routes configuration (injected at build time)
932
1011
  const WS_ROUTES = ${wsRoutesJson}
933
1012
  const APP_SERVICE_BINDING = ${appServiceBindingJson}
934
1013
 
@@ -937,32 +1016,26 @@ export default {
937
1016
  const url = new URL(request.url)
938
1017
  const isWebSocket = request.headers.get('Upgrade') === 'websocket'
939
1018
 
940
- // Check if this is a WebSocket request matching a DO route
941
1019
  if (isWebSocket) {
942
1020
  const matchedRoute = matchWsRoute(url.pathname)
943
1021
  if (matchedRoute) {
944
1022
  return handleDoWebSocket(request, env, url, matchedRoute)
945
1023
  }
946
- // Otherwise handle as bridge RPC WebSocket
947
1024
  return handleBridgeWebSocket(request, env, ctx)
948
1025
  }
949
1026
 
950
- // HTTP endpoint for large file transfers
951
1027
  if (url.pathname.startsWith('/_devflare/transfer/')) {
952
1028
  return handleHttpTransfer(request, env, url)
953
1029
  }
954
1030
 
955
- // D1 migration endpoint
956
1031
  if (url.pathname === '/_devflare/migrate' && request.method === 'POST') {
957
1032
  return handleMigration(request, env)
958
1033
  }
959
1034
 
960
- // Email handler endpoint (simulates incoming email)
961
1035
  if (url.pathname === '/cdn-cgi/handler/email' && request.method === 'POST') {
962
1036
  return handleEmailIncoming(request, env, ctx, url)
963
1037
  }
964
1038
 
965
- // Health check
966
1039
  if (url.pathname === '/_devflare/health') {
967
1040
  return new Response(JSON.stringify({
968
1041
  ok: true,
@@ -982,7 +1055,6 @@ export default {
982
1055
  }
983
1056
  }
984
1057
 
985
- // Handle D1 migrations
986
1058
  async function handleMigration(request, env) {
987
1059
  try {
988
1060
  const { bindingName, statements } = await request.json()
@@ -1009,28 +1081,26 @@ async function handleMigration(request, env) {
1009
1081
  }
1010
1082
  }
1011
1083
  }
1012
-
1013
- // Verify table exists after migration
1084
+
1014
1085
  try {
1015
1086
  const tables = await db.prepare("SELECT name FROM sqlite_master WHERE type='table'").all()
1016
1087
  log('Tables after migration:', JSON.stringify(tables))
1017
1088
  } catch (e) {
1018
1089
  log('Error listing tables:', e.message)
1019
1090
  }
1020
-
1091
+
1021
1092
  return Response.json({ success: true, results })
1022
1093
  } catch (error) {
1023
1094
  return Response.json({ error: error?.message || String(error) }, { status: 500 })
1024
1095
  }
1025
1096
  }
1026
1097
 
1027
- // Handle incoming email (simulates email() handler)
1028
1098
  async function handleEmailIncoming(request, env, ctx, url) {
1029
1099
  try {
1030
1100
  const from = url.searchParams.get('from') || 'unknown@example.com'
1031
1101
  const to = url.searchParams.get('to') || 'worker@example.com'
1032
1102
  const rawBody = await request.text()
1033
-
1103
+
1034
1104
  log('Email incoming:', { from, to, bodyLength: rawBody.length })
1035
1105
 
1036
1106
  if (APP_SERVICE_BINDING) {
@@ -1052,7 +1122,7 @@ async function handleEmailIncoming(request, env, ctx, url) {
1052
1122
  }
1053
1123
  }
1054
1124
  }
1055
-
1125
+
1056
1126
  return new Response(JSON.stringify({ ok: true, from, to }), {
1057
1127
  headers: { 'Content-Type': 'application/json' }
1058
1128
  })
@@ -1062,10 +1132,8 @@ async function handleEmailIncoming(request, env, ctx, url) {
1062
1132
  }
1063
1133
  }
1064
1134
 
1065
- // Match URL path against configured WS routes
1066
1135
  function matchWsRoute(pathname) {
1067
1136
  for (const route of WS_ROUTES) {
1068
- // Simple exact match for now (could add glob/regex later)
1069
1137
  if (pathname === route.pattern || pathname.startsWith(route.pattern + '?')) {
1070
1138
  return route
1071
1139
  }
@@ -1073,31 +1141,23 @@ function matchWsRoute(pathname) {
1073
1141
  return null
1074
1142
  }
1075
1143
 
1076
- // Handle WebSocket upgrade that should go to a Durable Object
1077
1144
  async function handleDoWebSocket(request, env, url, route) {
1078
1145
  try {
1079
- // Get the DO namespace
1080
1146
  const namespace = env[route.doNamespace]
1081
1147
  if (!namespace) {
1082
1148
  console.error('[Gateway] DO namespace not found:', route.doNamespace)
1083
1149
  return new Response('DO namespace not found: ' + route.doNamespace, { status: 500 })
1084
1150
  }
1085
1151
 
1086
- // Get the instance ID from query params
1087
1152
  const idValue = url.searchParams.get(route.idParam) || 'default'
1088
-
1089
- // Get or create DO instance
1090
1153
  const doId = namespace.idFromName(idValue)
1091
1154
  const stub = namespace.get(doId)
1092
1155
 
1093
- // Construct the forward URL for the DO
1094
1156
  const forwardUrl = new URL(route.forwardPath, url.origin)
1095
- // Forward all query params
1096
1157
  url.searchParams.forEach((v, k) => forwardUrl.searchParams.set(k, v))
1097
1158
 
1098
1159
  log('Forwarding WebSocket to DO:', route.doNamespace, 'id:', idValue, 'path:', forwardUrl.pathname)
1099
1160
 
1100
- // Forward the request to the DO
1101
1161
  return stub.fetch(forwardUrl.toString(), {
1102
1162
  method: request.method,
1103
1163
  headers: request.headers
@@ -1107,364 +1167,6 @@ async function handleDoWebSocket(request, env, url, route) {
1107
1167
  return new Response('Error forwarding to DO: ' + error.message, { status: 500 })
1108
1168
  }
1109
1169
  }
1110
-
1111
- // Handle bridge RPC WebSocket (for Node.js Vite server communication)
1112
- function handleBridgeWebSocket(request, env, ctx) {
1113
- const { 0: client, 1: server } = new WebSocketPair()
1114
- server.accept()
1115
-
1116
- server.addEventListener('message', async (event) => {
1117
- try {
1118
- if (typeof event.data === 'string') {
1119
- await handleJsonMessage(event.data, server, env, ctx)
1120
- }
1121
- } catch (error) {
1122
- console.error('[Gateway] Error:', error)
1123
- }
1124
- })
1125
-
1126
- server.addEventListener('close', () => {
1127
- activeStreams.clear()
1128
- wsProxies.clear()
1129
- })
1130
-
1131
- return new Response(null, { status: 101, webSocket: client })
1132
- }
1133
-
1134
- async function handleJsonMessage(data, ws, env, ctx) {
1135
- const msg = JSON.parse(data)
1136
-
1137
- switch (msg.t) {
1138
- case 'rpc.call':
1139
- await handleRpcCall(msg, ws, env, ctx)
1140
- break
1141
- case 'ws.open':
1142
- await handleWsOpen(msg, ws, env)
1143
- break
1144
- case 'ws.close':
1145
- handleWsClose(msg)
1146
- break
1147
- }
1148
- }
1149
-
1150
- async function handleRpcCall(msg, ws, env, ctx) {
1151
- try {
1152
- const result = await executeRpcMethod(msg.method, msg.params, env, ctx)
1153
- ws.send(JSON.stringify({ t: 'rpc.ok', id: msg.id, result }))
1154
- } catch (error) {
1155
- ws.send(JSON.stringify({
1156
- t: 'rpc.err',
1157
- id: msg.id,
1158
- error: { code: error.code || 'INTERNAL_ERROR', message: error.message }
1159
- }))
1160
- }
1161
- }
1162
-
1163
- async function executeRpcMethod(method, params, env, ctx) {
1164
- const parts = method.split('.')
1165
- const bindingName = parts[0]
1166
- const operation = parts.slice(1).join('.')
1167
- const binding = env[bindingName]
1168
- const RAW_EMAIL = 'EmailMessage::raw'
1169
-
1170
- if (!binding) throw new Error('Binding not found: ' + bindingName)
1171
-
1172
- // KV operations
1173
- if (operation === 'get') return binding.get(params[0], params[1])
1174
- if (operation === 'put') return binding.put(params[0], params[1], params[2])
1175
- if (operation === 'delete') return binding.delete(params[0])
1176
- if (operation === 'list') return binding.list(params[0])
1177
- if (operation === 'getWithMetadata') return binding.getWithMetadata(params[0], params[1])
1178
-
1179
- // R2 operations
1180
- if (operation === 'head') return serializeR2Object(await binding.head(params[0]))
1181
- if (operation === 'r2.get') {
1182
- const obj = await binding.get(params[0], params[1])
1183
- if (!obj) return null
1184
- const body = await obj.arrayBuffer()
1185
- return serializeR2ObjectBody(obj, arrayBufferToBase64(body))
1186
- }
1187
- if (operation === 'r2.put') {
1188
- // Deserialize the value if it's a serialized ArrayBuffer/Uint8Array
1189
- let value = params[1]
1190
- if (value && typeof value === 'object') {
1191
- if (value.__type === 'ArrayBuffer') {
1192
- value = base64ToArrayBuffer(value.data)
1193
- } else if (value.__type === 'Uint8Array') {
1194
- value = base64ToArrayBuffer(value.data)
1195
- }
1196
- }
1197
- return serializeR2Object(await binding.put(params[0], value, params[2]))
1198
- }
1199
- if (operation === 'r2.delete') return binding.delete(params[0])
1200
- if (operation === 'r2.list') return serializeR2Objects(await binding.list(params[0]))
1201
-
1202
- // D1 operations
1203
- if (operation === 'exec') return binding.exec(params[0])
1204
- if (operation.startsWith('stmt.')) {
1205
- log('D1 RPC:', bindingName, operation, 'sql:', String(params[0]).slice(0, 60))
1206
- const mode = operation.split('.')[1]
1207
- const [sql, ...rest] = params
1208
-
1209
- // For first/raw, the last element is the column/options parameter (may be undefined)
1210
- // For all/run, rest contains only bindings
1211
- let bindings = rest
1212
- let extraParam = undefined
1213
-
1214
- if (mode === 'first' || mode === 'raw') {
1215
- // Last element is the column/options (may be undefined)
1216
- extraParam = rest[rest.length - 1]
1217
- bindings = rest.slice(0, -1)
1218
- }
1219
-
1220
- let stmt = binding.prepare(sql)
1221
- if (bindings.length > 0) stmt = stmt.bind(...bindings)
1222
-
1223
- if (mode === 'first') {
1224
- // Only pass column if it's a non-empty string
1225
- if (typeof extraParam === 'string' && extraParam.length > 0) {
1226
- return stmt.first(extraParam)
1227
- }
1228
- return stmt.first()
1229
- }
1230
- if (mode === 'all') return stmt.all()
1231
- if (mode === 'run') return stmt.run()
1232
- if (mode === 'raw') return stmt.raw(extraParam)
1233
- }
1234
-
1235
- // DO operations
1236
- if (operation === 'idFromName') {
1237
- const id = binding.idFromName(params[0])
1238
- return { __type: 'DOId', hex: id.toString() }
1239
- }
1240
- if (operation === 'idFromString') {
1241
- const id = binding.idFromString(params[0])
1242
- return { __type: 'DOId', hex: id.toString() }
1243
- }
1244
- if (operation === 'newUniqueId') {
1245
- const id = binding.newUniqueId(params[0])
1246
- return { __type: 'DOId', hex: id.toString() }
1247
- }
1248
- if (operation === 'stub.fetch') {
1249
- const [, serializedId, serializedReq] = params
1250
- log('stub.fetch request:', {
1251
- url: serializedReq.url,
1252
- method: serializedReq.method,
1253
- headers: serializedReq.headers,
1254
- hasBody: !!serializedReq.body
1255
- })
1256
- const id = binding.idFromString(serializedId.hex)
1257
- const stub = binding.get(id)
1258
- try {
1259
- const response = await stub.fetch(new Request(serializedReq.url, {
1260
- method: serializedReq.method,
1261
- headers: serializedReq.headers,
1262
- body: serializedReq.body?.type === 'bytes' ? base64ToArrayBuffer(serializedReq.body.data) : undefined
1263
- }))
1264
- // Clone to read body for logging if there's an error
1265
- const cloned = response.clone()
1266
- const serialized = await serializeResponse(response)
1267
- log('stub.fetch response:', {
1268
- status: serialized.status,
1269
- headers: serialized.headers,
1270
- bodyLength: serialized.body?.data?.length || 0
1271
- })
1272
- // If 500, log the body content
1273
- if (response.status >= 400) {
1274
- const errBody = await cloned.text()
1275
- log('Error response body:', errBody)
1276
- }
1277
- return serialized
1278
- } catch (err) {
1279
- console.error('[Gateway] stub.fetch error:', err)
1280
- throw err
1281
- }
1282
- }
1283
- if (operation === 'stub.rpc') {
1284
- const [, serializedId, methodName, args] = params
1285
- const id = binding.idFromString(serializedId.hex)
1286
- const stub = binding.get(id)
1287
- const response = await stub.fetch(new Request('http://do/_rpc', {
1288
- method: 'POST',
1289
- headers: { 'Content-Type': 'application/json' },
1290
- body: JSON.stringify({ method: methodName, params: args })
1291
- }))
1292
- const result = await response.json()
1293
- if (!result.ok) throw new Error(result.error?.message || 'RPC failed')
1294
- return result.result
1295
- }
1296
-
1297
- // Queue operations
1298
- if (operation === 'send') return binding.send(params[0], params[1])
1299
- if (operation === 'sendBatch') return binding.sendBatch(params[0], params[1])
1300
-
1301
- // Email send operations (send_email binding)
1302
- if (operation === 'email.send') {
1303
- const message = params[0]
1304
- log('Email send:', { from: message?.from, to: message?.to })
1305
- if (binding && typeof binding.send === 'function') {
1306
- if (message && typeof message === 'object' && 'from' in message && 'to' in message && 'raw' in message) {
1307
- return binding.send({
1308
- from: message.from,
1309
- to: message.to,
1310
- [RAW_EMAIL]: createEmailMessageRaw(message.raw)
1311
- })
1312
- }
1313
- return binding.send(message)
1314
- }
1315
- // Return success even if no real binding (simulated)
1316
- return { ok: true, simulated: true }
1317
- }
1318
-
1319
- throw new Error('Unknown operation: ' + method)
1320
- }
1321
-
1322
- function createEmailMessageRaw(raw) {
1323
- if (typeof raw === 'string' || raw instanceof ReadableStream) {
1324
- return raw
1325
- }
1326
- if (raw instanceof ArrayBuffer || raw instanceof Uint8Array) {
1327
- return new Response(raw).body
1328
- }
1329
- throw new Error('Unsupported EmailMessage raw payload')
1330
- }
1331
-
1332
- async function handleWsOpen(msg, ws, env) {
1333
- try {
1334
- const binding = env[msg.target.binding]
1335
- const id = binding.idFromString(msg.target.id)
1336
- const stub = binding.get(id)
1337
-
1338
- const headers = new Headers(msg.target.headers || [])
1339
- headers.set('Upgrade', 'websocket')
1340
-
1341
- const response = await stub.fetch(new Request(msg.target.url, { method: 'GET', headers }))
1342
- const doWs = response.webSocket
1343
-
1344
- if (!doWs) {
1345
- ws.send(JSON.stringify({ t: 'rpc.err', id: 'ws_' + msg.wid, error: { code: 'WS_FAILED', message: 'No WebSocket returned' } }))
1346
- return
1347
- }
1348
-
1349
- doWs.accept()
1350
- wsProxies.set(msg.wid, { doWs })
1351
-
1352
- doWs.addEventListener('message', (event) => {
1353
- const isText = typeof event.data === 'string'
1354
- const data = isText ? event.data : arrayBufferToBase64(event.data)
1355
- ws.send(JSON.stringify({ t: 'ws.data', wid: msg.wid, data, isText }))
1356
- })
1357
-
1358
- doWs.addEventListener('close', (event) => {
1359
- ws.send(JSON.stringify({ t: 'ws.close', wid: msg.wid, code: event.code, reason: event.reason }))
1360
- wsProxies.delete(msg.wid)
1361
- })
1362
-
1363
- ws.send(JSON.stringify({ t: 'ws.opened', wid: msg.wid }))
1364
- } catch (error) {
1365
- ws.send(JSON.stringify({ t: 'rpc.err', id: 'ws_' + msg.wid, error: { code: 'WS_FAILED', message: error.message } }))
1366
- }
1367
- }
1368
-
1369
- function handleWsClose(msg) {
1370
- const proxy = wsProxies.get(msg.wid)
1371
- if (proxy) {
1372
- proxy.doWs.close(msg.code, msg.reason)
1373
- wsProxies.delete(msg.wid)
1374
- }
1375
- }
1376
-
1377
- async function handleHttpTransfer(request, env, url) {
1378
- const transferIdEncoded = url.pathname.split('/').pop()
1379
- const transferId = decodeURIComponent(transferIdEncoded || '')
1380
- const [binding, ...keyParts] = transferId.split(':')
1381
- const key = keyParts.join(':')
1382
- const bucket = env[binding]
1383
-
1384
- if (!bucket) return new Response('Bucket not found: ' + binding, { status: 404 })
1385
-
1386
- if (request.method === 'PUT' || request.method === 'POST') {
1387
- const result = await bucket.put(key, request.body)
1388
- return new Response(JSON.stringify(result), { headers: { 'Content-Type': 'application/json' } })
1389
- }
1390
-
1391
- if (request.method === 'GET') {
1392
- const object = await bucket.get(key)
1393
- if (!object) return new Response('Not found', { status: 404 })
1394
- return new Response(object.body, {
1395
- headers: {
1396
- 'Content-Type': object.httpMetadata?.contentType || 'application/octet-stream',
1397
- 'Content-Length': String(object.size)
1398
- }
1399
- })
1400
- }
1401
-
1402
- return new Response('Method not allowed', { status: 405 })
1403
- }
1404
-
1405
- // Helpers
1406
- function serializeR2Object(obj) {
1407
- if (!obj) return null
1408
- return {
1409
- __type: 'R2Object',
1410
- key: obj.key,
1411
- version: obj.version,
1412
- size: obj.size,
1413
- etag: obj.etag,
1414
- httpEtag: obj.httpEtag,
1415
- checksums: obj.checksums,
1416
- uploaded: obj.uploaded?.toISOString(),
1417
- httpMetadata: obj.httpMetadata,
1418
- customMetadata: obj.customMetadata,
1419
- range: obj.range,
1420
- storageClass: obj.storageClass
1421
- }
1422
- }
1423
- function serializeR2ObjectBody(obj, bodyData) {
1424
- if (!obj) return null
1425
- return {
1426
- __type: 'R2ObjectBody',
1427
- key: obj.key,
1428
- version: obj.version,
1429
- size: obj.size,
1430
- etag: obj.etag,
1431
- httpEtag: obj.httpEtag,
1432
- checksums: obj.checksums,
1433
- uploaded: obj.uploaded?.toISOString(),
1434
- httpMetadata: obj.httpMetadata,
1435
- customMetadata: obj.customMetadata,
1436
- range: obj.range,
1437
- storageClass: obj.storageClass,
1438
- bodyData
1439
- }
1440
- }
1441
- function serializeR2Objects(result) {
1442
- if (!result) return null
1443
- return { objects: result.objects.map(serializeR2Object), truncated: result.truncated, cursor: result.cursor }
1444
- }
1445
- async function serializeResponse(response) {
1446
- // Read body as bytes and encode as base64
1447
- let body = null
1448
- if (response.body) {
1449
- const bytes = await response.arrayBuffer()
1450
- if (bytes.byteLength > 0) {
1451
- body = { type: 'bytes', data: arrayBufferToBase64(bytes) }
1452
- }
1453
- }
1454
- return { status: response.status, statusText: response.statusText, headers: [...response.headers.entries()], body }
1455
- }
1456
- function arrayBufferToBase64(buffer) {
1457
- const bytes = new Uint8Array(buffer)
1458
- let binary = ''
1459
- for (let i = 0; i < bytes.byteLength; i++) binary += String.fromCharCode(bytes[i])
1460
- return btoa(binary)
1461
- }
1462
- function base64ToArrayBuffer(base64) {
1463
- const binary = atob(base64)
1464
- const bytes = new Uint8Array(binary.length)
1465
- for (let i = 0; i < binary.length; i++) bytes[i] = binary.charCodeAt(i)
1466
- return bytes.buffer
1467
- }
1468
1170
  `;
1469
1171
  }
1470
1172
 
@@ -1574,6 +1276,48 @@ async function startViteProcess(options) {
1574
1276
  return viteProcess;
1575
1277
  }
1576
1278
 
1279
+ // src/dev-server/reload-queue.ts
1280
+ function createReloadQueue({ reload, logger }) {
1281
+ let running = null;
1282
+ let pending = null;
1283
+ async function runOnce() {
1284
+ try {
1285
+ await reload();
1286
+ } catch (error) {
1287
+ logger?.error("[devflare dev] reload failed:", error);
1288
+ }
1289
+ }
1290
+ function schedule() {
1291
+ if (!running) {
1292
+ running = runOnce().finally(() => {
1293
+ running = null;
1294
+ });
1295
+ return running;
1296
+ }
1297
+ if (!pending) {
1298
+ const runningSnapshot = running;
1299
+ pending = runningSnapshot.then(() => {
1300
+ pending = null;
1301
+ running = runOnce().finally(() => {
1302
+ running = null;
1303
+ });
1304
+ return running;
1305
+ });
1306
+ }
1307
+ return pending;
1308
+ }
1309
+ async function drain() {
1310
+ while (running || pending) {
1311
+ if (pending) {
1312
+ await pending;
1313
+ } else if (running) {
1314
+ await running;
1315
+ }
1316
+ }
1317
+ }
1318
+ return { schedule, drain };
1319
+ }
1320
+
1577
1321
  // src/dev-server/worker-surface-paths.ts
1578
1322
  import { dirname, resolve as resolve2 } from "pathe";
1579
1323
  var DEFAULT_TRANSPORT_ENTRY_FILES = [
@@ -1719,12 +1463,13 @@ function createDevServer(options) {
1719
1463
  configPath,
1720
1464
  vitePort = 5173,
1721
1465
  miniflarePort = 8787,
1722
- enableVite = true,
1466
+ enableVite: enableViteRequested = true,
1723
1467
  persist = true,
1724
1468
  logger,
1725
1469
  verbose = false,
1726
1470
  debug = process.env.DEVFLARE_DEBUG === "true"
1727
1471
  } = options;
1472
+ let enableVite = enableViteRequested;
1728
1473
  let miniflare = null;
1729
1474
  let doBundler = null;
1730
1475
  let workerSourceWatcher = null;
@@ -1745,7 +1490,20 @@ function createDevServer(options) {
1745
1490
  let currentDoResult = null;
1746
1491
  let mainWorkerRoutes = null;
1747
1492
  let generatedViteConfigPath = null;
1748
- let reloadChain = Promise.resolve();
1493
+ const reloadQueue = createReloadQueue({
1494
+ reload: async () => {
1495
+ if (!miniflare)
1496
+ return;
1497
+ const { Log, LogLevel } = await import("miniflare");
1498
+ const mfConfig = buildMiniflareConfig(currentDoResult);
1499
+ mfConfig.log = createCompatibilityAwareMiniflareLog(Log, LogLevel.DEBUG, logger);
1500
+ mfConfig.handleRuntimeStdio = createRuntimeStdioForwarder(logger);
1501
+ logger?.info("Reloading Miniflare...");
1502
+ await miniflare.setOptions(mfConfig);
1503
+ logger?.success("Miniflare reloaded");
1504
+ },
1505
+ logger
1506
+ });
1749
1507
  async function bundleMainWorker() {
1750
1508
  if (!mainWorkerScriptPath || !config) {
1751
1509
  bundledMainWorkerScriptPath = null;
@@ -2018,19 +1776,7 @@ function createDevServer(options) {
2018
1776
  }
2019
1777
  async function reloadMiniflare(doResult) {
2020
1778
  currentDoResult = doResult;
2021
- const queuedReload = reloadChain.then(async () => {
2022
- if (!miniflare)
2023
- return;
2024
- const { Log, LogLevel } = await import("miniflare");
2025
- const mfConfig = buildMiniflareConfig(currentDoResult);
2026
- mfConfig.log = createCompatibilityAwareMiniflareLog(Log, LogLevel.DEBUG, logger);
2027
- mfConfig.handleRuntimeStdio = createRuntimeStdioForwarder(logger);
2028
- logger?.info("Reloading Miniflare...");
2029
- await miniflare.setOptions(mfConfig);
2030
- logger?.success("Miniflare reloaded");
2031
- });
2032
- reloadChain = queuedReload.catch(() => {});
2033
- await queuedReload;
1779
+ await reloadQueue.schedule();
2034
1780
  }
2035
1781
  async function resolveWorkerConfigWatchPath() {
2036
1782
  if (configPath) {
@@ -2120,14 +1866,19 @@ function createDevServer(options) {
2120
1866
  resolvedWorkerConfigPath = await resolveWorkerConfigWatchPath();
2121
1867
  logger?.debug("Loaded config:", config.name);
2122
1868
  if (enableVite) {
2123
- const viteProject = await detectViteProject(cwd);
2124
- generatedViteConfigPath = await writeGeneratedViteConfig({
2125
- cwd,
2126
- configPath,
2127
- localConfigPath: viteProject.viteConfigPath,
2128
- bridgePort: miniflarePort
2129
- });
2130
- logger?.debug(`Generated Vite config → ${generatedViteConfigPath}`);
1869
+ const viteMode = await resolveViteMode(cwd, { requested: true });
1870
+ if (!viteMode.enableVite) {
1871
+ logger?.info("Vite disabled: no vite config found for this package");
1872
+ enableVite = false;
1873
+ } else {
1874
+ generatedViteConfigPath = await writeGeneratedViteConfig({
1875
+ cwd,
1876
+ configPath,
1877
+ localConfigPath: viteMode.viteConfigPath,
1878
+ bridgePort: miniflarePort
1879
+ });
1880
+ logger?.debug(`Generated Vite config → ${generatedViteConfigPath}`);
1881
+ }
2131
1882
  }
2132
1883
  await refreshWorkerOnlySurfaceState();
2133
1884
  if (!enableVite && (hasWorkerSurfacePaths(mainWorkerSurfacePaths) || Boolean(mainWorkerRoutes?.routes.length))) {