devflare 1.0.0-next.14 → 1.0.0-next.16

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 (380) hide show
  1. package/LLM.md +9360 -1784
  2. package/README.md +391 -32
  3. package/bin/devflare.js +17 -7
  4. package/dist/account-0w8wdzjv.js +475 -0
  5. package/dist/account-eygq6qx7.js +475 -0
  6. package/dist/account-fw8nafav.js +475 -0
  7. package/dist/account-pzq69nys.js +475 -0
  8. package/dist/account-s66jb15j.js +475 -0
  9. package/dist/api-d6ekexs5.js +25 -0
  10. package/dist/bridge/index.d.ts +1 -1
  11. package/dist/bridge/index.d.ts.map +1 -1
  12. package/dist/bridge/miniflare.d.ts.map +1 -1
  13. package/dist/bridge/protocol.d.ts +1 -1
  14. package/dist/bridge/protocol.d.ts.map +1 -1
  15. package/dist/bridge/proxy.d.ts +0 -4
  16. package/dist/bridge/proxy.d.ts.map +1 -1
  17. package/dist/bridge/serialization.d.ts.map +1 -1
  18. package/dist/bridge/server.d.ts +1 -1
  19. package/dist/bridge/server.d.ts.map +1 -1
  20. package/dist/browser-shim/handler.d.ts +1 -1
  21. package/dist/browser-shim/handler.d.ts.map +1 -1
  22. package/dist/browser.d.ts +1651 -34
  23. package/dist/browser.d.ts.map +1 -1
  24. package/dist/build-1kmkwqgh.js +53 -0
  25. package/dist/build-506kjhcm.js +53 -0
  26. package/dist/build-66866ahs.js +53 -0
  27. package/dist/build-g1adm3ww.js +53 -0
  28. package/dist/build-p3r3117t.js +53 -0
  29. package/dist/bundler/do-bundler.d.ts.map +1 -1
  30. package/dist/bundler/rolldown-shared.d.ts +24 -0
  31. package/dist/bundler/rolldown-shared.d.ts.map +1 -0
  32. package/dist/bundler/worker-bundler.d.ts +0 -1
  33. package/dist/bundler/worker-bundler.d.ts.map +1 -1
  34. package/dist/cli/command-utils.d.ts +18 -0
  35. package/dist/cli/command-utils.d.ts.map +1 -0
  36. package/dist/cli/commands/account.d.ts +1 -1
  37. package/dist/cli/commands/account.d.ts.map +1 -1
  38. package/dist/cli/commands/build-artifacts.d.ts +27 -0
  39. package/dist/cli/commands/build-artifacts.d.ts.map +1 -0
  40. package/dist/cli/commands/build.d.ts.map +1 -1
  41. package/dist/cli/commands/config.d.ts +4 -0
  42. package/dist/cli/commands/config.d.ts.map +1 -0
  43. package/dist/cli/commands/deploy.d.ts.map +1 -1
  44. package/dist/cli/commands/dev.d.ts.map +1 -1
  45. package/dist/cli/commands/doctor.d.ts.map +1 -1
  46. package/dist/cli/commands/init.d.ts.map +1 -1
  47. package/dist/cli/commands/login.d.ts +4 -0
  48. package/dist/cli/commands/login.d.ts.map +1 -0
  49. package/dist/cli/commands/previews-support/cleanup.d.ts +9 -0
  50. package/dist/cli/commands/previews-support/cleanup.d.ts.map +1 -0
  51. package/dist/cli/commands/previews-support/family.d.ts +10 -0
  52. package/dist/cli/commands/previews-support/family.d.ts.map +1 -0
  53. package/dist/cli/commands/previews-support/render.d.ts +8 -0
  54. package/dist/cli/commands/previews-support/render.d.ts.map +1 -0
  55. package/dist/cli/commands/previews-support/theme.d.ts +10 -0
  56. package/dist/cli/commands/previews-support/theme.d.ts.map +1 -0
  57. package/dist/cli/commands/previews-support/types.d.ts +70 -0
  58. package/dist/cli/commands/previews-support/types.d.ts.map +1 -0
  59. package/dist/cli/commands/previews.d.ts +4 -0
  60. package/dist/cli/commands/previews.d.ts.map +1 -0
  61. package/dist/cli/commands/productions.d.ts +4 -0
  62. package/dist/cli/commands/productions.d.ts.map +1 -0
  63. package/dist/cli/commands/token.d.ts +4 -0
  64. package/dist/cli/commands/token.d.ts.map +1 -0
  65. package/dist/cli/commands/type-generation/discovery.d.ts +7 -0
  66. package/dist/cli/commands/type-generation/discovery.d.ts.map +1 -0
  67. package/dist/cli/commands/type-generation/generator.d.ts +44 -0
  68. package/dist/cli/commands/type-generation/generator.d.ts.map +1 -0
  69. package/dist/cli/commands/type-generation/models.d.ts +27 -0
  70. package/dist/cli/commands/type-generation/models.d.ts.map +1 -0
  71. package/dist/cli/commands/types.d.ts.map +1 -1
  72. package/dist/cli/commands/worker.d.ts +4 -0
  73. package/dist/cli/commands/worker.d.ts.map +1 -0
  74. package/dist/cli/config-path.d.ts +2 -1
  75. package/dist/cli/config-path.d.ts.map +1 -1
  76. package/dist/cli/deploy-strategy.d.ts +17 -0
  77. package/dist/cli/deploy-strategy.d.ts.map +1 -0
  78. package/dist/cli/deploy-target.d.ts +17 -0
  79. package/dist/cli/deploy-target.d.ts.map +1 -0
  80. package/dist/cli/generated-artifacts.d.ts +12 -0
  81. package/dist/cli/generated-artifacts.d.ts.map +1 -0
  82. package/dist/cli/help-pages/pages/account.d.ts +3 -0
  83. package/dist/cli/help-pages/pages/account.d.ts.map +1 -0
  84. package/dist/cli/help-pages/pages/core.d.ts +4 -0
  85. package/dist/cli/help-pages/pages/core.d.ts.map +1 -0
  86. package/dist/cli/help-pages/pages/index.d.ts +3 -0
  87. package/dist/cli/help-pages/pages/index.d.ts.map +1 -0
  88. package/dist/cli/help-pages/pages/misc.d.ts +3 -0
  89. package/dist/cli/help-pages/pages/misc.d.ts.map +1 -0
  90. package/dist/cli/help-pages/pages/previews.d.ts +3 -0
  91. package/dist/cli/help-pages/pages/previews.d.ts.map +1 -0
  92. package/dist/cli/help-pages/pages/productions.d.ts +3 -0
  93. package/dist/cli/help-pages/pages/productions.d.ts.map +1 -0
  94. package/dist/cli/help-pages/render.d.ts +12 -0
  95. package/dist/cli/help-pages/render.d.ts.map +1 -0
  96. package/dist/cli/help-pages/shared.d.ts +15 -0
  97. package/dist/cli/help-pages/shared.d.ts.map +1 -0
  98. package/dist/cli/help-pages/types.d.ts +23 -0
  99. package/dist/cli/help-pages/types.d.ts.map +1 -0
  100. package/dist/cli/help.d.ts +6 -0
  101. package/dist/cli/help.d.ts.map +1 -0
  102. package/dist/cli/index.d.ts +1 -0
  103. package/dist/cli/index.d.ts.map +1 -1
  104. package/dist/cli/preview-bindings.d.ts +42 -0
  105. package/dist/cli/preview-bindings.d.ts.map +1 -0
  106. package/dist/cli/preview.d.ts +11 -0
  107. package/dist/cli/preview.d.ts.map +1 -0
  108. package/dist/cli/ui.d.ts +37 -0
  109. package/dist/cli/ui.d.ts.map +1 -0
  110. package/dist/cli/workspace-build-guard.d.ts +14 -0
  111. package/dist/cli/workspace-build-guard.d.ts.map +1 -0
  112. package/dist/cloudflare/account-core.d.ts +6 -0
  113. package/dist/cloudflare/account-core.d.ts.map +1 -0
  114. package/dist/cloudflare/account-resources.d.ts +40 -0
  115. package/dist/cloudflare/account-resources.d.ts.map +1 -0
  116. package/dist/cloudflare/account-status.d.ts +11 -0
  117. package/dist/cloudflare/account-status.d.ts.map +1 -0
  118. package/dist/cloudflare/account-workers.d.ts +14 -0
  119. package/dist/cloudflare/account-workers.d.ts.map +1 -0
  120. package/dist/cloudflare/account.d.ts +7 -64
  121. package/dist/cloudflare/account.d.ts.map +1 -1
  122. package/dist/cloudflare/api.d.ts +4 -0
  123. package/dist/cloudflare/api.d.ts.map +1 -1
  124. package/dist/cloudflare/index.d.ts +57 -2
  125. package/dist/cloudflare/index.d.ts.map +1 -1
  126. package/dist/cloudflare/kv-namespace.d.ts +3 -0
  127. package/dist/cloudflare/kv-namespace.d.ts.map +1 -0
  128. package/dist/cloudflare/preferences.d.ts.map +1 -1
  129. package/dist/cloudflare/preview-registry-cache.d.ts +6 -0
  130. package/dist/cloudflare/preview-registry-cache.d.ts.map +1 -0
  131. package/dist/cloudflare/preview-registry-records.d.ts +61 -0
  132. package/dist/cloudflare/preview-registry-records.d.ts.map +1 -0
  133. package/dist/cloudflare/preview-registry-store.d.ts +14 -0
  134. package/dist/cloudflare/preview-registry-store.d.ts.map +1 -0
  135. package/dist/cloudflare/preview-registry-types.d.ts +103 -0
  136. package/dist/cloudflare/preview-registry-types.d.ts.map +1 -0
  137. package/dist/cloudflare/preview-registry.d.ts +42 -0
  138. package/dist/cloudflare/preview-registry.d.ts.map +1 -0
  139. package/dist/cloudflare/registry-schema.d.ts +253 -0
  140. package/dist/cloudflare/registry-schema.d.ts.map +1 -0
  141. package/dist/cloudflare/tokens.d.ts +18 -0
  142. package/dist/cloudflare/tokens.d.ts.map +1 -0
  143. package/dist/cloudflare/types.d.ts +122 -5
  144. package/dist/cloudflare/types.d.ts.map +1 -1
  145. package/dist/cloudflare/usage.d.ts.map +1 -1
  146. package/dist/config/compiler.d.ts +4 -0
  147. package/dist/config/compiler.d.ts.map +1 -1
  148. package/dist/config/framework-providers.d.ts +9 -0
  149. package/dist/config/framework-providers.d.ts.map +1 -0
  150. package/dist/config/index.d.ts +5 -3
  151. package/dist/config/index.d.ts.map +1 -1
  152. package/dist/config/loader.d.ts +1 -0
  153. package/dist/config/loader.d.ts.map +1 -1
  154. package/dist/config/preview-resources.d.ts +77 -0
  155. package/dist/config/preview-resources.d.ts.map +1 -0
  156. package/dist/config/preview.d.ts +31 -0
  157. package/dist/config/preview.d.ts.map +1 -0
  158. package/dist/config/ref.d.ts +0 -22
  159. package/dist/config/ref.d.ts.map +1 -1
  160. package/dist/config/resolve.d.ts +1 -0
  161. package/dist/config/resolve.d.ts.map +1 -1
  162. package/dist/config/resource-resolution.d.ts +60 -0
  163. package/dist/config/resource-resolution.d.ts.map +1 -0
  164. package/dist/config/schema-bindings.d.ts +693 -0
  165. package/dist/config/schema-bindings.d.ts.map +1 -0
  166. package/dist/config/schema-build.d.ts +67 -0
  167. package/dist/config/schema-build.d.ts.map +1 -0
  168. package/dist/config/schema-env.d.ts +1341 -0
  169. package/dist/config/schema-env.d.ts.map +1 -0
  170. package/dist/config/schema-normalization.d.ts +64 -0
  171. package/dist/config/schema-normalization.d.ts.map +1 -0
  172. package/dist/config/schema-runtime.d.ts +230 -0
  173. package/dist/config/schema-runtime.d.ts.map +1 -0
  174. package/dist/config/schema.d.ts +640 -3669
  175. package/dist/config/schema.d.ts.map +1 -1
  176. package/dist/config-entry.d.ts +5 -0
  177. package/dist/config-entry.d.ts.map +1 -0
  178. package/dist/config-fjwke42y.js +59 -0
  179. package/dist/config-hwdqjse7.js +59 -0
  180. package/dist/config-pxvewrhv.js +59 -0
  181. package/dist/config-q0g5qdga.js +59 -0
  182. package/dist/decorators/durable-object.d.ts.map +1 -1
  183. package/dist/deploy-7nmzc9r8.js +609 -0
  184. package/dist/deploy-csfhdr64.js +691 -0
  185. package/dist/deploy-ex4g5avz.js +621 -0
  186. package/dist/deploy-jnb0bhka.js +609 -0
  187. package/dist/deploy-tp0g6qdp.js +609 -0
  188. package/dist/deploy-ykpcjkc2.js +690 -0
  189. package/dist/{dev-c1xc1gq9.js → dev-2pd33m28.js} +392 -348
  190. package/dist/dev-7ef5e2j1.js +2409 -0
  191. package/dist/dev-8nssqatr.js +2409 -0
  192. package/dist/dev-grznx8fn.js +2409 -0
  193. package/dist/dev-server/d1-migrations.d.ts +14 -0
  194. package/dist/dev-server/d1-migrations.d.ts.map +1 -0
  195. package/dist/dev-server/gateway-script.d.ts +8 -0
  196. package/dist/dev-server/gateway-script.d.ts.map +1 -0
  197. package/dist/dev-server/runtime-stdio.d.ts.map +1 -1
  198. package/dist/dev-server/server.d.ts.map +1 -1
  199. package/dist/dev-server/vite-process.d.ts +14 -0
  200. package/dist/dev-server/vite-process.d.ts.map +1 -0
  201. package/dist/dev-server/vite-utils.d.ts +1 -1
  202. package/dist/dev-server/vite-utils.d.ts.map +1 -1
  203. package/dist/dev-server/worker-source-watcher.d.ts +11 -0
  204. package/dist/dev-server/worker-source-watcher.d.ts.map +1 -0
  205. package/dist/dev-server/worker-surface-paths.d.ts +6 -0
  206. package/dist/dev-server/worker-surface-paths.d.ts.map +1 -0
  207. package/dist/{doctor-z4ffybce.js → doctor-04ammrrh.js} +67 -31
  208. package/dist/doctor-fmjj65mc.js +245 -0
  209. package/dist/doctor-fzkznce1.js +245 -0
  210. package/dist/doctor-sa5xv1bz.js +245 -0
  211. package/dist/index-091sh1ma.js +1229 -0
  212. package/dist/index-0apbm26n.js +788 -0
  213. package/dist/index-0eqksag4.js +418 -0
  214. package/dist/{index-dr6sbp8d.js → index-0kfzdywd.js} +15 -2
  215. package/dist/index-0w826dsr.js +379 -0
  216. package/dist/{index-rfhx0yd5.js → index-11m5a8wd.js} +110 -32
  217. package/dist/{index-xxwbb2nt.js → index-1sp39f2f.js} +114 -58
  218. package/dist/index-2jnrqbny.js +1301 -0
  219. package/dist/index-2pb7b9mw.js +378 -0
  220. package/dist/{index-0kzg8wed.js → index-2x53aqjm.js} +1071 -890
  221. package/dist/index-3ke5d2vn.js +1229 -0
  222. package/dist/index-43dq8yx8.js +788 -0
  223. package/dist/index-4rrttqj5.js +378 -0
  224. package/dist/index-4v9bc2pc.js +1367 -0
  225. package/dist/index-61jsjnsv.js +280 -0
  226. package/dist/index-6jef5emv.js +176 -0
  227. package/dist/index-6psz1h4c.js +788 -0
  228. package/dist/index-72mve6vh.js +168 -0
  229. package/dist/{index-zbvmtcn2.js → index-74198nxd.js} +179 -77
  230. package/dist/index-7g8zyws4.js +192 -0
  231. package/dist/index-7kcxjhta.js +456 -0
  232. package/dist/index-7v583xan.js +418 -0
  233. package/dist/index-7x0ybbtx.js +133 -0
  234. package/dist/index-816krz9p.js +52 -0
  235. package/dist/index-82f1z98k.js +41 -0
  236. package/dist/index-8t5nb4qx.js +133 -0
  237. package/dist/index-9az6s7ad.js +52 -0
  238. package/dist/{index-59df49vn.js → index-9ba1etyz.js} +29 -51
  239. package/dist/{index-001mw014.js → index-9fbtk7gv.js} +134 -248
  240. package/dist/index-9n6djthj.js +490 -0
  241. package/dist/index-aabgympv.js +39 -0
  242. package/dist/index-b8m6883k.js +74 -0
  243. package/dist/{index-5yxg30va.js → index-cgbvmse6.js} +15 -6
  244. package/dist/index-d8etnfef.js +1229 -0
  245. package/dist/index-e9yw4d6y.js +133 -0
  246. package/dist/index-epw1jxz5.js +1204 -0
  247. package/dist/index-f85s8gj3.js +2649 -0
  248. package/dist/index-fe2ngvh7.js +1229 -0
  249. package/dist/index-fvsadj32.js +192 -0
  250. package/dist/index-gs4y9gdf.js +456 -0
  251. package/dist/{index-fef08w43.js → index-h18pxvzs.js} +7 -6
  252. package/dist/index-hfj1a2c4.js +2649 -0
  253. package/dist/{index-8gtqgb3q.js → index-hjy8ctpc.js} +14 -92
  254. package/dist/index-htzf0py1.js +1204 -0
  255. package/dist/index-j185x270.js +897 -0
  256. package/dist/index-jb75kwa4.js +519 -0
  257. package/dist/index-jwd8pcb2.js +897 -0
  258. package/dist/index-k29yjhv0.js +52 -0
  259. package/dist/index-k6vq6kkt.js +456 -0
  260. package/dist/{index-vky23txa.js → index-m3fmw6mx.js} +2 -2
  261. package/dist/index-maxpsfk8.js +402 -0
  262. package/dist/index-mbdmrner.js +402 -0
  263. package/dist/index-mea5bc45.js +418 -0
  264. package/dist/index-mqekt778.js +185 -0
  265. package/dist/index-na3mnm1k.js +74 -0
  266. package/dist/index-p03n4qet.js +1367 -0
  267. package/dist/index-p296ban8.js +191 -0
  268. package/dist/index-pnbs1b8k.js +280 -0
  269. package/dist/index-q4kaz181.js +1207 -0
  270. package/dist/index-ry131z23.js +378 -0
  271. package/dist/index-sgb7c8nm.js +402 -0
  272. package/dist/index-sqrksgb2.js +133 -0
  273. package/dist/index-stgn34cr.js +148 -0
  274. package/dist/{index-v8vvsn9x.js → index-t08te69w.js} +1 -18
  275. package/dist/index-thna1tkd.js +280 -0
  276. package/dist/index-v5nmqthy.js +74 -0
  277. package/dist/{index-n932ytmq.js → index-vt4yxkmf.js} +2 -2
  278. package/dist/index-wyq6c6yj.js +402 -0
  279. package/dist/index-wztc9stx.js +418 -0
  280. package/dist/index-x9cwdxw5.js +456 -0
  281. package/dist/index-xk9djfjp.js +519 -0
  282. package/dist/index-yc0gcchc.js +418 -0
  283. package/dist/index-yqbxjysa.js +897 -0
  284. package/dist/index-yzddwp02.js +788 -0
  285. package/dist/index-zfhq6s96.js +74 -0
  286. package/dist/index-zt22fe2j.js +54 -0
  287. package/dist/index-zyt5byt6.js +2649 -0
  288. package/dist/index.d.ts +2 -2
  289. package/dist/index.d.ts.map +1 -1
  290. package/dist/{init-na2atvz2.js → init-r4hnxan3.js} +24 -17
  291. package/dist/login-2hnz4m4n.js +77 -0
  292. package/dist/login-5bsxxpvc.js +77 -0
  293. package/dist/login-6tzvczw2.js +77 -0
  294. package/dist/login-bhaw72zc.js +77 -0
  295. package/dist/login-x8tgckqm.js +77 -0
  296. package/dist/previews-3rn8mz2c.js +1168 -0
  297. package/dist/previews-d487qde5.js +1200 -0
  298. package/dist/previews-gm3z0syj.js +1168 -0
  299. package/dist/previews-j9ymq4ys.js +1169 -0
  300. package/dist/previews-q031mx34.js +1168 -0
  301. package/dist/productions-120xg0aq.js +505 -0
  302. package/dist/productions-5ev5qweg.js +505 -0
  303. package/dist/productions-me3tdvr9.js +505 -0
  304. package/dist/productions-p5rbgp2f.js +505 -0
  305. package/dist/productions-x9p0pym1.js +505 -0
  306. package/dist/runtime/context-events.d.ts +13 -0
  307. package/dist/runtime/context-events.d.ts.map +1 -0
  308. package/dist/runtime/context-types.d.ts +82 -0
  309. package/dist/runtime/context-types.d.ts.map +1 -0
  310. package/dist/runtime/context.d.ts +6 -267
  311. package/dist/runtime/context.d.ts.map +1 -1
  312. package/dist/runtime/exports.d.ts +3 -3
  313. package/dist/runtime/index.d.ts +1 -1
  314. package/dist/runtime/index.d.ts.map +1 -1
  315. package/dist/runtime/middleware.d.ts +8 -38
  316. package/dist/runtime/middleware.d.ts.map +1 -1
  317. package/dist/src/browser.js +23 -14
  318. package/dist/src/cli/index.js +3 -1
  319. package/dist/src/cloudflare/index.js +49 -2
  320. package/dist/src/config-entry.js +14 -0
  321. package/dist/src/index.js +33 -20
  322. package/dist/src/runtime/index.js +3 -9
  323. package/dist/src/sveltekit/index.js +10 -7
  324. package/dist/src/test/index.js +16 -18
  325. package/dist/src/vite/index.js +7 -4
  326. package/dist/sveltekit/platform.d.ts +1 -1
  327. package/dist/sveltekit/platform.d.ts.map +1 -1
  328. package/dist/test/cf.d.ts +10 -10
  329. package/dist/test/email.d.ts.map +1 -1
  330. package/dist/test/index.d.ts +1 -6
  331. package/dist/test/index.d.ts.map +1 -1
  332. package/dist/test/queue.d.ts.map +1 -1
  333. package/dist/test/remote-ai.d.ts.map +1 -1
  334. package/dist/test/remote-cloudflare.d.ts +13 -0
  335. package/dist/test/remote-cloudflare.d.ts.map +1 -0
  336. package/dist/test/remote-vectorize.d.ts.map +1 -1
  337. package/dist/test/resolve-service-bindings.d.ts.map +1 -1
  338. package/dist/test/scheduled.d.ts.map +1 -1
  339. package/dist/test/should-skip.d.ts +0 -18
  340. package/dist/test/should-skip.d.ts.map +1 -1
  341. package/dist/test/simple-context-durable-objects.d.ts +6 -0
  342. package/dist/test/simple-context-durable-objects.d.ts.map +1 -0
  343. package/dist/test/simple-context-gateway-script.d.ts +2 -0
  344. package/dist/test/simple-context-gateway-script.d.ts.map +1 -0
  345. package/dist/test/simple-context-paths.d.ts +40 -0
  346. package/dist/test/simple-context-paths.d.ts.map +1 -0
  347. package/dist/test/simple-context.d.ts +1 -23
  348. package/dist/test/simple-context.d.ts.map +1 -1
  349. package/dist/test/tail.d.ts.map +1 -1
  350. package/dist/test/worker.d.ts.map +1 -1
  351. package/dist/token-kedhcret.js +419 -0
  352. package/dist/token-m8jmnjwk.js +419 -0
  353. package/dist/{types-sffr9681.js → types-0sqwkp7x.js} +244 -139
  354. package/dist/types-1gwr2ex6.js +572 -0
  355. package/dist/types-6e5yx6km.js +572 -0
  356. package/dist/types-p0gckpn6.js +572 -0
  357. package/dist/utils/send-email.d.ts.map +1 -1
  358. package/dist/vite/config-file.d.ts.map +1 -1
  359. package/dist/vite/plugin.d.ts.map +1 -1
  360. package/dist/worker-0srh2jfr.js +513 -0
  361. package/dist/worker-4xrfd10a.js +513 -0
  362. package/dist/worker-entry/composed-worker.d.ts +0 -7
  363. package/dist/worker-entry/composed-worker.d.ts.map +1 -1
  364. package/dist/worker-entry/surface-paths.d.ts +15 -0
  365. package/dist/worker-entry/surface-paths.d.ts.map +1 -0
  366. package/dist/worker-qtam8grz.js +513 -0
  367. package/dist/worker-qzm0b7br.js +513 -0
  368. package/dist/worker-y9ha6g44.js +513 -0
  369. package/package.json +17 -10
  370. package/R2.md +0 -200
  371. package/dist/account-8psavtg6.js +0 -420
  372. package/dist/build-n639efmn.js +0 -101
  373. package/dist/deploy-zvnq6xh7.js +0 -117
  374. package/dist/index-2q3pmzrx.js +0 -90
  375. package/dist/index-f4q0jbnj.js +0 -195
  376. package/dist/index-n7rs26ft.js +0 -77
  377. package/dist/index-tfyxa77h.js +0 -850
  378. package/dist/index-wyf3s77s.js +0 -343
  379. package/dist/test/multi-worker-context.d.ts +0 -114
  380. package/dist/test/multi-worker-context.d.ts.map +0 -1
