devflare 1.0.0-next.5 → 1.0.0-next.50

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 (594) hide show
  1. package/LICENSE +21 -0
  2. package/LLM.md +17312 -2139
  3. package/README.md +394 -605
  4. package/bin/devflare.js +30 -14
  5. package/dist/_chunks/account-BI3WZMDy.js +462 -0
  6. package/dist/_chunks/account-resources-CsmVowJp.js +159 -0
  7. package/dist/_chunks/ai-CBEuLdoP.js +322 -0
  8. package/dist/_chunks/api-TzdliH-6.js +568 -0
  9. package/dist/_chunks/build-artifacts-DU5V0J0Z.js +483 -0
  10. package/dist/_chunks/build-e0KR38-4.js +24 -0
  11. package/dist/_chunks/cli-DuUz10Mn.js +1163 -0
  12. package/dist/_chunks/cloudflare-BaloqI3H.js +157 -0
  13. package/dist/_chunks/colors-DiK6wPJ5.js +13 -0
  14. package/dist/_chunks/command-utils-DA0Qx9_K.js +45 -0
  15. package/dist/_chunks/compiler-Zw16C9Pi.js +489 -0
  16. package/dist/_chunks/config-Brju62xy.js +78 -0
  17. package/dist/_chunks/config-path-DaL1ylZ_.js +42 -0
  18. package/dist/_chunks/context-CX50Y2Kb.js +2250 -0
  19. package/dist/_chunks/decorators-QmV57ixr.js +19 -0
  20. package/dist/_chunks/dependencies-C2oxFjU_.js +57 -0
  21. package/dist/_chunks/deploy-B-Kku1Vk.js +1032 -0
  22. package/dist/_chunks/dev-D4e_RRZn.js +3471 -0
  23. package/dist/_chunks/doctor-jm_K4dxL.js +219 -0
  24. package/dist/_chunks/durable-object-DMtH0XYX.js +234 -0
  25. package/dist/_chunks/env-S0_nMVz1.js +125 -0
  26. package/dist/_chunks/family-_9-mGSfO.js +143 -0
  27. package/dist/_chunks/generated-artifacts-dMJY4KAt.js +32 -0
  28. package/dist/_chunks/glob-CmQOvunB.js +56 -0
  29. package/dist/_chunks/init-DnkJOmpW.js +165 -0
  30. package/dist/_chunks/loader-Cr0_OWPy.js +1288 -0
  31. package/dist/_chunks/local-dev-vars-CTSa-wvF.js +81 -0
  32. package/dist/_chunks/local-hyperdrive-CJ90j46O.js +119 -0
  33. package/dist/_chunks/local-media-bindings-DsAW4AMF.js +335 -0
  34. package/dist/_chunks/local-secrets-DMPkmOn3.js +123 -0
  35. package/dist/_chunks/local-workflow-entrypoints-Cq_WJajd.js +90 -0
  36. package/dist/_chunks/login-FjTAAQbi.js +51 -0
  37. package/dist/_chunks/package-metadata-DjHBLB-z.js +39 -0
  38. package/dist/_chunks/preferences-BKp_7XJx.js +241 -0
  39. package/dist/_chunks/preview-C3Cdr8an.js +462 -0
  40. package/dist/_chunks/preview-registry-ClAbLTHH.js +1186 -0
  41. package/dist/_chunks/preview-resources-CGMBjsYB.js +359 -0
  42. package/dist/_chunks/previews-C7hs9-BT.js +1134 -0
  43. package/dist/_chunks/productions-T9Als4fE.js +411 -0
  44. package/dist/_chunks/ref-CYJNAAe_.js +178 -0
  45. package/dist/_chunks/remote-CZnP-HLJ.js +79 -0
  46. package/dist/_chunks/remote-config-D39BY9ji.js +132 -0
  47. package/dist/_chunks/resolve-package-qizBfCIm.js +152 -0
  48. package/dist/_chunks/rolldown-runtime-CvQ6eiug.js +14 -0
  49. package/dist/_chunks/routes-BFYCqHb-.js +833 -0
  50. package/dist/_chunks/runtime-DL-Nz3k8.js +550 -0
  51. package/dist/_chunks/schema-normalization-BCwTLTGp.js +660 -0
  52. package/dist/_chunks/secrets-DIpJGe6C.js +95 -0
  53. package/dist/_chunks/tail-IY-ijYmv.js +239 -0
  54. package/dist/_chunks/token-Dmi0KXyX.js +333 -0
  55. package/dist/_chunks/tokens-iVcgNXi-.js +221 -0
  56. package/dist/_chunks/types-DoKsMYfm.js +484 -0
  57. package/dist/_chunks/ui-BUoZApvE.js +103 -0
  58. package/dist/_chunks/usage-BBTGzjon.js +272 -0
  59. package/dist/_chunks/vite-CGtVNf5E.js +1267 -0
  60. package/dist/_chunks/vite-utils-OVLMV605.js +183 -0
  61. package/dist/_chunks/worker-BEZI4od1.js +410 -0
  62. package/dist/_chunks/worker-bundler-dTTnYU3n.js +458 -0
  63. package/dist/_chunks/worker-entrypoint-CQW77lG8.js +247 -0
  64. package/dist/_chunks/workerName-CFJsLZA-.js +23 -0
  65. package/dist/bridge/client.d.ts +49 -7
  66. package/dist/bridge/client.d.ts.map +1 -1
  67. package/dist/bridge/gateway-runtime.d.ts +8 -0
  68. package/dist/bridge/gateway-runtime.d.ts.map +1 -0
  69. package/dist/bridge/index.d.ts +6 -6
  70. package/dist/bridge/index.d.ts.map +1 -1
  71. package/dist/bridge/log.d.ts +5 -0
  72. package/dist/bridge/log.d.ts.map +1 -0
  73. package/dist/bridge/miniflare.d.ts +82 -2
  74. package/dist/bridge/miniflare.d.ts.map +1 -1
  75. package/dist/bridge/proxy.d.ts +12 -11
  76. package/dist/bridge/proxy.d.ts.map +1 -1
  77. package/dist/bridge/server.d.ts +2 -1
  78. package/dist/bridge/server.d.ts.map +1 -1
  79. package/dist/bridge/v2/body-streams.d.ts +53 -0
  80. package/dist/bridge/v2/body-streams.d.ts.map +1 -0
  81. package/dist/bridge/v2/codec.d.ts +106 -0
  82. package/dist/bridge/v2/codec.d.ts.map +1 -0
  83. package/dist/bridge/v2/control-messages.d.ts +46 -0
  84. package/dist/bridge/v2/control-messages.d.ts.map +1 -0
  85. package/dist/bridge/v2/frames.d.ts +109 -0
  86. package/dist/bridge/v2/frames.d.ts.map +1 -0
  87. package/dist/bridge/v2/index.d.ts +11 -0
  88. package/dist/bridge/v2/index.d.ts.map +1 -0
  89. package/dist/bridge/v2/serialization.d.ts +48 -0
  90. package/dist/bridge/v2/serialization.d.ts.map +1 -0
  91. package/dist/bridge/v2/transport.d.ts +31 -0
  92. package/dist/bridge/v2/transport.d.ts.map +1 -0
  93. package/dist/bridge/v2/value-codec.d.ts +61 -0
  94. package/dist/bridge/v2/value-codec.d.ts.map +1 -0
  95. package/dist/bridge/{serialization.d.ts → v2/value-serialization.d.ts} +40 -18
  96. package/dist/bridge/v2/value-serialization.d.ts.map +1 -0
  97. package/dist/bridge/{protocol.d.ts → v2/wire.d.ts} +32 -8
  98. package/dist/bridge/v2/wire.d.ts.map +1 -0
  99. package/dist/bridge/v2/ws-relay.d.ts +53 -0
  100. package/dist/bridge/v2/ws-relay.d.ts.map +1 -0
  101. package/dist/browser-shim/handler.d.ts +2 -2
  102. package/dist/browser-shim/handler.d.ts.map +1 -1
  103. package/dist/browser-shim/index.d.ts +2 -2
  104. package/dist/browser-shim/server.d.ts +63 -0
  105. package/dist/browser-shim/server.d.ts.map +1 -1
  106. package/dist/browser.d.ts +5411 -0
  107. package/dist/browser.d.ts.map +1 -0
  108. package/dist/browser.js +80 -0
  109. package/dist/bundler/defaults.d.ts +23 -0
  110. package/dist/bundler/defaults.d.ts.map +1 -0
  111. package/dist/bundler/do-bundler.d.ts +7 -0
  112. package/dist/bundler/do-bundler.d.ts.map +1 -1
  113. package/dist/bundler/index.d.ts +3 -1
  114. package/dist/bundler/index.d.ts.map +1 -1
  115. package/dist/bundler/rolldown-shared.d.ts +53 -0
  116. package/dist/bundler/rolldown-shared.d.ts.map +1 -0
  117. package/dist/bundler/worker-bundler.d.ts +13 -0
  118. package/dist/bundler/worker-bundler.d.ts.map +1 -0
  119. package/dist/bundler/worker-compat.d.ts +4 -0
  120. package/dist/bundler/worker-compat.d.ts.map +1 -0
  121. package/dist/cli/build-manifest.d.ts +66 -0
  122. package/dist/cli/build-manifest.d.ts.map +1 -0
  123. package/dist/cli/command-utils.d.ts +18 -0
  124. package/dist/cli/command-utils.d.ts.map +1 -0
  125. package/dist/cli/commands/account.d.ts +2 -2
  126. package/dist/cli/commands/account.d.ts.map +1 -1
  127. package/dist/cli/commands/ai.d.ts +1 -1
  128. package/dist/cli/commands/ai.d.ts.map +1 -1
  129. package/dist/cli/commands/build-artifacts.d.ts +40 -0
  130. package/dist/cli/commands/build-artifacts.d.ts.map +1 -0
  131. package/dist/cli/commands/build.d.ts +2 -2
  132. package/dist/cli/commands/build.d.ts.map +1 -1
  133. package/dist/cli/commands/config.d.ts +4 -0
  134. package/dist/cli/commands/config.d.ts.map +1 -0
  135. package/dist/cli/commands/deploy/metadata.d.ts +18 -0
  136. package/dist/cli/commands/deploy/metadata.d.ts.map +1 -0
  137. package/dist/cli/commands/deploy/prepare.d.ts +23 -0
  138. package/dist/cli/commands/deploy/prepare.d.ts.map +1 -0
  139. package/dist/cli/commands/deploy/runtime.d.ts +4 -0
  140. package/dist/cli/commands/deploy/runtime.d.ts.map +1 -0
  141. package/dist/cli/commands/deploy/verification.d.ts +36 -0
  142. package/dist/cli/commands/deploy/verification.d.ts.map +1 -0
  143. package/dist/cli/commands/deploy.d.ts +2 -2
  144. package/dist/cli/commands/deploy.d.ts.map +1 -1
  145. package/dist/cli/commands/dev.d.ts +9 -1
  146. package/dist/cli/commands/dev.d.ts.map +1 -1
  147. package/dist/cli/commands/doctor.d.ts +2 -2
  148. package/dist/cli/commands/doctor.d.ts.map +1 -1
  149. package/dist/cli/commands/init.d.ts +2 -2
  150. package/dist/cli/commands/init.d.ts.map +1 -1
  151. package/dist/cli/commands/login.d.ts +4 -0
  152. package/dist/cli/commands/login.d.ts.map +1 -0
  153. package/dist/cli/commands/previews-support/cleanup.d.ts +9 -0
  154. package/dist/cli/commands/previews-support/cleanup.d.ts.map +1 -0
  155. package/dist/cli/commands/previews-support/family.d.ts +10 -0
  156. package/dist/cli/commands/previews-support/family.d.ts.map +1 -0
  157. package/dist/cli/commands/previews-support/render.d.ts +8 -0
  158. package/dist/cli/commands/previews-support/render.d.ts.map +1 -0
  159. package/dist/cli/commands/previews-support/theme.d.ts +10 -0
  160. package/dist/cli/commands/previews-support/theme.d.ts.map +1 -0
  161. package/dist/cli/commands/previews-support/types.d.ts +70 -0
  162. package/dist/cli/commands/previews-support/types.d.ts.map +1 -0
  163. package/dist/cli/commands/previews.d.ts +4 -0
  164. package/dist/cli/commands/previews.d.ts.map +1 -0
  165. package/dist/cli/commands/productions.d.ts +4 -0
  166. package/dist/cli/commands/productions.d.ts.map +1 -0
  167. package/dist/cli/commands/remote.d.ts +1 -1
  168. package/dist/cli/commands/remote.d.ts.map +1 -1
  169. package/dist/cli/commands/secrets.d.ts +4 -0
  170. package/dist/cli/commands/secrets.d.ts.map +1 -0
  171. package/dist/cli/commands/tail.d.ts +44 -0
  172. package/dist/cli/commands/tail.d.ts.map +1 -0
  173. package/dist/cli/commands/token.d.ts +4 -0
  174. package/dist/cli/commands/token.d.ts.map +1 -0
  175. package/dist/cli/commands/type-generation/discovery.d.ts +7 -0
  176. package/dist/cli/commands/type-generation/discovery.d.ts.map +1 -0
  177. package/dist/cli/commands/type-generation/generator.d.ts +121 -0
  178. package/dist/cli/commands/type-generation/generator.d.ts.map +1 -0
  179. package/dist/cli/commands/type-generation/models.d.ts +27 -0
  180. package/dist/cli/commands/type-generation/models.d.ts.map +1 -0
  181. package/dist/cli/commands/types.d.ts +2 -2
  182. package/dist/cli/commands/types.d.ts.map +1 -1
  183. package/dist/cli/commands/worker.d.ts +4 -0
  184. package/dist/cli/commands/worker.d.ts.map +1 -0
  185. package/dist/cli/config-path.d.ts +6 -0
  186. package/dist/cli/config-path.d.ts.map +1 -0
  187. package/dist/cli/dependencies.d.ts +2 -1
  188. package/dist/cli/dependencies.d.ts.map +1 -1
  189. package/dist/cli/deploy-strategy.d.ts +17 -0
  190. package/dist/cli/deploy-strategy.d.ts.map +1 -0
  191. package/dist/cli/deploy-target.d.ts +17 -0
  192. package/dist/cli/deploy-target.d.ts.map +1 -0
  193. package/dist/cli/generated-artifacts.d.ts +12 -0
  194. package/dist/cli/generated-artifacts.d.ts.map +1 -0
  195. package/dist/cli/gradual-deploy.d.ts +49 -0
  196. package/dist/cli/gradual-deploy.d.ts.map +1 -0
  197. package/dist/cli/help-pages/pages/account.d.ts +3 -0
  198. package/dist/cli/help-pages/pages/account.d.ts.map +1 -0
  199. package/dist/cli/help-pages/pages/core.d.ts +4 -0
  200. package/dist/cli/help-pages/pages/core.d.ts.map +1 -0
  201. package/dist/cli/help-pages/pages/index.d.ts +3 -0
  202. package/dist/cli/help-pages/pages/index.d.ts.map +1 -0
  203. package/dist/cli/help-pages/pages/misc.d.ts +3 -0
  204. package/dist/cli/help-pages/pages/misc.d.ts.map +1 -0
  205. package/dist/cli/help-pages/pages/previews.d.ts +3 -0
  206. package/dist/cli/help-pages/pages/previews.d.ts.map +1 -0
  207. package/dist/cli/help-pages/pages/productions.d.ts +3 -0
  208. package/dist/cli/help-pages/pages/productions.d.ts.map +1 -0
  209. package/dist/cli/help-pages/render.d.ts +12 -0
  210. package/dist/cli/help-pages/render.d.ts.map +1 -0
  211. package/dist/cli/help-pages/shared.d.ts +15 -0
  212. package/dist/cli/help-pages/shared.d.ts.map +1 -0
  213. package/dist/cli/help-pages/types.d.ts +23 -0
  214. package/dist/cli/help-pages/types.d.ts.map +1 -0
  215. package/dist/cli/help.d.ts +6 -0
  216. package/dist/cli/help.d.ts.map +1 -0
  217. package/dist/cli/index.d.ts +1 -0
  218. package/dist/cli/index.d.ts.map +1 -1
  219. package/dist/cli/index.js +2 -0
  220. package/dist/cli/package-metadata.d.ts +16 -0
  221. package/dist/cli/package-metadata.d.ts.map +1 -0
  222. package/dist/cli/preview-bindings.d.ts +49 -0
  223. package/dist/cli/preview-bindings.d.ts.map +1 -0
  224. package/dist/cli/preview.d.ts +10 -0
  225. package/dist/cli/preview.d.ts.map +1 -0
  226. package/dist/cli/ui.d.ts +37 -0
  227. package/dist/cli/ui.d.ts.map +1 -0
  228. package/dist/cli/workspace-build-guard.d.ts +14 -0
  229. package/dist/cli/workspace-build-guard.d.ts.map +1 -0
  230. package/dist/cli/wrangler-auth.d.ts +1 -1
  231. package/dist/cloudflare/account-core.d.ts +6 -0
  232. package/dist/cloudflare/account-core.d.ts.map +1 -0
  233. package/dist/cloudflare/account-resources.d.ts +40 -0
  234. package/dist/cloudflare/account-resources.d.ts.map +1 -0
  235. package/dist/cloudflare/account-status.d.ts +11 -0
  236. package/dist/cloudflare/account-status.d.ts.map +1 -0
  237. package/dist/cloudflare/account-workers.d.ts +14 -0
  238. package/dist/cloudflare/account-workers.d.ts.map +1 -0
  239. package/dist/cloudflare/account.d.ts +7 -64
  240. package/dist/cloudflare/account.d.ts.map +1 -1
  241. package/dist/cloudflare/api.d.ts +71 -3
  242. package/dist/cloudflare/api.d.ts.map +1 -1
  243. package/dist/cloudflare/auth.d.ts +1 -1
  244. package/dist/cloudflare/auth.d.ts.map +1 -1
  245. package/dist/cloudflare/index.d.ts +61 -6
  246. package/dist/cloudflare/index.d.ts.map +1 -1
  247. package/dist/cloudflare/index.js +4 -13
  248. package/dist/cloudflare/known-permission-group-ids.generated.d.ts +10 -0
  249. package/dist/cloudflare/known-permission-group-ids.generated.d.ts.map +1 -0
  250. package/dist/cloudflare/kv-namespace.d.ts +4 -0
  251. package/dist/cloudflare/kv-namespace.d.ts.map +1 -0
  252. package/dist/cloudflare/preferences.d.ts +7 -0
  253. package/dist/cloudflare/preferences.d.ts.map +1 -1
  254. package/dist/cloudflare/preview-registry-cache.d.ts +6 -0
  255. package/dist/cloudflare/preview-registry-cache.d.ts.map +1 -0
  256. package/dist/cloudflare/preview-registry-inference.d.ts +14 -0
  257. package/dist/cloudflare/preview-registry-inference.d.ts.map +1 -0
  258. package/dist/cloudflare/preview-registry-records.d.ts +4 -0
  259. package/dist/cloudflare/preview-registry-records.d.ts.map +1 -0
  260. package/dist/cloudflare/preview-registry-shape.d.ts +47 -0
  261. package/dist/cloudflare/preview-registry-shape.d.ts.map +1 -0
  262. package/dist/cloudflare/preview-registry-store.d.ts +14 -0
  263. package/dist/cloudflare/preview-registry-store.d.ts.map +1 -0
  264. package/dist/cloudflare/preview-registry-transport.d.ts +4 -0
  265. package/dist/cloudflare/preview-registry-transport.d.ts.map +1 -0
  266. package/dist/cloudflare/preview-registry-types.d.ts +103 -0
  267. package/dist/cloudflare/preview-registry-types.d.ts.map +1 -0
  268. package/dist/cloudflare/preview-registry.d.ts +42 -0
  269. package/dist/cloudflare/preview-registry.d.ts.map +1 -0
  270. package/dist/cloudflare/preview-urls.d.ts +3 -0
  271. package/dist/cloudflare/preview-urls.d.ts.map +1 -0
  272. package/dist/cloudflare/registry-schema.d.ts +253 -0
  273. package/dist/cloudflare/registry-schema.d.ts.map +1 -0
  274. package/dist/cloudflare/remote-config.d.ts.map +1 -1
  275. package/dist/cloudflare/tokens.d.ts +44 -0
  276. package/dist/cloudflare/tokens.d.ts.map +1 -0
  277. package/dist/cloudflare/types.d.ts +124 -7
  278. package/dist/cloudflare/types.d.ts.map +1 -1
  279. package/dist/cloudflare/usage.d.ts +31 -3
  280. package/dist/cloudflare/usage.d.ts.map +1 -1
  281. package/dist/config/binding-resolution-helpers.d.ts +41 -0
  282. package/dist/config/binding-resolution-helpers.d.ts.map +1 -0
  283. package/dist/config/compatibility.d.ts +3 -0
  284. package/dist/config/compatibility.d.ts.map +1 -0
  285. package/dist/config/compiler/bindings.d.ts +14 -0
  286. package/dist/config/compiler/bindings.d.ts.map +1 -0
  287. package/dist/config/compiler/core-helpers.d.ts +6 -0
  288. package/dist/config/compiler/core-helpers.d.ts.map +1 -0
  289. package/dist/config/compiler/do-workers.d.ts +34 -0
  290. package/dist/config/compiler/do-workers.d.ts.map +1 -0
  291. package/dist/config/compiler/paths.d.ts +18 -0
  292. package/dist/config/compiler/paths.d.ts.map +1 -0
  293. package/dist/config/compiler/types.d.ts +298 -0
  294. package/dist/config/compiler/types.d.ts.map +1 -0
  295. package/dist/config/compiler.d.ts +22 -134
  296. package/dist/config/compiler.d.ts.map +1 -1
  297. package/dist/config/cron.d.ts +19 -0
  298. package/dist/config/cron.d.ts.map +1 -0
  299. package/dist/config/define.d.ts +8 -5
  300. package/dist/config/define.d.ts.map +1 -1
  301. package/dist/config/deploy-resources.d.ts +58 -0
  302. package/dist/config/deploy-resources.d.ts.map +1 -0
  303. package/dist/config/env-vars.d.ts +309 -0
  304. package/dist/config/env-vars.d.ts.map +1 -0
  305. package/dist/config/framework-providers.d.ts +9 -0
  306. package/dist/config/framework-providers.d.ts.map +1 -0
  307. package/dist/config/index.d.ts +12 -5
  308. package/dist/config/index.d.ts.map +1 -1
  309. package/dist/config/loader.d.ts +2 -1
  310. package/dist/config/loader.d.ts.map +1 -1
  311. package/dist/config/local-dev-vars.d.ts +15 -0
  312. package/dist/config/local-dev-vars.d.ts.map +1 -0
  313. package/dist/config/preview-resources.d.ts +83 -0
  314. package/dist/config/preview-resources.d.ts.map +1 -0
  315. package/dist/config/preview.d.ts +29 -0
  316. package/dist/config/preview.d.ts.map +1 -0
  317. package/dist/config/ref.d.ts +16 -25
  318. package/dist/config/ref.d.ts.map +1 -1
  319. package/dist/config/resolve-phased.d.ts +72 -0
  320. package/dist/config/resolve-phased.d.ts.map +1 -0
  321. package/dist/config/resolve.d.ts +11 -0
  322. package/dist/config/resolve.d.ts.map +1 -0
  323. package/dist/config/resource-resolution.d.ts +80 -0
  324. package/dist/config/resource-resolution.d.ts.map +1 -0
  325. package/dist/config/schema-bindings.d.ts +2025 -0
  326. package/dist/config/schema-bindings.d.ts.map +1 -0
  327. package/dist/config/schema-build.d.ts +67 -0
  328. package/dist/config/schema-build.d.ts.map +1 -0
  329. package/dist/config/schema-env.d.ts +3579 -0
  330. package/dist/config/schema-env.d.ts.map +1 -0
  331. package/dist/config/schema-normalization.d.ts +265 -0
  332. package/dist/config/schema-normalization.d.ts.map +1 -0
  333. package/dist/config/schema-runtime.d.ts +508 -0
  334. package/dist/config/schema-runtime.d.ts.map +1 -0
  335. package/dist/config/schema-types-bindings-platform.d.ts +508 -0
  336. package/dist/config/schema-types-bindings-platform.d.ts.map +1 -0
  337. package/dist/config/schema-types-bindings-resources.d.ts +767 -0
  338. package/dist/config/schema-types-bindings-resources.d.ts.map +1 -0
  339. package/dist/config/schema-types-bindings.d.ts +293 -0
  340. package/dist/config/schema-types-bindings.d.ts.map +1 -0
  341. package/dist/config/schema-types-build.d.ts +86 -0
  342. package/dist/config/schema-types-build.d.ts.map +1 -0
  343. package/dist/config/schema-types-runtime.d.ts +917 -0
  344. package/dist/config/schema-types-runtime.d.ts.map +1 -0
  345. package/dist/config/schema-types.d.ts +424 -0
  346. package/dist/config/schema-types.d.ts.map +1 -0
  347. package/dist/config/schema.d.ts +5324 -2011
  348. package/dist/config/schema.d.ts.map +1 -1
  349. package/dist/config/service-bindings-validation.d.ts +36 -0
  350. package/dist/config/service-bindings-validation.d.ts.map +1 -0
  351. package/dist/config-entry.d.ts +7 -0
  352. package/dist/config-entry.d.ts.map +1 -0
  353. package/dist/config-entry.js +3 -0
  354. package/dist/decorators/durable-object.d.ts.map +1 -1
  355. package/dist/decorators/index.d.ts +2 -2
  356. package/dist/decorators/index.js +2 -9
  357. package/dist/dev-server/d1-migrations.d.ts +36 -0
  358. package/dist/dev-server/d1-migrations.d.ts.map +1 -0
  359. package/dist/dev-server/dev-server-state.d.ts +59 -0
  360. package/dist/dev-server/dev-server-state.d.ts.map +1 -0
  361. package/dist/dev-server/gateway-script.d.ts +21 -0
  362. package/dist/dev-server/gateway-script.d.ts.map +1 -0
  363. package/dist/dev-server/index.d.ts +1 -1
  364. package/dist/dev-server/miniflare-bindings.d.ts +81 -0
  365. package/dist/dev-server/miniflare-bindings.d.ts.map +1 -0
  366. package/dist/dev-server/miniflare-dev-config.d.ts +36 -0
  367. package/dist/dev-server/miniflare-dev-config.d.ts.map +1 -0
  368. package/dist/dev-server/miniflare-log.d.ts +20 -0
  369. package/dist/dev-server/miniflare-log.d.ts.map +1 -0
  370. package/dist/dev-server/miniflare-worker-config.d.ts +82 -0
  371. package/dist/dev-server/miniflare-worker-config.d.ts.map +1 -0
  372. package/dist/dev-server/reload-queue.d.ts +13 -0
  373. package/dist/dev-server/reload-queue.d.ts.map +1 -0
  374. package/dist/dev-server/runtime-stdio.d.ts +8 -0
  375. package/dist/dev-server/runtime-stdio.d.ts.map +1 -0
  376. package/dist/dev-server/server-startup-helpers.d.ts +84 -0
  377. package/dist/dev-server/server-startup-helpers.d.ts.map +1 -0
  378. package/dist/dev-server/server.d.ts +2 -0
  379. package/dist/dev-server/server.d.ts.map +1 -1
  380. package/dist/dev-server/vite-process.d.ts +15 -0
  381. package/dist/dev-server/vite-process.d.ts.map +1 -0
  382. package/dist/dev-server/vite-utils.d.ts +19 -1
  383. package/dist/dev-server/vite-utils.d.ts.map +1 -1
  384. package/dist/dev-server/worker-source-watcher.d.ts +17 -0
  385. package/dist/dev-server/worker-source-watcher.d.ts.map +1 -0
  386. package/dist/dev-server/worker-surface-paths.d.ts +6 -0
  387. package/dist/dev-server/worker-surface-paths.d.ts.map +1 -0
  388. package/dist/env.d.ts +10 -0
  389. package/dist/env.d.ts.map +1 -1
  390. package/dist/index.d.ts +8 -12
  391. package/dist/index.d.ts.map +1 -1
  392. package/dist/index.js +9 -298
  393. package/dist/runtime/context-events.d.ts +13 -0
  394. package/dist/runtime/context-events.d.ts.map +1 -0
  395. package/dist/runtime/context-types.d.ts +82 -0
  396. package/dist/runtime/context-types.d.ts.map +1 -0
  397. package/dist/runtime/context.d.ts +20 -44
  398. package/dist/runtime/context.d.ts.map +1 -1
  399. package/dist/runtime/exports.d.ts +70 -55
  400. package/dist/runtime/exports.d.ts.map +1 -1
  401. package/dist/runtime/index.d.ts +10 -3
  402. package/dist/runtime/index.d.ts.map +1 -1
  403. package/dist/runtime/index.js +5 -111
  404. package/dist/runtime/middleware.d.ts +119 -67
  405. package/dist/runtime/middleware.d.ts.map +1 -1
  406. package/dist/runtime/router/index.d.ts +7 -0
  407. package/dist/runtime/router/index.d.ts.map +1 -0
  408. package/dist/runtime/router/types.d.ts +24 -0
  409. package/dist/runtime/router/types.d.ts.map +1 -0
  410. package/dist/runtime/validation.d.ts +18 -4
  411. package/dist/runtime/validation.d.ts.map +1 -1
  412. package/dist/secrets/local-secrets.d.ts +46 -0
  413. package/dist/secrets/local-secrets.d.ts.map +1 -0
  414. package/dist/shims/local-hyperdrive.d.ts +12 -0
  415. package/dist/shims/local-hyperdrive.d.ts.map +1 -0
  416. package/dist/shims/local-media-bindings.d.ts +19 -0
  417. package/dist/shims/local-media-bindings.d.ts.map +1 -0
  418. package/dist/shims/local-worker-loader.d.ts +3 -0
  419. package/dist/shims/local-worker-loader.d.ts.map +1 -0
  420. package/dist/sveltekit/index.d.ts +1 -1
  421. package/dist/sveltekit/index.d.ts.map +1 -1
  422. package/dist/sveltekit/index.js +313 -167
  423. package/dist/sveltekit/local-bindings.d.ts +4 -0
  424. package/dist/sveltekit/local-bindings.d.ts.map +1 -0
  425. package/dist/sveltekit/platform.d.ts +20 -2
  426. package/dist/sveltekit/platform.d.ts.map +1 -1
  427. package/dist/test/ai-search.d.ts +39 -0
  428. package/dist/test/ai-search.d.ts.map +1 -0
  429. package/dist/test/alarm.d.ts +55 -0
  430. package/dist/test/alarm.d.ts.map +1 -0
  431. package/dist/test/binding-hints.d.ts +10 -0
  432. package/dist/test/binding-hints.d.ts.map +1 -0
  433. package/dist/test/cf.d.ts +71 -35
  434. package/dist/test/cf.d.ts.map +1 -1
  435. package/dist/test/containers.d.ts +87 -0
  436. package/dist/test/containers.d.ts.map +1 -0
  437. package/dist/test/email.d.ts +16 -7
  438. package/dist/test/email.d.ts.map +1 -1
  439. package/dist/test/index.d.ts +20 -21
  440. package/dist/test/index.d.ts.map +1 -1
  441. package/dist/test/index.js +4971 -70
  442. package/dist/test/offline-bindings.d.ts +115 -0
  443. package/dist/test/offline-bindings.d.ts.map +1 -0
  444. package/dist/test/queue.d.ts.map +1 -1
  445. package/dist/test/remote-ai.d.ts.map +1 -1
  446. package/dist/test/remote-cloudflare.d.ts +13 -0
  447. package/dist/test/remote-cloudflare.d.ts.map +1 -0
  448. package/dist/test/remote-vectorize.d.ts.map +1 -1
  449. package/dist/test/resolve-service-bindings.d.ts +64 -4
  450. package/dist/test/resolve-service-bindings.d.ts.map +1 -1
  451. package/dist/test/scheduled.d.ts.map +1 -1
  452. package/dist/test/should-skip.d.ts +14 -18
  453. package/dist/test/should-skip.d.ts.map +1 -1
  454. package/dist/test/simple-context-bindings.d.ts +13 -0
  455. package/dist/test/simple-context-bindings.d.ts.map +1 -0
  456. package/dist/test/simple-context-durable-objects.d.ts +6 -0
  457. package/dist/test/simple-context-durable-objects.d.ts.map +1 -0
  458. package/dist/test/simple-context-env.d.ts +35 -0
  459. package/dist/test/simple-context-env.d.ts.map +1 -0
  460. package/dist/test/simple-context-gateway-script.d.ts +2 -0
  461. package/dist/test/simple-context-gateway-script.d.ts.map +1 -0
  462. package/dist/test/simple-context-handlers.d.ts +12 -0
  463. package/dist/test/simple-context-handlers.d.ts.map +1 -0
  464. package/dist/test/simple-context-lifecycle.d.ts +32 -0
  465. package/dist/test/simple-context-lifecycle.d.ts.map +1 -0
  466. package/dist/test/simple-context-mfconfig.d.ts +10 -0
  467. package/dist/test/simple-context-mfconfig.d.ts.map +1 -0
  468. package/dist/test/simple-context-multi-worker.d.ts +16 -0
  469. package/dist/test/simple-context-multi-worker.d.ts.map +1 -0
  470. package/dist/test/simple-context-paths.d.ts +40 -0
  471. package/dist/test/simple-context-paths.d.ts.map +1 -0
  472. package/dist/test/simple-context-runtime.d.ts +19 -0
  473. package/dist/test/simple-context-runtime.d.ts.map +1 -0
  474. package/dist/test/simple-context-startup.d.ts +11 -0
  475. package/dist/test/simple-context-startup.d.ts.map +1 -0
  476. package/dist/test/simple-context-transport.d.ts +14 -0
  477. package/dist/test/simple-context-transport.d.ts.map +1 -0
  478. package/dist/test/simple-context.d.ts +8 -27
  479. package/dist/test/simple-context.d.ts.map +1 -1
  480. package/dist/test/tail.d.ts +3 -2
  481. package/dist/test/tail.d.ts.map +1 -1
  482. package/dist/test/utilities/analytics-engine.d.ts +22 -0
  483. package/dist/test/utilities/analytics-engine.d.ts.map +1 -0
  484. package/dist/test/utilities/artifacts.d.ts +11 -0
  485. package/dist/test/utilities/artifacts.d.ts.map +1 -0
  486. package/dist/test/utilities/context.d.ts +39 -0
  487. package/dist/test/utilities/context.d.ts.map +1 -0
  488. package/dist/test/utilities/d1.d.ts +21 -0
  489. package/dist/test/utilities/d1.d.ts.map +1 -0
  490. package/dist/test/utilities/env.d.ts +43 -0
  491. package/dist/test/utilities/env.d.ts.map +1 -0
  492. package/dist/test/utilities/kv.d.ts +11 -0
  493. package/dist/test/utilities/kv.d.ts.map +1 -0
  494. package/dist/test/utilities/media.d.ts +16 -0
  495. package/dist/test/utilities/media.d.ts.map +1 -0
  496. package/dist/test/utilities/platform.d.ts +41 -0
  497. package/dist/test/utilities/platform.d.ts.map +1 -0
  498. package/dist/test/utilities/queue.d.ts +5 -0
  499. package/dist/test/utilities/queue.d.ts.map +1 -0
  500. package/dist/test/utilities/r2.d.ts +2 -0
  501. package/dist/test/utilities/r2.d.ts.map +1 -0
  502. package/dist/test/utilities/stream-flagship.d.ts +27 -0
  503. package/dist/test/utilities/stream-flagship.d.ts.map +1 -0
  504. package/dist/test/utilities/vectorize.d.ts +38 -0
  505. package/dist/test/utilities/vectorize.d.ts.map +1 -0
  506. package/dist/test/utilities/workflows.d.ts +26 -0
  507. package/dist/test/utilities/workflows.d.ts.map +1 -0
  508. package/dist/test/utilities.d.ts +13 -98
  509. package/dist/test/utilities.d.ts.map +1 -1
  510. package/dist/test/worker.d.ts +6 -0
  511. package/dist/test/worker.d.ts.map +1 -1
  512. package/dist/transform/durable-object.d.ts.map +1 -1
  513. package/dist/transform/index.d.ts +2 -2
  514. package/dist/transform/worker-entrypoint.d.ts +5 -0
  515. package/dist/transform/worker-entrypoint.d.ts.map +1 -1
  516. package/dist/utils/entrypoint-discovery.d.ts +6 -3
  517. package/dist/utils/entrypoint-discovery.d.ts.map +1 -1
  518. package/dist/utils/glob.d.ts.map +1 -1
  519. package/dist/utils/resolve-package.d.ts.map +1 -1
  520. package/dist/utils/send-email.d.ts +15 -0
  521. package/dist/utils/send-email.d.ts.map +1 -0
  522. package/dist/utils/send-email.js +163 -0
  523. package/dist/vite/config-file.d.ts +25 -0
  524. package/dist/vite/config-file.d.ts.map +1 -0
  525. package/dist/vite/index.d.ts +3 -2
  526. package/dist/vite/index.d.ts.map +1 -1
  527. package/dist/vite/index.js +2 -339
  528. package/dist/vite/plugin-config-hook.d.ts +28 -0
  529. package/dist/vite/plugin-config-hook.d.ts.map +1 -0
  530. package/dist/vite/plugin-context.d.ts +27 -0
  531. package/dist/vite/plugin-context.d.ts.map +1 -0
  532. package/dist/vite/plugin-durable-objects.d.ts +18 -0
  533. package/dist/vite/plugin-durable-objects.d.ts.map +1 -0
  534. package/dist/vite/plugin-programmatic.d.ts +44 -0
  535. package/dist/vite/plugin-programmatic.d.ts.map +1 -0
  536. package/dist/vite/plugin-service-bindings.d.ts +13 -0
  537. package/dist/vite/plugin-service-bindings.d.ts.map +1 -0
  538. package/dist/vite/plugin-transform.d.ts +41 -0
  539. package/dist/vite/plugin-transform.d.ts.map +1 -0
  540. package/dist/vite/plugin.d.ts +10 -41
  541. package/dist/vite/plugin.d.ts.map +1 -1
  542. package/dist/worker-entry/composed-worker.d.ts +7 -0
  543. package/dist/worker-entry/composed-worker.d.ts.map +1 -0
  544. package/dist/worker-entry/durable-object-discovery.d.ts +20 -0
  545. package/dist/worker-entry/durable-object-discovery.d.ts.map +1 -0
  546. package/dist/worker-entry/extensions.d.ts +5 -0
  547. package/dist/worker-entry/extensions.d.ts.map +1 -0
  548. package/dist/worker-entry/routes.d.ts +22 -0
  549. package/dist/worker-entry/routes.d.ts.map +1 -0
  550. package/dist/worker-entry/surface-paths.d.ts +26 -0
  551. package/dist/worker-entry/surface-paths.d.ts.map +1 -0
  552. package/dist/worker-entry/validate-fetch-style.d.ts +12 -0
  553. package/dist/worker-entry/validate-fetch-style.d.ts.map +1 -0
  554. package/dist/workflows/local-workflow-entrypoints.d.ts +7 -0
  555. package/dist/workflows/local-workflow-entrypoints.d.ts.map +1 -0
  556. package/package.json +159 -116
  557. package/R2.md +0 -170
  558. package/dist/account-rvrj687w.js +0 -397
  559. package/dist/ai-dx4fr9jh.js +0 -107
  560. package/dist/bridge/protocol.d.ts.map +0 -1
  561. package/dist/bridge/serialization.d.ts.map +0 -1
  562. package/dist/browser-shim/worker.d.ts +0 -14
  563. package/dist/browser-shim/worker.d.ts.map +0 -1
  564. package/dist/build-mnf6v8gd.js +0 -53
  565. package/dist/deploy-nhceck39.js +0 -70
  566. package/dist/dev-b9dmrj7b.js +0 -2417
  567. package/dist/doctor-fmgb3d28.js +0 -190
  568. package/dist/durable-object-t4kbb0yt.js +0 -13
  569. package/dist/index-07q6yxyc.js +0 -168
  570. package/dist/index-18hvb6gb.js +0 -194
  571. package/dist/index-1xpj0m4r.js +0 -57
  572. package/dist/index-37x76zdn.js +0 -4
  573. package/dist/index-3t6rypgc.js +0 -13
  574. package/dist/index-67qcae0f.js +0 -183
  575. package/dist/index-a855bdsx.js +0 -18
  576. package/dist/index-d8bdkx2h.js +0 -109
  577. package/dist/index-ep3445yc.js +0 -2225
  578. package/dist/index-gz1gndna.js +0 -307
  579. package/dist/index-hcex3rgh.js +0 -266
  580. package/dist/index-m2q41jwa.js +0 -462
  581. package/dist/index-n7rs26ft.js +0 -77
  582. package/dist/index-pf5s73n9.js +0 -1413
  583. package/dist/index-rbht7m9r.js +0 -36
  584. package/dist/index-tfyxa77h.js +0 -850
  585. package/dist/index-tk6ej9dj.js +0 -94
  586. package/dist/index-z14anrqp.js +0 -226
  587. package/dist/init-f9mgmew3.js +0 -186
  588. package/dist/remote-q59qk463.js +0 -97
  589. package/dist/test/bridge-context.d.ts +0 -76
  590. package/dist/test/bridge-context.d.ts.map +0 -1
  591. package/dist/test/multi-worker-context.d.ts +0 -114
  592. package/dist/test/multi-worker-context.d.ts.map +0 -1
  593. package/dist/types-5nyrz1sz.js +0 -454
  594. package/dist/worker-entrypoint-m9th0rg0.js +0 -13
