devflare 1.0.0-next.15 → 1.0.0-next.17

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 (1109) hide show
  1. package/LLM.md +9809 -1819
  2. package/README.md +376 -40
  3. package/bin/devflare.js +17 -7
  4. package/dist/account-0evqkmnc.js +475 -0
  5. package/dist/account-0v11zbzk.js +475 -0
  6. package/dist/account-2w85efas.js +475 -0
  7. package/dist/account-61gw9s7t.js +475 -0
  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-th82mps4.js +27 -0
  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 +3 -3
  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/protocol.d.ts +1 -1
  42. package/dist/bridge/protocol.d.ts.map +1 -1
  43. package/dist/bridge/proxy.d.ts +7 -9
  44. package/dist/bridge/proxy.d.ts.map +1 -1
  45. package/dist/bridge/serialization.d.ts +36 -16
  46. package/dist/bridge/serialization.d.ts.map +1 -1
  47. package/dist/bridge/server.d.ts +2 -1
  48. package/dist/bridge/server.d.ts.map +1 -1
  49. package/dist/bridge/v2/body-streams.d.ts +53 -0
  50. package/dist/bridge/v2/body-streams.d.ts.map +1 -0
  51. package/dist/bridge/v2/codec.d.ts +106 -0
  52. package/dist/bridge/v2/codec.d.ts.map +1 -0
  53. package/dist/bridge/v2/control-messages.d.ts +51 -0
  54. package/dist/bridge/v2/control-messages.d.ts.map +1 -0
  55. package/dist/bridge/v2/frames.d.ts +109 -0
  56. package/dist/bridge/v2/frames.d.ts.map +1 -0
  57. package/dist/bridge/v2/index.d.ts +11 -0
  58. package/dist/bridge/v2/index.d.ts.map +1 -0
  59. package/dist/bridge/v2/legacy-protocol.d.ts +146 -0
  60. package/dist/bridge/v2/legacy-protocol.d.ts.map +1 -0
  61. package/dist/bridge/v2/legacy-serialization.d.ts +103 -0
  62. package/dist/bridge/v2/legacy-serialization.d.ts.map +1 -0
  63. package/dist/bridge/v2/serialization.d.ts +48 -0
  64. package/dist/bridge/v2/serialization.d.ts.map +1 -0
  65. package/dist/bridge/v2/transport.d.ts +31 -0
  66. package/dist/bridge/v2/transport.d.ts.map +1 -0
  67. package/dist/bridge/v2/value-codec.d.ts +61 -0
  68. package/dist/bridge/v2/value-codec.d.ts.map +1 -0
  69. package/dist/bridge/v2/value-serialization.d.ts +103 -0
  70. package/dist/bridge/v2/value-serialization.d.ts.map +1 -0
  71. package/dist/bridge/v2/wire.d.ts +170 -0
  72. package/dist/bridge/v2/wire.d.ts.map +1 -0
  73. package/dist/bridge/v2/ws-relay.d.ts +53 -0
  74. package/dist/bridge/v2/ws-relay.d.ts.map +1 -0
  75. package/dist/browser-shim/handler.d.ts +1 -1
  76. package/dist/browser-shim/handler.d.ts.map +1 -1
  77. package/dist/browser-shim/server.d.ts +63 -0
  78. package/dist/browser-shim/server.d.ts.map +1 -1
  79. package/dist/browser.d.ts +2007 -39
  80. package/dist/browser.d.ts.map +1 -1
  81. package/dist/{src/browser.js → browser.js} +22 -44
  82. package/dist/build-07mjrvsn.js +53 -0
  83. package/dist/build-0rfr8k1s.js +53 -0
  84. package/dist/build-1313sg73.js +52 -0
  85. package/dist/build-1hnntbks.js +53 -0
  86. package/dist/build-1r3myv0k.js +53 -0
  87. package/dist/build-28561w5v.js +54 -0
  88. package/dist/build-50yqpwb3.js +54 -0
  89. package/dist/build-55z8psd6.js +53 -0
  90. package/dist/build-5b9wj2p0.js +53 -0
  91. package/dist/build-5frhzh1m.js +53 -0
  92. package/dist/build-6ye9vnab.js +52 -0
  93. package/dist/build-8gv18jrq.js +52 -0
  94. package/dist/build-9bgqypy6.js +53 -0
  95. package/dist/build-9em4ymqn.js +52 -0
  96. package/dist/build-eh3x12qc.js +52 -0
  97. package/dist/build-emhyycp7.js +53 -0
  98. package/dist/build-f1m9jn7b.js +53 -0
  99. package/dist/build-ffe72jjv.js +54 -0
  100. package/dist/build-fx90y6za.js +53 -0
  101. package/dist/build-h31egsze.js +53 -0
  102. package/dist/build-hpczwagb.js +53 -0
  103. package/dist/build-j2re91xe.js +54 -0
  104. package/dist/build-j78389rg.js +52 -0
  105. package/dist/build-m3kckn5g.js +53 -0
  106. package/dist/build-mf3thcjm.js +53 -0
  107. package/dist/build-n3n5bv37.js +52 -0
  108. package/dist/build-ngfy4v5x.js +53 -0
  109. package/dist/build-pr843h0d.js +52 -0
  110. package/dist/build-qyg2b45p.js +52 -0
  111. package/dist/build-r6884kyt.js +53 -0
  112. package/dist/build-re370wkf.js +53 -0
  113. package/dist/build-vvndgwg0.js +52 -0
  114. package/dist/build-wp559jkf.js +54 -0
  115. package/dist/build-x4r67275.js +52 -0
  116. package/dist/build-xp4pfhvv.js +52 -0
  117. package/dist/build-y489r2h9.js +54 -0
  118. package/dist/build-y6g4bvx5.js +52 -0
  119. package/dist/build-yvn0yhwx.js +52 -0
  120. package/dist/build-z4vmhs5c.js +53 -0
  121. package/dist/bundler/defaults.d.ts +23 -0
  122. package/dist/bundler/defaults.d.ts.map +1 -0
  123. package/dist/bundler/do-bundler.d.ts.map +1 -1
  124. package/dist/bundler/index.d.ts +1 -0
  125. package/dist/bundler/index.d.ts.map +1 -1
  126. package/dist/bundler/rolldown-shared.d.ts +53 -0
  127. package/dist/bundler/rolldown-shared.d.ts.map +1 -0
  128. package/dist/bundler/worker-bundler.d.ts +0 -1
  129. package/dist/bundler/worker-bundler.d.ts.map +1 -1
  130. package/dist/bundler/worker-compat.d.ts.map +1 -1
  131. package/dist/cli/build-manifest.d.ts +54 -0
  132. package/dist/cli/build-manifest.d.ts.map +1 -0
  133. package/dist/cli/command-utils.d.ts +18 -0
  134. package/dist/cli/command-utils.d.ts.map +1 -0
  135. package/dist/cli/commands/account.d.ts +1 -1
  136. package/dist/cli/commands/account.d.ts.map +1 -1
  137. package/dist/cli/commands/build-artifacts.d.ts +27 -0
  138. package/dist/cli/commands/build-artifacts.d.ts.map +1 -0
  139. package/dist/cli/commands/build.d.ts.map +1 -1
  140. package/dist/cli/commands/deploy.d.ts.map +1 -1
  141. package/dist/cli/commands/dev.d.ts.map +1 -1
  142. package/dist/cli/commands/doctor.d.ts.map +1 -1
  143. package/dist/cli/commands/init.d.ts.map +1 -1
  144. package/dist/cli/commands/login.d.ts +4 -0
  145. package/dist/cli/commands/login.d.ts.map +1 -0
  146. package/dist/cli/commands/previews-support/cleanup.d.ts +9 -0
  147. package/dist/cli/commands/previews-support/cleanup.d.ts.map +1 -0
  148. package/dist/cli/commands/previews-support/family.d.ts +10 -0
  149. package/dist/cli/commands/previews-support/family.d.ts.map +1 -0
  150. package/dist/cli/commands/previews-support/render.d.ts +8 -0
  151. package/dist/cli/commands/previews-support/render.d.ts.map +1 -0
  152. package/dist/cli/commands/previews-support/theme.d.ts +10 -0
  153. package/dist/cli/commands/previews-support/theme.d.ts.map +1 -0
  154. package/dist/cli/commands/previews-support/types.d.ts +70 -0
  155. package/dist/cli/commands/previews-support/types.d.ts.map +1 -0
  156. package/dist/cli/commands/previews.d.ts +4 -0
  157. package/dist/cli/commands/previews.d.ts.map +1 -0
  158. package/dist/cli/commands/productions.d.ts +4 -0
  159. package/dist/cli/commands/productions.d.ts.map +1 -0
  160. package/dist/cli/commands/token.d.ts +4 -0
  161. package/dist/cli/commands/token.d.ts.map +1 -0
  162. package/dist/cli/commands/type-generation/discovery.d.ts +7 -0
  163. package/dist/cli/commands/type-generation/discovery.d.ts.map +1 -0
  164. package/dist/cli/commands/type-generation/generator.d.ts +44 -0
  165. package/dist/cli/commands/type-generation/generator.d.ts.map +1 -0
  166. package/dist/cli/commands/type-generation/models.d.ts +27 -0
  167. package/dist/cli/commands/type-generation/models.d.ts.map +1 -0
  168. package/dist/cli/commands/types.d.ts.map +1 -1
  169. package/dist/cli/commands/worker.d.ts +4 -0
  170. package/dist/cli/commands/worker.d.ts.map +1 -0
  171. package/dist/cli/config-path.d.ts +2 -1
  172. package/dist/cli/config-path.d.ts.map +1 -1
  173. package/dist/cli/dependencies.d.ts +1 -0
  174. package/dist/cli/dependencies.d.ts.map +1 -1
  175. package/dist/cli/deploy-strategy.d.ts +17 -0
  176. package/dist/cli/deploy-strategy.d.ts.map +1 -0
  177. package/dist/cli/deploy-target.d.ts +17 -0
  178. package/dist/cli/deploy-target.d.ts.map +1 -0
  179. package/dist/cli/generated-artifacts.d.ts +12 -0
  180. package/dist/cli/generated-artifacts.d.ts.map +1 -0
  181. package/dist/cli/help-pages/pages/account.d.ts +3 -0
  182. package/dist/cli/help-pages/pages/account.d.ts.map +1 -0
  183. package/dist/cli/help-pages/pages/core.d.ts +4 -0
  184. package/dist/cli/help-pages/pages/core.d.ts.map +1 -0
  185. package/dist/cli/help-pages/pages/index.d.ts +3 -0
  186. package/dist/cli/help-pages/pages/index.d.ts.map +1 -0
  187. package/dist/cli/help-pages/pages/misc.d.ts +3 -0
  188. package/dist/cli/help-pages/pages/misc.d.ts.map +1 -0
  189. package/dist/cli/help-pages/pages/previews.d.ts +3 -0
  190. package/dist/cli/help-pages/pages/previews.d.ts.map +1 -0
  191. package/dist/cli/help-pages/pages/productions.d.ts +3 -0
  192. package/dist/cli/help-pages/pages/productions.d.ts.map +1 -0
  193. package/dist/cli/help-pages/render.d.ts +12 -0
  194. package/dist/cli/help-pages/render.d.ts.map +1 -0
  195. package/dist/cli/help-pages/shared.d.ts +15 -0
  196. package/dist/cli/help-pages/shared.d.ts.map +1 -0
  197. package/dist/cli/help-pages/types.d.ts +23 -0
  198. package/dist/cli/help-pages/types.d.ts.map +1 -0
  199. package/dist/cli/help.d.ts +6 -0
  200. package/dist/cli/help.d.ts.map +1 -0
  201. package/dist/cli/index.d.ts +1 -0
  202. package/dist/cli/index.d.ts.map +1 -1
  203. package/dist/cli/index.js +12 -0
  204. package/dist/cli/preview-bindings.d.ts +49 -0
  205. package/dist/cli/preview-bindings.d.ts.map +1 -0
  206. package/dist/cli/preview.d.ts +10 -0
  207. package/dist/cli/preview.d.ts.map +1 -0
  208. package/dist/cli/ui.d.ts +37 -0
  209. package/dist/cli/ui.d.ts.map +1 -0
  210. package/dist/cli/workspace-build-guard.d.ts +14 -0
  211. package/dist/cli/workspace-build-guard.d.ts.map +1 -0
  212. package/dist/cloudflare/account-core.d.ts +6 -0
  213. package/dist/cloudflare/account-core.d.ts.map +1 -0
  214. package/dist/cloudflare/account-resources.d.ts +40 -0
  215. package/dist/cloudflare/account-resources.d.ts.map +1 -0
  216. package/dist/cloudflare/account-status.d.ts +11 -0
  217. package/dist/cloudflare/account-status.d.ts.map +1 -0
  218. package/dist/cloudflare/account-workers.d.ts +14 -0
  219. package/dist/cloudflare/account-workers.d.ts.map +1 -0
  220. package/dist/cloudflare/account.d.ts +7 -64
  221. package/dist/cloudflare/account.d.ts.map +1 -1
  222. package/dist/cloudflare/api.d.ts +71 -3
  223. package/dist/cloudflare/api.d.ts.map +1 -1
  224. package/dist/cloudflare/auth.d.ts.map +1 -1
  225. package/dist/cloudflare/index.d.ts +57 -2
  226. package/dist/cloudflare/index.d.ts.map +1 -1
  227. package/dist/cloudflare/index.js +60 -0
  228. package/dist/cloudflare/known-permission-group-ids.generated.d.ts +10 -0
  229. package/dist/cloudflare/known-permission-group-ids.generated.d.ts.map +1 -0
  230. package/dist/cloudflare/kv-namespace.d.ts +4 -0
  231. package/dist/cloudflare/kv-namespace.d.ts.map +1 -0
  232. package/dist/cloudflare/preferences.d.ts +7 -0
  233. package/dist/cloudflare/preferences.d.ts.map +1 -1
  234. package/dist/cloudflare/preview-registry-cache.d.ts +6 -0
  235. package/dist/cloudflare/preview-registry-cache.d.ts.map +1 -0
  236. package/dist/cloudflare/preview-registry-inference.d.ts +14 -0
  237. package/dist/cloudflare/preview-registry-inference.d.ts.map +1 -0
  238. package/dist/cloudflare/preview-registry-records.d.ts +4 -0
  239. package/dist/cloudflare/preview-registry-records.d.ts.map +1 -0
  240. package/dist/cloudflare/preview-registry-shape.d.ts +47 -0
  241. package/dist/cloudflare/preview-registry-shape.d.ts.map +1 -0
  242. package/dist/cloudflare/preview-registry-store.d.ts +14 -0
  243. package/dist/cloudflare/preview-registry-store.d.ts.map +1 -0
  244. package/dist/cloudflare/preview-registry-transport.d.ts +4 -0
  245. package/dist/cloudflare/preview-registry-transport.d.ts.map +1 -0
  246. package/dist/cloudflare/preview-registry-types.d.ts +103 -0
  247. package/dist/cloudflare/preview-registry-types.d.ts.map +1 -0
  248. package/dist/cloudflare/preview-registry.d.ts +42 -0
  249. package/dist/cloudflare/preview-registry.d.ts.map +1 -0
  250. package/dist/cloudflare/preview-urls.d.ts +3 -0
  251. package/dist/cloudflare/preview-urls.d.ts.map +1 -0
  252. package/dist/cloudflare/registry-schema.d.ts +253 -0
  253. package/dist/cloudflare/registry-schema.d.ts.map +1 -0
  254. package/dist/cloudflare/tokens.d.ts +41 -0
  255. package/dist/cloudflare/tokens.d.ts.map +1 -0
  256. package/dist/cloudflare/types.d.ts +123 -6
  257. package/dist/cloudflare/types.d.ts.map +1 -1
  258. package/dist/cloudflare/usage.d.ts +30 -2
  259. package/dist/cloudflare/usage.d.ts.map +1 -1
  260. package/dist/config/binding-resolution-helpers.d.ts +36 -0
  261. package/dist/config/binding-resolution-helpers.d.ts.map +1 -0
  262. package/dist/config/compatibility.d.ts +3 -0
  263. package/dist/config/compatibility.d.ts.map +1 -0
  264. package/dist/config/compiler.d.ts +65 -20
  265. package/dist/config/compiler.d.ts.map +1 -1
  266. package/dist/config/deploy-resources.d.ts +58 -0
  267. package/dist/config/deploy-resources.d.ts.map +1 -0
  268. package/dist/config/framework-providers.d.ts +9 -0
  269. package/dist/config/framework-providers.d.ts.map +1 -0
  270. package/dist/config/index.d.ts +8 -4
  271. package/dist/config/index.d.ts.map +1 -1
  272. package/dist/config/loader.d.ts.map +1 -1
  273. package/dist/config/preview-resources.d.ts +83 -0
  274. package/dist/config/preview-resources.d.ts.map +1 -0
  275. package/dist/config/preview.d.ts +31 -0
  276. package/dist/config/preview.d.ts.map +1 -0
  277. package/dist/config/ref.d.ts +14 -23
  278. package/dist/config/ref.d.ts.map +1 -1
  279. package/dist/config/resolve-phased.d.ts +72 -0
  280. package/dist/config/resolve-phased.d.ts.map +1 -0
  281. package/dist/config/resolve.d.ts +8 -0
  282. package/dist/config/resolve.d.ts.map +1 -1
  283. package/dist/config/resource-resolution.d.ts +44 -8
  284. package/dist/config/resource-resolution.d.ts.map +1 -1
  285. package/dist/config/schema-bindings.d.ts +955 -0
  286. package/dist/config/schema-bindings.d.ts.map +1 -0
  287. package/dist/config/schema-build.d.ts +67 -0
  288. package/dist/config/schema-build.d.ts.map +1 -0
  289. package/dist/config/schema-env.d.ts +1677 -0
  290. package/dist/config/schema-env.d.ts.map +1 -0
  291. package/dist/config/schema-normalization.d.ts +88 -0
  292. package/dist/config/schema-normalization.d.ts.map +1 -0
  293. package/dist/config/schema-runtime.d.ts +230 -0
  294. package/dist/config/schema-runtime.d.ts.map +1 -0
  295. package/dist/config/schema.d.ts +1312 -3575
  296. package/dist/config/schema.d.ts.map +1 -1
  297. package/dist/config/service-bindings-validation.d.ts +36 -0
  298. package/dist/config/service-bindings-validation.d.ts.map +1 -0
  299. package/dist/{config-v9tr4rts.js → config-1japnjmx.js} +6 -4
  300. package/dist/config-287wjn1m.js +59 -0
  301. package/dist/config-4x6vq82e.js +59 -0
  302. package/dist/config-5n0avhcx.js +59 -0
  303. package/dist/config-70s2ap5j.js +59 -0
  304. package/dist/config-7hge8ze6.js +59 -0
  305. package/dist/config-7rbp7aek.js +59 -0
  306. package/dist/config-b8xbbmta.js +59 -0
  307. package/dist/config-baee5690.js +59 -0
  308. package/dist/config-bczpc1ey.js +59 -0
  309. package/dist/config-entry.d.ts +5 -0
  310. package/dist/config-entry.d.ts.map +1 -0
  311. package/dist/config-entry.js +14 -0
  312. package/dist/config-fhmwzaw6.js +59 -0
  313. package/dist/config-g9vkfa4x.js +59 -0
  314. package/dist/config-gpexkzth.js +59 -0
  315. package/dist/config-nspw7sgv.js +59 -0
  316. package/dist/config-ntm4x9wt.js +59 -0
  317. package/dist/config-nv6hfpg6.js +59 -0
  318. package/dist/config-pjc33wew.js +59 -0
  319. package/dist/config-pnz2e8s3.js +59 -0
  320. package/dist/config-qts6nh6g.js +59 -0
  321. package/dist/config-sg2xrdt4.js +59 -0
  322. package/dist/config-vzwckat3.js +59 -0
  323. package/dist/config-x90dkmm7.js +59 -0
  324. package/dist/decorators/durable-object.d.ts.map +1 -1
  325. package/dist/{src/decorators → decorators}/index.js +2 -2
  326. package/dist/deploy-1s6nv5rp.js +921 -0
  327. package/dist/deploy-30ph1rrd.js +921 -0
  328. package/dist/deploy-39dmfn9d.js +921 -0
  329. package/dist/deploy-44n2pshy.js +1016 -0
  330. package/dist/deploy-45qxpsfe.js +921 -0
  331. package/dist/deploy-64e57w1g.js +1040 -0
  332. package/dist/deploy-82j43vta.js +1040 -0
  333. package/dist/deploy-99m8qhpa.js +1041 -0
  334. package/dist/deploy-9twkd32f.js +1040 -0
  335. package/dist/deploy-a2eq2c1n.js +1040 -0
  336. package/dist/deploy-a3pb1qs5.js +921 -0
  337. package/dist/deploy-agbtfm04.js +921 -0
  338. package/dist/deploy-aswbtbf3.js +921 -0
  339. package/dist/deploy-bqf3kxy5.js +972 -0
  340. package/dist/deploy-fv4z648h.js +921 -0
  341. package/dist/deploy-gsybda2f.js +1038 -0
  342. package/dist/deploy-h17nzysm.js +921 -0
  343. package/dist/deploy-hc89h4wg.js +1045 -0
  344. package/dist/deploy-jey5pnqn.js +1040 -0
  345. package/dist/deploy-jv0yfqvk.js +1040 -0
  346. package/dist/deploy-kn3z6spd.js +941 -0
  347. package/dist/deploy-m22xmz9w.js +921 -0
  348. package/dist/deploy-nefp2njy.js +1038 -0
  349. package/dist/deploy-ppp8pg6w.js +1038 -0
  350. package/dist/deploy-qah2eag6.js +1041 -0
  351. package/dist/deploy-qdq2gpad.js +1045 -0
  352. package/dist/deploy-r1yf8913.js +1038 -0
  353. package/dist/deploy-r8nam9rr.js +1038 -0
  354. package/dist/deploy-rrm4a0xw.js +921 -0
  355. package/dist/deploy-s0tfnc12.js +1040 -0
  356. package/dist/deploy-s636ks9k.js +1041 -0
  357. package/dist/deploy-skqn61j3.js +1038 -0
  358. package/dist/deploy-smv2870h.js +921 -0
  359. package/dist/deploy-sp16nxs5.js +972 -0
  360. package/dist/deploy-sr805bvq.js +921 -0
  361. package/dist/deploy-t9dehmn0.js +1041 -0
  362. package/dist/deploy-taxt7njz.js +1041 -0
  363. package/dist/deploy-tnfvfh9m.js +1040 -0
  364. package/dist/deploy-w5f8db4s.js +1040 -0
  365. package/dist/deploy-wsxcectr.js +921 -0
  366. package/dist/deploy-xyfbhj3v.js +1038 -0
  367. package/dist/deploy-yv1y5xaa.js +921 -0
  368. package/dist/deploy-z3ejw37k.js +1040 -0
  369. package/dist/dev-02tgdc4f.js +2160 -0
  370. package/dist/dev-0tqhveye.js +2314 -0
  371. package/dist/dev-3dj2gkfq.js +2314 -0
  372. package/dist/dev-3e0etsww.js +2314 -0
  373. package/dist/dev-47dk7c13.js +2314 -0
  374. package/dist/dev-4a2a31cm.js +2314 -0
  375. package/dist/dev-4w1stcn8.js +2427 -0
  376. package/dist/dev-5wkh1z4a.js +2188 -0
  377. package/dist/dev-6t22zmey.js +2350 -0
  378. package/dist/dev-89p1sdv7.js +2395 -0
  379. package/dist/dev-8d1gxjky.js +2427 -0
  380. package/dist/dev-8yawx3cv.js +2314 -0
  381. package/dist/dev-9h4p8a0c.js +2393 -0
  382. package/dist/dev-9xmttj4c.js +2314 -0
  383. package/dist/dev-bkbz97z0.js +2314 -0
  384. package/dist/dev-ct3344kv.js +2160 -0
  385. package/dist/{dev-ymtphbkg.js → dev-dg8dh5c1.js} +479 -616
  386. package/dist/dev-dr5jb965.js +2427 -0
  387. package/dist/dev-e4sjqtbq.js +2314 -0
  388. package/dist/dev-ecq26mg4.js +2350 -0
  389. package/dist/dev-ef237vgp.js +2324 -0
  390. package/dist/dev-enbdg4st.js +2314 -0
  391. package/dist/dev-jcrxg8hq.js +2160 -0
  392. package/dist/dev-jk0gqges.js +2432 -0
  393. package/dist/dev-k62936am.js +2314 -0
  394. package/dist/dev-k8ptbvrs.js +2160 -0
  395. package/dist/dev-kqm107h4.js +2422 -0
  396. package/dist/dev-n0gx7eya.js +2350 -0
  397. package/dist/dev-n23m6rtb.js +2314 -0
  398. package/dist/dev-ny8fmkzg.js +2432 -0
  399. package/dist/dev-p1c65cga.js +2386 -0
  400. package/dist/dev-p4fjbb4h.js +2395 -0
  401. package/dist/dev-pnfcv79z.js +2160 -0
  402. package/dist/dev-qnrrv5ey.js +2393 -0
  403. package/dist/dev-qqysg50t.js +2427 -0
  404. package/dist/dev-r9f3n11q.js +2410 -0
  405. package/dist/dev-s0815dw4.js +2427 -0
  406. package/dist/dev-s4tpkg60.js +2314 -0
  407. package/dist/dev-s82fcesg.js +2314 -0
  408. package/dist/dev-s9sz53me.js +2401 -0
  409. package/dist/dev-sdka7z0d.js +2427 -0
  410. package/dist/dev-server/d1-migrations.d.ts +36 -0
  411. package/dist/dev-server/d1-migrations.d.ts.map +1 -0
  412. package/dist/dev-server/dev-server-state.d.ts +56 -0
  413. package/dist/dev-server/dev-server-state.d.ts.map +1 -0
  414. package/dist/dev-server/gateway-script.d.ts +21 -0
  415. package/dist/dev-server/gateway-script.d.ts.map +1 -0
  416. package/dist/dev-server/miniflare-bindings.d.ts +16 -0
  417. package/dist/dev-server/miniflare-bindings.d.ts.map +1 -0
  418. package/dist/dev-server/miniflare-dev-config.d.ts +30 -0
  419. package/dist/dev-server/miniflare-dev-config.d.ts.map +1 -0
  420. package/dist/dev-server/miniflare-worker-config.d.ts +44 -0
  421. package/dist/dev-server/miniflare-worker-config.d.ts.map +1 -0
  422. package/dist/dev-server/reload-queue.d.ts +13 -0
  423. package/dist/dev-server/reload-queue.d.ts.map +1 -0
  424. package/dist/dev-server/runtime-stdio.d.ts.map +1 -1
  425. package/dist/dev-server/server-startup-helpers.d.ts +84 -0
  426. package/dist/dev-server/server-startup-helpers.d.ts.map +1 -0
  427. package/dist/dev-server/server.d.ts.map +1 -1
  428. package/dist/dev-server/vite-process.d.ts +14 -0
  429. package/dist/dev-server/vite-process.d.ts.map +1 -0
  430. package/dist/dev-server/vite-utils.d.ts +19 -1
  431. package/dist/dev-server/vite-utils.d.ts.map +1 -1
  432. package/dist/dev-server/worker-source-watcher.d.ts +17 -0
  433. package/dist/dev-server/worker-source-watcher.d.ts.map +1 -0
  434. package/dist/dev-server/worker-surface-paths.d.ts +6 -0
  435. package/dist/dev-server/worker-surface-paths.d.ts.map +1 -0
  436. package/dist/dev-t3tjscah.js +2350 -0
  437. package/dist/dev-t50kdb1j.js +2338 -0
  438. package/dist/dev-t5xf55pt.js +2314 -0
  439. package/dist/dev-t63c44bb.js +2314 -0
  440. package/dist/dev-wg3d38sy.js +2433 -0
  441. package/dist/dev-wh4rfgsh.js +2427 -0
  442. package/dist/dev-wjh8gdd1.js +2284 -0
  443. package/dist/dev-xzxy9qvq.js +2314 -0
  444. package/dist/dev-yymaq4ph.js +2392 -0
  445. package/dist/dev-zg2w2ve3.js +2422 -0
  446. package/dist/dev-zsb2xk1x.js +2427 -0
  447. package/dist/dev-zty3yhzg.js +2324 -0
  448. package/dist/doctor-3mqavqg3.js +245 -0
  449. package/dist/doctor-5nek32fz.js +245 -0
  450. package/dist/doctor-7ra1w0sk.js +245 -0
  451. package/dist/doctor-ak830a0k.js +245 -0
  452. package/dist/doctor-bye3cs8a.js +245 -0
  453. package/dist/{doctor-xv4gm1h4.js → doctor-c5m9pmwq.js} +67 -32
  454. package/dist/doctor-cqfkgxvw.js +245 -0
  455. package/dist/doctor-e1h9mhzp.js +245 -0
  456. package/dist/doctor-fmqsrafk.js +245 -0
  457. package/dist/doctor-hgs7wr5g.js +245 -0
  458. package/dist/doctor-j8ytsy94.js +245 -0
  459. package/dist/doctor-mcmkgp6e.js +245 -0
  460. package/dist/doctor-qb6m2exc.js +245 -0
  461. package/dist/doctor-qq4tsh8q.js +245 -0
  462. package/dist/doctor-tecv869a.js +245 -0
  463. package/dist/doctor-wg0245pe.js +245 -0
  464. package/dist/doctor-z3jfqxtz.js +245 -0
  465. package/dist/durable-object-4hey8fgy.js +13 -0
  466. package/dist/durable-object-v3gsnybk.js +13 -0
  467. package/dist/env.d.ts.map +1 -1
  468. package/dist/index-0krb65s3.js +215 -0
  469. package/dist/index-0mantew0.js +513 -0
  470. package/dist/index-0mezg6ar.js +1372 -0
  471. package/dist/index-0tk2rs0q.js +185 -0
  472. package/dist/{index-fef08w43.js → index-124e9t4t.js} +8 -7
  473. package/dist/index-1546yrn0.js +74 -0
  474. package/dist/index-15fpa5tx.js +232 -0
  475. package/dist/index-18mp5v50.js +538 -0
  476. package/dist/index-195tc6qh.js +1372 -0
  477. package/dist/{index-k8vh558d.js → index-1bg8w2gf.js} +15 -2
  478. package/dist/index-1d4jg11n.js +542 -0
  479. package/dist/index-1e2qtrmj.js +188 -0
  480. package/dist/index-1ghhgb9d.js +74 -0
  481. package/dist/index-1nhd9nkd.js +232 -0
  482. package/dist/index-1wn8mjep.js +808 -0
  483. package/dist/index-1xhd5czz.js +185 -0
  484. package/dist/index-2a2g4fwp.js +993 -0
  485. package/dist/{index-7bq4xq84.js → index-2bmtj21z.js} +7 -12
  486. package/dist/index-2dpmd14d.js +52 -0
  487. package/dist/index-2fa0afdp.js +1372 -0
  488. package/dist/index-2rcrefqd.js +1372 -0
  489. package/dist/index-2t2m5148.js +1372 -0
  490. package/dist/index-2vbzamev.js +437 -0
  491. package/dist/index-2vdep9h0.js +993 -0
  492. package/dist/index-2y90j9cz.js +74 -0
  493. package/dist/index-33ep0z9x.js +385 -0
  494. package/dist/index-37jgbaw6.js +1372 -0
  495. package/dist/index-380ncsqc.js +977 -0
  496. package/dist/index-3e1x39fc.js +365 -0
  497. package/dist/index-3e7by9sy.js +223 -0
  498. package/dist/index-3egad6wm.js +538 -0
  499. package/dist/index-3f8rzmjw.js +232 -0
  500. package/dist/index-3vd4r37r.js +1372 -0
  501. package/dist/index-3vgn5e89.js +1682 -0
  502. package/dist/index-3x7k3t0f.js +513 -0
  503. package/dist/index-3xfe2dst.js +399 -0
  504. package/dist/index-464j1zb4.js +513 -0
  505. package/dist/index-48rxsj95.js +365 -0
  506. package/dist/index-4bezcdd1.js +385 -0
  507. package/dist/index-4fp11z9e.js +973 -0
  508. package/dist/{index-vky23txa.js → index-4knecthc.js} +2 -2
  509. package/dist/index-502y7w13.js +538 -0
  510. package/dist/index-50mxxb4q.js +185 -0
  511. package/dist/index-5achzspr.js +185 -0
  512. package/dist/index-5ef3jmv7.js +1372 -0
  513. package/dist/index-5eswe8yv.js +844 -0
  514. package/dist/index-5gevxfgs.js +513 -0
  515. package/dist/index-5gmf048z.js +817 -0
  516. package/dist/index-5jtkxpjf.js +971 -0
  517. package/dist/index-5m85bd9x.js +168 -0
  518. package/dist/index-5n5nn0a8.js +264 -0
  519. package/dist/index-5p3bgjwr.js +808 -0
  520. package/dist/index-5vzcszr2.js +1230 -0
  521. package/dist/index-5w77r4w9.js +513 -0
  522. package/dist/index-62srkqcm.js +168 -0
  523. package/dist/index-63cgqe43.js +1372 -0
  524. package/dist/index-65e7xx1a.js +19 -0
  525. package/dist/index-65qrje14.js +185 -0
  526. package/dist/index-66sx3b3v.js +385 -0
  527. package/dist/index-678j0n13.js +74 -0
  528. package/dist/index-6ftrth7n.js +1218 -0
  529. package/dist/index-6g90pvxa.js +215 -0
  530. package/dist/index-6j4m5x2d.js +1372 -0
  531. package/dist/index-6jwpke14.js +385 -0
  532. package/dist/index-6knsjvxh.js +1372 -0
  533. package/dist/index-6kwq6yf8.js +979 -0
  534. package/dist/index-6mg4yvc6.js +74 -0
  535. package/dist/index-6phry941.js +133 -0
  536. package/dist/index-6r59wbek.js +232 -0
  537. package/dist/index-6sf815ps.js +74 -0
  538. package/dist/index-6zd89k6y.js +1230 -0
  539. package/dist/index-71rwg0cn.js +264 -0
  540. package/dist/index-75ex2m0x.js +695 -0
  541. package/dist/index-79exzs3q.js +1218 -0
  542. package/dist/index-7bxj118m.js +264 -0
  543. package/dist/index-7c6np4mq.js +397 -0
  544. package/dist/index-7cm339qz.js +133 -0
  545. package/dist/index-7eqyr4j8.js +70 -0
  546. package/dist/index-7k278fgz.js +273 -0
  547. package/dist/index-7kazxkjt.js +1372 -0
  548. package/dist/index-7m0x8m9r.js +844 -0
  549. package/dist/index-7p74smg8.js +1372 -0
  550. package/dist/index-7q8fke3k.js +188 -0
  551. package/dist/index-7qk6eafn.js +1682 -0
  552. package/dist/index-7vbjt6ba.js +805 -0
  553. package/dist/index-7z4b0vgd.js +470 -0
  554. package/dist/index-82f1z98k.js +41 -0
  555. package/dist/index-82xn4azv.js +74 -0
  556. package/dist/index-83wns7cz.js +70 -0
  557. package/dist/index-852945d4.js +413 -0
  558. package/dist/index-86rvj79f.js +133 -0
  559. package/dist/index-88tcq0t4.js +542 -0
  560. package/dist/index-8evn52g1.js +1218 -0
  561. package/dist/index-8jkf4nsd.js +695 -0
  562. package/dist/index-8nx4ce3e.js +133 -0
  563. package/dist/index-8q1bcnrh.js +1372 -0
  564. package/dist/index-8t5gynct.js +971 -0
  565. package/dist/index-905svbb6.js +470 -0
  566. package/dist/index-94cb0sac.js +1372 -0
  567. package/dist/index-95mmvbw7.js +538 -0
  568. package/dist/index-97x94h0m.js +438 -0
  569. package/dist/index-9an9qqr1.js +728 -0
  570. package/dist/index-9d125myk.js +1372 -0
  571. package/dist/{index-001mw014.js → index-9fbtk7gv.js} +134 -248
  572. package/dist/index-9gg0kqw0.js +470 -0
  573. package/dist/index-9ryw7mcw.js +971 -0
  574. package/dist/index-a3e13a7m.js +478 -0
  575. package/dist/index-a6j44jmr.js +1372 -0
  576. package/dist/index-a75ejnvt.js +1711 -0
  577. package/dist/index-aabgympv.js +39 -0
  578. package/dist/index-ab2nck1h.js +1372 -0
  579. package/dist/index-abrqnq3e.js +488 -0
  580. package/dist/index-afjbpgb1.js +1218 -0
  581. package/dist/index-at89fpde.js +470 -0
  582. package/dist/{index-5yxg30va.js → index-awr0tp6p.js} +15 -6
  583. package/dist/index-b1be9bdh.js +1372 -0
  584. package/dist/index-b1xs3wc4.js +513 -0
  585. package/dist/index-b50x7seh.js +513 -0
  586. package/dist/index-b5ra8w3q.js +52 -0
  587. package/dist/index-b64sbzgv.js +884 -0
  588. package/dist/index-b7r8ntpm.js +1372 -0
  589. package/dist/index-ba9gyy13.js +513 -0
  590. package/dist/index-bb66mn7p.js +52 -0
  591. package/dist/index-bc5pvbbd.js +1193 -0
  592. package/dist/index-bj0mk3dw.js +74 -0
  593. package/dist/index-bj3a8dr0.js +1372 -0
  594. package/dist/index-bk3eez1g.js +513 -0
  595. package/dist/index-btjx137w.js +774 -0
  596. package/dist/index-btrfqp9h.js +133 -0
  597. package/dist/index-bx6gangy.js +402 -0
  598. package/dist/index-c0tc0yts.js +471 -0
  599. package/dist/index-c0whkev9.js +200 -0
  600. package/dist/index-ca96qkva.js +1372 -0
  601. package/dist/index-cdtzkedk.js +993 -0
  602. package/dist/index-cejgenma.js +1372 -0
  603. package/dist/index-cp8jt5pr.js +52 -0
  604. package/dist/index-cpz69pek.js +1372 -0
  605. package/dist/index-crrdegk5.js +456 -0
  606. package/dist/index-cskszwkx.js +1372 -0
  607. package/dist/index-cxf22a0s.js +74 -0
  608. package/dist/index-cy3c3w81.js +270 -0
  609. package/dist/index-d5dgb1j6.js +74 -0
  610. package/dist/index-da397xcx.js +1372 -0
  611. package/dist/index-damyy8bw.js +1372 -0
  612. package/dist/index-dd6fwwmq.js +456 -0
  613. package/dist/index-dh1954bp.js +52 -0
  614. package/dist/index-djp2wd1f.js +1372 -0
  615. package/dist/index-dmbdj6va.js +805 -0
  616. package/dist/index-dphr32gc.js +420 -0
  617. package/dist/index-dxh2qyyw.js +52 -0
  618. package/dist/index-dzayfxjy.js +492 -0
  619. package/dist/index-e05q77kt.js +397 -0
  620. package/dist/index-e11b1fb2.js +495 -0
  621. package/dist/index-e3zvspqj.js +968 -0
  622. package/dist/index-e4tzzbn9.js +1372 -0
  623. package/dist/index-e5ct1gwb.js +1372 -0
  624. package/dist/index-e7ptcz1a.js +1372 -0
  625. package/dist/index-e7wt0203.js +513 -0
  626. package/dist/index-ebwsvf9t.js +365 -0
  627. package/dist/index-ed73jn3d.js +185 -0
  628. package/dist/index-ed7n5d07.js +185 -0
  629. package/dist/index-ejs2a4kd.js +513 -0
  630. package/dist/index-esjrgt3y.js +467 -0
  631. package/dist/index-ev03khsd.js +513 -0
  632. package/dist/index-f1gsqm54.js +168 -0
  633. package/dist/index-f90314kt.js +52 -0
  634. package/dist/index-f9mhsept.js +185 -0
  635. package/dist/index-fa6zwffw.js +70 -0
  636. package/dist/index-fama7kpt.js +52 -0
  637. package/dist/index-fkyvxe4b.js +968 -0
  638. package/dist/index-g0h40xke.js +513 -0
  639. package/dist/index-g0rqh52c.js +385 -0
  640. package/dist/index-g170d619.js +385 -0
  641. package/dist/index-g3qtxkms.js +881 -0
  642. package/dist/index-gactvqcs.js +467 -0
  643. package/dist/index-gaew61v4.js +470 -0
  644. package/dist/index-gba371j7.js +542 -0
  645. package/dist/index-gegyyfnw.js +1372 -0
  646. package/dist/index-get7he2s.js +133 -0
  647. package/dist/index-gn5wy09x.js +205 -0
  648. package/dist/index-gtbgzwfs.js +264 -0
  649. package/dist/index-gtpz0gkz.js +185 -0
  650. package/dist/index-h1s66pmp.js +52 -0
  651. package/dist/index-h8r2d8y5.js +366 -0
  652. package/dist/index-heeqwrfd.js +385 -0
  653. package/dist/index-hheb5dyt.js +192 -0
  654. package/dist/index-hjz2x9nq.js +441 -0
  655. package/dist/index-hkex7ns5.js +513 -0
  656. package/dist/index-hmbctwv6.js +517 -0
  657. package/dist/index-hpzasdhw.js +513 -0
  658. package/dist/index-hqdr9wdm.js +74 -0
  659. package/dist/index-hrvz8d26.js +1372 -0
  660. package/dist/index-hyvhnf6r.js +971 -0
  661. package/dist/index-j2kc5rbv.js +895 -0
  662. package/dist/index-j2xdxwsz.js +133 -0
  663. package/dist/index-j47hhb3r.js +694 -0
  664. package/dist/index-j5aphr5x.js +185 -0
  665. package/dist/index-j68v36q1.js +188 -0
  666. package/dist/index-j7cf22x7.js +968 -0
  667. package/dist/index-j7xxrbnr.js +694 -0
  668. package/dist/index-jptqxkew.js +470 -0
  669. package/dist/index-jsymy3mb.js +781 -0
  670. package/dist/index-jwvy32xk.js +188 -0
  671. package/dist/index-jxe1b19v.js +133 -0
  672. package/dist/index-jz96ry5g.js +513 -0
  673. package/dist/index-k6wtsgs1.js +971 -0
  674. package/dist/index-kawa49m8.js +371 -0
  675. package/dist/index-key4e5c9.js +168 -0
  676. package/dist/index-khbmdrn2.js +884 -0
  677. package/dist/index-kpzfwex6.js +264 -0
  678. package/dist/index-kse4gn99.js +74 -0
  679. package/dist/index-ktscz0r2.js +264 -0
  680. package/dist/index-kybmjvad.js +1212 -0
  681. package/dist/index-kzm9cea8.js +185 -0
  682. package/dist/index-m2d74gqg.js +808 -0
  683. package/dist/index-m56w7mjt.js +513 -0
  684. package/dist/index-m95ha3n4.js +264 -0
  685. package/dist/index-ma151p8g.js +264 -0
  686. package/dist/index-mg8vwqxf.js +514 -0
  687. package/dist/index-mhdsywhs.js +264 -0
  688. package/dist/index-mjgx910r.js +895 -0
  689. package/dist/index-mkrmaea3.js +185 -0
  690. package/dist/index-mkxnyyjn.js +264 -0
  691. package/dist/index-mp5mrst6.js +1372 -0
  692. package/dist/index-ms15cr86.js +513 -0
  693. package/dist/index-mt99xkc6.js +133 -0
  694. package/dist/index-mttv6k25.js +881 -0
  695. package/dist/index-myxfx52v.js +385 -0
  696. package/dist/index-mzw7732t.js +74 -0
  697. package/dist/index-n3mjwz22.js +188 -0
  698. package/dist/index-n3yksgz0.js +1372 -0
  699. package/dist/{index-8gtqgb3q.js → index-n4jr3dmk.js} +55 -100
  700. package/dist/index-n5drt64b.js +74 -0
  701. package/dist/index-n8frmffg.js +264 -0
  702. package/dist/index-n8k8chde.js +694 -0
  703. package/dist/index-na796ka6.js +994 -0
  704. package/dist/index-nbs4q0qg.js +1218 -0
  705. package/dist/index-newpq2zf.js +968 -0
  706. package/dist/index-nexg9p7j.js +1271 -0
  707. package/dist/index-nfm8tb5n.js +74 -0
  708. package/dist/index-nga2tg9z.js +1372 -0
  709. package/dist/index-ngbzr9gz.js +805 -0
  710. package/dist/index-nh90nk7j.js +380 -0
  711. package/dist/index-njnmfxm5.js +1372 -0
  712. package/dist/index-nqma24j3.js +385 -0
  713. package/dist/index-ntddf5d9.js +993 -0
  714. package/dist/index-nte9n8w9.js +538 -0
  715. package/dist/index-ntxp7ke1.js +264 -0
  716. package/dist/index-nwxnmw41.js +264 -0
  717. package/dist/index-p1xe5eem.js +513 -0
  718. package/dist/index-p296ban8.js +191 -0
  719. package/dist/index-p477xm52.js +385 -0
  720. package/dist/index-p8nmkrgw.js +470 -0
  721. package/dist/{index-zvgc3e0c.js → index-p97s12vf.js} +200 -97
  722. package/dist/index-p9hvv0yd.js +401 -0
  723. package/dist/index-pac7wv88.js +307 -0
  724. package/dist/index-ptp2pfq1.js +52 -0
  725. package/dist/index-pyeycp3f.js +74 -0
  726. package/dist/index-q23xf3vr.js +479 -0
  727. package/dist/index-q34rvh5a.js +247 -0
  728. package/dist/index-q5errwrj.js +904 -0
  729. package/dist/index-q5nhzc9m.js +1217 -0
  730. package/dist/index-q8f4kawk.js +204 -0
  731. package/dist/index-qer8zv2r.js +997 -0
  732. package/dist/index-qhyy018y.js +467 -0
  733. package/dist/index-qmhdydwy.js +70 -0
  734. package/dist/index-qpmvca5j.js +470 -0
  735. package/dist/index-qr96vaj1.js +52 -0
  736. package/dist/index-qtyhg3dn.js +904 -0
  737. package/dist/index-qye17gq5.js +264 -0
  738. package/dist/index-r0839f5k.js +133 -0
  739. package/dist/index-r1rqg72v.js +1372 -0
  740. package/dist/index-rbckga8p.js +971 -0
  741. package/dist/index-rbxb5x2w.js +1372 -0
  742. package/dist/index-rck779bj.js +739 -0
  743. package/dist/index-rfn2gt5f.js +1658 -0
  744. package/dist/index-rg21w26a.js +470 -0
  745. package/dist/index-rgcz45t0.js +1372 -0
  746. package/dist/index-rhnd376q.js +133 -0
  747. package/dist/index-rjc5z3w6.js +971 -0
  748. package/dist/index-rkhtayd6.js +385 -0
  749. package/dist/index-rm8srzmv.js +371 -0
  750. package/dist/index-rmhk5j03.js +968 -0
  751. package/dist/index-rp4t86bt.js +993 -0
  752. package/dist/index-rpq5ktdy.js +264 -0
  753. package/dist/index-rpsmhdd4.js +1218 -0
  754. package/dist/index-rqpakjyr.js +470 -0
  755. package/dist/index-rttk33x6.js +232 -0
  756. package/dist/index-rwa82e89.js +385 -0
  757. package/dist/index-rz185crv.js +695 -0
  758. package/dist/index-s22verzj.js +1218 -0
  759. package/dist/index-s2s3g1nt.js +133 -0
  760. package/dist/index-s7ytytth.js +781 -0
  761. package/dist/index-sefnpzwa.js +185 -0
  762. package/dist/index-sgxw0xzd.js +513 -0
  763. package/dist/index-stc0caq6.js +1009 -0
  764. package/dist/index-stgn34cr.js +148 -0
  765. package/dist/index-svz82w9h.js +513 -0
  766. package/dist/index-sx49e8x9.js +884 -0
  767. package/dist/index-sxadwvw9.js +185 -0
  768. package/dist/index-sxn223fz.js +1372 -0
  769. package/dist/index-sy0c2mh0.js +1372 -0
  770. package/dist/index-syeh1hca.js +264 -0
  771. package/dist/index-t18wyhgf.js +418 -0
  772. package/dist/index-t4fhcx1n.js +71 -0
  773. package/dist/index-td4hbgj5.js +1372 -0
  774. package/dist/index-tkvt9mmq.js +484 -0
  775. package/dist/index-tmmcf4m6.js +808 -0
  776. package/dist/index-tpgs5v64.js +366 -0
  777. package/dist/index-tt4fsv91.js +412 -0
  778. package/dist/{index-v8vvsn9x.js → index-tte89s31.js} +29 -29
  779. package/dist/index-tvjg7swe.js +1372 -0
  780. package/dist/index-txndxr4w.js +513 -0
  781. package/dist/index-tyh5jc55.js +990 -0
  782. package/dist/index-tyt0wa52.js +470 -0
  783. package/dist/index-tyt3wcfr.js +1372 -0
  784. package/dist/index-v3znz08m.js +968 -0
  785. package/dist/index-v78xbj6n.js +808 -0
  786. package/dist/index-v915brjk.js +1372 -0
  787. package/dist/index-v922fmsx.js +52 -0
  788. package/dist/index-v9w1bbfe.js +842 -0
  789. package/dist/index-vbbgtm8p.js +513 -0
  790. package/dist/index-vcjgrmzj.js +456 -0
  791. package/dist/{index-59df49vn.js → index-vdewcg1r.js} +233 -105
  792. package/dist/index-vhqww6tt.js +307 -0
  793. package/dist/index-vse8620z.js +1372 -0
  794. package/dist/index-vtjp46c3.js +52 -0
  795. package/dist/index-vxhxk8mf.js +904 -0
  796. package/dist/index-w3azfsa0.js +695 -0
  797. package/dist/index-w4tq35dn.js +52 -0
  798. package/dist/index-w5qxvxzq.js +991 -0
  799. package/dist/index-w5sedpqn.js +986 -0
  800. package/dist/index-waha3chv.js +1230 -0
  801. package/dist/index-wdxww0kj.js +1006 -0
  802. package/dist/index-wdy5y07x.js +1372 -0
  803. package/dist/index-wf9pnh6j.js +385 -0
  804. package/dist/index-wnnbbbkt.js +1192 -0
  805. package/dist/index-wvcmvtjf.js +1372 -0
  806. package/dist/index-x0jbntp0.js +470 -0
  807. package/dist/index-x6scc3nx.js +70 -0
  808. package/dist/index-x8e2wsbv.js +971 -0
  809. package/dist/index-xgfyxpfs.js +1218 -0
  810. package/dist/index-xm9hp9xc.js +1372 -0
  811. package/dist/index-xp7zkxcx.js +1372 -0
  812. package/dist/index-xrbj0ebk.js +185 -0
  813. package/dist/index-xskax7r3.js +50 -0
  814. package/dist/index-xvk5n96q.js +694 -0
  815. package/dist/index-xy1jvt4w.js +1229 -0
  816. package/dist/index-xzg9hhf3.js +470 -0
  817. package/dist/index-xzpg0kaz.js +70 -0
  818. package/dist/index-y3q6qvv3.js +316 -0
  819. package/dist/index-y44ts1dk.js +52 -0
  820. package/dist/index-y5nt1wjb.js +971 -0
  821. package/dist/index-y82b8w14.js +1372 -0
  822. package/dist/index-yb07t3c5.js +1372 -0
  823. package/dist/index-yc3xz3vm.js +431 -0
  824. package/dist/index-yeaqrevg.js +1372 -0
  825. package/dist/index-ygwsd1nn.js +438 -0
  826. package/dist/index-yhdavjk7.js +371 -0
  827. package/dist/index-yjhns95b.js +188 -0
  828. package/dist/index-yk23p7he.js +1372 -0
  829. package/dist/index-ykfgpsmm.js +190 -0
  830. package/dist/index-ymz3cfab.js +968 -0
  831. package/dist/index-yq9g1sq7.js +264 -0
  832. package/dist/index-ys5q9ch9.js +366 -0
  833. package/dist/index-yt0n4p46.js +973 -0
  834. package/dist/index-ytq1t9jx.js +232 -0
  835. package/dist/index-ywmtmf3b.js +513 -0
  836. package/dist/index-yzb44q6d.js +1372 -0
  837. package/dist/index-z043xk61.js +133 -0
  838. package/dist/index-z0gsf674.js +431 -0
  839. package/dist/index-z32n0ndp.js +1372 -0
  840. package/dist/index-z4qgk76w.js +1372 -0
  841. package/dist/index-z8njfj2g.js +385 -0
  842. package/dist/index-z9fjnwa8.js +397 -0
  843. package/dist/{index-1xpj0m4r.js → index-z9gy8w6b.js} +1 -1
  844. package/dist/index-zapkc14c.js +264 -0
  845. package/dist/index-zes6w8yr.js +185 -0
  846. package/dist/index-zgrqest7.js +695 -0
  847. package/dist/index-zsngz131.js +1372 -0
  848. package/dist/index-zt22fe2j.js +54 -0
  849. package/dist/index-zxhc6sb0.js +192 -0
  850. package/dist/index.d.ts +2 -6
  851. package/dist/index.d.ts.map +1 -1
  852. package/dist/index.js +61 -0
  853. package/dist/{init-na2atvz2.js → init-wfh63bfz.js} +25 -18
  854. package/dist/login-1amyp1jy.js +77 -0
  855. package/dist/login-1cdwn1dj.js +77 -0
  856. package/dist/login-456h8jk3.js +77 -0
  857. package/dist/login-4n470c4j.js +77 -0
  858. package/dist/login-4sh7s849.js +77 -0
  859. package/dist/login-5dmkf0pz.js +77 -0
  860. package/dist/login-88tp4gbb.js +77 -0
  861. package/dist/login-b51faqpc.js +77 -0
  862. package/dist/login-bxyjqmbj.js +77 -0
  863. package/dist/login-c4649qss.js +77 -0
  864. package/dist/login-d80a2qxd.js +77 -0
  865. package/dist/login-dp0napaz.js +77 -0
  866. package/dist/login-j3r6z2t4.js +77 -0
  867. package/dist/login-jkfkdjg4.js +77 -0
  868. package/dist/login-kch6f2yj.js +77 -0
  869. package/dist/login-pmqh94ws.js +77 -0
  870. package/dist/login-rc82x5j8.js +77 -0
  871. package/dist/login-tvppwyx2.js +77 -0
  872. package/dist/login-w76jx22q.js +77 -0
  873. package/dist/login-ze7y36rc.js +77 -0
  874. package/dist/previews-02jmcwft.js +1214 -0
  875. package/dist/previews-31bq82km.js +1225 -0
  876. package/dist/previews-62pcvvpe.js +1214 -0
  877. package/dist/previews-76fxkp59.js +1214 -0
  878. package/dist/previews-844bp6kf.js +1214 -0
  879. package/dist/previews-8amn46qv.js +1214 -0
  880. package/dist/previews-a5xbkksy.js +1214 -0
  881. package/dist/previews-bgnryzav.js +1214 -0
  882. package/dist/previews-bkhv9dnr.js +1214 -0
  883. package/dist/previews-c2c64z5m.js +1214 -0
  884. package/dist/previews-e4wgscsb.js +1214 -0
  885. package/dist/previews-ew4reetn.js +1214 -0
  886. package/dist/previews-hzqke1fg.js +1214 -0
  887. package/dist/previews-j8wa3sge.js +1214 -0
  888. package/dist/previews-k5n6vhpm.js +1214 -0
  889. package/dist/previews-n4sdyxa5.js +1214 -0
  890. package/dist/previews-npwrwb0b.js +1214 -0
  891. package/dist/previews-q8ph9wbe.js +1214 -0
  892. package/dist/previews-rfswrh7q.js +1214 -0
  893. package/dist/previews-s0y5yp8s.js +1214 -0
  894. package/dist/previews-s5b6mnz5.js +1214 -0
  895. package/dist/previews-sdte4984.js +1200 -0
  896. package/dist/previews-t5tdm6t0.js +1225 -0
  897. package/dist/previews-tk7vpzj9.js +1214 -0
  898. package/dist/previews-tqt4pk27.js +1214 -0
  899. package/dist/previews-vqg4psk2.js +1225 -0
  900. package/dist/productions-4abj58kx.js +505 -0
  901. package/dist/productions-4dpec71r.js +505 -0
  902. package/dist/productions-4nedsanh.js +505 -0
  903. package/dist/productions-5c58yafp.js +505 -0
  904. package/dist/productions-5xq5cjhx.js +505 -0
  905. package/dist/productions-6dr0bmd7.js +505 -0
  906. package/dist/productions-8f6s8dqr.js +505 -0
  907. package/dist/productions-a2hcwwzf.js +505 -0
  908. package/dist/productions-b7svyjp7.js +505 -0
  909. package/dist/productions-bf2cnr05.js +505 -0
  910. package/dist/productions-dkgry3gv.js +505 -0
  911. package/dist/productions-eqh105tk.js +505 -0
  912. package/dist/productions-etvcm7yf.js +505 -0
  913. package/dist/productions-f1zpbmjz.js +505 -0
  914. package/dist/productions-j14pvx93.js +505 -0
  915. package/dist/productions-j7s1ywvg.js +505 -0
  916. package/dist/productions-jp3v3q3p.js +505 -0
  917. package/dist/productions-m9p42amj.js +505 -0
  918. package/dist/productions-mxbneawa.js +505 -0
  919. package/dist/productions-np4exh9p.js +505 -0
  920. package/dist/productions-rr1hqgda.js +505 -0
  921. package/dist/productions-rtf9ksgg.js +505 -0
  922. package/dist/productions-w2nzftcz.js +505 -0
  923. package/dist/productions-wbks5h7e.js +505 -0
  924. package/dist/productions-y99ayk6h.js +505 -0
  925. package/dist/productions-zpqyw5gm.js +505 -0
  926. package/dist/runtime/context-events.d.ts +13 -0
  927. package/dist/runtime/context-events.d.ts.map +1 -0
  928. package/dist/runtime/context-types.d.ts +82 -0
  929. package/dist/runtime/context-types.d.ts.map +1 -0
  930. package/dist/runtime/context.d.ts +12 -266
  931. package/dist/runtime/context.d.ts.map +1 -1
  932. package/dist/runtime/exports.d.ts +4 -7
  933. package/dist/runtime/exports.d.ts.map +1 -1
  934. package/dist/runtime/index.d.ts +3 -3
  935. package/dist/runtime/index.d.ts.map +1 -1
  936. package/dist/{src/runtime → runtime}/index.js +22 -13
  937. package/dist/runtime/middleware.d.ts +56 -31
  938. package/dist/runtime/middleware.d.ts.map +1 -1
  939. package/dist/runtime/router/index.d.ts +7 -0
  940. package/dist/runtime/router/index.d.ts.map +1 -0
  941. package/dist/runtime/router/types.d.ts +24 -0
  942. package/dist/runtime/router/types.d.ts.map +1 -0
  943. package/dist/runtime/validation.d.ts +9 -1
  944. package/dist/runtime/validation.d.ts.map +1 -1
  945. package/dist/{src/sveltekit → sveltekit}/index.js +36 -69
  946. package/dist/sveltekit/platform.d.ts +11 -1
  947. package/dist/sveltekit/platform.d.ts.map +1 -1
  948. package/dist/test/binding-hints.d.ts +11 -0
  949. package/dist/test/binding-hints.d.ts.map +1 -0
  950. package/dist/test/bridge-context.d.ts +7 -0
  951. package/dist/test/bridge-context.d.ts.map +1 -1
  952. package/dist/test/cf.d.ts +10 -10
  953. package/dist/test/email.d.ts.map +1 -1
  954. package/dist/test/index.d.ts +1 -7
  955. package/dist/test/index.d.ts.map +1 -1
  956. package/dist/{index-3a4mmn57.js → test/index.js} +1661 -1424
  957. package/dist/test/queue.d.ts.map +1 -1
  958. package/dist/test/remote-ai.d.ts.map +1 -1
  959. package/dist/test/remote-cloudflare.d.ts +13 -0
  960. package/dist/test/remote-cloudflare.d.ts.map +1 -0
  961. package/dist/test/remote-vectorize.d.ts.map +1 -1
  962. package/dist/test/resolve-service-bindings.d.ts.map +1 -1
  963. package/dist/test/scheduled.d.ts.map +1 -1
  964. package/dist/test/should-skip.d.ts +0 -18
  965. package/dist/test/should-skip.d.ts.map +1 -1
  966. package/dist/test/simple-context-bindings.d.ts +13 -0
  967. package/dist/test/simple-context-bindings.d.ts.map +1 -0
  968. package/dist/test/simple-context-durable-objects.d.ts +6 -0
  969. package/dist/test/simple-context-durable-objects.d.ts.map +1 -0
  970. package/dist/test/simple-context-env.d.ts +35 -0
  971. package/dist/test/simple-context-env.d.ts.map +1 -0
  972. package/dist/test/simple-context-gateway-script.d.ts +2 -0
  973. package/dist/test/simple-context-gateway-script.d.ts.map +1 -0
  974. package/dist/test/simple-context-handlers.d.ts +12 -0
  975. package/dist/test/simple-context-handlers.d.ts.map +1 -0
  976. package/dist/test/simple-context-lifecycle.d.ts +32 -0
  977. package/dist/test/simple-context-lifecycle.d.ts.map +1 -0
  978. package/dist/test/simple-context-mfconfig.d.ts +7 -0
  979. package/dist/test/simple-context-mfconfig.d.ts.map +1 -0
  980. package/dist/test/simple-context-multi-worker.d.ts +16 -0
  981. package/dist/test/simple-context-multi-worker.d.ts.map +1 -0
  982. package/dist/test/simple-context-paths.d.ts +40 -0
  983. package/dist/test/simple-context-paths.d.ts.map +1 -0
  984. package/dist/test/simple-context-runtime.d.ts +19 -0
  985. package/dist/test/simple-context-runtime.d.ts.map +1 -0
  986. package/dist/test/simple-context-startup.d.ts +11 -0
  987. package/dist/test/simple-context-startup.d.ts.map +1 -0
  988. package/dist/test/simple-context-transport.d.ts +14 -0
  989. package/dist/test/simple-context-transport.d.ts.map +1 -0
  990. package/dist/test/simple-context.d.ts +7 -26
  991. package/dist/test/simple-context.d.ts.map +1 -1
  992. package/dist/test/tail.d.ts.map +1 -1
  993. package/dist/test/utilities.d.ts +13 -5
  994. package/dist/test/utilities.d.ts.map +1 -1
  995. package/dist/test/worker.d.ts +1 -1
  996. package/dist/test/worker.d.ts.map +1 -1
  997. package/dist/token-3b9wws58.js +419 -0
  998. package/dist/token-47kcz18j.js +419 -0
  999. package/dist/token-exz78pth.js +419 -0
  1000. package/dist/token-fcthx92c.js +419 -0
  1001. package/dist/token-grwp8z4q.js +419 -0
  1002. package/dist/token-jkmm44z2.js +419 -0
  1003. package/dist/token-qxtvzm3b.js +419 -0
  1004. package/dist/token-rq8mvtz9.js +419 -0
  1005. package/dist/token-sct51r47.js +419 -0
  1006. package/dist/token-sfgxcgen.js +419 -0
  1007. package/dist/transform/durable-object.d.ts.map +1 -1
  1008. package/dist/transform/worker-entrypoint.d.ts +5 -0
  1009. package/dist/transform/worker-entrypoint.d.ts.map +1 -1
  1010. package/dist/types-0qv4xces.js +572 -0
  1011. package/dist/types-2nvrs9jg.js +572 -0
  1012. package/dist/types-2pbe8kzw.js +572 -0
  1013. package/dist/types-2zyt0m43.js +572 -0
  1014. package/dist/types-4xxer9ep.js +572 -0
  1015. package/dist/types-5t5y7a5n.js +572 -0
  1016. package/dist/types-5wd2rygw.js +572 -0
  1017. package/dist/types-7j3ykgx7.js +572 -0
  1018. package/dist/types-8g78x34n.js +572 -0
  1019. package/dist/types-e6d336q3.js +572 -0
  1020. package/dist/types-hqh2fx0x.js +572 -0
  1021. package/dist/types-j12xmdnd.js +572 -0
  1022. package/dist/types-jqn26et3.js +572 -0
  1023. package/dist/types-n0mxbq26.js +572 -0
  1024. package/dist/types-naz9hvw5.js +572 -0
  1025. package/dist/{types-158m16vd.js → types-qjcd1jks.js} +245 -141
  1026. package/dist/types-r9zb8sw1.js +572 -0
  1027. package/dist/types-rv5xwgsn.js +572 -0
  1028. package/dist/types-t39njdqx.js +572 -0
  1029. package/dist/types-tkgch3xv.js +572 -0
  1030. package/dist/types-vvtb7rrh.js +572 -0
  1031. package/dist/types-w1grncdj.js +572 -0
  1032. package/dist/types-wmw49exb.js +572 -0
  1033. package/dist/types-ymxz9jga.js +572 -0
  1034. package/dist/utils/resolve-package.d.ts.map +1 -1
  1035. package/dist/utils/send-email.d.ts.map +1 -1
  1036. package/dist/utils/send-email.js +19 -0
  1037. package/dist/vite/config-file.d.ts.map +1 -1
  1038. package/dist/{src/vite → vite}/index.js +12 -9
  1039. package/dist/vite/plugin-config-hook.d.ts +28 -0
  1040. package/dist/vite/plugin-config-hook.d.ts.map +1 -0
  1041. package/dist/vite/plugin-context.d.ts +25 -0
  1042. package/dist/vite/plugin-context.d.ts.map +1 -0
  1043. package/dist/vite/plugin-durable-objects.d.ts +18 -0
  1044. package/dist/vite/plugin-durable-objects.d.ts.map +1 -0
  1045. package/dist/vite/plugin-programmatic.d.ts +44 -0
  1046. package/dist/vite/plugin-programmatic.d.ts.map +1 -0
  1047. package/dist/vite/plugin-transform.d.ts +41 -0
  1048. package/dist/vite/plugin-transform.d.ts.map +1 -0
  1049. package/dist/vite/plugin.d.ts +6 -39
  1050. package/dist/vite/plugin.d.ts.map +1 -1
  1051. package/dist/worker-18ceqscc.js +513 -0
  1052. package/dist/worker-1yqpwte2.js +513 -0
  1053. package/dist/worker-2aw27zxy.js +513 -0
  1054. package/dist/worker-45tp4a8f.js +513 -0
  1055. package/dist/worker-68zttchg.js +513 -0
  1056. package/dist/worker-729cf3fh.js +513 -0
  1057. package/dist/worker-aydzxt4f.js +513 -0
  1058. package/dist/worker-ejdxma7k.js +513 -0
  1059. package/dist/worker-entry/composed-worker.d.ts +1 -7
  1060. package/dist/worker-entry/composed-worker.d.ts.map +1 -1
  1061. package/dist/worker-entry/durable-object-discovery.d.ts +20 -0
  1062. package/dist/worker-entry/durable-object-discovery.d.ts.map +1 -0
  1063. package/dist/worker-entry/extensions.d.ts +5 -0
  1064. package/dist/worker-entry/extensions.d.ts.map +1 -0
  1065. package/dist/worker-entry/routes.d.ts +1 -1
  1066. package/dist/worker-entry/routes.d.ts.map +1 -1
  1067. package/dist/worker-entry/surface-paths.d.ts +15 -0
  1068. package/dist/worker-entry/surface-paths.d.ts.map +1 -0
  1069. package/dist/worker-entrypoint-4xp7msd7.js +16 -0
  1070. package/dist/worker-entrypoint-f1v9y4s8.js +15 -0
  1071. package/dist/worker-f6xqjg65.js +513 -0
  1072. package/dist/worker-fdnn62de.js +513 -0
  1073. package/dist/worker-frnh95rg.js +513 -0
  1074. package/dist/worker-k55nfrmp.js +513 -0
  1075. package/dist/worker-kqc6w7ry.js +513 -0
  1076. package/dist/worker-ksvcq8be.js +513 -0
  1077. package/dist/worker-mjzfstv5.js +513 -0
  1078. package/dist/worker-p4rtsndj.js +513 -0
  1079. package/dist/worker-p6d53qan.js +513 -0
  1080. package/dist/worker-qh2qbv97.js +513 -0
  1081. package/dist/worker-r234vnv9.js +513 -0
  1082. package/dist/worker-r47bv7gt.js +513 -0
  1083. package/dist/worker-s4nvbqsm.js +513 -0
  1084. package/dist/worker-ttj7vwce.js +513 -0
  1085. package/dist/worker-wv4jdneg.js +513 -0
  1086. package/dist/worker-xcbscr75.js +513 -0
  1087. package/dist/worker-ywwkf3cp.js +513 -0
  1088. package/dist/worker-z8wtk0sh.js +513 -0
  1089. package/package.json +138 -116
  1090. package/R2.md +0 -200
  1091. package/dist/account-spa7gzsn.js +0 -421
  1092. package/dist/browser-shim/worker.d.ts +0 -14
  1093. package/dist/browser-shim/worker.d.ts.map +0 -1
  1094. package/dist/build-zv25ke4s.js +0 -102
  1095. package/dist/deploy-6xmqvv06.js +0 -118
  1096. package/dist/index-0rsa2c1t.js +0 -325
  1097. package/dist/index-2q3pmzrx.js +0 -90
  1098. package/dist/index-5s1bz1e0.js +0 -202
  1099. package/dist/index-6nb7w45m.js +0 -79
  1100. package/dist/index-n932ytmq.js +0 -470
  1101. package/dist/index-tksw7gpy.js +0 -503
  1102. package/dist/index-v43z02tr.js +0 -205
  1103. package/dist/index-xdq9ery1.js +0 -664
  1104. package/dist/src/cli/index.js +0 -10
  1105. package/dist/src/cloudflare/index.js +0 -14
  1106. package/dist/src/index.js +0 -140
  1107. package/dist/src/test/index.js +0 -80
  1108. package/dist/test/multi-worker-context.d.ts +0 -114
  1109. package/dist/test/multi-worker-context.d.ts.map +0 -1