@@ -0,0 +1,379 @@
1
+ // src/cloudflare/auth.ts
2
+ import { homedir } from "node:os";
3
+ import { join } from "node:path";
4
+ import { readFileSync, existsSync } from "node:fs";
5
+ import { execSync } from "node:child_process";
6
+ var WRANGLER_CONFIG_FILE = "config/default.toml";
7
+ var EXPIRY_BUFFER_MS = 5 * 60 * 1000;
8
+ var cachedToken = null;
9
+ var cacheExpiresAt = 0;
10
+ function invalidateToken() {
11
+ cachedToken = null;
12
+ cacheExpiresAt = 0;
13
+ }
14
+ function getWranglerConfigPaths() {
15
+ const paths = [];
16
+ if (process.platform === "win32" && process.env.APPDATA) {
17
+ paths.push(join(process.env.APPDATA, "xdg.config", ".wrangler", WRANGLER_CONFIG_FILE));
18
+ }
19
+ if (process.env.XDG_CONFIG_HOME) {
20
+ paths.push(join(process.env.XDG_CONFIG_HOME, ".wrangler", WRANGLER_CONFIG_FILE));
21
+ }
22
+ paths.push(join(homedir(), ".wrangler", WRANGLER_CONFIG_FILE));
23
+ return paths;
24
+ }
25
+ function getWranglerConfigPath() {
26
+ const paths = getWranglerConfigPaths();
27
+ for (const path of paths) {
28
+ if (existsSync(path)) {
29
+ return path;
30
+ }
31
+ }
32
+ return null;
33
+ }
34
+ function hasWranglerConfig() {
35
+ return getWranglerConfigPath() !== null;
36
+ }
37
+ function parseSimpleToml(content) {
38
+ const result = {};
39
+ const lines = content.split(`
40
+ `);
41
+ for (const line of lines) {
42
+ const trimmed = line.trim();
43
+ if (trimmed.startsWith("#") || trimmed === "")
44
+ continue;
45
+ if (trimmed.startsWith("["))
46
+ continue;
47
+ const match = trimmed.match(/^(\w+)\s*=\s*["'](.*)["']$/);
48
+ if (match) {
49
+ result[match[1]] = match[2];
50
+ }
51
+ }
52
+ return result;
53
+ }
54
+ function readWranglerConfig() {
55
+ const configPath = getWranglerConfigPath();
56
+ if (!configPath || !existsSync(configPath)) {
57
+ return null;
58
+ }
59
+ try {
60
+ const content = readFileSync(configPath, "utf-8");
61
+ const config = parseSimpleToml(content);
62
+ const token = config.oauth_token;
63
+ const expirationTime = config.expiration_time;
64
+ if (token && expirationTime) {
65
+ return {
66
+ token,
67
+ expiresAt: new Date(expirationTime)
68
+ };
69
+ }
70
+ return null;
71
+ } catch {
72
+ return null;
73
+ }
74
+ }
75
+ async function getWranglerAuth() {
76
+ const config = readWranglerConfig();
77
+ if (!config)
78
+ return null;
79
+ const configPath = getWranglerConfigPath();
80
+ if (!configPath)
81
+ return null;
82
+ try {
83
+ const content = readFileSync(configPath, "utf-8");
84
+ const parsed = parseSimpleToml(content);
85
+ return {
86
+ oauthToken: parsed.oauth_token,
87
+ refreshToken: parsed.refresh_token,
88
+ expiresAt: config.expiresAt
89
+ };
90
+ } catch {
91
+ return null;
92
+ }
93
+ }
94
+ function refreshWranglerToken() {
95
+ try {
96
+ const result = execSync("bunx wrangler auth token", {
97
+ encoding: "utf-8",
98
+ stdio: ["pipe", "pipe", "pipe"],
99
+ timeout: 15000
100
+ });
101
+ const lines = result.trim().split(/\r?\n/).filter((l) => l.trim().length > 0);
102
+ const token = lines[lines.length - 1]?.trim();
103
+ if (token && token.length >= 20 && !token.includes("wrangler") && !token.includes("⛅")) {
104
+ return token;
105
+ }
106
+ return null;
107
+ } catch {
108
+ return null;
109
+ }
110
+ }
111
+ async function getApiToken(forceRefresh = false) {
112
+ if (!forceRefresh && cachedToken && Date.now() < cacheExpiresAt) {
113
+ return cachedToken;
114
+ }
115
+ const envToken = process.env.CLOUDFLARE_API_TOKEN;
116
+ if (envToken) {
117
+ return envToken;
118
+ }
119
+ if (!forceRefresh) {
120
+ const config = readWranglerConfig();
121
+ if (config) {
122
+ const now = Date.now();
123
+ const expiresAt = config.expiresAt.getTime();
124
+ if (now < expiresAt - EXPIRY_BUFFER_MS) {
125
+ cachedToken = config.token;
126
+ cacheExpiresAt = expiresAt - EXPIRY_BUFFER_MS;
127
+ return config.token;
128
+ }
129
+ }
130
+ }
131
+ const refreshedToken = refreshWranglerToken();
132
+ if (refreshedToken) {
133
+ cachedToken = refreshedToken;
134
+ cacheExpiresAt = Date.now() + EXPIRY_BUFFER_MS;
135
+ return refreshedToken;
136
+ }
137
+ return null;
138
+ }
139
+ async function isAuthenticated() {
140
+ const token = await getApiToken();
141
+ return token !== null;
142
+ }
143
+
144
+ // src/cloudflare/api.ts
145
+ var API_BASE = "https://api.cloudflare.com/client/v4";
146
+ var DEFAULT_TIMEOUT = 1e4;
147
+ var hasRetriedWithFreshToken = false;
148
+ async function fetchWithTimeout(url, init, timeoutMs) {
149
+ const controller = new AbortController;
150
+ const abortTimeoutId = setTimeout(() => controller.abort(), timeoutMs);
151
+ let rejectTimeoutId = null;
152
+ const timeoutPromise = new Promise((_, reject) => {
153
+ rejectTimeoutId = setTimeout(() => reject(new Error(`Request timed out after ${timeoutMs}ms`)), timeoutMs);
154
+ });
155
+ try {
156
+ const response = await Promise.race([
157
+ fetch(url, { ...init, signal: controller.signal }),
158
+ timeoutPromise
159
+ ]);
160
+ return response;
161
+ } finally {
162
+ clearTimeout(abortTimeoutId);
163
+ if (rejectTimeoutId) {
164
+ clearTimeout(rejectTimeoutId);
165
+ }
166
+ }
167
+ }
168
+
169
+ class CloudflareAPIError extends Error {
170
+ code;
171
+ errors;
172
+ constructor(message, code, errors) {
173
+ super(message);
174
+ this.code = code;
175
+ this.errors = errors;
176
+ this.name = "CloudflareAPIError";
177
+ }
178
+ }
179
+
180
+ class AuthenticationError extends Error {
181
+ constructor(message = "Not authenticated. Run: devflare login") {
182
+ super(message);
183
+ this.name = "AuthenticationError";
184
+ }
185
+ }
186
+ async function createHeaders(options, forceRefresh = false) {
187
+ const token = options?.token ?? await getApiToken(forceRefresh);
188
+ if (!token) {
189
+ throw new AuthenticationError;
190
+ }
191
+ return new Headers({
192
+ Authorization: `Bearer ${token}`,
193
+ "Content-Type": "application/json"
194
+ });
195
+ }
196
+ function isAuthError(response, data) {
197
+ if (response.status === 401)
198
+ return true;
199
+ if (!data.success && data.errors?.some((e) => e.code === 1e4 || e.message?.toLowerCase().includes("authentication") || e.message?.toLowerCase().includes("token"))) {
200
+ return true;
201
+ }
202
+ return false;
203
+ }
204
+ async function requestCloudflareJson(path, request, options) {
205
+ const makeRequest = async (forceRefresh) => {
206
+ const headers = await createHeaders(options, forceRefresh);
207
+ const response = await fetchWithTimeout(`${API_BASE}${path}`, {
208
+ method: request.method,
209
+ headers,
210
+ ...request.body !== undefined ? { body: JSON.stringify(request.body) } : {}
211
+ }, options?.timeout ?? DEFAULT_TIMEOUT);
212
+ const data = await response.json();
213
+ return {
214
+ response,
215
+ data
216
+ };
217
+ };
218
+ let result = await makeRequest(false);
219
+ if (request.allowAuthRetry === true && isAuthError(result.response, result.data) && !hasRetriedWithFreshToken && !options?.token) {
220
+ hasRetriedWithFreshToken = true;
221
+ invalidateToken();
222
+ try {
223
+ result = await makeRequest(true);
224
+ } finally {
225
+ hasRetriedWithFreshToken = false;
226
+ }
227
+ }
228
+ return result;
229
+ }
230
+ async function requestCloudflareResult(path, request, options) {
231
+ const { response, data } = await requestCloudflareJson(path, request, options);
232
+ return unwrapCloudflareResult(response, data);
233
+ }
234
+ function unwrapCloudflareResult(response, data, fallbackMessage = "API request failed") {
235
+ if (!data.success) {
236
+ throw new CloudflareAPIError(data.errors[0]?.message || fallbackMessage, response.status, data.errors);
237
+ }
238
+ return data.result;
239
+ }
240
+ async function throwCloudflareResponseError(response, fallbackMessage) {
241
+ try {
242
+ const errorData = await response.json();
243
+ throw new CloudflareAPIError(errorData.errors[0]?.message || fallbackMessage, response.status, errorData.errors);
244
+ } catch (error) {
245
+ if (error instanceof CloudflareAPIError) {
246
+ throw error;
247
+ }
248
+ throw new CloudflareAPIError(fallbackMessage, response.status, []);
249
+ }
250
+ }
251
+ async function apiGet(path, options) {
252
+ return requestCloudflareResult(path, {
253
+ method: "GET",
254
+ allowAuthRetry: true
255
+ }, options);
256
+ }
257
+ async function apiPost(path, body, options) {
258
+ return requestCloudflareResult(path, {
259
+ method: "POST",
260
+ body
261
+ }, options);
262
+ }
263
+ async function apiPut(path, body, options) {
264
+ return requestCloudflareResult(path, {
265
+ method: "PUT",
266
+ body
267
+ }, options);
268
+ }
269
+ async function apiPatch(path, body, options) {
270
+ return requestCloudflareResult(path, {
271
+ method: "PATCH",
272
+ body
273
+ }, options);
274
+ }
275
+ async function apiDelete(path, options) {
276
+ return requestCloudflareResult(path, {
277
+ method: "DELETE"
278
+ }, options);
279
+ }
280
+ async function apiGetAll(path, options) {
281
+ const results = [];
282
+ let page = 1;
283
+ let cursor;
284
+ const perPage = 50;
285
+ const maxPages = 100;
286
+ const seenCursors = new Set;
287
+ const extractPaginatedItems = (result) => {
288
+ if (Array.isArray(result)) {
289
+ return result;
290
+ }
291
+ if (!result || typeof result !== "object") {
292
+ throw new Error("Expected paginated Cloudflare API result to be an array or an object containing an array.");
293
+ }
294
+ const arrayEntries = Object.entries(result).filter(([, value]) => Array.isArray(value));
295
+ if (arrayEntries.length !== 1) {
296
+ throw new Error("Expected paginated Cloudflare API result object to contain exactly one array property.");
297
+ }
298
+ return arrayEntries[0][1];
299
+ };
300
+ while (page <= maxPages) {
301
+ const separator = path.includes("?") ? "&" : "?";
302
+ const pagedPath = cursor ? `${path}${separator}cursor=${encodeURIComponent(cursor)}&per_page=${perPage}` : `${path}${separator}page=${page}&per_page=${perPage}`;
303
+ const { response, data } = await requestCloudflareJson(pagedPath, {
304
+ method: "GET",
305
+ allowAuthRetry: true
306
+ }, options);
307
+ unwrapCloudflareResult(response, data);
308
+ const pageResults = extractPaginatedItems(data.result);
309
+ results.push(...pageResults);
310
+ if (!data.result_info) {
311
+ break;
312
+ }
313
+ if (pageResults.length === 0) {
314
+ break;
315
+ }
316
+ const nextCursor = data.result_info.cursor?.trim();
317
+ if (nextCursor) {
318
+ if (seenCursors.has(nextCursor)) {
319
+ break;
320
+ }
321
+ seenCursors.add(nextCursor);
322
+ cursor = nextCursor;
323
+ continue;
324
+ }
325
+ if (cursor) {
326
+ break;
327
+ }
328
+ if (data.result_info.total_count !== undefined) {
329
+ if (results.length >= data.result_info.total_count) {
330
+ break;
331
+ }
332
+ }
333
+ if (data.result_info.total_pages !== undefined) {
334
+ if (page >= data.result_info.total_pages) {
335
+ break;
336
+ }
337
+ }
338
+ page++;
339
+ }
340
+ return results;
341
+ }
342
+ async function requestKVValue(accountId, namespaceId, key, request, options) {
343
+ const token = options?.token ?? await getApiToken();
344
+ if (!token)
345
+ throw new AuthenticationError;
346
+ const encodedKey = encodeURIComponent(key);
347
+ const url = `${API_BASE}/accounts/${accountId}/storage/kv/namespaces/${namespaceId}/values/${encodedKey}`;
348
+ return fetchWithTimeout(url, {
349
+ method: request.method,
350
+ headers: {
351
+ Authorization: `Bearer ${token}`,
352
+ ...request.method === "PUT" ? { "Content-Type": "text/plain" } : {}
353
+ },
354
+ ...request.method === "PUT" ? { body: request.value } : {}
355
+ }, options?.timeout ?? DEFAULT_TIMEOUT);
356
+ }
357
+ async function kvGet(accountId, namespaceId, key, options) {
358
+ const response = await requestKVValue(accountId, namespaceId, key, {
359
+ method: "GET"
360
+ }, options);
361
+ if (response.status === 404) {
362
+ return null;
363
+ }
364
+ if (!response.ok) {
365
+ await throwCloudflareResponseError(response, "KV read failed");
366
+ }
367
+ return response.text();
368
+ }
369
+ async function kvPut(accountId, namespaceId, key, value, options) {
370
+ const response = await requestKVValue(accountId, namespaceId, key, {
371
+ method: "PUT",
372
+ value
373
+ }, options);
374
+ if (!response.ok) {
375
+ await throwCloudflareResponseError(response, "KV write failed");
376
+ }
377
+ }
378
+
379
+ export { hasWranglerConfig, getWranglerAuth, getApiToken, isAuthenticated, CloudflareAPIError, AuthenticationError, apiGet, apiPost, apiPut, apiPatch, apiDelete, apiGetAll, kvGet, kvPut };
@@ -1,25 +1,63 @@
1
1
  import {
2
- normalizeDOBinding
3
- } from "./index-wyf3s77s.js";
2
+ getSingleBrowserBindingName,
3
+ normalizeD1Binding,
4
+ normalizeDOBinding,
5
+ normalizeHyperdriveBinding,
6
+ normalizeKVBinding,
7
+ resolveConfigForEnvironment
8
+ } from "./index-yzddwp02.js";
4
9
  import {
5
10
  __require
6
11
  } from "./index-37x76zdn.js";
7
12
 
8
- // src/config/resolve.ts
9
- import { defu } from "defu";
10
- function resolveConfigForEnvironment(config, environment) {
11
- if (environment && config.env?.[environment]) {
12
- return defu(config.env[environment], config);
13
+ // src/config/compiler.ts
14
+ import { basename, isAbsolute, relative, resolve } from "pathe";
15
+ function getWranglerD1DatabaseId(bindingName, bindingConfig) {
16
+ const normalized = normalizeD1Binding(bindingConfig);
17
+ if (normalized.databaseId) {
18
+ return normalized.databaseId;
13
19
  }
14
- return config;
20
+ throw new Error(`D1 binding "${bindingName}" is configured by name (${normalized.name}) and must be resolved before compiling Wrangler config. Use loadResolvedConfig() or resolveConfigResources() for build/deploy/automation flows.`);
21
+ }
22
+ function getWranglerKVNamespaceId(bindingName, bindingConfig) {
23
+ const normalized = normalizeKVBinding(bindingConfig);
24
+ if (normalized.namespaceId) {
25
+ return normalized.namespaceId;
26
+ }
27
+ throw new Error(`KV binding "${bindingName}" is configured by name (${normalized.name}) and must be resolved before compiling Wrangler config. Use loadResolvedConfig() or resolveConfigResources() for build/deploy/automation flows.`);
28
+ }
29
+ function getWranglerHyperdriveId(bindingName, bindingConfig) {
30
+ const normalized = normalizeHyperdriveBinding(bindingConfig);
31
+ if (normalized.configurationId) {
32
+ return normalized.configurationId;
33
+ }
34
+ throw new Error(`Hyperdrive binding "${bindingName}" is configured by name (${normalized.name}) and must be resolved before compiling Wrangler config. Use loadResolvedConfig() or resolveConfigResources() for build/deploy/automation flows.`);
35
+ }
36
+ function getWranglerBrowserBinding(browserBindings) {
37
+ const bindingName = getSingleBrowserBindingName(browserBindings);
38
+ return bindingName ? { binding: bindingName } : undefined;
39
+ }
40
+ function compileWranglerMigrations(migrations) {
41
+ return migrations.map((migration) => ({
42
+ tag: migration.tag,
43
+ ...migration.new_classes && { new_classes: migration.new_classes },
44
+ ...migration.renamed_classes && {
45
+ renamed_classes: migration.renamed_classes.map((renamedClass) => ({
46
+ from: renamedClass.from,
47
+ to: renamedClass.to
48
+ }))
49
+ },
50
+ ...migration.deleted_classes && { deleted_classes: migration.deleted_classes },
51
+ ...migration.new_sqlite_classes && { new_sqlite_classes: migration.new_sqlite_classes }
52
+ }));
15
53
  }
16
-
17
- // src/config/compiler.ts
18
54
  function compileConfig(config, environment) {
19
55
  const mergedConfig = resolveConfigForEnvironment(config, environment);
20
56
  const result = {
21
57
  name: mergedConfig.name,
22
- compatibility_date: mergedConfig.compatibilityDate
58
+ compatibility_date: mergedConfig.compatibilityDate,
59
+ preview_urls: true,
60
+ workers_dev: true
23
61
  };
24
62
  if (mergedConfig.accountId) {
25
63
  result.account_id = mergedConfig.accountId;
@@ -61,18 +99,7 @@ function compileConfig(config, environment) {
61
99
  result.limits = mergedConfig.limits;
62
100
  }
63
101
  if (mergedConfig.migrations && mergedConfig.migrations.length > 0) {
64
- result.migrations = mergedConfig.migrations.map((migration) => ({
65
- tag: migration.tag,
66
- ...migration.new_classes && { new_classes: migration.new_classes },
67
- ...migration.renamed_classes && {
68
- renamed_classes: migration.renamed_classes.map((rc) => ({
69
- from: rc.from,
70
- to: rc.to
71
- }))
72
- },
73
- ...migration.deleted_classes && { deleted_classes: migration.deleted_classes },
74
- ...migration.new_sqlite_classes && { new_sqlite_classes: migration.new_sqlite_classes }
75
- }));
102
+ result.migrations = compileWranglerMigrations(mergedConfig.migrations);
76
103
  }
77
104
  if (mergedConfig.wrangler?.passthrough) {
78
105
  Object.assign(result, mergedConfig.wrangler.passthrough);
@@ -85,15 +112,15 @@ function compileToProgrammaticConfig(config, environment) {
85
112
  }
86
113
  function compileBindings(bindings, result) {
87
114
  if (bindings.kv) {
88
- result.kv_namespaces = Object.entries(bindings.kv).map(([binding, id]) => ({
115
+ result.kv_namespaces = Object.entries(bindings.kv).map(([binding, namespace]) => ({
89
116
  binding,
90
- id
117
+ id: getWranglerKVNamespaceId(binding, namespace)
91
118
  }));
92
119
  }
93
120
  if (bindings.d1) {
94
121
  result.d1_databases = Object.entries(bindings.d1).map(([binding, database_id]) => ({
95
122
  binding,
96
- database_id
123
+ database_id: getWranglerD1DatabaseId(binding, database_id)
97
124
  }));
98
125
  }
99
126
  if (bindings.r2) {
@@ -154,11 +181,12 @@ function compileBindings(bindings, result) {
154
181
  if (bindings.hyperdrive) {
155
182
  result.hyperdrive = Object.entries(bindings.hyperdrive).map(([binding, config]) => ({
156
183
  binding,
157
- id: config.id
184
+ id: getWranglerHyperdriveId(binding, config)
158
185
  }));
159
186
  }
160
- if (bindings.browser && bindings.browser.binding) {
161
- result.browser = { binding: bindings.browser.binding };
187
+ const browserBinding = getWranglerBrowserBinding(bindings.browser);
188
+ if (browserBinding) {
189
+ result.browser = browserBinding;
162
190
  }
163
191
  if (bindings.analyticsEngine) {
164
192
  result.analytics_engine_datasets = Object.entries(bindings.analyticsEngine).map(([binding, config]) => ({
@@ -188,15 +216,65 @@ function stringifyConfig(config) {
188
216
  `;
189
217
  return header + JSON.stringify(config, null, "\t");
190
218
  }
219
+ function rebasePathForConfigDir(projectRoot, configDir, pathValue) {
220
+ const absolutePath = isAbsolute(pathValue) ? pathValue : resolve(projectRoot, pathValue);
221
+ return relative(configDir, absolutePath).replace(/\\/g, "/");
222
+ }
223
+ function pathIsInsideDirectory(directoryPath, candidatePath) {
224
+ const normalizedDirectoryPath = directoryPath.replace(/\\/g, "/");
225
+ const normalizedCandidatePath = candidatePath.replace(/\\/g, "/");
226
+ return normalizedCandidatePath === normalizedDirectoryPath || normalizedCandidatePath.startsWith(`${normalizedDirectoryPath}/`);
227
+ }
228
+ function isolateViteBuildOutputPaths(projectRoot, config) {
229
+ const assetsDirectory = config.assets?.directory;
230
+ if (!assetsDirectory) {
231
+ return config;
232
+ }
233
+ const isolatedAssetsDirectoryPath = resolve(projectRoot, ".devflare", "vite-build-output", basename(assetsDirectory));
234
+ const isolatedAssetsDirectory = relative(projectRoot, isolatedAssetsDirectoryPath).replace(/\\/g, "/");
235
+ const isolatedConfig = {
236
+ ...config,
237
+ assets: config.assets ? {
238
+ ...config.assets,
239
+ directory: isolatedAssetsDirectory
240
+ } : config.assets
241
+ };
242
+ if (!config.main) {
243
+ return isolatedConfig;
244
+ }
245
+ const originalAssetsDirectoryPath = resolve(projectRoot, assetsDirectory);
246
+ const originalMainEntryPath = resolve(projectRoot, config.main);
247
+ if (!pathIsInsideDirectory(originalAssetsDirectoryPath, originalMainEntryPath)) {
248
+ return isolatedConfig;
249
+ }
250
+ const relativeMainEntryPath = relative(originalAssetsDirectoryPath, originalMainEntryPath);
251
+ const isolatedMainEntryPath = resolve(isolatedAssetsDirectoryPath, relativeMainEntryPath);
252
+ return {
253
+ ...isolatedConfig,
254
+ main: relative(projectRoot, isolatedMainEntryPath).replace(/\\/g, "/")
255
+ };
256
+ }
257
+ function rebaseWranglerConfigPaths(projectRoot, configDir, config) {
258
+ return {
259
+ ...config,
260
+ ...config.main ? { main: rebasePathForConfigDir(projectRoot, configDir, config.main) } : {},
261
+ ...config.assets?.directory ? {
262
+ assets: {
263
+ ...config.assets,
264
+ directory: rebasePathForConfigDir(projectRoot, configDir, config.assets.directory)
265
+ }
266
+ } : {}
267
+ };
268
+ }
191
269
  async function writeWranglerConfig(cwd, config, filename = "wrangler.jsonc") {
192
- const { resolve } = await import("pathe");
270
+ const { resolve: resolve2 } = await import("pathe");
193
271
  const fs = await import("node:fs/promises");
194
272
  try {
195
273
  await fs.mkdir(cwd, { recursive: true });
196
274
  } catch {}
197
275
  const content = stringifyConfig(config);
198
- const wranglerPath = resolve(cwd, filename);
276
+ const wranglerPath = resolve2(cwd, filename);
199
277
  await fs.writeFile(wranglerPath, content, "utf-8");
200
278
  return wranglerPath;
201
279
  }
202
- export { resolveConfigForEnvironment, compileConfig, compileToProgrammaticConfig, stringifyConfig, writeWranglerConfig };
280
+ export { compileConfig, compileToProgrammaticConfig, stringifyConfig, isolateViteBuildOutputPaths, rebaseWranglerConfigPaths, writeWranglerConfig };