devflare 1.0.0-next.4 → 1.0.0-next.40

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 (577) hide show
  1. package/LICENSE +21 -0
  2. package/LLM.md +15966 -2139
  3. package/README.md +393 -605
  4. package/bin/devflare.js +22 -14
  5. package/dist/_chunks/account-BtWcv3X9.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-3T6O4uIg.js +24 -0
  10. package/dist/_chunks/build-artifacts-8TqBSQkG.js +483 -0
  11. package/dist/_chunks/cli-BTF1X4SG.js +1128 -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-BsfkmTqh.js +45 -0
  15. package/dist/_chunks/compiler-uoyAQ8zW.js +424 -0
  16. package/dist/_chunks/config-D5u-bEkn.js +78 -0
  17. package/dist/_chunks/config-path-DCPto4XB.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-DMTr6JeR.js +915 -0
  22. package/dist/_chunks/dev-CvRHmRFZ.js +3456 -0
  23. package/dist/_chunks/doctor-DIG8DoFU.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-DXC5SdFK.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-3moXTgpb.js +165 -0
  30. package/dist/_chunks/loader-DLXO60RO.js +1153 -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-DMmEOygL.js +123 -0
  35. package/dist/_chunks/local-workflow-entrypoints-Wip3o1u8.js +90 -0
  36. package/dist/_chunks/login-BmnDzDlH.js +51 -0
  37. package/dist/_chunks/package-metadata-DAuCkyvK.js +39 -0
  38. package/dist/_chunks/preferences-BKp_7XJx.js +241 -0
  39. package/dist/_chunks/preview-BhqDmq8I.js +456 -0
  40. package/dist/_chunks/preview-registry-ClAbLTHH.js +1186 -0
  41. package/dist/_chunks/preview-resources-DdXj8LMM.js +358 -0
  42. package/dist/_chunks/previews-Dlr13x5M.js +1134 -0
  43. package/dist/_chunks/productions-D3AnOHac.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-Y84HB3Nt.js +133 -0
  48. package/dist/_chunks/rolldown-runtime-CvQ6eiug.js +14 -0
  49. package/dist/_chunks/routes-C3FqES2W.js +796 -0
  50. package/dist/_chunks/runtime-FvXvfuZ2.js +550 -0
  51. package/dist/_chunks/schema-normalization-DWVleVxo.js +477 -0
  52. package/dist/_chunks/secrets-70eN0Q6C.js +95 -0
  53. package/dist/_chunks/token-kguIDmej.js +333 -0
  54. package/dist/_chunks/tokens-iVcgNXi-.js +221 -0
  55. package/dist/_chunks/types-OrLbzv4I.js +476 -0
  56. package/dist/_chunks/ui-BUoZApvE.js +103 -0
  57. package/dist/_chunks/usage-BBTGzjon.js +272 -0
  58. package/dist/_chunks/vite-CsI0E-uV.js +1235 -0
  59. package/dist/_chunks/vite-utils-OVLMV605.js +183 -0
  60. package/dist/_chunks/worker-CS1jgNFE.js +410 -0
  61. package/dist/_chunks/worker-bundler-dTTnYU3n.js +458 -0
  62. package/dist/_chunks/worker-entrypoint-CQW77lG8.js +247 -0
  63. package/dist/_chunks/workerName-CFJsLZA-.js +23 -0
  64. package/dist/bridge/client.d.ts +49 -7
  65. package/dist/bridge/client.d.ts.map +1 -1
  66. package/dist/bridge/gateway-runtime.d.ts +8 -0
  67. package/dist/bridge/gateway-runtime.d.ts.map +1 -0
  68. package/dist/bridge/index.d.ts +6 -6
  69. package/dist/bridge/index.d.ts.map +1 -1
  70. package/dist/bridge/log.d.ts +5 -0
  71. package/dist/bridge/log.d.ts.map +1 -0
  72. package/dist/bridge/miniflare.d.ts +75 -2
  73. package/dist/bridge/miniflare.d.ts.map +1 -1
  74. package/dist/bridge/proxy.d.ts +12 -11
  75. package/dist/bridge/proxy.d.ts.map +1 -1
  76. package/dist/bridge/server.d.ts +2 -1
  77. package/dist/bridge/server.d.ts.map +1 -1
  78. package/dist/bridge/v2/body-streams.d.ts +53 -0
  79. package/dist/bridge/v2/body-streams.d.ts.map +1 -0
  80. package/dist/bridge/v2/codec.d.ts +106 -0
  81. package/dist/bridge/v2/codec.d.ts.map +1 -0
  82. package/dist/bridge/v2/control-messages.d.ts +46 -0
  83. package/dist/bridge/v2/control-messages.d.ts.map +1 -0
  84. package/dist/bridge/v2/frames.d.ts +109 -0
  85. package/dist/bridge/v2/frames.d.ts.map +1 -0
  86. package/dist/bridge/v2/index.d.ts +11 -0
  87. package/dist/bridge/v2/index.d.ts.map +1 -0
  88. package/dist/bridge/v2/serialization.d.ts +48 -0
  89. package/dist/bridge/v2/serialization.d.ts.map +1 -0
  90. package/dist/bridge/v2/transport.d.ts +31 -0
  91. package/dist/bridge/v2/transport.d.ts.map +1 -0
  92. package/dist/bridge/v2/value-codec.d.ts +61 -0
  93. package/dist/bridge/v2/value-codec.d.ts.map +1 -0
  94. package/dist/bridge/{serialization.d.ts → v2/value-serialization.d.ts} +40 -18
  95. package/dist/bridge/v2/value-serialization.d.ts.map +1 -0
  96. package/dist/bridge/{protocol.d.ts → v2/wire.d.ts} +32 -8
  97. package/dist/bridge/v2/wire.d.ts.map +1 -0
  98. package/dist/bridge/v2/ws-relay.d.ts +53 -0
  99. package/dist/bridge/v2/ws-relay.d.ts.map +1 -0
  100. package/dist/browser-shim/handler.d.ts +2 -2
  101. package/dist/browser-shim/handler.d.ts.map +1 -1
  102. package/dist/browser-shim/index.d.ts +2 -2
  103. package/dist/browser-shim/server.d.ts +63 -0
  104. package/dist/browser-shim/server.d.ts.map +1 -1
  105. package/dist/browser.d.ts +4621 -0
  106. package/dist/browser.d.ts.map +1 -0
  107. package/dist/browser.js +80 -0
  108. package/dist/bundler/defaults.d.ts +23 -0
  109. package/dist/bundler/defaults.d.ts.map +1 -0
  110. package/dist/bundler/do-bundler.d.ts +7 -0
  111. package/dist/bundler/do-bundler.d.ts.map +1 -1
  112. package/dist/bundler/index.d.ts +3 -1
  113. package/dist/bundler/index.d.ts.map +1 -1
  114. package/dist/bundler/rolldown-shared.d.ts +53 -0
  115. package/dist/bundler/rolldown-shared.d.ts.map +1 -0
  116. package/dist/bundler/worker-bundler.d.ts +13 -0
  117. package/dist/bundler/worker-bundler.d.ts.map +1 -0
  118. package/dist/bundler/worker-compat.d.ts +4 -0
  119. package/dist/bundler/worker-compat.d.ts.map +1 -0
  120. package/dist/cli/build-manifest.d.ts +66 -0
  121. package/dist/cli/build-manifest.d.ts.map +1 -0
  122. package/dist/cli/command-utils.d.ts +18 -0
  123. package/dist/cli/command-utils.d.ts.map +1 -0
  124. package/dist/cli/commands/account.d.ts +2 -2
  125. package/dist/cli/commands/account.d.ts.map +1 -1
  126. package/dist/cli/commands/ai.d.ts +1 -1
  127. package/dist/cli/commands/ai.d.ts.map +1 -1
  128. package/dist/cli/commands/build-artifacts.d.ts +40 -0
  129. package/dist/cli/commands/build-artifacts.d.ts.map +1 -0
  130. package/dist/cli/commands/build.d.ts +2 -2
  131. package/dist/cli/commands/build.d.ts.map +1 -1
  132. package/dist/cli/commands/config.d.ts +4 -0
  133. package/dist/cli/commands/config.d.ts.map +1 -0
  134. package/dist/cli/commands/deploy/metadata.d.ts +18 -0
  135. package/dist/cli/commands/deploy/metadata.d.ts.map +1 -0
  136. package/dist/cli/commands/deploy/prepare.d.ts +23 -0
  137. package/dist/cli/commands/deploy/prepare.d.ts.map +1 -0
  138. package/dist/cli/commands/deploy/runtime.d.ts +4 -0
  139. package/dist/cli/commands/deploy/runtime.d.ts.map +1 -0
  140. package/dist/cli/commands/deploy/verification.d.ts +36 -0
  141. package/dist/cli/commands/deploy/verification.d.ts.map +1 -0
  142. package/dist/cli/commands/deploy.d.ts +2 -2
  143. package/dist/cli/commands/deploy.d.ts.map +1 -1
  144. package/dist/cli/commands/dev.d.ts +9 -1
  145. package/dist/cli/commands/dev.d.ts.map +1 -1
  146. package/dist/cli/commands/doctor.d.ts +2 -2
  147. package/dist/cli/commands/doctor.d.ts.map +1 -1
  148. package/dist/cli/commands/init.d.ts +2 -2
  149. package/dist/cli/commands/init.d.ts.map +1 -1
  150. package/dist/cli/commands/login.d.ts +4 -0
  151. package/dist/cli/commands/login.d.ts.map +1 -0
  152. package/dist/cli/commands/previews-support/cleanup.d.ts +9 -0
  153. package/dist/cli/commands/previews-support/cleanup.d.ts.map +1 -0
  154. package/dist/cli/commands/previews-support/family.d.ts +10 -0
  155. package/dist/cli/commands/previews-support/family.d.ts.map +1 -0
  156. package/dist/cli/commands/previews-support/render.d.ts +8 -0
  157. package/dist/cli/commands/previews-support/render.d.ts.map +1 -0
  158. package/dist/cli/commands/previews-support/theme.d.ts +10 -0
  159. package/dist/cli/commands/previews-support/theme.d.ts.map +1 -0
  160. package/dist/cli/commands/previews-support/types.d.ts +70 -0
  161. package/dist/cli/commands/previews-support/types.d.ts.map +1 -0
  162. package/dist/cli/commands/previews.d.ts +4 -0
  163. package/dist/cli/commands/previews.d.ts.map +1 -0
  164. package/dist/cli/commands/productions.d.ts +4 -0
  165. package/dist/cli/commands/productions.d.ts.map +1 -0
  166. package/dist/cli/commands/remote.d.ts +1 -1
  167. package/dist/cli/commands/remote.d.ts.map +1 -1
  168. package/dist/cli/commands/secrets.d.ts +4 -0
  169. package/dist/cli/commands/secrets.d.ts.map +1 -0
  170. package/dist/cli/commands/token.d.ts +4 -0
  171. package/dist/cli/commands/token.d.ts.map +1 -0
  172. package/dist/cli/commands/type-generation/discovery.d.ts +7 -0
  173. package/dist/cli/commands/type-generation/discovery.d.ts.map +1 -0
  174. package/dist/cli/commands/type-generation/generator.d.ts +112 -0
  175. package/dist/cli/commands/type-generation/generator.d.ts.map +1 -0
  176. package/dist/cli/commands/type-generation/models.d.ts +27 -0
  177. package/dist/cli/commands/type-generation/models.d.ts.map +1 -0
  178. package/dist/cli/commands/types.d.ts +2 -2
  179. package/dist/cli/commands/types.d.ts.map +1 -1
  180. package/dist/cli/commands/worker.d.ts +4 -0
  181. package/dist/cli/commands/worker.d.ts.map +1 -0
  182. package/dist/cli/config-path.d.ts +6 -0
  183. package/dist/cli/config-path.d.ts.map +1 -0
  184. package/dist/cli/dependencies.d.ts +2 -1
  185. package/dist/cli/dependencies.d.ts.map +1 -1
  186. package/dist/cli/deploy-strategy.d.ts +17 -0
  187. package/dist/cli/deploy-strategy.d.ts.map +1 -0
  188. package/dist/cli/deploy-target.d.ts +17 -0
  189. package/dist/cli/deploy-target.d.ts.map +1 -0
  190. package/dist/cli/generated-artifacts.d.ts +12 -0
  191. package/dist/cli/generated-artifacts.d.ts.map +1 -0
  192. package/dist/cli/help-pages/pages/account.d.ts +3 -0
  193. package/dist/cli/help-pages/pages/account.d.ts.map +1 -0
  194. package/dist/cli/help-pages/pages/core.d.ts +4 -0
  195. package/dist/cli/help-pages/pages/core.d.ts.map +1 -0
  196. package/dist/cli/help-pages/pages/index.d.ts +3 -0
  197. package/dist/cli/help-pages/pages/index.d.ts.map +1 -0
  198. package/dist/cli/help-pages/pages/misc.d.ts +3 -0
  199. package/dist/cli/help-pages/pages/misc.d.ts.map +1 -0
  200. package/dist/cli/help-pages/pages/previews.d.ts +3 -0
  201. package/dist/cli/help-pages/pages/previews.d.ts.map +1 -0
  202. package/dist/cli/help-pages/pages/productions.d.ts +3 -0
  203. package/dist/cli/help-pages/pages/productions.d.ts.map +1 -0
  204. package/dist/cli/help-pages/render.d.ts +12 -0
  205. package/dist/cli/help-pages/render.d.ts.map +1 -0
  206. package/dist/cli/help-pages/shared.d.ts +15 -0
  207. package/dist/cli/help-pages/shared.d.ts.map +1 -0
  208. package/dist/cli/help-pages/types.d.ts +23 -0
  209. package/dist/cli/help-pages/types.d.ts.map +1 -0
  210. package/dist/cli/help.d.ts +6 -0
  211. package/dist/cli/help.d.ts.map +1 -0
  212. package/dist/cli/index.d.ts +1 -0
  213. package/dist/cli/index.d.ts.map +1 -1
  214. package/dist/cli/index.js +2 -0
  215. package/dist/cli/package-metadata.d.ts +16 -0
  216. package/dist/cli/package-metadata.d.ts.map +1 -0
  217. package/dist/cli/preview-bindings.d.ts +49 -0
  218. package/dist/cli/preview-bindings.d.ts.map +1 -0
  219. package/dist/cli/preview.d.ts +10 -0
  220. package/dist/cli/preview.d.ts.map +1 -0
  221. package/dist/cli/ui.d.ts +37 -0
  222. package/dist/cli/ui.d.ts.map +1 -0
  223. package/dist/cli/workspace-build-guard.d.ts +14 -0
  224. package/dist/cli/workspace-build-guard.d.ts.map +1 -0
  225. package/dist/cli/wrangler-auth.d.ts +1 -1
  226. package/dist/cloudflare/account-core.d.ts +6 -0
  227. package/dist/cloudflare/account-core.d.ts.map +1 -0
  228. package/dist/cloudflare/account-resources.d.ts +40 -0
  229. package/dist/cloudflare/account-resources.d.ts.map +1 -0
  230. package/dist/cloudflare/account-status.d.ts +11 -0
  231. package/dist/cloudflare/account-status.d.ts.map +1 -0
  232. package/dist/cloudflare/account-workers.d.ts +14 -0
  233. package/dist/cloudflare/account-workers.d.ts.map +1 -0
  234. package/dist/cloudflare/account.d.ts +7 -64
  235. package/dist/cloudflare/account.d.ts.map +1 -1
  236. package/dist/cloudflare/api.d.ts +71 -3
  237. package/dist/cloudflare/api.d.ts.map +1 -1
  238. package/dist/cloudflare/auth.d.ts +1 -1
  239. package/dist/cloudflare/auth.d.ts.map +1 -1
  240. package/dist/cloudflare/index.d.ts +61 -6
  241. package/dist/cloudflare/index.d.ts.map +1 -1
  242. package/dist/cloudflare/index.js +4 -13
  243. package/dist/cloudflare/known-permission-group-ids.generated.d.ts +10 -0
  244. package/dist/cloudflare/known-permission-group-ids.generated.d.ts.map +1 -0
  245. package/dist/cloudflare/kv-namespace.d.ts +4 -0
  246. package/dist/cloudflare/kv-namespace.d.ts.map +1 -0
  247. package/dist/cloudflare/preferences.d.ts +7 -0
  248. package/dist/cloudflare/preferences.d.ts.map +1 -1
  249. package/dist/cloudflare/preview-registry-cache.d.ts +6 -0
  250. package/dist/cloudflare/preview-registry-cache.d.ts.map +1 -0
  251. package/dist/cloudflare/preview-registry-inference.d.ts +14 -0
  252. package/dist/cloudflare/preview-registry-inference.d.ts.map +1 -0
  253. package/dist/cloudflare/preview-registry-records.d.ts +4 -0
  254. package/dist/cloudflare/preview-registry-records.d.ts.map +1 -0
  255. package/dist/cloudflare/preview-registry-shape.d.ts +47 -0
  256. package/dist/cloudflare/preview-registry-shape.d.ts.map +1 -0
  257. package/dist/cloudflare/preview-registry-store.d.ts +14 -0
  258. package/dist/cloudflare/preview-registry-store.d.ts.map +1 -0
  259. package/dist/cloudflare/preview-registry-transport.d.ts +4 -0
  260. package/dist/cloudflare/preview-registry-transport.d.ts.map +1 -0
  261. package/dist/cloudflare/preview-registry-types.d.ts +103 -0
  262. package/dist/cloudflare/preview-registry-types.d.ts.map +1 -0
  263. package/dist/cloudflare/preview-registry.d.ts +42 -0
  264. package/dist/cloudflare/preview-registry.d.ts.map +1 -0
  265. package/dist/cloudflare/preview-urls.d.ts +3 -0
  266. package/dist/cloudflare/preview-urls.d.ts.map +1 -0
  267. package/dist/cloudflare/registry-schema.d.ts +253 -0
  268. package/dist/cloudflare/registry-schema.d.ts.map +1 -0
  269. package/dist/cloudflare/remote-config.d.ts.map +1 -1
  270. package/dist/cloudflare/tokens.d.ts +44 -0
  271. package/dist/cloudflare/tokens.d.ts.map +1 -0
  272. package/dist/cloudflare/types.d.ts +124 -7
  273. package/dist/cloudflare/types.d.ts.map +1 -1
  274. package/dist/cloudflare/usage.d.ts +31 -3
  275. package/dist/cloudflare/usage.d.ts.map +1 -1
  276. package/dist/config/binding-resolution-helpers.d.ts +41 -0
  277. package/dist/config/binding-resolution-helpers.d.ts.map +1 -0
  278. package/dist/config/compatibility.d.ts +3 -0
  279. package/dist/config/compatibility.d.ts.map +1 -0
  280. package/dist/config/compiler/bindings.d.ts +14 -0
  281. package/dist/config/compiler/bindings.d.ts.map +1 -0
  282. package/dist/config/compiler/core-helpers.d.ts +6 -0
  283. package/dist/config/compiler/core-helpers.d.ts.map +1 -0
  284. package/dist/config/compiler/do-workers.d.ts +34 -0
  285. package/dist/config/compiler/do-workers.d.ts.map +1 -0
  286. package/dist/config/compiler/paths.d.ts +18 -0
  287. package/dist/config/compiler/paths.d.ts.map +1 -0
  288. package/dist/config/compiler/types.d.ts +270 -0
  289. package/dist/config/compiler/types.d.ts.map +1 -0
  290. package/dist/config/compiler.d.ts +22 -134
  291. package/dist/config/compiler.d.ts.map +1 -1
  292. package/dist/config/define.d.ts +8 -5
  293. package/dist/config/define.d.ts.map +1 -1
  294. package/dist/config/deploy-resources.d.ts +58 -0
  295. package/dist/config/deploy-resources.d.ts.map +1 -0
  296. package/dist/config/env-vars.d.ts +309 -0
  297. package/dist/config/env-vars.d.ts.map +1 -0
  298. package/dist/config/framework-providers.d.ts +9 -0
  299. package/dist/config/framework-providers.d.ts.map +1 -0
  300. package/dist/config/index.d.ts +12 -5
  301. package/dist/config/index.d.ts.map +1 -1
  302. package/dist/config/loader.d.ts +2 -1
  303. package/dist/config/loader.d.ts.map +1 -1
  304. package/dist/config/local-dev-vars.d.ts +15 -0
  305. package/dist/config/local-dev-vars.d.ts.map +1 -0
  306. package/dist/config/preview-resources.d.ts +83 -0
  307. package/dist/config/preview-resources.d.ts.map +1 -0
  308. package/dist/config/preview.d.ts +29 -0
  309. package/dist/config/preview.d.ts.map +1 -0
  310. package/dist/config/ref.d.ts +16 -25
  311. package/dist/config/ref.d.ts.map +1 -1
  312. package/dist/config/resolve-phased.d.ts +72 -0
  313. package/dist/config/resolve-phased.d.ts.map +1 -0
  314. package/dist/config/resolve.d.ts +11 -0
  315. package/dist/config/resolve.d.ts.map +1 -0
  316. package/dist/config/resource-resolution.d.ts +80 -0
  317. package/dist/config/resource-resolution.d.ts.map +1 -0
  318. package/dist/config/schema-bindings.d.ts +1495 -0
  319. package/dist/config/schema-bindings.d.ts.map +1 -0
  320. package/dist/config/schema-build.d.ts +67 -0
  321. package/dist/config/schema-build.d.ts.map +1 -0
  322. package/dist/config/schema-env.d.ts +3023 -0
  323. package/dist/config/schema-env.d.ts.map +1 -0
  324. package/dist/config/schema-normalization.d.ts +184 -0
  325. package/dist/config/schema-normalization.d.ts.map +1 -0
  326. package/dist/config/schema-runtime.d.ts +500 -0
  327. package/dist/config/schema-runtime.d.ts.map +1 -0
  328. package/dist/config/schema-types-bindings-platform.d.ts +378 -0
  329. package/dist/config/schema-types-bindings-platform.d.ts.map +1 -0
  330. package/dist/config/schema-types-bindings-resources.d.ts +550 -0
  331. package/dist/config/schema-types-bindings-resources.d.ts.map +1 -0
  332. package/dist/config/schema-types-bindings.d.ts +254 -0
  333. package/dist/config/schema-types-bindings.d.ts.map +1 -0
  334. package/dist/config/schema-types-build.d.ts +86 -0
  335. package/dist/config/schema-types-build.d.ts.map +1 -0
  336. package/dist/config/schema-types-runtime.d.ts +917 -0
  337. package/dist/config/schema-types-runtime.d.ts.map +1 -0
  338. package/dist/config/schema-types.d.ts +424 -0
  339. package/dist/config/schema-types.d.ts.map +1 -0
  340. package/dist/config/schema.d.ts +4537 -2214
  341. package/dist/config/schema.d.ts.map +1 -1
  342. package/dist/config/service-bindings-validation.d.ts +36 -0
  343. package/dist/config/service-bindings-validation.d.ts.map +1 -0
  344. package/dist/config-entry.d.ts +7 -0
  345. package/dist/config-entry.d.ts.map +1 -0
  346. package/dist/config-entry.js +3 -0
  347. package/dist/decorators/durable-object.d.ts.map +1 -1
  348. package/dist/decorators/index.d.ts +2 -2
  349. package/dist/decorators/index.js +2 -9
  350. package/dist/dev-server/d1-migrations.d.ts +36 -0
  351. package/dist/dev-server/d1-migrations.d.ts.map +1 -0
  352. package/dist/dev-server/dev-server-state.d.ts +59 -0
  353. package/dist/dev-server/dev-server-state.d.ts.map +1 -0
  354. package/dist/dev-server/gateway-script.d.ts +21 -0
  355. package/dist/dev-server/gateway-script.d.ts.map +1 -0
  356. package/dist/dev-server/index.d.ts +1 -1
  357. package/dist/dev-server/miniflare-bindings.d.ts +59 -0
  358. package/dist/dev-server/miniflare-bindings.d.ts.map +1 -0
  359. package/dist/dev-server/miniflare-dev-config.d.ts +36 -0
  360. package/dist/dev-server/miniflare-dev-config.d.ts.map +1 -0
  361. package/dist/dev-server/miniflare-log.d.ts +20 -0
  362. package/dist/dev-server/miniflare-log.d.ts.map +1 -0
  363. package/dist/dev-server/miniflare-worker-config.d.ts +74 -0
  364. package/dist/dev-server/miniflare-worker-config.d.ts.map +1 -0
  365. package/dist/dev-server/reload-queue.d.ts +13 -0
  366. package/dist/dev-server/reload-queue.d.ts.map +1 -0
  367. package/dist/dev-server/runtime-stdio.d.ts +8 -0
  368. package/dist/dev-server/runtime-stdio.d.ts.map +1 -0
  369. package/dist/dev-server/server-startup-helpers.d.ts +84 -0
  370. package/dist/dev-server/server-startup-helpers.d.ts.map +1 -0
  371. package/dist/dev-server/server.d.ts +2 -0
  372. package/dist/dev-server/server.d.ts.map +1 -1
  373. package/dist/dev-server/vite-process.d.ts +15 -0
  374. package/dist/dev-server/vite-process.d.ts.map +1 -0
  375. package/dist/dev-server/vite-utils.d.ts +19 -1
  376. package/dist/dev-server/vite-utils.d.ts.map +1 -1
  377. package/dist/dev-server/worker-source-watcher.d.ts +17 -0
  378. package/dist/dev-server/worker-source-watcher.d.ts.map +1 -0
  379. package/dist/dev-server/worker-surface-paths.d.ts +6 -0
  380. package/dist/dev-server/worker-surface-paths.d.ts.map +1 -0
  381. package/dist/env.d.ts +10 -0
  382. package/dist/env.d.ts.map +1 -1
  383. package/dist/index.d.ts +8 -12
  384. package/dist/index.d.ts.map +1 -1
  385. package/dist/index.js +9 -298
  386. package/dist/runtime/context-events.d.ts +13 -0
  387. package/dist/runtime/context-events.d.ts.map +1 -0
  388. package/dist/runtime/context-types.d.ts +82 -0
  389. package/dist/runtime/context-types.d.ts.map +1 -0
  390. package/dist/runtime/context.d.ts +20 -44
  391. package/dist/runtime/context.d.ts.map +1 -1
  392. package/dist/runtime/exports.d.ts +70 -55
  393. package/dist/runtime/exports.d.ts.map +1 -1
  394. package/dist/runtime/index.d.ts +10 -3
  395. package/dist/runtime/index.d.ts.map +1 -1
  396. package/dist/runtime/index.js +5 -111
  397. package/dist/runtime/middleware.d.ts +102 -60
  398. package/dist/runtime/middleware.d.ts.map +1 -1
  399. package/dist/runtime/router/index.d.ts +7 -0
  400. package/dist/runtime/router/index.d.ts.map +1 -0
  401. package/dist/runtime/router/types.d.ts +24 -0
  402. package/dist/runtime/router/types.d.ts.map +1 -0
  403. package/dist/runtime/validation.d.ts +18 -4
  404. package/dist/runtime/validation.d.ts.map +1 -1
  405. package/dist/secrets/local-secrets.d.ts +46 -0
  406. package/dist/secrets/local-secrets.d.ts.map +1 -0
  407. package/dist/shims/local-hyperdrive.d.ts +12 -0
  408. package/dist/shims/local-hyperdrive.d.ts.map +1 -0
  409. package/dist/shims/local-media-bindings.d.ts +19 -0
  410. package/dist/shims/local-media-bindings.d.ts.map +1 -0
  411. package/dist/shims/local-worker-loader.d.ts +3 -0
  412. package/dist/shims/local-worker-loader.d.ts.map +1 -0
  413. package/dist/sveltekit/index.d.ts +1 -1
  414. package/dist/sveltekit/index.d.ts.map +1 -1
  415. package/dist/sveltekit/index.js +313 -167
  416. package/dist/sveltekit/local-bindings.d.ts +4 -0
  417. package/dist/sveltekit/local-bindings.d.ts.map +1 -0
  418. package/dist/sveltekit/platform.d.ts +20 -2
  419. package/dist/sveltekit/platform.d.ts.map +1 -1
  420. package/dist/test/ai-search.d.ts +39 -0
  421. package/dist/test/ai-search.d.ts.map +1 -0
  422. package/dist/test/binding-hints.d.ts +10 -0
  423. package/dist/test/binding-hints.d.ts.map +1 -0
  424. package/dist/test/cf.d.ts +49 -35
  425. package/dist/test/cf.d.ts.map +1 -1
  426. package/dist/test/containers.d.ts +87 -0
  427. package/dist/test/containers.d.ts.map +1 -0
  428. package/dist/test/email.d.ts +16 -7
  429. package/dist/test/email.d.ts.map +1 -1
  430. package/dist/test/index.d.ts +18 -21
  431. package/dist/test/index.d.ts.map +1 -1
  432. package/dist/test/index.js +4495 -70
  433. package/dist/test/offline-bindings.d.ts +81 -0
  434. package/dist/test/offline-bindings.d.ts.map +1 -0
  435. package/dist/test/queue.d.ts.map +1 -1
  436. package/dist/test/remote-ai.d.ts.map +1 -1
  437. package/dist/test/remote-cloudflare.d.ts +13 -0
  438. package/dist/test/remote-cloudflare.d.ts.map +1 -0
  439. package/dist/test/remote-vectorize.d.ts.map +1 -1
  440. package/dist/test/resolve-service-bindings.d.ts +64 -4
  441. package/dist/test/resolve-service-bindings.d.ts.map +1 -1
  442. package/dist/test/scheduled.d.ts.map +1 -1
  443. package/dist/test/should-skip.d.ts +14 -18
  444. package/dist/test/should-skip.d.ts.map +1 -1
  445. package/dist/test/simple-context-bindings.d.ts +13 -0
  446. package/dist/test/simple-context-bindings.d.ts.map +1 -0
  447. package/dist/test/simple-context-durable-objects.d.ts +6 -0
  448. package/dist/test/simple-context-durable-objects.d.ts.map +1 -0
  449. package/dist/test/simple-context-env.d.ts +35 -0
  450. package/dist/test/simple-context-env.d.ts.map +1 -0
  451. package/dist/test/simple-context-gateway-script.d.ts +2 -0
  452. package/dist/test/simple-context-gateway-script.d.ts.map +1 -0
  453. package/dist/test/simple-context-handlers.d.ts +12 -0
  454. package/dist/test/simple-context-handlers.d.ts.map +1 -0
  455. package/dist/test/simple-context-lifecycle.d.ts +32 -0
  456. package/dist/test/simple-context-lifecycle.d.ts.map +1 -0
  457. package/dist/test/simple-context-mfconfig.d.ts +10 -0
  458. package/dist/test/simple-context-mfconfig.d.ts.map +1 -0
  459. package/dist/test/simple-context-multi-worker.d.ts +16 -0
  460. package/dist/test/simple-context-multi-worker.d.ts.map +1 -0
  461. package/dist/test/simple-context-paths.d.ts +40 -0
  462. package/dist/test/simple-context-paths.d.ts.map +1 -0
  463. package/dist/test/simple-context-runtime.d.ts +19 -0
  464. package/dist/test/simple-context-runtime.d.ts.map +1 -0
  465. package/dist/test/simple-context-startup.d.ts +11 -0
  466. package/dist/test/simple-context-startup.d.ts.map +1 -0
  467. package/dist/test/simple-context-transport.d.ts +14 -0
  468. package/dist/test/simple-context-transport.d.ts.map +1 -0
  469. package/dist/test/simple-context.d.ts +8 -27
  470. package/dist/test/simple-context.d.ts.map +1 -1
  471. package/dist/test/tail.d.ts +3 -2
  472. package/dist/test/tail.d.ts.map +1 -1
  473. package/dist/test/utilities/artifacts.d.ts +11 -0
  474. package/dist/test/utilities/artifacts.d.ts.map +1 -0
  475. package/dist/test/utilities/context.d.ts +39 -0
  476. package/dist/test/utilities/context.d.ts.map +1 -0
  477. package/dist/test/utilities/d1.d.ts +21 -0
  478. package/dist/test/utilities/d1.d.ts.map +1 -0
  479. package/dist/test/utilities/env.d.ts +40 -0
  480. package/dist/test/utilities/env.d.ts.map +1 -0
  481. package/dist/test/utilities/kv.d.ts +11 -0
  482. package/dist/test/utilities/kv.d.ts.map +1 -0
  483. package/dist/test/utilities/media.d.ts +16 -0
  484. package/dist/test/utilities/media.d.ts.map +1 -0
  485. package/dist/test/utilities/platform.d.ts +41 -0
  486. package/dist/test/utilities/platform.d.ts.map +1 -0
  487. package/dist/test/utilities/queue.d.ts +5 -0
  488. package/dist/test/utilities/queue.d.ts.map +1 -0
  489. package/dist/test/utilities/r2.d.ts +2 -0
  490. package/dist/test/utilities/r2.d.ts.map +1 -0
  491. package/dist/test/utilities/workflows.d.ts +26 -0
  492. package/dist/test/utilities/workflows.d.ts.map +1 -0
  493. package/dist/test/utilities.d.ts +10 -98
  494. package/dist/test/utilities.d.ts.map +1 -1
  495. package/dist/test/worker.d.ts +6 -0
  496. package/dist/test/worker.d.ts.map +1 -1
  497. package/dist/transform/durable-object.d.ts.map +1 -1
  498. package/dist/transform/index.d.ts +2 -2
  499. package/dist/transform/worker-entrypoint.d.ts +5 -0
  500. package/dist/transform/worker-entrypoint.d.ts.map +1 -1
  501. package/dist/utils/entrypoint-discovery.d.ts +6 -3
  502. package/dist/utils/entrypoint-discovery.d.ts.map +1 -1
  503. package/dist/utils/glob.d.ts.map +1 -1
  504. package/dist/utils/resolve-package.d.ts.map +1 -1
  505. package/dist/utils/send-email.d.ts +15 -0
  506. package/dist/utils/send-email.d.ts.map +1 -0
  507. package/dist/utils/send-email.js +163 -0
  508. package/dist/vite/config-file.d.ts +25 -0
  509. package/dist/vite/config-file.d.ts.map +1 -0
  510. package/dist/vite/index.d.ts +3 -2
  511. package/dist/vite/index.d.ts.map +1 -1
  512. package/dist/vite/index.js +2 -339
  513. package/dist/vite/plugin-config-hook.d.ts +28 -0
  514. package/dist/vite/plugin-config-hook.d.ts.map +1 -0
  515. package/dist/vite/plugin-context.d.ts +27 -0
  516. package/dist/vite/plugin-context.d.ts.map +1 -0
  517. package/dist/vite/plugin-durable-objects.d.ts +18 -0
  518. package/dist/vite/plugin-durable-objects.d.ts.map +1 -0
  519. package/dist/vite/plugin-programmatic.d.ts +44 -0
  520. package/dist/vite/plugin-programmatic.d.ts.map +1 -0
  521. package/dist/vite/plugin-service-bindings.d.ts +13 -0
  522. package/dist/vite/plugin-service-bindings.d.ts.map +1 -0
  523. package/dist/vite/plugin-transform.d.ts +41 -0
  524. package/dist/vite/plugin-transform.d.ts.map +1 -0
  525. package/dist/vite/plugin.d.ts +10 -41
  526. package/dist/vite/plugin.d.ts.map +1 -1
  527. package/dist/worker-entry/composed-worker.d.ts +7 -0
  528. package/dist/worker-entry/composed-worker.d.ts.map +1 -0
  529. package/dist/worker-entry/durable-object-discovery.d.ts +20 -0
  530. package/dist/worker-entry/durable-object-discovery.d.ts.map +1 -0
  531. package/dist/worker-entry/extensions.d.ts +5 -0
  532. package/dist/worker-entry/extensions.d.ts.map +1 -0
  533. package/dist/worker-entry/routes.d.ts +22 -0
  534. package/dist/worker-entry/routes.d.ts.map +1 -0
  535. package/dist/worker-entry/surface-paths.d.ts +26 -0
  536. package/dist/worker-entry/surface-paths.d.ts.map +1 -0
  537. package/dist/workflows/local-workflow-entrypoints.d.ts +7 -0
  538. package/dist/workflows/local-workflow-entrypoints.d.ts.map +1 -0
  539. package/package.json +159 -116
  540. package/R2.md +0 -170
  541. package/dist/account-rvrj687w.js +0 -397
  542. package/dist/ai-dx4fr9jh.js +0 -107
  543. package/dist/bridge/protocol.d.ts.map +0 -1
  544. package/dist/bridge/serialization.d.ts.map +0 -1
  545. package/dist/browser-shim/worker.d.ts +0 -14
  546. package/dist/browser-shim/worker.d.ts.map +0 -1
  547. package/dist/build-mnf6v8gd.js +0 -53
  548. package/dist/deploy-nhceck39.js +0 -70
  549. package/dist/dev-pa8dhm20.js +0 -2162
  550. package/dist/doctor-fmgb3d28.js +0 -190
  551. package/dist/durable-object-t4kbb0yt.js +0 -13
  552. package/dist/index-07q6yxyc.js +0 -168
  553. package/dist/index-18hvb6gb.js +0 -194
  554. package/dist/index-1xpj0m4r.js +0 -57
  555. package/dist/index-37x76zdn.js +0 -4
  556. package/dist/index-3t6rypgc.js +0 -13
  557. package/dist/index-67qcae0f.js +0 -183
  558. package/dist/index-a855bdsx.js +0 -18
  559. package/dist/index-d8bdkx2h.js +0 -109
  560. package/dist/index-ep3445yc.js +0 -2225
  561. package/dist/index-gz1gndna.js +0 -307
  562. package/dist/index-hcex3rgh.js +0 -266
  563. package/dist/index-m2q41jwa.js +0 -462
  564. package/dist/index-n7rs26ft.js +0 -77
  565. package/dist/index-pf5s73n9.js +0 -1413
  566. package/dist/index-rbht7m9r.js +0 -36
  567. package/dist/index-tfyxa77h.js +0 -850
  568. package/dist/index-tk6ej9dj.js +0 -94
  569. package/dist/index-z14anrqp.js +0 -226
  570. package/dist/init-f9mgmew3.js +0 -186
  571. package/dist/remote-q59qk463.js +0 -97
  572. package/dist/test/bridge-context.d.ts +0 -76
  573. package/dist/test/bridge-context.d.ts.map +0 -1
  574. package/dist/test/multi-worker-context.d.ts +0 -114
  575. package/dist/test/multi-worker-context.d.ts.map +0 -1
  576. package/dist/types-5nyrz1sz.js +0 -454
  577. package/dist/worker-entrypoint-m9th0rg0.js +0 -13