@@ -1,45 +1,66 @@
1
1
  import {
2
2
  bundleWorkerEntry,
3
3
  createDOBundler
4
- } from "./index-001mw014.js";
4
+ } from "./index-9fbtk7gv.js";
5
5
  import {
6
6
  detectViteProject,
7
7
  stopSpawnedProcessTree,
8
8
  waitForViteReady
9
9
  } from "./index-y1d8za14.js";
10
10
  import {
11
+ createCliTheme,
12
+ cyanBold,
13
+ dim,
14
+ logLine,
15
+ yellow
16
+ } from "./index-stgn34cr.js";
17
+ import"./index-3t6rypgc.js";
18
+ import {
19
+ DEFAULT_EMAIL_ENTRY_FILES,
20
+ DEFAULT_FETCH_ENTRY_FILES,
21
+ DEFAULT_QUEUE_ENTRY_FILES,
22
+ DEFAULT_SCHEDULED_ENTRY_FILES,
23
+ hasWorkerSurfacePaths,
11
24
  prepareComposedWorkerEntrypoint,
12
25
  resolveEffectiveViteProject,
26
+ resolveWorkerSurfacePaths,
13
27
  writeGeneratedViteConfig
14
- } from "./index-zvgc3e0c.js";
28
+ } from "./index-p97s12vf.js";
15
29
  import {
16
30
  discoverRoutes,
17
31
  getRouteDirectoryCandidate
18
32
  } from "./index-1p814k7s.js";