@@ -0,0 +1,462 @@
1
+ import { existsSync } from "node:fs";
2
+ import { readFile } from "node:fs/promises";
3
+ import { dirname, resolve } from "pathe";
4
+ //#region src/config/env-vars.ts
5
+ const ENV_DESCRIPTOR_FLAG = "__devflareEnvDescriptor";
6
+ function createDescriptor(state) {
7
+ return {
8
+ [ENV_DESCRIPTOR_FLAG]: true,
9
+ __state: state,
10
+ optional() {
11
+ return createDescriptor({
12
+ ...state,
13
+ optional: true
14
+ });
15
+ },
16
+ parse(parser) {
17
+ return createDescriptor({
18
+ ...state,
19
+ parser
20
+ });
21
+ },
22
+ parser(parser) {
23
+ return this.parse(parser);
24
+ },
25
+ default(value) {
26
+ return createDescriptor({
27
+ ...state,
28
+ defaultValue: value,
29
+ hasDefault: true,
30
+ optional: false
31
+ });
32
+ },
33
+ dev(value) {
34
+ return createDescriptor({
35
+ ...state,
36
+ devValue: value,
37
+ hasDevDefault: true
38
+ });
39
+ }
40
+ };
41
+ }
42
+ function createEnvVarDescriptor(name) {
43
+ return createDescriptor({
44
+ name,
45
+ optional: false,
46
+ hasDefault: false,
47
+ hasDevDefault: false
48
+ });
49
+ }
50
+ /**
51
+ * Config-time environment variable descriptor factory.
52
+ *
53
+ * Accessing a property creates a descriptor for the exact environment variable
54
+ * name, so `env.SECRET` reads `SECRET=...` from Devflare-loaded `.env` files or
55
+ * from `process.env`.
56
+ *
57
+ * @example
58
+ * ```ts
59
+ * import { defineConfig, env } from 'devflare/config'
60
+ *
61
+ * export default defineConfig({
62
+ * vars: {
63
+ * secret: env.SECRET,
64
+ * mongo: {
65
+ * uri: env.MONGOURI,
66
+ * database: env.MONGODATABASE
67
+ * },
68
+ * retries: env.RETRIES.parse(Number)
69
+ * }
70
+ * })
71
+ * ```
72
+ */
73
+ const env = new Proxy({}, { get(_target, prop) {
74
+ if (typeof prop !== "string") return;
75
+ return createEnvVarDescriptor(prop);
76
+ } });
77
+ /**
78
+ * Return whether a value was created by the config-time {@link env} proxy.
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * isEnvVarDescriptor(env.SECRET) // true
83
+ * ```
84
+ */
85
+ function isEnvVarDescriptor(value) {
86
+ return Boolean(value && typeof value === "object" && value[ENV_DESCRIPTOR_FLAG] === true);
87
+ }
88
+ function parseEnvValue(rawValue) {
89
+ const trimmed = rawValue.trim();
90
+ const quote = trimmed[0];
91
+ if ((quote === "\"" || quote === "'" || quote === "`") && trimmed.endsWith(quote) && trimmed.length >= 2) {
92
+ const inner = trimmed.slice(1, -1);
93
+ if (quote !== "\"") return inner;
94
+ return inner.replace(/\\n/g, "\n").replace(/\\r/g, "\r").replace(/\\t/g, " ").replace(/\\"/g, "\"").replace(/\\\\/g, "\\");
95
+ }
96
+ return trimmed;
97
+ }
98
+ /**
99
+ * Parse `.env` file contents with Devflare's no-expansion rules.
100
+ *
101
+ * Devflare intentionally does not expand `$OTHER_VARIABLE` references, so
102
+ * values are read as written instead of going through Bun's environment-file
103
+ * parser.
104
+ *
105
+ * @example
106
+ * ```ts
107
+ * parseDevflareEnvFile('TOKEN=abc$123')
108
+ * // { TOKEN: 'abc$123' }
109
+ * ```
110
+ */
111
+ function parseDevflareEnvFile(contents) {
112
+ const values = {};
113
+ for (const line of contents.split(/\r?\n/)) {
114
+ const trimmed = line.trim();
115
+ if (!trimmed || trimmed.startsWith("#")) continue;
116
+ const assignment = trimmed.startsWith("export ") ? trimmed.slice(7).trimStart() : trimmed;
117
+ const equalsIndex = assignment.indexOf("=");
118
+ if (equalsIndex <= 0) continue;
119
+ const key = assignment.slice(0, equalsIndex).trim();
120
+ if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(key)) continue;
121
+ values[key] = parseEnvValue(assignment.slice(equalsIndex + 1));
122
+ }
123
+ return values;
124
+ }
125
+ function collectAncestorDirectories(startDir) {
126
+ const directories = [];
127
+ let current = resolve(startDir);
128
+ while (true) {
129
+ directories.push(current);
130
+ const parent = dirname(current);
131
+ if (parent === current) break;
132
+ current = parent;
133
+ }
134
+ return directories.reverse();
135
+ }
136
+ /**
137
+ * Return `.env.dev` and `.env` candidate paths from the filesystem root to a
138
+ * project directory.
139
+ *
140
+ * Paths are ordered in the same precedence order as loading: parent files
141
+ * first, then closer files, with `.env` after `.env.dev` for each directory.
142
+ *
143
+ * @example
144
+ * ```ts
145
+ * getDevflareDotenvPaths(process.cwd())
146
+ * ```
147
+ */
148
+ function getDevflareDotenvPaths(startDir) {
149
+ return collectAncestorDirectories(startDir).flatMap((directory) => [resolve(directory, ".env.dev"), resolve(directory, ".env")]);
150
+ }
151
+ /**
152
+ * Load Devflare `.env.dev` and `.env` files without mutating `process.env`.
153
+ *
154
+ * Parent directories are loaded first, closer directories override them, and
155
+ * `.env` overrides `.env.dev` within the same directory.
156
+ *
157
+ * @example
158
+ * ```ts
159
+ * const { values } = await loadDevflareDotenv(process.cwd())
160
+ * ```
161
+ */
162
+ async function loadDevflareDotenv(startDir) {
163
+ const values = {};
164
+ const files = [];
165
+ for (const filePath of getDevflareDotenvPaths(startDir)) {
166
+ if (!existsSync(filePath)) continue;
167
+ Object.assign(values, parseDevflareEnvFile(await readFile(filePath, "utf8")));
168
+ files.push(filePath);
169
+ }
170
+ return {
171
+ values,
172
+ files
173
+ };
174
+ }
175
+ /**
176
+ * Load Devflare `.env` values into `process.env` without overwriting existing
177
+ * process-level values.
178
+ *
179
+ * @example
180
+ * ```ts
181
+ * await loadDevflareDotenvIntoProcess(process.cwd())
182
+ * ```
183
+ */
184
+ async function loadDevflareDotenvIntoProcess(startDir) {
185
+ const loaded = await loadDevflareDotenv(startDir);
186
+ for (const [key, value] of Object.entries(loaded.values)) if (process.env[key] === void 0) process.env[key] = value;
187
+ return loaded;
188
+ }
189
+ function formatMissingEnvTree(missing) {
190
+ const root = {};
191
+ for (const item of missing) {
192
+ let current = root;
193
+ for (const segment of item.path.slice(0, -1)) {
194
+ const next = current[segment];
195
+ if (!next || typeof next !== "object") current[segment] = {};
196
+ current = current[segment];
197
+ }
198
+ current[item.path[item.path.length - 1] ?? item.name] = item.name;
199
+ }
200
+ const lines = [];
201
+ const writeNode = (node, depth) => {
202
+ const indent = " ".repeat(depth);
203
+ for (const [key, value] of Object.entries(node)) if (value && typeof value === "object") {
204
+ lines.push(`${indent}${key}:`);
205
+ writeNode(value, depth + 1);
206
+ } else lines.push(`${indent}${key}: ${String(value)}`);
207
+ };
208
+ writeNode(root, 1);
209
+ return lines.join("\n");
210
+ }
211
+ var EnvVarResolutionError = class extends Error {
212
+ code = "ENV_VARS_MISSING";
213
+ constructor(missing, mode) {
214
+ super([
215
+ "These environment variables are missing:",
216
+ "",
217
+ formatMissingEnvTree(missing)
218
+ ].join("\n"));
219
+ this.missing = missing;
220
+ this.mode = mode;
221
+ this.name = "EnvVarResolutionError";
222
+ }
223
+ };
224
+ var EnvVarParseError = class extends Error {
225
+ code = "ENV_VAR_PARSE_FAILED";
226
+ constructor(variableName, path, cause) {
227
+ super(`Could not parse environment variable ${variableName} for vars.${path.join(".")}.\nParser error: ${cause instanceof Error ? cause.message : String(cause)}`);
228
+ this.variableName = variableName;
229
+ this.path = path;
230
+ this.name = "EnvVarParseError";
231
+ }
232
+ };
233
+ function isPlainObject(value) {
234
+ if (!value || typeof value !== "object" || Array.isArray(value) || isEnvVarDescriptor(value)) return false;
235
+ const prototype = Object.getPrototypeOf(value);
236
+ return prototype === Object.prototype || prototype === null;
237
+ }
238
+ const OMIT_VALUE = Symbol("omit optional env var");
239
+ function resolveDescriptorValue(descriptor, sources, path, mode, missing) {
240
+ const state = descriptor.__state;
241
+ const rawValue = sources[state.name];
242
+ if (rawValue !== void 0) try {
243
+ return state.parser ? state.parser(rawValue) : rawValue;
244
+ } catch (error) {
245
+ throw new EnvVarParseError(state.name, path, error);
246
+ }
247
+ if (mode === "dev" && state.hasDevDefault) return state.devValue;
248
+ if (state.hasDefault) return state.defaultValue;
249
+ if (state.optional) return OMIT_VALUE;
250
+ missing.push({
251
+ path,
252
+ name: state.name
253
+ });
254
+ return OMIT_VALUE;
255
+ }
256
+ function resolveVarValue(value, sources, path, mode, missing) {
257
+ if (isEnvVarDescriptor(value)) return resolveDescriptorValue(value, sources, path, mode, missing);
258
+ if (Array.isArray(value)) return value.map((item, index) => resolveVarValue(item, sources, [...path, String(index)], mode, missing)).filter((item) => item !== OMIT_VALUE);
259
+ if (isPlainObject(value)) {
260
+ const resolved = {};
261
+ for (const [key, childValue] of Object.entries(value)) {
262
+ const child = resolveVarValue(childValue, sources, [...path, key], mode, missing);
263
+ if (child !== OMIT_VALUE) resolved[key] = child;
264
+ }
265
+ return resolved;
266
+ }
267
+ return value;
268
+ }
269
+ function resolveVarsObject(vars, sources, mode, missing) {
270
+ if (!vars) return vars;
271
+ const resolved = resolveVarValue(vars, sources, [], mode, missing);
272
+ return resolved === OMIT_VALUE ? void 0 : resolved;
273
+ }
274
+ /**
275
+ * Resolve all `env.NAME` descriptors under a config's `vars` object.
276
+ *
277
+ * @throws {EnvVarResolutionError} When required environment variables are missing.
278
+ * @throws {EnvVarParseError} When a descriptor parser throws.
279
+ *
280
+ * @example
281
+ * ```ts
282
+ * const resolved = await resolveConfigEnvVars(config, {
283
+ * cwd: process.cwd(),
284
+ * mode: 'build'
285
+ * })
286
+ * ```
287
+ */
288
+ async function resolveConfigEnvVars(config, options) {
289
+ const sources = {
290
+ ...(await loadDevflareDotenv(options.configPath ? dirname(resolve(options.cwd, options.configPath)) : options.cwd)).values,
291
+ ...process.env
292
+ };
293
+ const missing = [];
294
+ const vars = resolveVarsObject(config.vars, sources, options.mode, missing);
295
+ if (missing.length > 0) throw new EnvVarResolutionError(missing, options.mode);
296
+ return vars === config.vars ? config : {
297
+ ...config,
298
+ vars
299
+ };
300
+ }
301
+ //#endregion
302
+ //#region src/config/preview.ts
303
+ const PREVIEW_SCOPED_NAME_PREFIX = "__DEVFLARE_PREVIEW_SCOPE__:";
304
+ function getPreviewScopedSeparator(options) {
305
+ return options?.separator ?? "-";
306
+ }
307
+ function encodePreviewScopedName(value) {
308
+ return `${PREVIEW_SCOPED_NAME_PREFIX}${JSON.stringify(value)}`;
309
+ }
310
+ function invalidPreviewScopedName(reason) {
311
+ throw new Error(`Invalid Devflare preview-scoped value: ${reason}. Recreate it with preview.scope(...) instead of constructing preview markers manually.`);
312
+ }
313
+ function decodePreviewScopedName(value) {
314
+ const payload = value.slice(27);
315
+ let parsed;
316
+ try {
317
+ parsed = JSON.parse(payload);
318
+ } catch {
319
+ invalidPreviewScopedName("the encoded payload is not valid JSON");
320
+ }
321
+ const baseName = typeof parsed.baseName === "string" ? parsed.baseName : "";
322
+ if (!baseName.trim()) invalidPreviewScopedName("the encoded payload is missing a non-empty baseName");
323
+ return {
324
+ baseName,
325
+ separator: typeof parsed.separator === "string" && parsed.separator.length > 0 ? parsed.separator : "-"
326
+ };
327
+ }
328
+ function normalizePreviewFragment(rawValue) {
329
+ let normalized = rawValue.toLowerCase().replace(/[^a-z0-9-]+/g, "-").replace(/-+/g, "-").replace(/^-+|-+$/g, "");
330
+ if (!normalized) normalized = "preview";
331
+ if (!/^[a-z]/.test(normalized)) normalized = `b-${normalized}`;
332
+ return normalized;
333
+ }
334
+ function getPreviewIdentifierFromEnv(env) {
335
+ const explicitIdentifier = env.DEVFLARE_PREVIEW_IDENTIFIER?.trim();
336
+ if (explicitIdentifier) return {
337
+ identifier: normalizePreviewFragment(explicitIdentifier),
338
+ source: "env-identifier"
339
+ };
340
+ const previewPr = env.DEVFLARE_PREVIEW_PR?.trim();
341
+ if (previewPr) return {
342
+ identifier: normalizePreviewFragment(`pr-${previewPr}`),
343
+ source: "env-pr"
344
+ };
345
+ const previewBranch = env.DEVFLARE_PREVIEW_BRANCH?.trim();
346
+ if (previewBranch) return {
347
+ identifier: normalizePreviewFragment(previewBranch),
348
+ source: "env-branch"
349
+ };
350
+ return {
351
+ identifier: void 0,
352
+ source: "none"
353
+ };
354
+ }
355
+ function resolvePreviewIdentifier(options = {}) {
356
+ if (options.identifier?.trim()) return {
357
+ identifier: normalizePreviewFragment(options.identifier),
358
+ source: "identifier"
359
+ };
360
+ const envIdentifier = getPreviewIdentifierFromEnv(options.env ?? process.env);
361
+ if (envIdentifier.identifier) return envIdentifier;
362
+ return options.environment === "preview" ? {
363
+ identifier: "preview",
364
+ source: "environment"
365
+ } : {
366
+ identifier: void 0,
367
+ source: "none"
368
+ };
369
+ }
370
+ function mapRecordValues(record, mapper) {
371
+ return Object.fromEntries(Object.entries(record).map(([key, value]) => [key, mapper(value)]));
372
+ }
373
+ const preview = { scope(defaults = {}) {
374
+ return (baseName, options = {}) => {
375
+ if (!baseName.trim()) throw new Error("preview.scope(...) requires a non-empty baseName.");
376
+ return encodePreviewScopedName({
377
+ baseName,
378
+ separator: getPreviewScopedSeparator({
379
+ ...defaults,
380
+ ...options
381
+ })
382
+ });
383
+ };
384
+ } };
385
+ function isPreviewScopedName(value) {
386
+ return typeof value === "string" && value.startsWith(PREVIEW_SCOPED_NAME_PREFIX);
387
+ }
388
+ function materializePreviewScopedString(value, options = {}) {
389
+ if (!isPreviewScopedName(value)) return value;
390
+ const scoped = decodePreviewScopedName(value);
391
+ const previewIdentifier = resolvePreviewIdentifier(options).identifier;
392
+ return previewIdentifier ? `${scoped.baseName}${scoped.separator}${previewIdentifier}` : scoped.baseName;
393
+ }
394
+ function materializePreviewScopedConfig(config, options = {}) {
395
+ if (!config.bindings) return config;
396
+ const bindings = config.bindings;
397
+ const hasPreviewIdentifier = Boolean(resolvePreviewIdentifier(options).identifier);
398
+ return {
399
+ ...config,
400
+ bindings: {
401
+ ...bindings,
402
+ ...bindings.kv ? { kv: mapRecordValues(bindings.kv, (binding) => {
403
+ return typeof binding === "string" ? materializePreviewScopedString(binding, options) : binding;
404
+ }) } : {},
405
+ ...bindings.d1 ? { d1: mapRecordValues(bindings.d1, (binding) => {
406
+ return typeof binding === "string" ? materializePreviewScopedString(binding, options) : binding;
407
+ }) } : {},
408
+ ...bindings.r2 ? { r2: mapRecordValues(bindings.r2, (binding) => {
409
+ return typeof binding === "string" ? materializePreviewScopedString(binding, options) : {
410
+ ...binding,
411
+ bucketName: materializePreviewScopedString(binding.bucketName, options)
412
+ };
413
+ }) } : {},
414
+ ...bindings.queues ? { queues: {
415
+ ...bindings.queues,
416
+ ...bindings.queues.producers ? { producers: mapRecordValues(bindings.queues.producers, (producer) => {
417
+ return typeof producer === "string" ? materializePreviewScopedString(producer, options) : {
418
+ ...producer,
419
+ queue: materializePreviewScopedString(producer.queue, options)
420
+ };
421
+ }) } : {},
422
+ ...bindings.queues.consumers ? { consumers: bindings.queues.consumers.map((consumer) => ({
423
+ ...consumer,
424
+ queue: materializePreviewScopedString(consumer.queue, options),
425
+ ...consumer.deadLetterQueue ? { deadLetterQueue: materializePreviewScopedString(consumer.deadLetterQueue, options) } : {}
426
+ })) } : {}
427
+ } } : {},
428
+ ...bindings.services ? { services: mapRecordValues(bindings.services, (binding) => ({
429
+ ...binding,
430
+ service: materializePreviewScopedString(binding.service, options)
431
+ })) } : {},
432
+ ...bindings.vectorize ? { vectorize: mapRecordValues(bindings.vectorize, (binding) => ({
433
+ ...binding,
434
+ indexName: materializePreviewScopedString(binding.indexName, options)
435
+ })) } : {},
436
+ ...bindings.hyperdrive ? { hyperdrive: mapRecordValues(bindings.hyperdrive, (binding) => {
437
+ if (typeof binding === "string") return materializePreviewScopedString(binding, options);
438
+ if (binding && typeof binding === "object" && "name" in binding && typeof binding.name === "string") {
439
+ if (hasPreviewIdentifier && binding.previewId) return {
440
+ id: binding.previewId,
441
+ ...binding.localConnectionString && { localConnectionString: binding.localConnectionString },
442
+ ...!binding.localConnectionString && binding.previewLocalConnectionString && { localConnectionString: binding.previewLocalConnectionString }
443
+ };
444
+ return {
445
+ ...binding,
446
+ name: materializePreviewScopedString(binding.name, options)
447
+ };
448
+ }
449
+ return binding;
450
+ }) } : {},
451
+ ...bindings.browser ? { browser: mapRecordValues(bindings.browser, (binding) => {
452
+ return typeof binding === "string" ? materializePreviewScopedString(binding, options) : binding;
453
+ }) } : {},
454
+ ...bindings.analyticsEngine ? { analyticsEngine: mapRecordValues(bindings.analyticsEngine, (binding) => ({
455
+ ...binding,
456
+ dataset: materializePreviewScopedString(binding.dataset, options)
457
+ })) } : {}
458
+ }
459
+ };
460
+ }
461
+ //#endregion
462
+ export { resolvePreviewIdentifier as a, getDevflareDotenvPaths as c, resolveConfigEnvVars as d, preview as i, isEnvVarDescriptor as l, materializePreviewScopedConfig as n, EnvVarResolutionError as o, materializePreviewScopedString as r, env as s, isPreviewScopedName as t, loadDevflareDotenvIntoProcess as u };