@@ -0,0 +1,456 @@
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 materializePreviewScopedString(binding, options);
410
+ }) } : {},
411
+ ...bindings.queues ? { queues: {
412
+ ...bindings.queues,
413
+ ...bindings.queues.producers ? { producers: mapRecordValues(bindings.queues.producers, (queueName) => {
414
+ return materializePreviewScopedString(queueName, options);
415
+ }) } : {},
416
+ ...bindings.queues.consumers ? { consumers: bindings.queues.consumers.map((consumer) => ({
417
+ ...consumer,
418
+ queue: materializePreviewScopedString(consumer.queue, options),
419
+ ...consumer.deadLetterQueue ? { deadLetterQueue: materializePreviewScopedString(consumer.deadLetterQueue, options) } : {}
420
+ })) } : {}
421
+ } } : {},
422
+ ...bindings.services ? { services: mapRecordValues(bindings.services, (binding) => ({
423
+ ...binding,
424
+ service: materializePreviewScopedString(binding.service, options)
425
+ })) } : {},
426
+ ...bindings.vectorize ? { vectorize: mapRecordValues(bindings.vectorize, (binding) => ({
427
+ ...binding,
428
+ indexName: materializePreviewScopedString(binding.indexName, options)
429
+ })) } : {},
430
+ ...bindings.hyperdrive ? { hyperdrive: mapRecordValues(bindings.hyperdrive, (binding) => {
431
+ if (typeof binding === "string") return materializePreviewScopedString(binding, options);
432
+ if (binding && typeof binding === "object" && "name" in binding && typeof binding.name === "string") {
433
+ if (hasPreviewIdentifier && binding.previewId) return {
434
+ id: binding.previewId,
435
+ ...binding.localConnectionString && { localConnectionString: binding.localConnectionString },
436
+ ...!binding.localConnectionString && binding.previewLocalConnectionString && { localConnectionString: binding.previewLocalConnectionString }
437
+ };
438
+ return {
439
+ ...binding,
440
+ name: materializePreviewScopedString(binding.name, options)
441
+ };
442
+ }
443
+ return binding;
444
+ }) } : {},
445
+ ...bindings.browser ? { browser: mapRecordValues(bindings.browser, (binding) => {
446
+ return typeof binding === "string" ? materializePreviewScopedString(binding, options) : binding;
447
+ }) } : {},
448
+ ...bindings.analyticsEngine ? { analyticsEngine: mapRecordValues(bindings.analyticsEngine, (binding) => ({
449
+ ...binding,
450
+ dataset: materializePreviewScopedString(binding.dataset, options)
451
+ })) } : {}
452
+ }
453
+ };
454
+ }
455
+ //#endregion
456
+ 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 };