19
33
  import"./index-rbht7m9r.js";
20
34
  import"./index-9wt9x09k.js";
35
+ import {
36
+ GATEWAY_RUNTIME_JS
37
+ } from "./index-q34rvh5a.js";
21
38
  import {
22
39
  clearLocalSendEmailBindings,
23
40
  setLocalSendEmailBindings
24
- } from "./index-fef08w43.js";
25
- import"./index-5s1bz1e0.js";
41
+ } from "./index-124e9t4t.js";
42
+ import"./index-n8k8chde.js";
26
43
  import {
27
44
  getLocalD1DatabaseIdentifier,
45
+ getLocalKVNamespaceIdentifier,
46
+ getSingleBrowserBindingName,
28
47
  loadConfig,
29
48
  resolveConfigPath
30
- } from "./index-tksw7gpy.js";
31
- import"./index-v8vvsn9x.js";
32
- import"./index-xdq9ery1.js";
49
+ } from "./index-dmbdj6va.js";
50
+ import"./index-nte9n8w9.js";
51
+ import"./index-z9fjnwa8.js";
52
+ import"./index-p296ban8.js";
53
+ import"./index-tte89s31.js";
33
54
  import {
34
55
  __require
35
56
  } from "./index-37x76zdn.js";
36
57
 
37
58
  // src/cli/commands/dev.ts
38
59
  import { createConsola } from "consola";
39
- import { relative, resolve as resolve2 } from "pathe";
60
+ import { relative, resolve as resolve4 } from "pathe";
40
61
 
41
62
  // src/dev-server/server.ts
42
- import { dirname, resolve } from "pathe";
63
+ import { resolve as resolve3 } from "pathe";
43
64
 
44
65
  // src/browser-shim/server.ts
45
66
  import { homedir } from "node:os";
@@ -53,8 +74,6 @@ import {
53
74
  detectBrowserPlatform,
54
75
  Browser as BrowserType
55
76
  } from "@puppeteer/browsers";
56
- var sessions = new Map;
57
- var history = [];
58
77
  var cachedExecutablePath = null;
59
78
  async function ensureChrome(cacheDir, logger) {
60
79
  if (cachedExecutablePath && existsSync(cachedExecutablePath)) {
@@ -94,8 +113,45 @@ function createBrowserShim(options = {}) {
94
113
  } = options;
95
114
  let server = null;
96
115
  let executablePath = null;
116
+ const sessions = new Map;
117
+ const history = [];
97
118
  let WebSocketServerClass = null;
98
119
  let WebSocketClass = null;
120
+ const maxRequestBodyBytes = 1024 * 1024;
121
+ function getRequestOrigin(req) {
122
+ const origin = req.headers.origin;
123
+ if (typeof origin === "string") {
124
+ return origin;
125
+ }
126
+ if (Array.isArray(origin) && origin[0]) {
127
+ return origin[0];
128
+ }
129
+ return null;
130
+ }
131
+ function isLoopbackOrigin(origin) {
132
+ try {
133
+ const url = new URL(origin);
134
+ return url.hostname === "127.0.0.1" || url.hostname === "localhost" || url.hostname === "::1" || url.hostname === "[::1]";
135
+ } catch {
136
+ return false;
137
+ }
138
+ }
139
+ function applyCorsHeaders(req, res) {
140
+ const origin = getRequestOrigin(req);
141
+ if (!origin) {
142
+ return true;
143
+ }
144
+ if (!isLoopbackOrigin(origin)) {
145
+ res.writeHead(403, { "Content-Type": "application/json" });
146
+ res.end(JSON.stringify({ error: "Forbidden origin" }));
147
+ return false;
148
+ }
149
+ res.setHeader("Access-Control-Allow-Origin", origin);
150
+ res.setHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
151
+ res.setHeader("Access-Control-Allow-Headers", "Content-Type");
152
+ res.setHeader("Vary", "Origin");
153
+ return true;
154
+ }
99
155
  async function acquireSession(acquireOptions) {
100
156
  if (!executablePath) {
101
157
  throw new Error("Chrome not initialized");
@@ -174,9 +230,9 @@ function createBrowserShim(options = {}) {
174
230
  const url = new URL(req.url || "/", `http://${host}:${port}`);
175
231
  const method = req.method || "GET";
176
232
  logger?.debug(`[BrowserShim] ${method} ${url.pathname}${url.search ? url.search : ""}`);
177
- res.setHeader("Access-Control-Allow-Origin", "*");
178
- res.setHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
179
- res.setHeader("Access-Control-Allow-Headers", "Content-Type");
233
+ if (!applyCorsHeaders(req, res)) {
234
+ return;
235
+ }
180
236
  if (method === "OPTIONS") {
181
237
  res.writeHead(204);
182
238
  res.end();
@@ -264,7 +320,16 @@ function createBrowserShim(options = {}) {
264
320
  function readBody(req) {
265
321
  return new Promise((resolve, reject) => {
266
322
  const chunks = [];
267
- req.on("data", (chunk) => chunks.push(chunk));
323
+ let totalBytes = 0;
324
+ req.on("data", (chunk) => {
325
+ totalBytes += chunk.length;
326
+ if (totalBytes > maxRequestBodyBytes) {
327
+ req.destroy();
328
+ reject(new Error(`Request body exceeds ${maxRequestBodyBytes} bytes`));
329
+ return;
330
+ }
331
+ chunks.push(chunk);
332
+ });
268
333
  req.on("end", () => resolve(Buffer.concat(chunks).toString()));
269
334
  req.on("error", reject);
270
335
  });
@@ -298,6 +363,14 @@ function createBrowserShim(options = {}) {
298
363
  if (WebSocketServerClass) {
299
364
  const wss = new WebSocketServerClass({ noServer: true });
300
365
  server.on("upgrade", (request, socket, head) => {
366
+ const origin = getRequestOrigin(request);
367
+ if (origin && !isLoopbackOrigin(origin)) {
368
+ socket.write(`HTTP/1.1 403 Forbidden\r
369
+ \r
370
+ `);
371
+ socket.destroy();
372
+ return;
373
+ }
301
374
  const url = new URL(request.url || "/", `http://${host}:${port}`);
302
375
  if (url.pathname !== "/v1/connectDevtools") {
303
376
  socket.destroy();
@@ -415,7 +488,7 @@ function createBrowserShim(options = {}) {
415
488
  logger?.success(`Browser shim server ready on http://${host}:${port}`);
416
489
  }
417
490
  async function stop() {
418
- for (const sessionId of sessions.keys()) {
491
+ for (const sessionId of Array.from(sessions.keys())) {
419
492
  await closeSession(sessionId, 3, "ServerShutdown");
420
493
  }
421
494
  if (server) {
@@ -812,186 +885,129 @@ async function checkRemoteBindingRequirements(config) {
812
885
  };
813
886
  }
814
887
 
815
- // src/dev-server/miniflare-log.ts
816
- var ANSI_ESCAPE_REGEX = /\u001B\[[0-9;]*m/g;
817
- var COMPATIBILITY_DATE_FALLBACK_REGEX = /^The latest compatibility date supported by the installed Cloudflare Workers Runtime is "([^"]+)", but you've requested "([^"]+)"\. Falling back to "([^"]+)"\.\.\.$/;
818
- function normalizeMiniflareMessage(message) {
819
- return message.replace(ANSI_ESCAPE_REGEX, "").replace(/\s+/g, " ").trim();
820
- }
821
- function formatCompatibilityDateFallbackNotice(message) {
822
- const normalizedMessage = normalizeMiniflareMessage(message);
823
- const match = COMPATIBILITY_DATE_FALLBACK_REGEX.exec(normalizedMessage);
824
- if (!match) {
825
- return null;
826
- }
827
- const [, _supportedDate, requestedDate, fallbackDate] = match;
828
- return `Using latest supported Cloudflare Workers Runtime compatibility date ${fallbackDate} (requested ${requestedDate})`;
829
- }
830
- function createCompatibilityAwareMiniflareLog(BaseLog, level, logger) {
831
- const log = new BaseLog(level);
832
- const originalWarn = log.warn.bind(log);
833
- const originalInfo = log.info.bind(log);
834
- log.warn = (message) => {
835
- const notice = formatCompatibilityDateFallbackNotice(message);
836
- if (!notice) {
837
- originalWarn(message);
838
- return;
839
- }
840
- if (logger) {
841
- logger.info(notice);
842
- return;
843
- }
844
- originalInfo(notice);
845
- };
846
- return log;
847
- }
848
-
849
- // src/dev-server/runtime-stdio.ts
850
- import { createInterface } from "node:readline";
851
- function writeStdout(logger, message) {
852
- if (typeof logger?.log === "function") {
853
- logger.log(message);
854
- return;
855
- }
856
- if (typeof logger?.info === "function") {
857
- logger.info(message);
858
- return;
859
- }
860
- console.log(message);
861
- }
862
- function writeStderr(logger, message) {
863
- if (typeof logger?.error === "function") {
864
- logger.error(message);
865
- return;
866
- }
867
- console.error(message);
868
- }
869
- function createRuntimeStdioForwarder(logger) {
870
- return (stdout, stderr) => {
871
- createInterface({ input: stdout }).on("line", (data) => {
872
- writeStdout(logger, data);
873
- });
874
- createInterface({ input: stderr }).on("line", (data) => {
875
- writeStderr(logger, data);
876
- });
877
- };
888
+ // src/dev-server/d1-migrations.ts
889
+ import { resolve } from "pathe";
890
+ var MIGRATION_RETRY_DELAYS_MS = [500, 1000, 1500, 2000];
891
+ function collectMigrationStatements(sql) {
892
+ const cleanedSql = sql.split(`
893
+ `).filter((line) => !line.trim().startsWith("--")).join(`
894
+ `);
895
+ return cleanedSql.split(";").map((statement) => statement.trim()).filter((statement) => statement.length > 0);
878
896
  }
879
-
880
- // src/dev-server/server.ts
881
- var DEFAULT_FETCH_ENTRY_FILES = [
882
- "src/fetch.ts",
883
- "src/fetch.js",
884
- "src/fetch.mts",
885
- "src/fetch.mjs"
886
- ];
887
- var DEFAULT_QUEUE_ENTRY_FILES = [
888
- "src/queue.ts",
889
- "src/queue.js",
890
- "src/queue.mts",
891
- "src/queue.mjs"
892
- ];
893
- var DEFAULT_SCHEDULED_ENTRY_FILES = [
894
- "src/scheduled.ts",
895
- "src/scheduled.js",
896
- "src/scheduled.mts",
897
- "src/scheduled.mjs"
898
- ];
899
- var DEFAULT_EMAIL_ENTRY_FILES = [
900
- "src/email.ts",
901
- "src/email.js",
902
- "src/email.mts",
903
- "src/email.mjs"
904
- ];
905
- var DEFAULT_TRANSPORT_ENTRY_FILES = [
906
- "src/transport.ts",
907
- "src/transport.js",
908
- "src/transport.mts",
909
- "src/transport.mjs"
910
- ];
911
- var INTERNAL_APP_SERVICE_BINDING = "__DEVFLARE_APP";
912
- function formatErrorMessage(error) {
897
+ function getErrorMessage(error) {
913
898
  return error instanceof Error ? error.message : String(error);
914
899
  }
915
- async function resolveWorkerHandlerPath(cwd, configuredPath, defaultEntries) {
916
- if (configuredPath === false) {
917
- return null;
918
- }
919
- const fs = await import("node:fs/promises");
920
- const candidates = new Set;
921
- if (typeof configuredPath === "string" && configuredPath) {
922
- candidates.add(configuredPath);
923
- }
924
- for (const defaultEntry of defaultEntries) {
925
- candidates.add(defaultEntry);
926
- }
927
- for (const candidate of candidates) {
928
- const absolutePath = resolve(cwd, candidate);
900
+ async function waitForRetry(delayMs) {
901
+ await new Promise((resolvePromise) => setTimeout(resolvePromise, delayMs));
902
+ }
903
+ async function applyMigrationsToBinding(options) {
904
+ const { bindingName, statements, miniflarePort, logger } = options;
905
+ let lastError;
906
+ for (let attempt = 0;attempt <= MIGRATION_RETRY_DELAYS_MS.length; attempt++) {
907
+ if (attempt > 0) {
908
+ await waitForRetry(MIGRATION_RETRY_DELAYS_MS[attempt - 1]);
909
+ }
929
910
  try {
930
- await fs.access(absolutePath);
931
- return absolutePath;
932
- } catch {
933
- continue;
911
+ const response = await fetch(`http://127.0.0.1:${miniflarePort}/_devflare/migrate`, {
912
+ method: "POST",
913
+ headers: { "Content-Type": "application/json" },
914
+ body: JSON.stringify({ bindingName, statements })
915
+ });
916
+ if (!response.ok) {
917
+ const text = await response.text();
918
+ throw new Error(`HTTP ${response.status}: ${text}`);
919
+ }
920
+ const result = await response.json();
921
+ if (result.success) {
922
+ logger?.success(`D1 migrations applied to ${bindingName}`);
923
+ return;
924
+ }
925
+ throw new Error(result.error || "Unknown error");
926
+ } catch (error) {
927
+ lastError = error;
934
928
  }
935
929
  }
936
- return null;
937
- }
938
- async function resolveMainWorkerSurfacePaths(cwd, config) {
939
- return {
940
- fetch: await resolveWorkerHandlerPath(cwd, config.files?.fetch, DEFAULT_FETCH_ENTRY_FILES),
941
- queue: await resolveWorkerHandlerPath(cwd, config.files?.queue, DEFAULT_QUEUE_ENTRY_FILES),
942
- scheduled: await resolveWorkerHandlerPath(cwd, config.files?.scheduled, DEFAULT_SCHEDULED_ENTRY_FILES),
943
- email: await resolveWorkerHandlerPath(cwd, config.files?.email, DEFAULT_EMAIL_ENTRY_FILES)
944
- };
945
- }
946
- function hasWorkerSurfacePaths(surfacePaths) {
947
- return Object.values(surfacePaths).some((surfacePath) => typeof surfacePath === "string" && surfacePath.length > 0);
930
+ logger?.warn(`Failed to apply migrations to ${bindingName}: ${getErrorMessage(lastError)}`);
948
931
  }
949
- function addWorkerWatchRoots(roots, cwd, configuredPath, defaultEntries) {
950
- if (configuredPath === false || configuredPath === null) {
932
+ async function runD1Migrations(options) {
933
+ const { cwd, config, miniflarePort, logger } = options;
934
+ if (!config?.bindings?.d1) {
951
935
  return;
952
936
  }
953
- if (typeof configuredPath === "string" && configuredPath) {
954
- roots.add(dirname(resolve(cwd, configuredPath)));
937
+ const { existsSync: existsSync2, readdirSync, readFileSync, statSync } = await import("node:fs");
938
+ const migrationsDir = resolve(cwd, "migrations");
939
+ if (!existsSync2(migrationsDir)) {
940
+ logger?.debug("No migrations/ directory found, skipping D1 migrations");
955
941
  return;
956
942
  }
957
- for (const defaultEntry of defaultEntries) {
958
- roots.add(dirname(resolve(cwd, defaultEntry)));
959
- }
960
- }
961
- function collectWorkerWatchRoots(cwd, config, mainWorkerSurfacePaths) {
962
- const roots = new Set;
963
- for (const surfacePath of Object.values(mainWorkerSurfacePaths)) {
964
- if (surfacePath) {
965
- roots.add(dirname(surfacePath));
943
+ const sharedFiles = readdirSync(migrationsDir).filter((file) => file.endsWith(".sql")).sort();
944
+ let sharedStatements = null;
945
+ if (sharedFiles.length > 0) {
946
+ sharedStatements = [];
947
+ for (const file of sharedFiles) {
948
+ const sql = readFileSync(resolve(migrationsDir, file), "utf-8");
949
+ const fileStatements = collectMigrationStatements(sql);
950
+ sharedStatements.push(...fileStatements);
951
+ logger?.debug(`Shared file ${file}: ${fileStatements.length} statement(s)`);
966
952
  }
967
953
  }
968
- addWorkerWatchRoots(roots, cwd, config.files?.fetch, DEFAULT_FETCH_ENTRY_FILES);
969
- addWorkerWatchRoots(roots, cwd, config.files?.queue, DEFAULT_QUEUE_ENTRY_FILES);
970
- addWorkerWatchRoots(roots, cwd, config.files?.scheduled, DEFAULT_SCHEDULED_ENTRY_FILES);
971
- addWorkerWatchRoots(roots, cwd, config.files?.email, DEFAULT_EMAIL_ENTRY_FILES);
972
- addWorkerWatchRoots(roots, cwd, config.files?.transport, DEFAULT_TRANSPORT_ENTRY_FILES);
973
- const routeDirectory = getRouteDirectoryCandidate(cwd, config);
974
- if (routeDirectory) {
975
- roots.add(routeDirectory.absoluteDir);
954
+ for (const [bindingName] of Object.entries(config.bindings.d1)) {
955
+ const perBindingDir = resolve(migrationsDir, bindingName);
956
+ const hasPerBindingDir = existsSync2(perBindingDir) && statSync(perBindingDir).isDirectory();
957
+ let statements = [];
958
+ let fileCount = 0;
959
+ let sourceLabel = "";
960
+ if (hasPerBindingDir) {
961
+ const perBindingFiles = readdirSync(perBindingDir).filter((file) => file.endsWith(".sql")).sort();
962
+ if (perBindingFiles.length === 0) {
963
+ logger?.debug(`No SQL migration files in migrations/${bindingName}/, skipping ${bindingName}`);
964
+ continue;
965
+ }
966
+ for (const file of perBindingFiles) {
967
+ const sql = readFileSync(resolve(perBindingDir, file), "utf-8");
968
+ const fileStatements = collectMigrationStatements(sql);
969
+ statements.push(...fileStatements);
970
+ logger?.debug(`File ${bindingName}/${file}: ${fileStatements.length} statement(s)`);
971
+ }
972
+ fileCount = perBindingFiles.length;
973
+ sourceLabel = `migrations/${bindingName}/`;
974
+ } else if (sharedStatements !== null) {
975
+ statements = sharedStatements;
976
+ fileCount = sharedFiles.length;
977
+ sourceLabel = "migrations/ [shared fallback]";
978
+ } else {
979
+ logger?.debug(`No migrations found for ${bindingName}, skipping`);
980
+ continue;
981
+ }
982
+ logger?.info(`Running ${fileCount} D1 migration(s) for ${bindingName} (from ${sourceLabel})`);
983
+ if (statements.length === 0) {
984
+ logger?.debug(`No executable D1 migration statements for ${bindingName}`);
985
+ continue;
986
+ }
987
+ await applyMigrationsToBinding({
988
+ bindingName,
989
+ statements,
990
+ miniflarePort,
991
+ logger
992
+ });
976
993
  }
977
- return [...roots];
978
994
  }
995
+
996
+ // src/dev-server/gateway-script.ts
979
997
  function getGatewayScript(wsRoutes = [], debug = false, appServiceBindingName = null) {
980
998
  const wsRoutesJson = JSON.stringify(wsRoutes);
981
999
  const appServiceBindingJson = JSON.stringify(appServiceBindingName);
982
1000
  return `
983
- // Bridge Gateway Worker — RPC Handler
984
- // Handles all binding operations via WebSocket RPC
985
- // Also handles WebSocket proxying to Durable Objects
1001
+ ${GATEWAY_RUNTIME_JS}
1002
+
1003
+ // Bridge Gateway Worker Dev Server
1004
+ // Handles WebSocket RPC, DO WS proxying, HTTP transfer, D1 migration, email ingest
986
1005
 
987
1006
  const DEBUG = ${debug}
988
1007
  const log = (...args) => DEBUG && console.log('[Gateway]', ...args)
989
1008
 
990
- const activeStreams = new Map()
991
1009
  const wsProxies = new Map()
992
- const incomingStreams = new Map()
993
1010
 
994
- // WebSocket routes configuration (injected at build time)
995
1011
  const WS_ROUTES = ${wsRoutesJson}
996
1012
  const APP_SERVICE_BINDING = ${appServiceBindingJson}
997
1013
 
@@ -1000,32 +1016,26 @@ export default {
1000
1016
  const url = new URL(request.url)
1001
1017
  const isWebSocket = request.headers.get('Upgrade') === 'websocket'
1002
1018
 
1003
- // Check if this is a WebSocket request matching a DO route
1004
1019
  if (isWebSocket) {
1005
1020
  const matchedRoute = matchWsRoute(url.pathname)
1006
1021
  if (matchedRoute) {
1007
1022
  return handleDoWebSocket(request, env, url, matchedRoute)
1008
1023
  }
1009
- // Otherwise handle as bridge RPC WebSocket
1010
1024
  return handleBridgeWebSocket(request, env, ctx)
1011
1025
  }
1012
1026
 
1013
- // HTTP endpoint for large file transfers
1014
1027
  if (url.pathname.startsWith('/_devflare/transfer/')) {
1015
1028
  return handleHttpTransfer(request, env, url)
1016
1029
  }
1017
1030
 
1018
- // D1 migration endpoint
1019
1031
  if (url.pathname === '/_devflare/migrate' && request.method === 'POST') {
1020
1032
  return handleMigration(request, env)
1021
1033
  }
1022
1034
 
1023
- // Email handler endpoint (simulates incoming email)
1024
1035
  if (url.pathname === '/cdn-cgi/handler/email' && request.method === 'POST') {
1025
1036
  return handleEmailIncoming(request, env, ctx, url)
1026
1037
  }
1027
1038
 
1028
- // Health check
1029
1039
  if (url.pathname === '/_devflare/health') {
1030
1040
  return new Response(JSON.stringify({
1031
1041
  ok: true,
@@ -1045,7 +1055,6 @@ export default {
1045
1055
  }
1046
1056
  }
1047
1057
 
1048
- // Handle D1 migrations
1049
1058
  async function handleMigration(request, env) {
1050
1059
  try {
1051
1060
  const { bindingName, statements } = await request.json()
@@ -1072,28 +1081,26 @@ async function handleMigration(request, env) {
1072
1081
  }
1073
1082
  }
1074
1083
  }
1075
-
1076
- // Verify table exists after migration
1084
+
1077
1085
  try {
1078
1086
  const tables = await db.prepare("SELECT name FROM sqlite_master WHERE type='table'").all()
1079
1087
  log('Tables after migration:', JSON.stringify(tables))
1080
1088
  } catch (e) {
1081
1089
  log('Error listing tables:', e.message)
1082
1090
  }
1083
-
1091
+
1084
1092
  return Response.json({ success: true, results })
1085
1093
  } catch (error) {
1086
1094
  return Response.json({ error: error?.message || String(error) }, { status: 500 })
1087
1095
  }
1088
1096
  }
1089
1097
 
1090
- // Handle incoming email (simulates email() handler)
1091
1098
  async function handleEmailIncoming(request, env, ctx, url) {
1092
1099
  try {
1093
1100
  const from = url.searchParams.get('from') || 'unknown@example.com'
1094
1101
  const to = url.searchParams.get('to') || 'worker@example.com'
1095
1102
  const rawBody = await request.text()
1096
-
1103
+
1097
1104
  log('Email incoming:', { from, to, bodyLength: rawBody.length })
1098
1105
 
1099
1106
  if (APP_SERVICE_BINDING) {
@@ -1115,7 +1122,7 @@ async function handleEmailIncoming(request, env, ctx, url) {
1115
1122
  }
1116
1123
  }
1117
1124
  }
1118
-
1125
+
1119
1126
  return new Response(JSON.stringify({ ok: true, from, to }), {
1120
1127
  headers: { 'Content-Type': 'application/json' }
1121
1128
  })
@@ -1125,10 +1132,8 @@ async function handleEmailIncoming(request, env, ctx, url) {
1125
1132
  }
1126
1133
  }
1127
1134
 
1128
- // Match URL path against configured WS routes
1129
1135
  function matchWsRoute(pathname) {
1130
1136
  for (const route of WS_ROUTES) {
1131
- // Simple exact match for now (could add glob/regex later)
1132
1137
  if (pathname === route.pattern || pathname.startsWith(route.pattern + '?')) {
1133
1138
  return route
1134
1139
  }
@@ -1136,31 +1141,23 @@ function matchWsRoute(pathname) {
1136
1141
  return null
1137
1142
  }
1138
1143
 
1139
- // Handle WebSocket upgrade that should go to a Durable Object
1140
1144
  async function handleDoWebSocket(request, env, url, route) {
1141
1145
  try {
1142
- // Get the DO namespace
1143
1146
  const namespace = env[route.doNamespace]
1144
1147
  if (!namespace) {
1145
1148
  console.error('[Gateway] DO namespace not found:', route.doNamespace)
1146
1149
  return new Response('DO namespace not found: ' + route.doNamespace, { status: 500 })
1147
1150
  }
1148
1151
 
1149
- // Get the instance ID from query params
1150
1152
  const idValue = url.searchParams.get(route.idParam) || 'default'
1151
-
1152
- // Get or create DO instance
1153
1153
  const doId = namespace.idFromName(idValue)
1154
1154
  const stub = namespace.get(doId)
1155
1155
 
1156
- // Construct the forward URL for the DO
1157
1156
  const forwardUrl = new URL(route.forwardPath, url.origin)
1158
- // Forward all query params
1159
1157
  url.searchParams.forEach((v, k) => forwardUrl.searchParams.set(k, v))
1160
1158
 
1161
1159
  log('Forwarding WebSocket to DO:', route.doNamespace, 'id:', idValue, 'path:', forwardUrl.pathname)
1162
1160
 
1163
- // Forward the request to the DO
1164
1161
  return stub.fetch(forwardUrl.toString(), {
1165
1162
  method: request.method,
1166
1163
  headers: request.headers
@@ -1171,7 +1168,6 @@ async function handleDoWebSocket(request, env, url, route) {
1171
1168
  }
1172
1169
  }
1173
1170
 
1174
- // Handle bridge RPC WebSocket (for Node.js Vite server communication)
1175
1171
  function handleBridgeWebSocket(request, env, ctx) {
1176
1172
  const { 0: client, 1: server } = new WebSocketPair()
1177
1173
  server.accept()
@@ -1187,7 +1183,6 @@ function handleBridgeWebSocket(request, env, ctx) {
1187
1183
  })
1188
1184
 
1189
1185
  server.addEventListener('close', () => {
1190
- activeStreams.clear()
1191
1186
  wsProxies.clear()
1192
1187
  })
1193
1188
 
@@ -1218,180 +1213,11 @@ async function handleRpcCall(msg, ws, env, ctx) {
1218
1213
  ws.send(JSON.stringify({
1219
1214
  t: 'rpc.err',
1220
1215
  id: msg.id,
1221
- error: { code: error.code || 'INTERNAL_ERROR', message: error.message }
1216
+ error: { code: error?.code || 'INTERNAL_ERROR', message: error?.message || String(error) }
1222
1217
  }))
1223
1218
  }
1224
1219
  }
1225
1220
 
1226
- async function executeRpcMethod(method, params, env, ctx) {
1227
- const parts = method.split('.')
1228
- const bindingName = parts[0]
1229
- const operation = parts.slice(1).join('.')
1230
- const binding = env[bindingName]
1231
- const RAW_EMAIL = 'EmailMessage::raw'
1232
-
1233
- if (!binding) throw new Error('Binding not found: ' + bindingName)
1234
-
1235
- // KV operations
1236
- if (operation === 'get') return binding.get(params[0], params[1])
1237
- if (operation === 'put') return binding.put(params[0], params[1], params[2])
1238
- if (operation === 'delete') return binding.delete(params[0])
1239
- if (operation === 'list') return binding.list(params[0])
1240
- if (operation === 'getWithMetadata') return binding.getWithMetadata(params[0], params[1])
1241
-
1242
- // R2 operations
1243
- if (operation === 'head') return serializeR2Object(await binding.head(params[0]))
1244
- if (operation === 'r2.get') {
1245
- const obj = await binding.get(params[0], params[1])
1246
- if (!obj) return null
1247
- const body = await obj.arrayBuffer()
1248
- return serializeR2ObjectBody(obj, arrayBufferToBase64(body))
1249
- }
1250
- if (operation === 'r2.put') {
1251
- // Deserialize the value if it's a serialized ArrayBuffer/Uint8Array
1252
- let value = params[1]
1253
- if (value && typeof value === 'object') {
1254
- if (value.__type === 'ArrayBuffer') {
1255
- value = base64ToArrayBuffer(value.data)
1256
- } else if (value.__type === 'Uint8Array') {
1257
- value = base64ToArrayBuffer(value.data)
1258
- }
1259
- }
1260
- return serializeR2Object(await binding.put(params[0], value, params[2]))
1261
- }
1262
- if (operation === 'r2.delete') return binding.delete(params[0])
1263
- if (operation === 'r2.list') return serializeR2Objects(await binding.list(params[0]))
1264
-
1265
- // D1 operations
1266
- if (operation === 'exec') return binding.exec(params[0])
1267
- if (operation.startsWith('stmt.')) {
1268
- log('D1 RPC:', bindingName, operation, 'sql:', String(params[0]).slice(0, 60))
1269
- const mode = operation.split('.')[1]
1270
- const [sql, ...rest] = params
1271
-
1272
- // For first/raw, the last element is the column/options parameter (may be undefined)
1273
- // For all/run, rest contains only bindings
1274
- let bindings = rest
1275
- let extraParam = undefined
1276
-
1277
- if (mode === 'first' || mode === 'raw') {
1278
- // Last element is the column/options (may be undefined)
1279
- extraParam = rest[rest.length - 1]
1280
- bindings = rest.slice(0, -1)
1281
- }
1282
-
1283
- let stmt = binding.prepare(sql)
1284
- if (bindings.length > 0) stmt = stmt.bind(...bindings)
1285
-
1286
- if (mode === 'first') {
1287
- // Only pass column if it's a non-empty string
1288
- if (typeof extraParam === 'string' && extraParam.length > 0) {
1289
- return stmt.first(extraParam)
1290
- }
1291
- return stmt.first()
1292
- }
1293
- if (mode === 'all') return stmt.all()
1294
- if (mode === 'run') return stmt.run()
1295
- if (mode === 'raw') return stmt.raw(extraParam)
1296
- }
1297
-
1298
- // DO operations
1299
- if (operation === 'idFromName') {
1300
- const id = binding.idFromName(params[0])
1301
- return { __type: 'DOId', hex: id.toString() }
1302
- }
1303
- if (operation === 'idFromString') {
1304
- const id = binding.idFromString(params[0])
1305
- return { __type: 'DOId', hex: id.toString() }
1306
- }
1307
- if (operation === 'newUniqueId') {
1308
- const id = binding.newUniqueId(params[0])
1309
- return { __type: 'DOId', hex: id.toString() }
1310
- }
1311
- if (operation === 'stub.fetch') {
1312
- const [, serializedId, serializedReq] = params
1313
- log('stub.fetch request:', {
1314
- url: serializedReq.url,
1315
- method: serializedReq.method,
1316
- headers: serializedReq.headers,
1317
- hasBody: !!serializedReq.body
1318
- })
1319
- const id = binding.idFromString(serializedId.hex)
1320
- const stub = binding.get(id)
1321
- try {
1322
- const response = await stub.fetch(new Request(serializedReq.url, {
1323
- method: serializedReq.method,
1324
- headers: serializedReq.headers,
1325
- body: serializedReq.body?.type === 'bytes' ? base64ToArrayBuffer(serializedReq.body.data) : undefined
1326
- }))
1327
- // Clone to read body for logging if there's an error
1328
- const cloned = response.clone()
1329
- const serialized = await serializeResponse(response)
1330
- log('stub.fetch response:', {
1331
- status: serialized.status,
1332
- headers: serialized.headers,
1333
- bodyLength: serialized.body?.data?.length || 0
1334
- })
1335
- // If 500, log the body content
1336
- if (response.status >= 400) {
1337
- const errBody = await cloned.text()
1338
- log('Error response body:', errBody)
1339
- }
1340
- return serialized
1341
- } catch (err) {
1342
- console.error('[Gateway] stub.fetch error:', err)
1343
- throw err
1344
- }
1345
- }
1346
- if (operation === 'stub.rpc') {
1347
- const [, serializedId, methodName, args] = params
1348
- const id = binding.idFromString(serializedId.hex)
1349
- const stub = binding.get(id)
1350
- const response = await stub.fetch(new Request('http://do/_rpc', {
1351
- method: 'POST',
1352
- headers: { 'Content-Type': 'application/json' },
1353
- body: JSON.stringify({ method: methodName, params: args })
1354
- }))
1355
- const result = await response.json()
1356
- if (!result.ok) throw new Error(result.error?.message || 'RPC failed')
1357
- return result.result
1358
- }
1359
-
1360
- // Queue operations
1361
- if (operation === 'send') return binding.send(params[0], params[1])
1362
- if (operation === 'sendBatch') return binding.sendBatch(params[0], params[1])
1363
-
1364
- // Email send operations (send_email binding)
1365
- if (operation === 'email.send') {
1366
- const message = params[0]
1367
- log('Email send:', { from: message?.from, to: message?.to })
1368
- if (binding && typeof binding.send === 'function') {
1369
- if (message && typeof message === 'object' && 'from' in message && 'to' in message && 'raw' in message) {
1370
- return binding.send({
1371
- from: message.from,
1372
- to: message.to,
1373
- [RAW_EMAIL]: createEmailMessageRaw(message.raw)
1374
- })
1375
- }
1376
- return binding.send(message)
1377
- }
1378
- // Return success even if no real binding (simulated)
1379
- return { ok: true, simulated: true }
1380
- }
1381
-
1382
- throw new Error('Unknown operation: ' + method)
1383
- }
1384
-
1385
- function createEmailMessageRaw(raw) {
1386
- if (typeof raw === 'string' || raw instanceof ReadableStream) {
1387
- return raw
1388
- }
1389
- if (raw instanceof ArrayBuffer || raw instanceof Uint8Array) {
1390
- return new Response(raw).body
1391
- }
1392
- throw new Error('Unsupported EmailMessage raw payload')
1393
- }
1394
-
1395
1221
  async function handleWsOpen(msg, ws, env) {
1396
1222
  try {
1397
1223
  const binding = env[msg.target.binding]
@@ -1448,7 +1274,7 @@ async function handleHttpTransfer(request, env, url) {
1448
1274
 
1449
1275
  if (request.method === 'PUT' || request.method === 'POST') {
1450
1276
  const result = await bucket.put(key, request.body)
1451
- return new Response(JSON.stringify(result), { headers: { 'Content-Type': 'application/json' } })
1277
+ return new Response(JSON.stringify(serializeR2Object(result)), { headers: { 'Content-Type': 'application/json' } })
1452
1278
  }
1453
1279
 
1454
1280
  if (request.method === 'GET') {
@@ -1464,71 +1290,253 @@ async function handleHttpTransfer(request, env, url) {
1464
1290
 
1465
1291
  return new Response('Method not allowed', { status: 405 })
1466
1292
  }
1293
+ `;
1294
+ }
1467
1295
 
1468
- // Helpers
1469
- function serializeR2Object(obj) {
1470
- if (!obj) return null
1471
- return {
1472
- __type: 'R2Object',
1473
- key: obj.key,
1474
- version: obj.version,
1475
- size: obj.size,
1476
- etag: obj.etag,
1477
- httpEtag: obj.httpEtag,
1478
- checksums: obj.checksums,
1479
- uploaded: obj.uploaded?.toISOString(),
1480
- httpMetadata: obj.httpMetadata,
1481
- customMetadata: obj.customMetadata,
1482
- range: obj.range,
1483
- storageClass: obj.storageClass
1484
- }
1296
+ // src/dev-server/miniflare-log.ts
1297
+ var ANSI_ESCAPE_REGEX = /\u001B\[[0-9;]*m/g;
1298
+ var COMPATIBILITY_DATE_FALLBACK_REGEX = /^The latest compatibility date supported by the installed Cloudflare Workers Runtime is "([^"]+)", but you've requested "([^"]+)"\. Falling back to "([^"]+)"\.\.\.$/;
1299
+ function normalizeMiniflareMessage(message) {
1300
+ return message.replace(ANSI_ESCAPE_REGEX, "").replace(/\s+/g, " ").trim();
1485
1301
  }
1486
- function serializeR2ObjectBody(obj, bodyData) {
1487
- if (!obj) return null
1488
- return {
1489
- __type: 'R2ObjectBody',
1490
- key: obj.key,
1491
- version: obj.version,
1492
- size: obj.size,
1493
- etag: obj.etag,
1494
- httpEtag: obj.httpEtag,
1495
- checksums: obj.checksums,
1496
- uploaded: obj.uploaded?.toISOString(),
1497
- httpMetadata: obj.httpMetadata,
1498
- customMetadata: obj.customMetadata,
1499
- range: obj.range,
1500
- storageClass: obj.storageClass,
1501
- bodyData
1502
- }
1302
+ function formatCompatibilityDateFallbackNotice(message) {
1303
+ const normalizedMessage = normalizeMiniflareMessage(message);
1304
+ const match = COMPATIBILITY_DATE_FALLBACK_REGEX.exec(normalizedMessage);
1305
+ if (!match) {
1306
+ return null;
1307
+ }
1308
+ const [, _supportedDate, requestedDate, fallbackDate] = match;
1309
+ return `Using latest supported Cloudflare Workers Runtime compatibility date ${fallbackDate} (requested ${requestedDate})`;
1503
1310
  }
1504
- function serializeR2Objects(result) {
1505
- if (!result) return null
1506
- return { objects: result.objects.map(serializeR2Object), truncated: result.truncated, cursor: result.cursor }
1311
+ function createCompatibilityAwareMiniflareLog(BaseLog, level, logger) {
1312
+ const log = new BaseLog(level);
1313
+ const originalWarn = log.warn.bind(log);
1314
+ const originalInfo = log.info.bind(log);
1315
+ log.warn = (message) => {
1316
+ const notice = formatCompatibilityDateFallbackNotice(message);
1317
+ if (!notice) {
1318
+ originalWarn(message);
1319
+ return;
1320
+ }
1321
+ if (logger) {
1322
+ logger.info(notice);
1323
+ return;
1324
+ }
1325
+ originalInfo(notice);
1326
+ };
1327
+ return log;
1507
1328
  }
1508
- async function serializeResponse(response) {
1509
- // Read body as bytes and encode as base64
1510
- let body = null
1511
- if (response.body) {
1512
- const bytes = await response.arrayBuffer()
1513
- if (bytes.byteLength > 0) {
1514
- body = { type: 'bytes', data: arrayBufferToBase64(bytes) }
1515
- }
1516
- }
1517
- return { status: response.status, statusText: response.statusText, headers: [...response.headers.entries()], body }
1329
+
1330
+ // src/dev-server/runtime-stdio.ts
1331
+ import { createInterface } from "node:readline";
1332
+ function writeStdout(logger, message) {
1333
+ if (typeof logger?.log === "function") {
1334
+ logger.log(message);
1335
+ return;
1336
+ }
1337
+ if (typeof logger?.info === "function") {
1338
+ logger.info(message);
1339
+ return;
1340
+ }
1341
+ console.log(message);
1518
1342
  }
1519
- function arrayBufferToBase64(buffer) {
1520
- const bytes = new Uint8Array(buffer)
1521
- let binary = ''
1522
- for (let i = 0; i < bytes.byteLength; i++) binary += String.fromCharCode(bytes[i])
1523
- return btoa(binary)
1343
+ function writeStderr(logger, message) {
1344
+ if (typeof logger?.error === "function") {
1345
+ logger.error(message);
1346
+ return;
1347
+ }
1348
+ console.error(message);
1524
1349
  }
1525
- function base64ToArrayBuffer(base64) {
1526
- const binary = atob(base64)
1527
- const bytes = new Uint8Array(binary.length)
1528
- for (let i = 0; i < binary.length; i++) bytes[i] = binary.charCodeAt(i)
1529
- return bytes.buffer
1350
+ function createRuntimeStdioForwarder(logger) {
1351
+ return (stdout, stderr) => {
1352
+ createInterface({ input: stdout }).on("line", (data) => {
1353
+ writeStdout(logger, data);
1354
+ });
1355
+ createInterface({ input: stderr }).on("line", (data) => {
1356
+ writeStderr(logger, data);
1357
+ });
1358
+ };
1530
1359
  }
1531
- `;
1360
+
1361
+ // src/dev-server/vite-process.ts
1362
+ import { spawn } from "node:child_process";
1363
+ async function startViteProcess(options) {
1364
+ const {
1365
+ cwd,
1366
+ vitePort,
1367
+ miniflarePort,
1368
+ generatedViteConfigPath,
1369
+ logger
1370
+ } = options;
1371
+ const args = ["vite", "dev", "--port", String(vitePort)];
1372
+ if (generatedViteConfigPath) {
1373
+ args.push("--config", generatedViteConfigPath);
1374
+ }
1375
+ const viteProcess = spawn("bunx", args, {
1376
+ cwd,
1377
+ stdio: ["inherit", "pipe", "pipe"],
1378
+ windowsHide: true,
1379
+ env: {
1380
+ ...process.env,
1381
+ DEVFLARE_DEV: "true",
1382
+ DEVFLARE_BRIDGE_PORT: String(miniflarePort),
1383
+ FORCE_COLOR: "1"
1384
+ }
1385
+ });
1386
+ const readyUrl = await waitForViteReady(viteProcess, {
1387
+ onStdout(chunk) {
1388
+ process.stdout.write(chunk);
1389
+ },
1390
+ onStderr(chunk) {
1391
+ process.stderr.write(chunk);
1392
+ }
1393
+ });
1394
+ if (readyUrl) {
1395
+ logger?.success(`Vite dev server started on ${readyUrl}`);
1396
+ return viteProcess;
1397
+ }
1398
+ logger?.warn("Vite process started, but the final local URL could not be confirmed yet");
1399
+ return viteProcess;
1400
+ }
1401
+
1402
+ // src/dev-server/worker-surface-paths.ts
1403
+ import { dirname, resolve as resolve2 } from "pathe";
1404
+ var DEFAULT_TRANSPORT_ENTRY_FILES = [
1405
+ "src/transport.ts",
1406
+ "src/transport.js",
1407
+ "src/transport.mts",
1408
+ "src/transport.mjs"
1409
+ ];
1410
+ var resolveMainWorkerSurfacePaths = resolveWorkerSurfacePaths;
1411
+ function addWorkerWatchRoots(roots, cwd, configuredPath, defaultEntries) {
1412
+ if (configuredPath === false || configuredPath === null) {
1413
+ return;
1414
+ }
1415
+ if (typeof configuredPath === "string" && configuredPath) {
1416
+ roots.add(dirname(resolve2(cwd, configuredPath)));
1417
+ return;
1418
+ }
1419
+ for (const defaultEntry of defaultEntries) {
1420
+ roots.add(dirname(resolve2(cwd, defaultEntry)));
1421
+ }
1422
+ }
1423
+ function collectWorkerWatchRoots(cwd, config, mainWorkerSurfacePaths) {
1424
+ const roots = new Set;
1425
+ for (const surfacePath of Object.values(mainWorkerSurfacePaths)) {
1426
+ if (surfacePath) {
1427
+ roots.add(dirname(surfacePath));
1428
+ }
1429
+ }
1430
+ addWorkerWatchRoots(roots, cwd, config.files?.fetch, DEFAULT_FETCH_ENTRY_FILES);
1431
+ addWorkerWatchRoots(roots, cwd, config.files?.queue, DEFAULT_QUEUE_ENTRY_FILES);
1432
+ addWorkerWatchRoots(roots, cwd, config.files?.scheduled, DEFAULT_SCHEDULED_ENTRY_FILES);
1433
+ addWorkerWatchRoots(roots, cwd, config.files?.email, DEFAULT_EMAIL_ENTRY_FILES);
1434
+ addWorkerWatchRoots(roots, cwd, config.files?.transport, DEFAULT_TRANSPORT_ENTRY_FILES);
1435
+ const routeDirectory = getRouteDirectoryCandidate(cwd, config);
1436
+ if (routeDirectory) {
1437
+ roots.add(routeDirectory.absoluteDir);
1438
+ }
1439
+ return [...roots];
1440
+ }
1441
+
1442
+ // src/dev-server/worker-source-watcher.ts
1443
+ async function startWorkerSourceWatcher(options) {
1444
+ const { watchTargets, resolvedWorkerConfigPath, logger, onConfigChange, onWorkerChange } = options;
1445
+ if (watchTargets.length === 0) {
1446
+ return null;
1447
+ }
1448
+ const chokidar = await import("chokidar");
1449
+ const isWindows = process.platform === "win32";
1450
+ const ignoredSegments = ["/node_modules/", "/.git/", "/.devflare/", "/dist/"];
1451
+ const normalizePath = (filePath) => filePath.replace(/\\/g, "/");
1452
+ const isIgnoredPath = (filePath) => {
1453
+ const normalizedPath = normalizePath(filePath);
1454
+ return ignoredSegments.some((segment) => normalizedPath.includes(segment));
1455
+ };
1456
+ let reloadTimeout = null;
1457
+ let reloadInProgress = false;
1458
+ let pendingReloadPath = null;
1459
+ const flushPendingReload = async () => {
1460
+ if (!pendingReloadPath) {
1461
+ return;
1462
+ }
1463
+ const nextPath = pendingReloadPath;
1464
+ pendingReloadPath = null;
1465
+ await triggerReload(nextPath);
1466
+ };
1467
+ const triggerReload = async (filePath) => {
1468
+ if (reloadInProgress) {
1469
+ pendingReloadPath = filePath;
1470
+ return;
1471
+ }
1472
+ reloadInProgress = true;
1473
+ try {
1474
+ const normalizedConfigPath = resolvedWorkerConfigPath ? normalizePath(resolvedWorkerConfigPath) : null;
1475
+ if (normalizedConfigPath && normalizePath(filePath) === normalizedConfigPath) {
1476
+ logger?.info(`Devflare config changed: ${filePath}`);
1477
+ await onConfigChange();
1478
+ return;
1479
+ }
1480
+ logger?.info(`Worker source changed: ${filePath}`);
1481
+ await onWorkerChange();
1482
+ } catch (error) {
1483
+ logger?.error("Worker source reload failed:", error);
1484
+ } finally {
1485
+ reloadInProgress = false;
1486
+ await flushPendingReload();
1487
+ }
1488
+ };
1489
+ const scheduleReload = (filePath) => {
1490
+ if (reloadTimeout) {
1491
+ clearTimeout(reloadTimeout);
1492
+ }
1493
+ reloadTimeout = setTimeout(() => {
1494
+ reloadTimeout = null;
1495
+ triggerReload(filePath);
1496
+ }, 150);
1497
+ };
1498
+ const watcher = chokidar.watch(watchTargets, {
1499
+ ignoreInitial: true,
1500
+ usePolling: isWindows,
1501
+ interval: isWindows ? 300 : undefined,
1502
+ awaitWriteFinish: {
1503
+ stabilityThreshold: 100,
1504
+ pollInterval: 50
1505
+ },
1506
+ ignored: (filePath) => isIgnoredPath(filePath)
1507
+ });
1508
+ const onFileEvent = (filePath) => {
1509
+ if (isIgnoredPath(filePath)) {
1510
+ return;
1511
+ }
1512
+ scheduleReload(filePath);
1513
+ };
1514
+ watcher.on("change", onFileEvent);
1515
+ watcher.on("add", onFileEvent);
1516
+ watcher.on("unlink", onFileEvent);
1517
+ watcher.on("error", (error) => {
1518
+ logger?.error("Worker source watcher error:", error);
1519
+ });
1520
+ await new Promise((resolvePromise, rejectPromise) => {
1521
+ const handleReady = () => {
1522
+ watcher.off("error", handleInitialError);
1523
+ logger?.info(`Worker source watcher ready (${watchTargets.length} target(s))`);
1524
+ resolvePromise();
1525
+ };
1526
+ const handleInitialError = (error) => {
1527
+ watcher.off("ready", handleReady);
1528
+ rejectPromise(error instanceof Error ? error : new Error(String(error)));
1529
+ };
1530
+ watcher.once("ready", handleReady);
1531
+ watcher.once("error", handleInitialError);
1532
+ });
1533
+ return watcher;
1534
+ }
1535
+
1536
+ // src/dev-server/server.ts
1537
+ var INTERNAL_APP_SERVICE_BINDING = "__DEVFLARE_APP";
1538
+ function formatErrorMessage(error) {
1539
+ return error instanceof Error ? error.message : String(error);
1532
1540
  }
1533
1541
  function createDevServer(options) {
1534
1542
  const {
@@ -1571,11 +1579,10 @@ function createDevServer(options) {
1571
1579
  bundledMainWorkerScriptPath = await bundleWorkerEntry({
1572
1580
  cwd,
1573
1581
  inputFile: mainWorkerScriptPath,
1574
- outFile: resolve(cwd, ".devflare", "worker-entrypoints", "main.js"),
1582
+ outFile: resolve3(cwd, ".devflare", "worker-entrypoints", "main.js"),
1575
1583
  rolldownOptions: config.rolldown?.options,
1576
1584
  sourcemap: config.rolldown?.sourcemap,
1577
1585
  minify: config.rolldown?.minify,
1578
- target: config.rolldown?.target,
1579
1586
  logger
1580
1587
  });
1581
1588
  logger?.debug(`Bundled main worker → ${bundledMainWorkerScriptPath}`);
@@ -1585,7 +1592,7 @@ function createDevServer(options) {
1585
1592
  throw new Error("Config not loaded");
1586
1593
  const loadedConfig = config;
1587
1594
  const bindings = loadedConfig.bindings ?? {};
1588
- const persistPath = resolve(cwd, ".devflare/data");
1595
+ const persistPath = resolve3(cwd, ".devflare/data");
1589
1596
  const appWorkerName = loadedConfig.name;
1590
1597
  const shouldRunMainWorker = !enableVite && (hasWorkerSurfacePaths(mainWorkerSurfacePaths) || Boolean(mainWorkerRoutes?.routes.length));
1591
1598
  const queueProducers = (() => {
@@ -1661,7 +1668,11 @@ function createDevServer(options) {
1661
1668
  modules: true,
1662
1669
  compatibilityDate: loadedConfig.compatibilityDate,
1663
1670
  compatibilityFlags: compatFlags,
1664
- ...bindings.kv && { kvNamespaces: bindings.kv },
1671
+ ...bindings.kv && {
1672
+ kvNamespaces: Object.fromEntries(Object.entries(bindings.kv).map(([bindingName, bindingConfig]) => {
1673
+ return [bindingName, getLocalKVNamespaceIdentifier(bindingConfig)];
1674
+ }))
1675
+ },
1665
1676
  ...bindings.r2 && { r2Buckets: bindings.r2 },
1666
1677
  ...bindings.d1 && {
1667
1678
  d1Databases: Object.fromEntries(Object.entries(bindings.d1).map(([bindingName, bindingConfig]) => {
@@ -1703,7 +1714,7 @@ function createDevServer(options) {
1703
1714
  });
1704
1715
  gatewayWorker.routes = ["*"];
1705
1716
  const hasDurableObjectBundles = !!doResult && doResult.bundles.size > 0;
1706
- const browserBindingName = bindings.browser?.binding;
1717
+ const browserBindingName = getSingleBrowserBindingName(bindings.browser);
1707
1718
  const needsBrowserWorker = Boolean(browserBindingName && (hasDurableObjectBundles || shouldRunMainWorker));
1708
1719
  if (!shouldRunMainWorker && !hasDurableObjectBundles && !needsBrowserWorker) {
1709
1720
  return {
@@ -1848,7 +1859,7 @@ function createDevServer(options) {
1848
1859
  }
1849
1860
  async function resolveWorkerConfigWatchPath() {
1850
1861
  if (configPath) {
1851
- const explicitPath = resolve(cwd, configPath);
1862
+ const explicitPath = resolve3(cwd, configPath);
1852
1863
  const fs = await import("node:fs/promises");
1853
1864
  try {
1854
1865
  await fs.access(explicitPath);
@@ -1866,7 +1877,7 @@ function createDevServer(options) {
1866
1877
  const composedMainEntry = await prepareComposedWorkerEntrypoint(cwd, config, undefined, {
1867
1878
  devInternalEmail: true
1868
1879
  });
1869
- mainWorkerScriptPath = composedMainEntry ? resolve(cwd, composedMainEntry) : null;
1880
+ mainWorkerScriptPath = composedMainEntry ? resolve3(cwd, composedMainEntry) : null;
1870
1881
  if (mainWorkerScriptPath) {
1871
1882
  await bundleMainWorker();
1872
1883
  } else {
@@ -1907,7 +1918,7 @@ function createDevServer(options) {
1907
1918
  await refreshWorkerOnlySurfaceState();
1908
1919
  await reloadMiniflare(currentDoResult);
1909
1920
  }
1910
- async function startWorkerSourceWatcher() {
1921
+ async function startWorkerSourceWatcher2() {
1911
1922
  if (enableVite || !config) {
1912
1923
  return;
1913
1924
  }
@@ -1915,173 +1926,18 @@ function createDevServer(options) {
1915
1926
  if (watchTargets.length === 0) {
1916
1927
  return;
1917
1928
  }
1918
- const chokidar = await import("chokidar");
1919
- const isWindows = process.platform === "win32";
1920
- const ignoredSegments = ["/node_modules/", "/.git/", "/.devflare/", "/dist/"];
1921
- const normalizePath = (filePath) => filePath.replace(/\\/g, "/");
1922
- const isIgnoredPath = (filePath) => {
1923
- const normalizedPath = normalizePath(filePath);
1924
- return ignoredSegments.some((segment) => normalizedPath.includes(segment));
1925
- };
1926
- let reloadTimeout = null;
1927
- let reloadInProgress = false;
1928
- let pendingReloadPath = null;
1929
- const triggerReload = async (filePath) => {
1930
- if (reloadInProgress) {
1931
- pendingReloadPath = filePath;
1932
- return;
1933
- }
1934
- reloadInProgress = true;
1935
- try {
1936
- const normalizedConfigPath = resolvedWorkerConfigPath ? normalizePath(resolvedWorkerConfigPath) : null;
1937
- if (normalizedConfigPath && normalizePath(filePath) === normalizedConfigPath) {
1938
- logger?.info(`Devflare config changed: ${filePath}`);
1939
- await reloadWorkerOnlyConfig();
1940
- return;
1941
- }
1942
- logger?.info(`Worker source changed: ${filePath}`);
1929
+ workerWatchTargets = watchTargets;
1930
+ workerSourceWatcher = await startWorkerSourceWatcher({
1931
+ watchTargets,
1932
+ resolvedWorkerConfigPath,
1933
+ logger,
1934
+ onConfigChange: reloadWorkerOnlyConfig,
1935
+ onWorkerChange: async () => {
1943
1936
  await refreshWorkerOnlySurfaceState();
1944
1937
  await reloadMiniflare(currentDoResult);
1945
- } catch (error) {
1946
- logger?.error("Worker source reload failed:", error);
1947
- } finally {
1948
- reloadInProgress = false;
1949
- if (pendingReloadPath) {
1950
- const nextPath = pendingReloadPath;
1951
- pendingReloadPath = null;
1952
- await triggerReload(nextPath);
1953
- }
1954
- }
1955
- };
1956
- const scheduleReload = (filePath) => {
1957
- if (reloadTimeout) {
1958
- clearTimeout(reloadTimeout);
1959
1938
  }
1960
- reloadTimeout = setTimeout(() => {
1961
- triggerReload(filePath);
1962
- }, 150);
1963
- };
1964
- workerWatchTargets = watchTargets;
1965
- workerSourceWatcher = chokidar.watch(watchTargets, {
1966
- ignoreInitial: true,
1967
- usePolling: isWindows,
1968
- interval: isWindows ? 300 : undefined,
1969
- awaitWriteFinish: {
1970
- stabilityThreshold: 100,
1971
- pollInterval: 50
1972
- },
1973
- ignored: (filePath) => isIgnoredPath(filePath)
1974
- });
1975
- const onFileEvent = (filePath) => {
1976
- if (isIgnoredPath(filePath)) {
1977
- return;
1978
- }
1979
- scheduleReload(filePath);
1980
- };
1981
- workerSourceWatcher.on("change", onFileEvent);
1982
- workerSourceWatcher.on("add", onFileEvent);
1983
- workerSourceWatcher.on("unlink", onFileEvent);
1984
- workerSourceWatcher.on("error", (error) => {
1985
- logger?.error("Worker source watcher error:", error);
1986
- });
1987
- await new Promise((resolvePromise, rejectPromise) => {
1988
- const handleReady = () => {
1989
- workerSourceWatcher?.off("error", handleInitialError);
1990
- logger?.info(`Worker source watcher ready (${watchTargets.length} target(s))`);
1991
- resolvePromise();
1992
- };
1993
- const handleInitialError = (error) => {
1994
- workerSourceWatcher?.off("ready", handleReady);
1995
- rejectPromise(error instanceof Error ? error : new Error(String(error)));
1996
- };
1997
- workerSourceWatcher?.once("ready", handleReady);
1998
- workerSourceWatcher?.once("error", handleInitialError);
1999
1939
  });
2000
1940
  }
2001
- async function runD1Migrations() {
2002
- if (!miniflare || !config?.bindings?.d1)
2003
- return;
2004
- const { existsSync: existsSync2, readdirSync, readFileSync } = await import("node:fs");
2005
- const migrationsDir = resolve(cwd, "migrations");
2006
- if (!existsSync2(migrationsDir)) {
2007
- logger?.debug("No migrations/ directory found, skipping D1 migrations");
2008
- return;
2009
- }
2010
- const files = readdirSync(migrationsDir).filter((f) => f.endsWith(".sql")).sort();
2011
- if (files.length === 0) {
2012
- logger?.debug("No SQL migration files found");
2013
- return;
2014
- }
2015
- logger?.info(`Running ${files.length} D1 migration(s)...`);
2016
- const allStatements = [];
2017
- for (const file of files) {
2018
- const sql = readFileSync(resolve(migrationsDir, file), "utf-8");
2019
- const cleanedSql = sql.split(`
2020
- `).filter((line) => !line.trim().startsWith("--")).join(`
2021
- `);
2022
- const statements = cleanedSql.split(";").map((s) => s.trim()).filter((s) => s.length > 0);
2023
- allStatements.push(...statements);
2024
- logger?.debug(`File ${file}: ${statements.length} statement(s)`);
2025
- }
2026
- for (const [bindingName] of Object.entries(config.bindings.d1)) {
2027
- for (let attempt = 0;attempt < 5; attempt++) {
2028
- await new Promise((r) => setTimeout(r, 500 * (attempt + 1)));
2029
- try {
2030
- const response = await fetch(`http://127.0.0.1:${miniflarePort}/_devflare/migrate`, {
2031
- method: "POST",
2032
- headers: { "Content-Type": "application/json" },
2033
- body: JSON.stringify({ bindingName, statements: allStatements })
2034
- });
2035
- if (!response.ok) {
2036
- const text = await response.text();
2037
- throw new Error(`HTTP ${response.status}: ${text}`);
2038
- }
2039
- const result = await response.json();
2040
- if (result.success) {
2041
- logger?.success(`D1 migrations applied to ${bindingName}`);
2042
- break;
2043
- } else {
2044
- throw new Error(result.error || "Unknown error");
2045
- }
2046
- } catch (error) {
2047
- if (attempt === 4) {
2048
- logger?.warn(`Failed to apply migrations to ${bindingName}: ${error}`);
2049
- }
2050
- }
2051
- }
2052
- }
2053
- }
2054
- async function startVite() {
2055
- const { spawn } = await import("node:child_process");
2056
- const args = ["vite", "dev", "--port", String(vitePort)];
2057
- if (generatedViteConfigPath) {
2058
- args.push("--config", generatedViteConfigPath);
2059
- }
2060
- viteProcess = spawn("bunx", args, {
2061
- cwd,
2062
- stdio: ["inherit", "pipe", "pipe"],
2063
- windowsHide: true,
2064
- env: {
2065
- ...process.env,
2066
- DEVFLARE_DEV: "true",
2067
- DEVFLARE_BRIDGE_PORT: String(miniflarePort),
2068
- FORCE_COLOR: "1"
2069
- }
2070
- });
2071
- const readyUrl = await waitForViteReady(viteProcess, {
2072
- onStdout(chunk) {
2073
- process.stdout.write(chunk);
2074
- },
2075
- onStderr(chunk) {
2076
- process.stderr.write(chunk);
2077
- }
2078
- });
2079
- if (readyUrl) {
2080
- logger?.success(`Vite dev server started on ${readyUrl}`);
2081
- return;
2082
- }
2083
- logger?.warn("Vite process started, but the final local URL could not be confirmed yet");
2084
- }
2085
1941
  async function start() {
2086
1942
  logger?.info("Starting unified dev server...");
2087
1943
  config = await loadConfig({ cwd, configFile: configPath });
@@ -2131,7 +1987,7 @@ function createDevServer(options) {
2131
1987
  logger?.info("");
2132
1988
  }
2133
1989
  }
2134
- const browserBinding = config.bindings?.browser?.binding;
1990
+ const browserBinding = getSingleBrowserBindingName(config.bindings?.browser);
2135
1991
  if (browserBinding) {
2136
1992
  logger?.info(`Starting Browser Rendering shim (binding: ${browserBinding})...`);
2137
1993
  browserShim = createBrowserShim({
@@ -2145,7 +2001,7 @@ function createDevServer(options) {
2145
2001
  const doPattern = config.files?.durableObjects;
2146
2002
  let doResult = null;
2147
2003
  if (typeof doPattern === "string" && doPattern) {
2148
- const outDir = resolve(cwd, ".devflare/do-bundles");
2004
+ const outDir = resolve3(cwd, ".devflare/do-bundles");
2149
2005
  doBundler = createDOBundler({
2150
2006
  cwd,
2151
2007
  pattern: doPattern,
@@ -2164,14 +2020,20 @@ function createDevServer(options) {
2164
2020
  }
2165
2021
  currentDoResult = doResult;
2166
2022
  await startMiniflare(doResult);
2167
- await startWorkerSourceWatcher();
2023
+ await startWorkerSourceWatcher2();
2168
2024
  if (enableVite) {
2169
- await startVite();
2025
+ viteProcess = await startViteProcess({
2026
+ cwd,
2027
+ vitePort,
2028
+ miniflarePort,
2029
+ generatedViteConfigPath,
2030
+ logger
2031
+ });
2170
2032
  } else {
2171
2033
  logger?.info("Vite startup skipped (no effective Vite config found for this package)");
2172
2034
  }
2173
2035
  await new Promise((r) => setTimeout(r, 1000));
2174
- await runD1Migrations();
2036
+ await runD1Migrations({ cwd, config, miniflarePort, logger });
2175
2037
  }
2176
2038
  async function stop() {
2177
2039
  if (doBundler) {
@@ -2213,11 +2075,11 @@ async function createLogWriter(cwd, options) {
2213
2075
  const fs = await import("node:fs");
2214
2076
  let logPath;
2215
2077
  if (options.logTemp) {
2216
- logPath = resolve2(cwd, ".log");
2078
+ logPath = resolve4(cwd, ".log");
2217
2079
  } else {
2218
2080
  const now = new Date;
2219
2081
  const timestamp = now.toISOString().replace(/[:.]/g, "-").replace("T", "_").slice(0, 19);
2220
- logPath = resolve2(cwd, `.log-${timestamp}`);
2082
+ logPath = resolve4(cwd, `.log-${timestamp}`);
2221
2083
  }
2222
2084
  const fileStream = fs.createWriteStream(logPath, { flags: "w" });
2223
2085
  const ansiRegex = /\x1b\[[0-9;]*m/g;
@@ -2248,6 +2110,7 @@ async function runDevCommand(parsed, logger, options) {
2248
2110
  const persistEnabled = parsed.options.persist === true;
2249
2111
  const debugEnabled = parsed.options.debug === true || process.env.DEVFLARE_DEBUG === "true";
2250
2112
  const verbose = parsed.options.verbose === true || debugEnabled;
2113
+ const theme = createCliTheme(parsed.options);
2251
2114
  const config = await loadConfig({ cwd, configFile: configPath });
2252
2115
  const viteProject = resolveEffectiveViteProject(await detectViteProject(cwd), config);
2253
2116
  const logWriter = await createLogWriter(cwd, {
@@ -2256,7 +2119,7 @@ async function runDevCommand(parsed, logger, options) {
2256
2119
  });
2257
2120
  if (logWriter) {
2258
2121
  const logFile = relative(cwd, logWriter.path) || ".log";
2259
- logger.info(`\uD83D\uDCDD Logging enabled → ${logFile}`);
2122
+ logLine(logger, `${dim("logging", theme)} ${logFile}`);
2260
2123
  }
2261
2124
  const devLogger = createConsola({
2262
2125
  level: verbose ? 4 : 3
@@ -2277,24 +2140,24 @@ async function runDevCommand(parsed, logger, options) {
2277
2140
  Object.assign(devLogger.debug, wrapLog(devLogger.debug.bind(devLogger), "[DEBUG]"));
2278
2141
  }
2279
2142
  try {
2280
- logger.info("");
2143
+ logLine(logger);
2281
2144
  if (viteProject.shouldStartVite) {
2282
- logger.info("\uD83D\uDE80 Devflare Unified Dev Server");
2283
- logger.info(" ├─ Vite: Full HMR for frontend");
2284
- logger.info(" ├─ Miniflare: All Cloudflare bindings");
2285
- logger.info(" ├─ Rolldown: Worker + DO bundling with watch");
2286
- logger.info(" └─ Bridge: WebSocket RPC connection");
2145
+ logLine(logger, `${cyanBold("dev", theme)} ${dim("Unified Dev Server", theme)}`);
2146
+ logLine(logger, " ├─ Vite: Full HMR for frontend");
2147
+ logLine(logger, " ├─ Miniflare: All Cloudflare bindings");
2148
+ logLine(logger, " ├─ Rolldown: Worker + DO bundling with watch");
2149
+ logLine(logger, " └─ Bridge: WebSocket RPC connection");
2287
2150
  } else {
2288
- logger.info("\uD83D\uDE80 Devflare Worker Dev Server");
2289
- logger.info(" ├─ Miniflare: All Cloudflare bindings");
2290
- logger.info(" ├─ Rolldown: Worker + DO bundling with watch");
2291
- logger.info(" └─ Vite: Disabled (no effective Vite config found)");
2151
+ logLine(logger, `${cyanBold("dev", theme)} ${dim("Worker Dev Server", theme)}`);
2152
+ logLine(logger, " ├─ Miniflare: All Cloudflare bindings");
2153
+ logLine(logger, " ├─ Rolldown: Worker + DO bundling with watch");
2154
+ logLine(logger, " └─ Vite: Disabled (no effective Vite config found)");
2292
2155
  if (viteProject.wantsViteIntegration) {
2293
2156
  logger.warn("Vite-related settings were detected, but no effective Vite config was available");
2294
2157
  logger.warn("Skipping Vite startup and running in worker-only mode");
2295
2158
  }
2296
2159
  }
2297
- logger.info("");
2160
+ logLine(logger);
2298
2161
  const devServer = createDevServer({
2299
2162
  cwd,
2300
2163
  configPath,
@@ -2324,8 +2187,8 @@ async function runDevCommand(parsed, logger, options) {
2324
2187
  const message = reason instanceof Error ? reason.stack ?? reason.message : String(reason);
2325
2188
  logger.error(message);
2326
2189
  }
2327
- logger.info("");
2328
- logger.info("Shutting down...");
2190
+ logLine(logger);
2191
+ logLine(logger, `${yellow("dev", theme)} ${dim("Shutting down", theme)}`);
2329
2192
  try {
2330
2193
  await devServer.stop();
2331
2194
  } finally {