devflare 1.0.0-next.6 → 1.0.0-next.60

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 (609) hide show
  1. package/LICENSE +21 -0
  2. package/LLM.md +17315 -2144
  3. package/README.md +397 -607
  4. package/bin/devflare.js +30 -14
  5. package/dist/_chunks/account-Cflj6rw3.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-Dp8k2SWa.js +24 -0
  10. package/dist/_chunks/build-artifacts-DLEYfdVL.js +483 -0
  11. package/dist/_chunks/cli-BlVetiEh.js +1171 -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-CSnoFdxM.js +45 -0
  15. package/dist/_chunks/compiler-CgIFPfRA.js +521 -0
  16. package/dist/_chunks/config-BwRb2_vD.js +78 -0
  17. package/dist/_chunks/config-path-C3ac6r66.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-Blrdr3Gv.js +1032 -0
  22. package/dist/_chunks/dev-DRP6LR2H.js +3524 -0
  23. package/dist/_chunks/doctor-n_eqvv52.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-D3SV6I0N.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-E_UGyTrJ.js +1330 -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-6sMstHXw.js +123 -0
  35. package/dist/_chunks/login-D9-EwpSA.js +51 -0
  36. package/dist/_chunks/package-metadata-DjHBLB-z.js +39 -0
  37. package/dist/_chunks/preferences-BKp_7XJx.js +241 -0
  38. package/dist/_chunks/preview-C3Cdr8an.js +462 -0
  39. package/dist/_chunks/preview-registry-ClAbLTHH.js +1186 -0
  40. package/dist/_chunks/preview-resources-D_aFwtZR.js +359 -0
  41. package/dist/_chunks/previews-D-GPVCeq.js +1133 -0
  42. package/dist/_chunks/productions-me2YvmWK.js +504 -0
  43. package/dist/_chunks/r2-presign-runtime-zTOLS0Ea.js +291 -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-BMU7ga_l.js +851 -0
  50. package/dist/_chunks/runtime-RekfD_2X.js +874 -0
  51. package/dist/_chunks/schema-normalization-Zgm4W6O6.js +667 -0
  52. package/dist/_chunks/secrets-CxVCXmdh.js +95 -0
  53. package/dist/_chunks/tail-aMFzd-2K.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-ByjwxoVA.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-CtvgOi1c.js +1267 -0
  60. package/dist/_chunks/vite-utils-OVLMV605.js +183 -0
  61. package/dist/_chunks/worker-CtTVZeTH.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-gateway.d.ts +45 -0
  74. package/dist/bridge/miniflare-gateway.d.ts.map +1 -0
  75. package/dist/bridge/miniflare.d.ts +92 -2
  76. package/dist/bridge/miniflare.d.ts.map +1 -1
  77. package/dist/bridge/proxy.d.ts +12 -11
  78. package/dist/bridge/proxy.d.ts.map +1 -1
  79. package/dist/bridge/r2-presign-runtime.d.ts +9 -0
  80. package/dist/bridge/r2-presign-runtime.d.ts.map +1 -0
  81. package/dist/bridge/server.d.ts +2 -1
  82. package/dist/bridge/server.d.ts.map +1 -1
  83. package/dist/bridge/v2/body-streams.d.ts +53 -0
  84. package/dist/bridge/v2/body-streams.d.ts.map +1 -0
  85. package/dist/bridge/v2/codec.d.ts +106 -0
  86. package/dist/bridge/v2/codec.d.ts.map +1 -0
  87. package/dist/bridge/v2/control-messages.d.ts +46 -0
  88. package/dist/bridge/v2/control-messages.d.ts.map +1 -0
  89. package/dist/bridge/v2/frames.d.ts +109 -0
  90. package/dist/bridge/v2/frames.d.ts.map +1 -0
  91. package/dist/bridge/v2/index.d.ts +11 -0
  92. package/dist/bridge/v2/index.d.ts.map +1 -0
  93. package/dist/bridge/v2/serialization.d.ts +48 -0
  94. package/dist/bridge/v2/serialization.d.ts.map +1 -0
  95. package/dist/bridge/v2/transport.d.ts +31 -0
  96. package/dist/bridge/v2/transport.d.ts.map +1 -0
  97. package/dist/bridge/v2/value-codec.d.ts +61 -0
  98. package/dist/bridge/v2/value-codec.d.ts.map +1 -0
  99. package/dist/bridge/{serialization.d.ts → v2/value-serialization.d.ts} +40 -18
  100. package/dist/bridge/v2/value-serialization.d.ts.map +1 -0
  101. package/dist/bridge/{protocol.d.ts → v2/wire.d.ts} +32 -8
  102. package/dist/bridge/v2/wire.d.ts.map +1 -0
  103. package/dist/bridge/v2/ws-relay.d.ts +53 -0
  104. package/dist/bridge/v2/ws-relay.d.ts.map +1 -0
  105. package/dist/browser-shim/handler.d.ts +2 -2
  106. package/dist/browser-shim/handler.d.ts.map +1 -1
  107. package/dist/browser-shim/index.d.ts +2 -2
  108. package/dist/browser-shim/server.d.ts +63 -0
  109. package/dist/browser-shim/server.d.ts.map +1 -1
  110. package/dist/browser.d.ts +5778 -43
  111. package/dist/browser.d.ts.map +1 -1
  112. package/dist/browser.js +73 -142
  113. package/dist/bundler/defaults.d.ts +23 -0
  114. package/dist/bundler/defaults.d.ts.map +1 -0
  115. package/dist/bundler/do-bundler.d.ts +7 -0
  116. package/dist/bundler/do-bundler.d.ts.map +1 -1
  117. package/dist/bundler/index.d.ts +3 -1
  118. package/dist/bundler/index.d.ts.map +1 -1
  119. package/dist/bundler/rolldown-shared.d.ts +53 -0
  120. package/dist/bundler/rolldown-shared.d.ts.map +1 -0
  121. package/dist/bundler/worker-bundler.d.ts +13 -0
  122. package/dist/bundler/worker-bundler.d.ts.map +1 -0
  123. package/dist/bundler/worker-compat.d.ts +4 -0
  124. package/dist/bundler/worker-compat.d.ts.map +1 -0
  125. package/dist/cli/build-manifest.d.ts +66 -0
  126. package/dist/cli/build-manifest.d.ts.map +1 -0
  127. package/dist/cli/command-utils.d.ts +18 -0
  128. package/dist/cli/command-utils.d.ts.map +1 -0
  129. package/dist/cli/commands/account.d.ts +2 -2
  130. package/dist/cli/commands/account.d.ts.map +1 -1
  131. package/dist/cli/commands/ai.d.ts +1 -1
  132. package/dist/cli/commands/ai.d.ts.map +1 -1
  133. package/dist/cli/commands/build-artifacts.d.ts +40 -0
  134. package/dist/cli/commands/build-artifacts.d.ts.map +1 -0
  135. package/dist/cli/commands/build.d.ts +2 -2
  136. package/dist/cli/commands/build.d.ts.map +1 -1
  137. package/dist/cli/commands/config.d.ts +4 -0
  138. package/dist/cli/commands/config.d.ts.map +1 -0
  139. package/dist/cli/commands/deploy/metadata.d.ts +18 -0
  140. package/dist/cli/commands/deploy/metadata.d.ts.map +1 -0
  141. package/dist/cli/commands/deploy/prepare.d.ts +23 -0
  142. package/dist/cli/commands/deploy/prepare.d.ts.map +1 -0
  143. package/dist/cli/commands/deploy/runtime.d.ts +4 -0
  144. package/dist/cli/commands/deploy/runtime.d.ts.map +1 -0
  145. package/dist/cli/commands/deploy/verification.d.ts +36 -0
  146. package/dist/cli/commands/deploy/verification.d.ts.map +1 -0
  147. package/dist/cli/commands/deploy.d.ts +2 -2
  148. package/dist/cli/commands/deploy.d.ts.map +1 -1
  149. package/dist/cli/commands/dev.d.ts +9 -1
  150. package/dist/cli/commands/dev.d.ts.map +1 -1
  151. package/dist/cli/commands/doctor.d.ts +2 -2
  152. package/dist/cli/commands/doctor.d.ts.map +1 -1
  153. package/dist/cli/commands/init.d.ts +2 -2
  154. package/dist/cli/commands/init.d.ts.map +1 -1
  155. package/dist/cli/commands/login.d.ts +4 -0
  156. package/dist/cli/commands/login.d.ts.map +1 -0
  157. package/dist/cli/commands/previews-support/cleanup.d.ts +9 -0
  158. package/dist/cli/commands/previews-support/cleanup.d.ts.map +1 -0
  159. package/dist/cli/commands/previews-support/family.d.ts +10 -0
  160. package/dist/cli/commands/previews-support/family.d.ts.map +1 -0
  161. package/dist/cli/commands/previews-support/render.d.ts +8 -0
  162. package/dist/cli/commands/previews-support/render.d.ts.map +1 -0
  163. package/dist/cli/commands/previews-support/theme.d.ts +10 -0
  164. package/dist/cli/commands/previews-support/theme.d.ts.map +1 -0
  165. package/dist/cli/commands/previews-support/types.d.ts +70 -0
  166. package/dist/cli/commands/previews-support/types.d.ts.map +1 -0
  167. package/dist/cli/commands/previews.d.ts +4 -0
  168. package/dist/cli/commands/previews.d.ts.map +1 -0
  169. package/dist/cli/commands/productions.d.ts +4 -0
  170. package/dist/cli/commands/productions.d.ts.map +1 -0
  171. package/dist/cli/commands/remote.d.ts +1 -1
  172. package/dist/cli/commands/remote.d.ts.map +1 -1
  173. package/dist/cli/commands/secrets.d.ts +4 -0
  174. package/dist/cli/commands/secrets.d.ts.map +1 -0
  175. package/dist/cli/commands/tail.d.ts +44 -0
  176. package/dist/cli/commands/tail.d.ts.map +1 -0
  177. package/dist/cli/commands/token.d.ts +4 -0
  178. package/dist/cli/commands/token.d.ts.map +1 -0
  179. package/dist/cli/commands/type-generation/discovery.d.ts +7 -0
  180. package/dist/cli/commands/type-generation/discovery.d.ts.map +1 -0
  181. package/dist/cli/commands/type-generation/generator.d.ts +121 -0
  182. package/dist/cli/commands/type-generation/generator.d.ts.map +1 -0
  183. package/dist/cli/commands/type-generation/models.d.ts +27 -0
  184. package/dist/cli/commands/type-generation/models.d.ts.map +1 -0
  185. package/dist/cli/commands/types.d.ts +2 -2
  186. package/dist/cli/commands/types.d.ts.map +1 -1
  187. package/dist/cli/commands/worker.d.ts +4 -0
  188. package/dist/cli/commands/worker.d.ts.map +1 -0
  189. package/dist/cli/config-path.d.ts +6 -0
  190. package/dist/cli/config-path.d.ts.map +1 -0
  191. package/dist/cli/dependencies.d.ts +2 -1
  192. package/dist/cli/dependencies.d.ts.map +1 -1
  193. package/dist/cli/deploy-strategy.d.ts +17 -0
  194. package/dist/cli/deploy-strategy.d.ts.map +1 -0
  195. package/dist/cli/deploy-target.d.ts +17 -0
  196. package/dist/cli/deploy-target.d.ts.map +1 -0
  197. package/dist/cli/generated-artifacts.d.ts +12 -0
  198. package/dist/cli/generated-artifacts.d.ts.map +1 -0
  199. package/dist/cli/gradual-deploy.d.ts +49 -0
  200. package/dist/cli/gradual-deploy.d.ts.map +1 -0
  201. package/dist/cli/help-pages/pages/account.d.ts +3 -0
  202. package/dist/cli/help-pages/pages/account.d.ts.map +1 -0
  203. package/dist/cli/help-pages/pages/core.d.ts +4 -0
  204. package/dist/cli/help-pages/pages/core.d.ts.map +1 -0
  205. package/dist/cli/help-pages/pages/index.d.ts +3 -0
  206. package/dist/cli/help-pages/pages/index.d.ts.map +1 -0
  207. package/dist/cli/help-pages/pages/misc.d.ts +3 -0
  208. package/dist/cli/help-pages/pages/misc.d.ts.map +1 -0
  209. package/dist/cli/help-pages/pages/previews.d.ts +3 -0
  210. package/dist/cli/help-pages/pages/previews.d.ts.map +1 -0
  211. package/dist/cli/help-pages/pages/productions.d.ts +3 -0
  212. package/dist/cli/help-pages/pages/productions.d.ts.map +1 -0
  213. package/dist/cli/help-pages/render.d.ts +12 -0
  214. package/dist/cli/help-pages/render.d.ts.map +1 -0
  215. package/dist/cli/help-pages/shared.d.ts +15 -0
  216. package/dist/cli/help-pages/shared.d.ts.map +1 -0
  217. package/dist/cli/help-pages/types.d.ts +23 -0
  218. package/dist/cli/help-pages/types.d.ts.map +1 -0
  219. package/dist/cli/help.d.ts +6 -0
  220. package/dist/cli/help.d.ts.map +1 -0
  221. package/dist/cli/index.d.ts +1 -0
  222. package/dist/cli/index.d.ts.map +1 -1
  223. package/dist/cli/index.js +2 -0
  224. package/dist/cli/package-metadata.d.ts +16 -0
  225. package/dist/cli/package-metadata.d.ts.map +1 -0
  226. package/dist/cli/preview-bindings.d.ts +49 -0
  227. package/dist/cli/preview-bindings.d.ts.map +1 -0
  228. package/dist/cli/preview.d.ts +10 -0
  229. package/dist/cli/preview.d.ts.map +1 -0
  230. package/dist/cli/ui.d.ts +37 -0
  231. package/dist/cli/ui.d.ts.map +1 -0
  232. package/dist/cli/workspace-build-guard.d.ts +14 -0
  233. package/dist/cli/workspace-build-guard.d.ts.map +1 -0
  234. package/dist/cli/wrangler-auth.d.ts +1 -1
  235. package/dist/cloudflare/account-core.d.ts +6 -0
  236. package/dist/cloudflare/account-core.d.ts.map +1 -0
  237. package/dist/cloudflare/account-resources.d.ts +40 -0
  238. package/dist/cloudflare/account-resources.d.ts.map +1 -0
  239. package/dist/cloudflare/account-status.d.ts +11 -0
  240. package/dist/cloudflare/account-status.d.ts.map +1 -0
  241. package/dist/cloudflare/account-workers.d.ts +14 -0
  242. package/dist/cloudflare/account-workers.d.ts.map +1 -0
  243. package/dist/cloudflare/account.d.ts +7 -64
  244. package/dist/cloudflare/account.d.ts.map +1 -1
  245. package/dist/cloudflare/api.d.ts +71 -3
  246. package/dist/cloudflare/api.d.ts.map +1 -1
  247. package/dist/cloudflare/auth.d.ts +1 -1
  248. package/dist/cloudflare/auth.d.ts.map +1 -1
  249. package/dist/cloudflare/index.d.ts +61 -6
  250. package/dist/cloudflare/index.d.ts.map +1 -1
  251. package/dist/cloudflare/index.js +4 -13
  252. package/dist/cloudflare/known-permission-group-ids.generated.d.ts +10 -0
  253. package/dist/cloudflare/known-permission-group-ids.generated.d.ts.map +1 -0
  254. package/dist/cloudflare/kv-namespace.d.ts +4 -0
  255. package/dist/cloudflare/kv-namespace.d.ts.map +1 -0
  256. package/dist/cloudflare/preferences.d.ts +7 -0
  257. package/dist/cloudflare/preferences.d.ts.map +1 -1
  258. package/dist/cloudflare/preview-registry-cache.d.ts +6 -0
  259. package/dist/cloudflare/preview-registry-cache.d.ts.map +1 -0
  260. package/dist/cloudflare/preview-registry-inference.d.ts +14 -0
  261. package/dist/cloudflare/preview-registry-inference.d.ts.map +1 -0
  262. package/dist/cloudflare/preview-registry-records.d.ts +4 -0
  263. package/dist/cloudflare/preview-registry-records.d.ts.map +1 -0
  264. package/dist/cloudflare/preview-registry-shape.d.ts +47 -0
  265. package/dist/cloudflare/preview-registry-shape.d.ts.map +1 -0
  266. package/dist/cloudflare/preview-registry-store.d.ts +14 -0
  267. package/dist/cloudflare/preview-registry-store.d.ts.map +1 -0
  268. package/dist/cloudflare/preview-registry-transport.d.ts +4 -0
  269. package/dist/cloudflare/preview-registry-transport.d.ts.map +1 -0
  270. package/dist/cloudflare/preview-registry-types.d.ts +103 -0
  271. package/dist/cloudflare/preview-registry-types.d.ts.map +1 -0
  272. package/dist/cloudflare/preview-registry.d.ts +42 -0
  273. package/dist/cloudflare/preview-registry.d.ts.map +1 -0
  274. package/dist/cloudflare/preview-urls.d.ts +3 -0
  275. package/dist/cloudflare/preview-urls.d.ts.map +1 -0
  276. package/dist/cloudflare/registry-schema.d.ts +253 -0
  277. package/dist/cloudflare/registry-schema.d.ts.map +1 -0
  278. package/dist/cloudflare/remote-config.d.ts.map +1 -1
  279. package/dist/cloudflare/tokens.d.ts +44 -0
  280. package/dist/cloudflare/tokens.d.ts.map +1 -0
  281. package/dist/cloudflare/types.d.ts +124 -7
  282. package/dist/cloudflare/types.d.ts.map +1 -1
  283. package/dist/cloudflare/usage.d.ts +31 -3
  284. package/dist/cloudflare/usage.d.ts.map +1 -1
  285. package/dist/config/binding-resolution-helpers.d.ts +41 -0
  286. package/dist/config/binding-resolution-helpers.d.ts.map +1 -0
  287. package/dist/config/compatibility.d.ts +3 -0
  288. package/dist/config/compatibility.d.ts.map +1 -0
  289. package/dist/config/compiler/bindings.d.ts +14 -0
  290. package/dist/config/compiler/bindings.d.ts.map +1 -0
  291. package/dist/config/compiler/core-helpers.d.ts +6 -0
  292. package/dist/config/compiler/core-helpers.d.ts.map +1 -0
  293. package/dist/config/compiler/do-workers.d.ts +34 -0
  294. package/dist/config/compiler/do-workers.d.ts.map +1 -0
  295. package/dist/config/compiler/paths.d.ts +18 -0
  296. package/dist/config/compiler/paths.d.ts.map +1 -0
  297. package/dist/config/compiler/types.d.ts +308 -0
  298. package/dist/config/compiler/types.d.ts.map +1 -0
  299. package/dist/config/compiler.d.ts +22 -134
  300. package/dist/config/compiler.d.ts.map +1 -1
  301. package/dist/config/cron.d.ts +19 -0
  302. package/dist/config/cron.d.ts.map +1 -0
  303. package/dist/config/define.d.ts +8 -5
  304. package/dist/config/define.d.ts.map +1 -1
  305. package/dist/config/deploy-resources.d.ts +58 -0
  306. package/dist/config/deploy-resources.d.ts.map +1 -0
  307. package/dist/config/env-vars.d.ts +309 -0
  308. package/dist/config/env-vars.d.ts.map +1 -0
  309. package/dist/config/framework-providers.d.ts +9 -0
  310. package/dist/config/framework-providers.d.ts.map +1 -0
  311. package/dist/config/index.d.ts +12 -5
  312. package/dist/config/index.d.ts.map +1 -1
  313. package/dist/config/loader.d.ts +2 -1
  314. package/dist/config/loader.d.ts.map +1 -1
  315. package/dist/config/local-dev-vars.d.ts +15 -0
  316. package/dist/config/local-dev-vars.d.ts.map +1 -0
  317. package/dist/config/preview-resources.d.ts +83 -0
  318. package/dist/config/preview-resources.d.ts.map +1 -0
  319. package/dist/config/preview.d.ts +29 -0
  320. package/dist/config/preview.d.ts.map +1 -0
  321. package/dist/config/ref.d.ts +16 -25
  322. package/dist/config/ref.d.ts.map +1 -1
  323. package/dist/config/resolve-phased.d.ts +72 -0
  324. package/dist/config/resolve-phased.d.ts.map +1 -0
  325. package/dist/config/resolve.d.ts +11 -0
  326. package/dist/config/resolve.d.ts.map +1 -0
  327. package/dist/config/resource-resolution.d.ts +80 -0
  328. package/dist/config/resource-resolution.d.ts.map +1 -0
  329. package/dist/config/schema-bindings.d.ts +2124 -0
  330. package/dist/config/schema-bindings.d.ts.map +1 -0
  331. package/dist/config/schema-build.d.ts +67 -0
  332. package/dist/config/schema-build.d.ts.map +1 -0
  333. package/dist/config/schema-env.d.ts +3821 -0
  334. package/dist/config/schema-env.d.ts.map +1 -0
  335. package/dist/config/schema-normalization.d.ts +272 -0
  336. package/dist/config/schema-normalization.d.ts.map +1 -0
  337. package/dist/config/schema-runtime.d.ts +597 -0
  338. package/dist/config/schema-runtime.d.ts.map +1 -0
  339. package/dist/config/schema-types-bindings-platform.d.ts +520 -0
  340. package/dist/config/schema-types-bindings-platform.d.ts.map +1 -0
  341. package/dist/config/schema-types-bindings-resources.d.ts +802 -0
  342. package/dist/config/schema-types-bindings-resources.d.ts.map +1 -0
  343. package/dist/config/schema-types-bindings.d.ts +293 -0
  344. package/dist/config/schema-types-bindings.d.ts.map +1 -0
  345. package/dist/config/schema-types-build.d.ts +86 -0
  346. package/dist/config/schema-types-build.d.ts.map +1 -0
  347. package/dist/config/schema-types-runtime-server.d.ts +196 -0
  348. package/dist/config/schema-types-runtime-server.d.ts.map +1 -0
  349. package/dist/config/schema-types-runtime.d.ts +913 -0
  350. package/dist/config/schema-types-runtime.d.ts.map +1 -0
  351. package/dist/config/schema-types.d.ts +458 -0
  352. package/dist/config/schema-types.d.ts.map +1 -0
  353. package/dist/config/schema.d.ts +5796 -2023
  354. package/dist/config/schema.d.ts.map +1 -1
  355. package/dist/config/service-bindings-validation.d.ts +36 -0
  356. package/dist/config/service-bindings-validation.d.ts.map +1 -0
  357. package/dist/config-entry.d.ts +7 -0
  358. package/dist/config-entry.d.ts.map +1 -0
  359. package/dist/config-entry.js +3 -0
  360. package/dist/decorators/durable-object.d.ts.map +1 -1
  361. package/dist/decorators/index.d.ts +2 -2
  362. package/dist/decorators/index.js +2 -9
  363. package/dist/dev-server/d1-migrations.d.ts +36 -0
  364. package/dist/dev-server/d1-migrations.d.ts.map +1 -0
  365. package/dist/dev-server/dev-server-state.d.ts +59 -0
  366. package/dist/dev-server/dev-server-state.d.ts.map +1 -0
  367. package/dist/dev-server/gateway-script.d.ts +22 -0
  368. package/dist/dev-server/gateway-script.d.ts.map +1 -0
  369. package/dist/dev-server/index.d.ts +1 -1
  370. package/dist/dev-server/miniflare-bindings.d.ts +90 -0
  371. package/dist/dev-server/miniflare-bindings.d.ts.map +1 -0
  372. package/dist/dev-server/miniflare-dev-config.d.ts +49 -0
  373. package/dist/dev-server/miniflare-dev-config.d.ts.map +1 -0
  374. package/dist/dev-server/miniflare-log.d.ts +20 -0
  375. package/dist/dev-server/miniflare-log.d.ts.map +1 -0
  376. package/dist/dev-server/miniflare-worker-config.d.ts +100 -0
  377. package/dist/dev-server/miniflare-worker-config.d.ts.map +1 -0
  378. package/dist/dev-server/reload-queue.d.ts +13 -0
  379. package/dist/dev-server/reload-queue.d.ts.map +1 -0
  380. package/dist/dev-server/runtime-stdio.d.ts +8 -0
  381. package/dist/dev-server/runtime-stdio.d.ts.map +1 -0
  382. package/dist/dev-server/server-startup-helpers.d.ts +84 -0
  383. package/dist/dev-server/server-startup-helpers.d.ts.map +1 -0
  384. package/dist/dev-server/server.d.ts +2 -0
  385. package/dist/dev-server/server.d.ts.map +1 -1
  386. package/dist/dev-server/vite-process.d.ts +24 -0
  387. package/dist/dev-server/vite-process.d.ts.map +1 -0
  388. package/dist/dev-server/vite-utils.d.ts +19 -1
  389. package/dist/dev-server/vite-utils.d.ts.map +1 -1
  390. package/dist/dev-server/worker-source-watcher.d.ts +17 -0
  391. package/dist/dev-server/worker-source-watcher.d.ts.map +1 -0
  392. package/dist/dev-server/worker-surface-paths.d.ts +6 -0
  393. package/dist/dev-server/worker-surface-paths.d.ts.map +1 -0
  394. package/dist/env.d.ts +10 -0
  395. package/dist/env.d.ts.map +1 -1
  396. package/dist/index.d.ts +8 -12
  397. package/dist/index.d.ts.map +1 -1
  398. package/dist/index.js +9 -297
  399. package/dist/runtime/context-events.d.ts +13 -0
  400. package/dist/runtime/context-events.d.ts.map +1 -0
  401. package/dist/runtime/context-types.d.ts +82 -0
  402. package/dist/runtime/context-types.d.ts.map +1 -0
  403. package/dist/runtime/context.d.ts +20 -44
  404. package/dist/runtime/context.d.ts.map +1 -1
  405. package/dist/runtime/exports.d.ts +70 -55
  406. package/dist/runtime/exports.d.ts.map +1 -1
  407. package/dist/runtime/index.d.ts +11 -5
  408. package/dist/runtime/index.d.ts.map +1 -1
  409. package/dist/runtime/index.js +5 -184
  410. package/dist/runtime/middleware.d.ts +119 -67
  411. package/dist/runtime/middleware.d.ts.map +1 -1
  412. package/dist/runtime/r2-presign.d.ts +164 -0
  413. package/dist/runtime/r2-presign.d.ts.map +1 -0
  414. package/dist/runtime/router/index.d.ts +7 -0
  415. package/dist/runtime/router/index.d.ts.map +1 -0
  416. package/dist/runtime/router/types.d.ts +24 -0
  417. package/dist/runtime/router/types.d.ts.map +1 -0
  418. package/dist/runtime/validation.d.ts +18 -4
  419. package/dist/runtime/validation.d.ts.map +1 -1
  420. package/dist/secrets/local-secrets.d.ts +46 -0
  421. package/dist/secrets/local-secrets.d.ts.map +1 -0
  422. package/dist/shims/local-hyperdrive.d.ts +12 -0
  423. package/dist/shims/local-hyperdrive.d.ts.map +1 -0
  424. package/dist/shims/local-media-bindings.d.ts +19 -0
  425. package/dist/shims/local-media-bindings.d.ts.map +1 -0
  426. package/dist/shims/local-worker-loader.d.ts +3 -0
  427. package/dist/shims/local-worker-loader.d.ts.map +1 -0
  428. package/dist/sveltekit/index.d.ts +1 -1
  429. package/dist/sveltekit/index.d.ts.map +1 -1
  430. package/dist/sveltekit/index.js +313 -169
  431. package/dist/sveltekit/local-bindings.d.ts +4 -0
  432. package/dist/sveltekit/local-bindings.d.ts.map +1 -0
  433. package/dist/sveltekit/platform.d.ts +20 -2
  434. package/dist/sveltekit/platform.d.ts.map +1 -1
  435. package/dist/test/ai-search.d.ts +39 -0
  436. package/dist/test/ai-search.d.ts.map +1 -0
  437. package/dist/test/alarm.d.ts +55 -0
  438. package/dist/test/alarm.d.ts.map +1 -0
  439. package/dist/test/binding-hints.d.ts +10 -0
  440. package/dist/test/binding-hints.d.ts.map +1 -0
  441. package/dist/test/cf.d.ts +71 -35
  442. package/dist/test/cf.d.ts.map +1 -1
  443. package/dist/test/containers.d.ts +87 -0
  444. package/dist/test/containers.d.ts.map +1 -0
  445. package/dist/test/email.d.ts +16 -7
  446. package/dist/test/email.d.ts.map +1 -1
  447. package/dist/test/index.d.ts +20 -21
  448. package/dist/test/index.d.ts.map +1 -1
  449. package/dist/test/index.js +5082 -75
  450. package/dist/test/offline-bindings.d.ts +124 -0
  451. package/dist/test/offline-bindings.d.ts.map +1 -0
  452. package/dist/test/queue.d.ts.map +1 -1
  453. package/dist/test/remote-ai.d.ts.map +1 -1
  454. package/dist/test/remote-cloudflare.d.ts +13 -0
  455. package/dist/test/remote-cloudflare.d.ts.map +1 -0
  456. package/dist/test/remote-vectorize.d.ts.map +1 -1
  457. package/dist/test/resolve-service-bindings.d.ts +64 -4
  458. package/dist/test/resolve-service-bindings.d.ts.map +1 -1
  459. package/dist/test/scheduled.d.ts.map +1 -1
  460. package/dist/test/should-skip.d.ts +14 -18
  461. package/dist/test/should-skip.d.ts.map +1 -1
  462. package/dist/test/simple-context-bindings.d.ts +13 -0
  463. package/dist/test/simple-context-bindings.d.ts.map +1 -0
  464. package/dist/test/simple-context-durable-objects.d.ts +6 -0
  465. package/dist/test/simple-context-durable-objects.d.ts.map +1 -0
  466. package/dist/test/simple-context-env.d.ts +35 -0
  467. package/dist/test/simple-context-env.d.ts.map +1 -0
  468. package/dist/test/simple-context-gateway-script.d.ts +2 -0
  469. package/dist/test/simple-context-gateway-script.d.ts.map +1 -0
  470. package/dist/test/simple-context-handlers.d.ts +12 -0
  471. package/dist/test/simple-context-handlers.d.ts.map +1 -0
  472. package/dist/test/simple-context-lifecycle.d.ts +32 -0
  473. package/dist/test/simple-context-lifecycle.d.ts.map +1 -0
  474. package/dist/test/simple-context-mfconfig.d.ts +18 -0
  475. package/dist/test/simple-context-mfconfig.d.ts.map +1 -0
  476. package/dist/test/simple-context-multi-worker.d.ts +16 -0
  477. package/dist/test/simple-context-multi-worker.d.ts.map +1 -0
  478. package/dist/test/simple-context-paths.d.ts +40 -0
  479. package/dist/test/simple-context-paths.d.ts.map +1 -0
  480. package/dist/test/simple-context-runtime.d.ts +19 -0
  481. package/dist/test/simple-context-runtime.d.ts.map +1 -0
  482. package/dist/test/simple-context-startup.d.ts +11 -0
  483. package/dist/test/simple-context-startup.d.ts.map +1 -0
  484. package/dist/test/simple-context-transport.d.ts +14 -0
  485. package/dist/test/simple-context-transport.d.ts.map +1 -0
  486. package/dist/test/simple-context.d.ts +8 -27
  487. package/dist/test/simple-context.d.ts.map +1 -1
  488. package/dist/test/tail.d.ts +3 -2
  489. package/dist/test/tail.d.ts.map +1 -1
  490. package/dist/test/utilities/analytics-engine.d.ts +22 -0
  491. package/dist/test/utilities/analytics-engine.d.ts.map +1 -0
  492. package/dist/test/utilities/artifacts.d.ts +11 -0
  493. package/dist/test/utilities/artifacts.d.ts.map +1 -0
  494. package/dist/test/utilities/context.d.ts +39 -0
  495. package/dist/test/utilities/context.d.ts.map +1 -0
  496. package/dist/test/utilities/d1.d.ts +21 -0
  497. package/dist/test/utilities/d1.d.ts.map +1 -0
  498. package/dist/test/utilities/env.d.ts +45 -0
  499. package/dist/test/utilities/env.d.ts.map +1 -0
  500. package/dist/test/utilities/kv.d.ts +11 -0
  501. package/dist/test/utilities/kv.d.ts.map +1 -0
  502. package/dist/test/utilities/media.d.ts +16 -0
  503. package/dist/test/utilities/media.d.ts.map +1 -0
  504. package/dist/test/utilities/platform.d.ts +41 -0
  505. package/dist/test/utilities/platform.d.ts.map +1 -0
  506. package/dist/test/utilities/queue.d.ts +5 -0
  507. package/dist/test/utilities/queue.d.ts.map +1 -0
  508. package/dist/test/utilities/r2.d.ts +2 -0
  509. package/dist/test/utilities/r2.d.ts.map +1 -0
  510. package/dist/test/utilities/send-email.d.ts +27 -0
  511. package/dist/test/utilities/send-email.d.ts.map +1 -0
  512. package/dist/test/utilities/stream-flagship.d.ts +27 -0
  513. package/dist/test/utilities/stream-flagship.d.ts.map +1 -0
  514. package/dist/test/utilities/vectorize.d.ts +38 -0
  515. package/dist/test/utilities/vectorize.d.ts.map +1 -0
  516. package/dist/test/utilities/workflows.d.ts +26 -0
  517. package/dist/test/utilities/workflows.d.ts.map +1 -0
  518. package/dist/test/utilities.d.ts +14 -98
  519. package/dist/test/utilities.d.ts.map +1 -1
  520. package/dist/test/worker.d.ts +6 -0
  521. package/dist/test/worker.d.ts.map +1 -1
  522. package/dist/transform/durable-object.d.ts.map +1 -1
  523. package/dist/transform/index.d.ts +2 -2
  524. package/dist/transform/worker-entrypoint.d.ts +5 -0
  525. package/dist/transform/worker-entrypoint.d.ts.map +1 -1
  526. package/dist/utils/entrypoint-discovery.d.ts +6 -3
  527. package/dist/utils/entrypoint-discovery.d.ts.map +1 -1
  528. package/dist/utils/glob.d.ts.map +1 -1
  529. package/dist/utils/resolve-package.d.ts.map +1 -1
  530. package/dist/utils/send-email.d.ts +15 -0
  531. package/dist/utils/send-email.d.ts.map +1 -0
  532. package/dist/utils/send-email.js +163 -0
  533. package/dist/vite/config-file.d.ts +25 -0
  534. package/dist/vite/config-file.d.ts.map +1 -0
  535. package/dist/vite/index.d.ts +3 -2
  536. package/dist/vite/index.d.ts.map +1 -1
  537. package/dist/vite/index.js +2 -339
  538. package/dist/vite/plugin-config-hook.d.ts +28 -0
  539. package/dist/vite/plugin-config-hook.d.ts.map +1 -0
  540. package/dist/vite/plugin-context.d.ts +27 -0
  541. package/dist/vite/plugin-context.d.ts.map +1 -0
  542. package/dist/vite/plugin-durable-objects.d.ts +18 -0
  543. package/dist/vite/plugin-durable-objects.d.ts.map +1 -0
  544. package/dist/vite/plugin-programmatic.d.ts +44 -0
  545. package/dist/vite/plugin-programmatic.d.ts.map +1 -0
  546. package/dist/vite/plugin-service-bindings.d.ts +13 -0
  547. package/dist/vite/plugin-service-bindings.d.ts.map +1 -0
  548. package/dist/vite/plugin-transform.d.ts +41 -0
  549. package/dist/vite/plugin-transform.d.ts.map +1 -0
  550. package/dist/vite/plugin.d.ts +10 -41
  551. package/dist/vite/plugin.d.ts.map +1 -1
  552. package/dist/worker-entry/composed-worker.d.ts +7 -0
  553. package/dist/worker-entry/composed-worker.d.ts.map +1 -0
  554. package/dist/worker-entry/durable-object-discovery.d.ts +20 -0
  555. package/dist/worker-entry/durable-object-discovery.d.ts.map +1 -0
  556. package/dist/worker-entry/extensions.d.ts +5 -0
  557. package/dist/worker-entry/extensions.d.ts.map +1 -0
  558. package/dist/worker-entry/routes.d.ts +22 -0
  559. package/dist/worker-entry/routes.d.ts.map +1 -0
  560. package/dist/worker-entry/surface-paths.d.ts +26 -0
  561. package/dist/worker-entry/surface-paths.d.ts.map +1 -0
  562. package/dist/worker-entry/validate-fetch-style.d.ts +12 -0
  563. package/dist/worker-entry/validate-fetch-style.d.ts.map +1 -0
  564. package/dist/workflows/local-workflow-entrypoints.d.ts +7 -0
  565. package/dist/workflows/local-workflow-entrypoints.d.ts.map +1 -0
  566. package/package.json +160 -117
  567. package/R2.md +0 -170
  568. package/dist/account-rvrj687w.js +0 -397
  569. package/dist/ai-dx4fr9jh.js +0 -107
  570. package/dist/bridge/protocol.d.ts.map +0 -1
  571. package/dist/bridge/serialization.d.ts.map +0 -1
  572. package/dist/browser-shim/worker.d.ts +0 -14
  573. package/dist/browser-shim/worker.d.ts.map +0 -1
  574. package/dist/build-nz5yrj7f.js +0 -53
  575. package/dist/deploy-a5pcxd5w.js +0 -70
  576. package/dist/dev-7agn9g5s.js +0 -2418
  577. package/dist/doctor-v7jy4s3r.js +0 -190
  578. package/dist/durable-object-t4kbb0yt.js +0 -13
  579. package/dist/index-18hvb6gb.js +0 -194
  580. package/dist/index-1xpj0m4r.js +0 -57
  581. package/dist/index-37x76zdn.js +0 -4
  582. package/dist/index-3t6rypgc.js +0 -13
  583. package/dist/index-62b3gt2g.js +0 -12
  584. package/dist/index-67qcae0f.js +0 -183
  585. package/dist/index-9ats0s83.js +0 -70
  586. package/dist/index-a855bdsx.js +0 -18
  587. package/dist/index-ccrh4w3t.js +0 -1133
  588. package/dist/index-d8bdkx2h.js +0 -109
  589. package/dist/index-gz1gndna.js +0 -307
  590. package/dist/index-hcex3rgh.js +0 -266
  591. package/dist/index-k7r18na8.js +0 -0
  592. package/dist/index-n3np2d6t.js +0 -462
  593. package/dist/index-n7rs26ft.js +0 -77
  594. package/dist/index-npc1c8jx.js +0 -44
  595. package/dist/index-p7g30wd2.js +0 -281
  596. package/dist/index-rbht7m9r.js +0 -36
  597. package/dist/index-rprrn24p.js +0 -2153
  598. package/dist/index-tfyxa77h.js +0 -850
  599. package/dist/index-tk6ej9dj.js +0 -94
  600. package/dist/index-v8vvsn9x.js +0 -169
  601. package/dist/index-z14anrqp.js +0 -226
  602. package/dist/init-f9mgmew3.js +0 -186
  603. package/dist/remote-q59qk463.js +0 -97
  604. package/dist/test/bridge-context.d.ts +0 -76
  605. package/dist/test/bridge-context.d.ts.map +0 -1
  606. package/dist/test/multi-worker-context.d.ts +0 -114
  607. package/dist/test/multi-worker-context.d.ts.map +0 -1
  608. package/dist/types-vss6vrz7.js +0 -455
  609. package/dist/worker-entrypoint-m9th0rg0.js +0 -13
@@ -1,8 +1,16 @@
1
1
  import type { Miniflare as MiniflareType } from 'miniflare';
2
- import { type DevflareConfig } from '../config';
2
+ import { type DevflareConfig } from '../config/index.js';
3
+ import { type LocalSecretWrappedBindingConfig } from '../secrets/local-secrets.js';
4
+ import { type R2PresignContext } from './miniflare-gateway.js';
5
+ export type { R2PresignContext } from './miniflare-gateway.js';
3
6
  export interface MiniflareInstance {
4
7
  /** Ready promise - resolves when Miniflare is ready */
5
8
  ready: Promise<void>;
9
+ /**
10
+ * Local R2 presign context. Present when the instance was started with R2
11
+ * buckets; `null` otherwise.
12
+ */
13
+ r2Presign: R2PresignContext | null;
6
14
  /** Dispose the Miniflare instance */
7
15
  dispose(): Promise<void>;
8
16
  /** Get bindings directly from Miniflare */
@@ -20,6 +28,7 @@ export interface MiniflareInstance {
20
28
  /** The underlying Miniflare instance */
21
29
  _mf: MiniflareType;
22
30
  }
31
+ export declare function isIgnorableMiniflareDisposeError(error: unknown): boolean;
23
32
  export interface MiniflareOptions {
24
33
  /** Devflare config to derive bindings from */
25
34
  config?: DevflareConfig;
@@ -44,13 +53,94 @@ export interface MiniflareOptions {
44
53
  d1Databases?: string[] | Record<string, string>;
45
54
  /** Queue bindings */
46
55
  queues?: string[];
56
+ /** Rate Limiting bindings */
57
+ rateLimits?: Record<string, {
58
+ simple: {
59
+ limit: number;
60
+ period: 10 | 60;
61
+ };
62
+ }>;
63
+ /** Version Metadata binding name */
64
+ versionMetadata?: string;
65
+ /** Worker Loader bindings */
66
+ workerLoaders?: Record<string, Record<string, never>>;
67
+ /** mTLS Certificate bindings */
68
+ mtlsCertificates?: Record<string, {
69
+ certificate_id: string;
70
+ remote?: boolean;
71
+ }>;
72
+ /** Dispatch Namespace bindings */
73
+ dispatchNamespaces?: Record<string, {
74
+ namespace: string;
75
+ }>;
76
+ /** Workflow bindings */
77
+ workflows?: Record<string, {
78
+ name: string;
79
+ className: string;
80
+ scriptName?: string;
81
+ stepLimit?: number;
82
+ }>;
83
+ /** Pipeline bindings */
84
+ pipelines?: Record<string, string | {
85
+ pipeline: string;
86
+ }>;
87
+ /** Images binding */
88
+ images?: {
89
+ binding: string;
90
+ };
91
+ /** Media Transformations binding */
92
+ media?: {
93
+ binding: string;
94
+ };
95
+ /** Analytics Engine dataset bindings */
96
+ analyticsEngine?: Record<string, {
97
+ dataset: string;
98
+ }>;
99
+ /** Tail consumer service names (cross-Worker tail delivery) */
100
+ tailConsumers?: string[];
101
+ /** Streaming tail consumer service names (cross-Worker streaming tail delivery) */
102
+ streamingTailConsumers?: string[];
103
+ /** Artifacts bindings */
104
+ artifacts?: Record<string, {
105
+ namespace: string;
106
+ }>;
107
+ /** Secrets Store bindings */
108
+ secretsStore?: Record<string, {
109
+ store_id: string;
110
+ secret_name: string;
111
+ }>;
112
+ /** Send Email bindings */
113
+ sendEmail?: Record<string, {
114
+ destinationAddress?: string;
115
+ allowedDestinationAddresses?: string[];
116
+ allowedSenderAddresses?: string[];
117
+ remote?: boolean;
118
+ }>;
47
119
  /** Environment variables */
48
- bindings?: Record<string, string>;
120
+ bindings?: Record<string, unknown>;
121
+ /** Service bindings */
122
+ serviceBindings?: Record<string, {
123
+ name: string;
124
+ entrypoint?: string;
125
+ }>;
126
+ /** Wrapped bindings to expose object-shaped local binding shims */
127
+ wrappedBindings?: LocalSecretWrappedBindingConfig['wrappedBindings'];
128
+ /** Additional module workers needed by wrapped bindings */
129
+ auxiliaryWorkers?: LocalSecretWrappedBindingConfig['workers'];
130
+ /** Node-side binding shims merged into `getBindings()` results */
131
+ nodeBindingOverrides?: Record<string, unknown>;
132
+ /** Project root used to load `.dev.vars`/`.env*` for config-based Miniflare */
133
+ cwd?: string;
134
+ /** Config file path used as the anchor for `.dev.vars`/`.env*` */
135
+ configPath?: string;
136
+ /** Cloudflare environment name used for local dev var file selection */
137
+ environment?: string;
49
138
  /** Compatibility date */
50
139
  compatibilityDate?: string;
51
140
  /** Compatibility flags */
52
141
  compatibilityFlags?: string[];
53
142
  }
143
+ export declare function createMiniflareInstanceHandle(mf: MiniflareType, primaryWorkerName?: string, nodeBindingOverrides?: Record<string, unknown>, r2Presign?: R2PresignContext | null): MiniflareInstance;
54
144
  /**
55
145
  * Start a Miniflare instance with the given configuration
56
146
  */
@@ -1 +1 @@
1
- {"version":3,"file":"miniflare.d.ts","sourceRoot":"","sources":["../../src/bridge/miniflare.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,WAAW,CAAA;AAC3D,OAAO,EAAsB,KAAK,cAAc,EAA6B,MAAM,WAAW,CAAA;AAM9F,MAAM,WAAW,iBAAiB;IACjC,uDAAuD;IACvD,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACpB,qCAAqC;IACrC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,2CAA2C;IAC3C,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAC/C,kDAAkD;IAClD,cAAc,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAA;IAC/C,+CAA+C;IAC/C,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACzC,iDAAiD;IACjD,aAAa,EAAE,aAAa,CAAC,eAAe,CAAC,CAAA;IAC7C,qDAAqD;IACrD,yBAAyB,EAAE,aAAa,CAAC,2BAA2B,CAAC,CAAA;IACrE,2CAA2C;IAC3C,aAAa,EAAE,aAAa,CAAC,eAAe,CAAC,CAAA;IAC7C,wCAAwC;IACxC,GAAG,EAAE,aAAa,CAAA;CAClB;AAED,MAAM,WAAW,gBAAgB;IAChC,8CAA8C;IAC9C,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,2BAA2B;IAC3B,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC1B,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,yCAAyC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC3E,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChD,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7C,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/C,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,yBAAyB;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,0BAA0B;IAC1B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC7B;AAwLD;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA+F/F;AAMD;;GAEG;AACH,wBAAsB,wBAAwB,CAC7C,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,OAAO,CAAC,gBAAgB,CAAM,GACrC,OAAO,CAAC,iBAAiB,CAAC,CA+B5B;AAQD;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAKzF;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAKnD"}
1
+ {"version":3,"file":"miniflare.d.ts","sourceRoot":"","sources":["../../src/bridge/miniflare.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,18 @@
1
- import { type BridgeClient } from './client';
1
+ import { type BridgeClient } from './client.js';
2
2
  export interface EnvProxyOptions {
3
3
  /** Bridge client to use (uses default if not provided) */
4
4
  client?: BridgeClient;
5
5
  /** Lazily connect on first access */
6
6
  lazy?: boolean;
7
+ /** Return undefined for names that are not present in binding hints */
8
+ strict?: boolean;
7
9
  /** Transform results before returning (e.g., for transport decoding) */
8
10
  transformResult?: (result: unknown) => unknown;
9
11
  }
10
12
  /** Binding type hints for better proxy creation */
13
+ export type BindingHint = 'kv' | 'r2' | 'd1' | 'do' | 'queue' | 'ai' | 'service' | 'sendEmail' | 'workflow' | 'secret' | 'var';
11
14
  export interface BindingHints {
12
- [key: string]: 'kv' | 'r2' | 'd1' | 'do' | 'queue' | 'ai' | 'service' | 'secret' | 'var';
15
+ [key: string]: BindingHint;
13
16
  }
14
17
  /**
15
18
  * Create an env proxy that routes all binding access through the bridge
@@ -18,12 +21,14 @@ export declare function createEnvProxy(options?: EnvProxyOptions & {
18
21
  hints?: BindingHints;
19
22
  }): Record<string, unknown>;
20
23
  /**
21
- * Get the global env proxy for bridge RPC
24
+ * Get the global env proxy for bridge RPC.
22
25
  *
23
- * Note: This is distinct from the published `import { env } from 'devflare'`
24
- * proxy, which provides unified request/test/bridge-aware access.
25
- * Use `bridgeEnv` for standalone internal bridge usage and `env` from the
26
- * main package within request handlers and normal test flows.
26
+ * @internal
27
+ * Internal bridge surface not part of the documented public API. Prefer
28
+ * `import { env } from 'devflare'`, which transparently picks the right
29
+ * source (request context, test context, or bridge) for the current
30
+ * environment. `bridgeEnv` is retained as an internal escape hatch for the
31
+ * bridge implementation itself and may change without a major version bump.
27
32
  *
28
33
  * @example
29
34
  * ```ts
@@ -32,10 +37,6 @@ export declare function createEnvProxy(options?: EnvProxyOptions & {
32
37
  * ```
33
38
  */
34
39
  export declare const bridgeEnv: Record<string, unknown>;
35
- /**
36
- * @deprecated Use `bridgeEnv` instead to avoid confusion with runtime `env`
37
- */
38
- export declare const env: Record<string, unknown>;
39
40
  /**
40
41
  * Initialize the env proxy with specific options
41
42
  */
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/bridge/proxy.ts"],"names":[],"mappings":"AAMA,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,UAAU,CAAA;AAYvD,MAAM,WAAW,eAAe;IAC/B,0DAA0D;IAC1D,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,qCAAqC;IACrC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,wEAAwE;IACxE,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAA;CAC9C;AA0aD,mDAAmD;AACnD,MAAM,WAAW,YAAY;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAA;CACxF;AAKD;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,eAAe,GAAG;IAAE,KAAK,CAAC,EAAE,YAAY,CAAA;CAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAsEhH;AAqED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAO5C,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,GAAG,yBAAY,CAAA;AAE5B;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,GAAE,eAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAG9E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAIzD"}
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/bridge/proxy.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,YAAY,EAAa,MAAM,UAAU,CAAA;AAavD,MAAM,WAAW,eAAe;IAC/B,0DAA0D;IAC1D,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,qCAAqC;IACrC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,uEAAuE;IACvE,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,wEAAwE;IACxE,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAA;CAC9C;AAgoBD,mDAAmD;AACnD,MAAM,MAAM,WAAW,GACpB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,OAAO,GACP,IAAI,GACJ,SAAS,GACT,WAAW,GACX,UAAU,GACV,QAAQ,GACR,KAAK,CAAA;AAER,MAAM,WAAW,YAAY;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;CAC1B;AAKD;;GAEG;AACH,wBAAgB,cAAc,CAC7B,OAAO,GAAE,eAAe,GAAG;IAAE,KAAK,CAAC,EAAE,YAAY,CAAA;CAAO,GACtD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoFzB;AAwFD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAO5C,CAAA;AAEF;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,GAAE,eAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAG9E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAIzD"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Inline JS defining `__devflareR2PresignHandle(request, env, url)`, which
3
+ * returns a `Response` when the request targets the local presign endpoint
4
+ * and `null` otherwise. Enforces signature, expiry, method, content type and
5
+ * size against the per-boot secret in `env.DEVFLARE_R2_PRESIGN_SECRET`, then
6
+ * executes the object operation on the local R2 binding.
7
+ */
8
+ export declare const R2_PRESIGN_RUNTIME_JS = "\nconst __devflareR2PresignPrefix = '/_devflare/r2/presigned/'\n\nconst __devflareR2PresignCors = {\n\t'Access-Control-Allow-Origin': '*',\n\t'Access-Control-Allow-Methods': 'GET, HEAD, PUT, OPTIONS',\n\t'Access-Control-Allow-Headers': 'Content-Type',\n\t'Access-Control-Expose-Headers': 'ETag, Content-Type, Content-Length'\n}\n\nfunction __devflareR2PresignError(status, code, message) {\n\treturn new Response(JSON.stringify({ error: { code, message } }), {\n\t\tstatus,\n\t\theaders: { 'Content-Type': 'application/json', ...__devflareR2PresignCors }\n\t})\n}\n\nasync function __devflareR2PresignHmacHex(secret, message) {\n\tconst encoder = new TextEncoder()\n\tconst key = await crypto.subtle.importKey(\n\t\t'raw',\n\t\tencoder.encode(secret),\n\t\t{ name: 'HMAC', hash: 'SHA-256' },\n\t\tfalse,\n\t\t['sign']\n\t)\n\tconst signature = await crypto.subtle.sign('HMAC', key, encoder.encode(message))\n\treturn [...new Uint8Array(signature)].map((b) => b.toString(16).padStart(2, '0')).join('')\n}\n\n// Constant-time hex comparison (uses workerd's timingSafeEqual when present).\nfunction __devflareR2PresignEqual(expectedHex, actualHex) {\n\tif (typeof actualHex !== 'string' || actualHex.length !== expectedHex.length) return false\n\tconst encoder = new TextEncoder()\n\tconst expected = encoder.encode(expectedHex)\n\tconst actual = encoder.encode(actualHex)\n\tconst subtle = crypto.subtle\n\tif (subtle && typeof subtle.timingSafeEqual === 'function') {\n\t\treturn subtle.timingSafeEqual(expected, actual)\n\t}\n\tlet diff = 0\n\tfor (let i = 0; i < expected.length; i++) diff |= expected[i] ^ actual[i]\n\treturn diff === 0\n}\n\n// MUST match buildLocalCanonicalString in src/runtime/r2-presign.ts.\nfunction __devflareR2PresignCanonical(method, binding, key, expires, contentType, contentLength, maxSize) {\n\treturn [\n\t\t'devflare:r2-presign:v1',\n\t\tmethod,\n\t\tbinding,\n\t\tkey,\n\t\texpires,\n\t\tcontentType || '',\n\t\tcontentLength || '',\n\t\tmaxSize || ''\n\t].join('\\n')\n}\n\n/**\n * Handle a request to the local presigned R2 endpoint; returns null when the\n * path does not match so gateways can fall through to their other routes.\n */\nasync function __devflareR2PresignHandle(request, env, url) {\n\tif (!url.pathname.startsWith(__devflareR2PresignPrefix)) return null\n\n\tif (request.method === 'OPTIONS') {\n\t\treturn new Response(null, {\n\t\t\tstatus: 204,\n\t\t\theaders: { ...__devflareR2PresignCors, 'Access-Control-Max-Age': '86400' }\n\t\t})\n\t}\n\n\tconst rest = url.pathname.slice(__devflareR2PresignPrefix.length)\n\tconst slashIndex = rest.indexOf('/')\n\tif (slashIndex <= 0 || slashIndex === rest.length - 1) {\n\t\treturn __devflareR2PresignError(400, 'bad_request', 'Expected /_devflare/r2/presigned/<binding>/<key>.')\n\t}\n\tconst binding = decodeURIComponent(rest.slice(0, slashIndex))\n\tconst key = rest\n\t\t.slice(slashIndex + 1)\n\t\t.split('/')\n\t\t.map((segment) => decodeURIComponent(segment))\n\t\t.join('/')\n\n\tconst secret = env.DEVFLARE_R2_PRESIGN_SECRET\n\tif (typeof secret !== 'string' || secret.length === 0) {\n\t\treturn __devflareR2PresignError(\n\t\t\t500,\n\t\t\t'presign_unconfigured',\n\t\t\t'DEVFLARE_R2_PRESIGN_SECRET is not configured on the devflare gateway. '\n\t\t\t\t+ 'This endpoint is only served for configs with R2 bindings.'\n\t\t)\n\t}\n\n\tconst params = url.searchParams\n\tconst signedMethod = params.get('X-Devflare-Method')\n\tconst expires = params.get('X-Devflare-Expires')\n\tconst providedSignature = params.get('X-Devflare-Signature')\n\tconst signedContentType = params.get('X-Devflare-Content-Type')\n\tconst signedContentLength = params.get('X-Devflare-Content-Length')\n\tconst signedMaxSize = params.get('X-Devflare-Max-Size')\n\n\tif (!signedMethod || !expires || !providedSignature) {\n\t\treturn __devflareR2PresignError(403, 'missing_parameters', 'Missing presign query parameters.')\n\t}\n\n\tconst expectedSignature = await __devflareR2PresignHmacHex(\n\t\tsecret,\n\t\t__devflareR2PresignCanonical(\n\t\t\tsignedMethod, binding, key, expires, signedContentType, signedContentLength, signedMaxSize\n\t\t)\n\t)\n\tif (!__devflareR2PresignEqual(expectedSignature, providedSignature)) {\n\t\treturn __devflareR2PresignError(403, 'invalid_signature', 'Presigned URL signature mismatch.')\n\t}\n\n\tif (Math.floor(Date.now() / 1000) > Number(expires)) {\n\t\treturn __devflareR2PresignError(403, 'expired', 'Presigned URL has expired.')\n\t}\n\n\tconst methodAllowed = signedMethod === 'GET'\n\t\t? request.method === 'GET' || request.method === 'HEAD'\n\t\t: request.method === signedMethod\n\tif (!methodAllowed) {\n\t\treturn __devflareR2PresignError(\n\t\t\t403,\n\t\t\t'method_mismatch',\n\t\t\t'URL was presigned for ' + signedMethod + ', got ' + request.method + '.'\n\t\t)\n\t}\n\n\tconst bucket = env[binding]\n\tif (!bucket || typeof bucket.put !== 'function' || typeof bucket.head !== 'function') {\n\t\treturn __devflareR2PresignError(404, 'unknown_binding', 'R2 binding not found: ' + binding)\n\t}\n\n\tif (request.method === 'PUT') {\n\t\tconst sentContentType = request.headers.get('Content-Type')\n\t\tif (signedContentType !== null && sentContentType !== signedContentType) {\n\t\t\treturn __devflareR2PresignError(\n\t\t\t\t403,\n\t\t\t\t'content_type_mismatch',\n\t\t\t\t'URL was presigned for Content-Type \"' + signedContentType + '\", got \"' + sentContentType + '\".'\n\t\t\t)\n\t\t}\n\n\t\tconst body = await request.arrayBuffer()\n\t\tif (signedContentLength !== null && body.byteLength !== Number(signedContentLength)) {\n\t\t\treturn __devflareR2PresignError(\n\t\t\t\t403,\n\t\t\t\t'content_length_mismatch',\n\t\t\t\t'URL was presigned for exactly ' + signedContentLength + ' bytes, got ' + body.byteLength + '.'\n\t\t\t)\n\t\t}\n\t\tif (signedMaxSize !== null && body.byteLength > Number(signedMaxSize)) {\n\t\t\treturn __devflareR2PresignError(\n\t\t\t\t413,\n\t\t\t\t'too_large',\n\t\t\t\t'Body of ' + body.byteLength + ' bytes exceeds the presigned maximum of ' + signedMaxSize + '.'\n\t\t\t)\n\t\t}\n\n\t\tconst putContentType = sentContentType || signedContentType || undefined\n\t\tconst result = await bucket.put(key, body, {\n\t\t\t...(putContentType && { httpMetadata: { contentType: putContentType } })\n\t\t})\n\t\treturn new Response(null, {\n\t\t\tstatus: 200,\n\t\t\theaders: { ...__devflareR2PresignCors, ...(result?.httpEtag && { ETag: result.httpEtag }) }\n\t\t})\n\t}\n\n\t// GET / HEAD\n\tconst objectHeaders = (object) => ({\n\t\t...__devflareR2PresignCors,\n\t\t'Content-Type': object.httpMetadata?.contentType || 'application/octet-stream',\n\t\t'Content-Length': String(object.size),\n\t\t...(object.httpEtag && { ETag: object.httpEtag })\n\t})\n\n\tif (request.method === 'HEAD') {\n\t\tconst object = await bucket.head(key)\n\t\tif (!object) return __devflareR2PresignError(404, 'not_found', 'Object not found: ' + key)\n\t\treturn new Response(null, { status: 200, headers: objectHeaders(object) })\n\t}\n\n\tconst object = await bucket.get(key)\n\tif (!object) return __devflareR2PresignError(404, 'not_found', 'Object not found: ' + key)\n\treturn new Response(object.body, { status: 200, headers: objectHeaders(object) })\n}\n";
9
+ //# sourceMappingURL=r2-presign-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"r2-presign-runtime.d.ts","sourceRoot":"","sources":["../../src/bridge/r2-presign-runtime.ts"],"names":[],"mappings":"AAeA;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,yiOA+LjC,CAAA"}
@@ -2,7 +2,8 @@ export interface GatewayEnv {
2
2
  [key: string]: unknown;
3
3
  }
4
4
  declare const _default: {
5
- fetch(request: Request<unknown, CfProperties<unknown>>, env: GatewayEnv, ctx: ExecutionContext<unknown>): Promise<Response>;
5
+ fetch(request: Request, env: GatewayEnv, ctx: ExecutionContext): Promise<Response>;
6
6
  };
7
7
  export default _default;
8
+ export declare function executeRpcMethod(method: string, params: unknown[], env: GatewayEnv, ctx: ExecutionContext): Promise<unknown>;
8
9
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/bridge/server.ts"],"names":[],"mappings":"AAkCA,MAAM,WAAW,UAAU;IAE1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACtB;;;;AAgBD,wBAuBC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/bridge/server.ts"],"names":[],"mappings":"AAuCA,MAAM,WAAW,UAAU;IAE1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACtB;;IAiBM,KAAK,UAAU,OAAO,OAAO,UAAU,OAAO,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;;;AA+LzF,wBAAsB,gBAAgB,CACrC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,EAAE,EACjB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,gBAAgB,GACnB,OAAO,CAAC,OAAO,CAAC,CA+KlB"}
@@ -0,0 +1,53 @@
1
+ import type { TransportV2BodyKind, TransportV2DecodedBinaryFrame } from './frames.js';
2
+ /** Default maximum payload size per body chunk frame (256 KiB). */
3
+ export declare const TRANSPORT_V2_DEFAULT_BODY_CHUNK_SIZE: number;
4
+ export interface TransportV2BodyWriterOptions {
5
+ /** Maximum payload bytes per `BodyChunk` frame. Defaults to 256 KiB. */
6
+ chunkSize?: number;
7
+ /** Optional content-length hint to include in `body.open`. */
8
+ contentLength?: number;
9
+ /** Optional content-type hint to include in `body.open`. */
10
+ contentType?: string;
11
+ }
12
+ export interface TransportV2BodyWriterIo {
13
+ sendText(message: string): void;
14
+ sendBinary(frame: Uint8Array): void;
15
+ }
16
+ /**
17
+ * Stream a `ReadableStream<Uint8Array>` over the v2 wire as `body.open` +
18
+ * `BodyChunk` frames + `body.end`. Returns once the source stream is
19
+ * exhausted or has been cancelled by the writer.
20
+ *
21
+ * The returned promise rejects if either the source stream errors or one of
22
+ * the I/O calls throws; in both cases a `body.abort` frame is emitted before
23
+ * the promise rejects so the reader side can release resources.
24
+ */
25
+ export declare function writeTransportV2Body(source: ReadableStream<Uint8Array>, options: {
26
+ bid: number;
27
+ kind: TransportV2BodyKind;
28
+ rpcId: string;
29
+ io: TransportV2BodyWriterIo;
30
+ writerOptions?: TransportV2BodyWriterOptions;
31
+ }): Promise<void>;
32
+ /**
33
+ * Tracks in-flight v2 body streams on the reader side. The codec routes
34
+ * incoming `body.open` / `body.end` / `body.abort` control messages and
35
+ * `BodyChunk` binary frames here; consumers of v2 RPC results obtain a
36
+ * `ReadableStream<Uint8Array>` to attach to a `Request` / `Response`.
37
+ */
38
+ export declare class TransportV2BodyReaderRegistry {
39
+ #private;
40
+ /** Register a new body stream and return the reader-side `ReadableStream`. Idempotent: returns the existing stream if `bid` is already registered. */
41
+ getOrOpen(bid: number): ReadableStream<Uint8Array>;
42
+ /** Register a new body stream and return the reader-side `ReadableStream`. Throws if `bid` is already registered. */
43
+ open(bid: number): ReadableStream<Uint8Array>;
44
+ /** Push a decoded BodyChunk frame to the matching reader. */
45
+ pushChunk(frame: TransportV2DecodedBinaryFrame): void;
46
+ /** Handle a `body.end` control message (writer signalled clean end). */
47
+ end(bid: number): void;
48
+ /** Handle a `body.abort` control message. */
49
+ abort(bid: number, reason?: string): void;
50
+ /** Number of currently open reader-side body streams (for tests/diagnostics). */
51
+ get size(): number;
52
+ }
53
+ //# sourceMappingURL=body-streams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"body-streams.d.ts","sourceRoot":"","sources":["../../../src/bridge/v2/body-streams.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAGX,mBAAmB,EAEnB,6BAA6B,EAC7B,MAAM,UAAU,CAAA;AAEjB,mEAAmE;AACnE,eAAO,MAAM,oCAAoC,QAAa,CAAA;AAE9D,MAAM,WAAW,4BAA4B;IAC5C,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,8DAA8D;IAC9D,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAA;CACnC;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACzC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAClC,OAAO,EAAE;IACR,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,mBAAmB,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,EAAE,uBAAuB,CAAA;IAC3B,aAAa,CAAC,EAAE,4BAA4B,CAAA;CAC5C,GACC,OAAO,CAAC,IAAI,CAAC,CA0Ef;AAQD;;;;;GAKG;AACH,qBAAa,6BAA6B;;IAGzC,sJAAsJ;IACtJ,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,CAIjD;IAED,qHAAqH;IACrH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,CAoB5C;IAED,6DAA6D;IAC7D,SAAS,CAAC,KAAK,EAAE,6BAA6B,GAAG,IAAI,CA4BpD;IAED,wEAAwE;IACxE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAMrB;IAED,6CAA6C;IAC7C,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAMxC;IAED,iFAAiF;IACjF,IAAI,IAAI,IAAI,MAAM,CAEjB;CACD"}
@@ -0,0 +1,106 @@
1
+ import { TransportV2BodyReaderRegistry } from './body-streams.js';
2
+ import { TRANSPORT_V2_PROTOCOL_VERSION } from './frames.js';
3
+ import type { TransportV2DecodedBinaryFrame } from './frames.js';
4
+ import type { WebSocketLike } from './transport.js';
5
+ export interface TransportV2HandshakeOk {
6
+ protocolVersion: typeof TRANSPORT_V2_PROTOCOL_VERSION;
7
+ capabilities: string[];
8
+ }
9
+ export interface TransportV2RpcCall {
10
+ t: 'rpc.call';
11
+ id: string;
12
+ method: string;
13
+ params: unknown[];
14
+ }
15
+ export interface TransportV2RpcOk {
16
+ t: 'rpc.ok';
17
+ id: string;
18
+ result: unknown;
19
+ }
20
+ export interface TransportV2RpcErr {
21
+ t: 'rpc.err';
22
+ id: string;
23
+ error: {
24
+ code: string;
25
+ message: string;
26
+ details?: unknown;
27
+ };
28
+ }
29
+ /**
30
+ * Out-of-band structured error frame (B5-frame). See
31
+ * `src/bridge/v2/wire.ts#WireError` for the canonical vocabulary spec.
32
+ */
33
+ export interface TransportV2WireError {
34
+ t: 'error';
35
+ scope: 'transport' | 'rpc' | 'stream' | 'ws';
36
+ error: {
37
+ code: string;
38
+ message: string;
39
+ details?: unknown;
40
+ };
41
+ refId?: string | number;
42
+ }
43
+ export type TransportV2RpcMsg = TransportV2RpcCall | TransportV2RpcOk | TransportV2RpcErr;
44
+ export interface TransportV2CodecOptions {
45
+ /** Capability strings this side supports. Both halves of the bridge advertise these in `hello`/`welcome`. */
46
+ capabilities?: readonly string[];
47
+ /** Called when an RPC call arrives (server-side handler). */
48
+ onRpcCall?: (call: TransportV2RpcCall) => void;
49
+ /** Called when a non-v2 control message arrives. Used during the dual-mode period to keep handling v1 messages. */
50
+ onUnknownControl?: (data: string) => void;
51
+ /** Called when a non-BodyChunk binary frame arrives. Used during dual-mode for v1 stream/ws frames. */
52
+ onUnknownBinary?: (frame: TransportV2DecodedBinaryFrame) => void;
53
+ /**
54
+ * Called when an out-of-band `error` frame (B5-frame) arrives — i.e.
55
+ * a structured failure that is not pinned to a single RPC call id.
56
+ * Useful for surfacing transport/stream/ws errors that previously fell
57
+ * through silent `catch {}` blocks.
58
+ */
59
+ onWireError?: (err: TransportV2WireError) => void;
60
+ }
61
+ /**
62
+ * v2 codec attached to a single `WebSocketLike`. Owns handshake state, the
63
+ * frame demultiplexer, RPC pending-call table, and the body-stream registry.
64
+ */
65
+ export declare class TransportV2Codec {
66
+ #private;
67
+ readonly bodyReaders: TransportV2BodyReaderRegistry;
68
+ constructor(socket: WebSocketLike, options?: TransportV2CodecOptions);
69
+ /** Allocate a fresh body id (writer side). */
70
+ allocateBid(): number;
71
+ /** Allocate a fresh RPC id (caller side). */
72
+ allocateRpcId(): string;
73
+ /** Send the `hello` frame. Called once by the side that initiates the handshake. */
74
+ sendHello(): void;
75
+ /** Promise that resolves once the handshake completes. */
76
+ get handshake(): Promise<TransportV2HandshakeOk>;
77
+ /** Negotiated capabilities once the handshake completes. */
78
+ get negotiated(): TransportV2HandshakeOk | null;
79
+ sendText(message: string): void;
80
+ sendBinary(frame: Uint8Array): void;
81
+ /** Send a typed RPC call and resolve with the peer's `rpc.ok` result. */
82
+ call(method: string, params?: unknown[]): Promise<unknown>;
83
+ /** Send an `rpc.ok` reply for a previously-received call. */
84
+ respondOk(id: string, result: unknown): void;
85
+ /** Send an `rpc.err` reply for a previously-received call. */
86
+ respondErr(id: string, error: {
87
+ code: string;
88
+ message: string;
89
+ details?: unknown;
90
+ }): void;
91
+ /**
92
+ * Send an out-of-band structured `error` frame (B5-frame). Use for
93
+ * failures that are not scoped to a single RPC call id — e.g. malformed
94
+ * incoming frames, stream/ws aborts that need a typed cause, or gateway
95
+ * bookkeeping errors. Replaces silent `catch {}` fallthroughs.
96
+ */
97
+ sendWireError(err: Omit<TransportV2WireError, 't'>): void;
98
+ /** Register a reader-side body stream. Returns the `ReadableStream`. Idempotent across the codec's `body.open` arrival. */
99
+ openBodyReader(bid: number): ReadableStream<Uint8Array>;
100
+ /** Replace the `onRpcCall` handler after construction. Useful for one-shot tests and for higher RPC layers that build the handler lazily. */
101
+ setRpcCallHandler(handler: (call: TransportV2RpcCall) => void): void;
102
+ /** Close the underlying transport with an optional code/reason. */
103
+ close(code?: number, reason?: string): void;
104
+ get isClosed(): boolean;
105
+ }
106
+ //# sourceMappingURL=codec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../../src/bridge/v2/codec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ export interface TransportV2WsOpenMsg {
2
+ t: 'ws.open';
3
+ id: string;
4
+ binding: string;
5
+ path: string;
6
+ headers: Record<string, string>;
7
+ doId?: string;
8
+ doName?: string;
9
+ }
10
+ export interface TransportV2WsOpenedMsg {
11
+ t: 'ws.opened';
12
+ id: string;
13
+ subprotocol?: string;
14
+ }
15
+ export interface TransportV2WsOpenErrMsg {
16
+ t: 'ws.openerr';
17
+ id: string;
18
+ error: {
19
+ message: string;
20
+ code?: string;
21
+ };
22
+ }
23
+ export interface TransportV2WsTextMsg {
24
+ t: 'ws.text';
25
+ id: string;
26
+ data: string;
27
+ }
28
+ export interface TransportV2WsCloseMsg {
29
+ t: 'ws.close';
30
+ id: string;
31
+ code?: number;
32
+ reason?: string;
33
+ }
34
+ export interface TransportV2HttpTransferMsg {
35
+ t: 'http.transfer';
36
+ id: string;
37
+ url: string;
38
+ method: 'GET' | 'PUT';
39
+ headers?: Record<string, string>;
40
+ bytes: number;
41
+ }
42
+ export type TransportV2AuxMsg = TransportV2WsOpenMsg | TransportV2WsOpenedMsg | TransportV2WsOpenErrMsg | TransportV2WsTextMsg | TransportV2WsCloseMsg | TransportV2HttpTransferMsg;
43
+ export declare function isTransportV2AuxMsg(value: unknown): value is TransportV2AuxMsg;
44
+ export declare function parseTransportV2AuxMsg(text: string): TransportV2AuxMsg | null;
45
+ export declare function stringifyTransportV2AuxMsg(msg: TransportV2AuxMsg): string;
46
+ //# sourceMappingURL=control-messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-messages.d.ts","sourceRoot":"","sources":["../../../src/bridge/v2/control-messages.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,oBAAoB;IACpC,CAAC,EAAE,SAAS,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,sBAAsB;IACtC,CAAC,EAAE,WAAW,CAAA;IACd,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,uBAAuB;IACvC,CAAC,EAAE,YAAY,CAAA;IACf,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACzC;AAED,MAAM,WAAW,oBAAoB;IACpC,CAAC,EAAE,SAAS,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,qBAAqB;IACrC,CAAC,EAAE,UAAU,CAAA;IACb,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,0BAA0B;IAC1C,CAAC,EAAE,eAAe,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,KAAK,GAAG,KAAK,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,KAAK,EAAE,MAAM,CAAA;CACb;AAED,MAAM,MAAM,iBAAiB,GAC1B,oBAAoB,GACpB,sBAAsB,GACtB,uBAAuB,GACvB,oBAAoB,GACpB,qBAAqB,GACrB,0BAA0B,CAAA;AAW7B,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAI9E;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAO7E;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,CAEzE"}
@@ -0,0 +1,109 @@
1
+ /** Wire protocol version emitted in `hello` / `welcome` handshakes. */
2
+ export declare const TRANSPORT_V2_PROTOCOL_VERSION: 2;
3
+ /** WebSocket close code used when v2 ↔ v1 mismatch is detected at handshake. */
4
+ export declare const TRANSPORT_V2_UNSUPPORTED_VERSION_CLOSE_CODE: 4001;
5
+ /** Initial handshake sent by the side that opens the WebSocket. */
6
+ export interface TransportV2Hello {
7
+ t: 'hello';
8
+ protocolVersion: typeof TRANSPORT_V2_PROTOCOL_VERSION;
9
+ capabilities: string[];
10
+ }
11
+ /** Handshake reply with the negotiated capability intersection. */
12
+ export interface TransportV2Welcome {
13
+ t: 'welcome';
14
+ protocolVersion: typeof TRANSPORT_V2_PROTOCOL_VERSION;
15
+ capabilities: string[];
16
+ }
17
+ /** Side that owns a body stream. `'value'` is used for free-standing
18
+ * ReadableStream parameters/results that are not tied to a Request/Response. */
19
+ export type TransportV2BodyKind = 'request' | 'response' | 'value';
20
+ /** Declares a streaming body for an in-flight request or response. */
21
+ export interface TransportV2BodyOpen {
22
+ t: 'body.open';
23
+ bid: number;
24
+ kind: TransportV2BodyKind;
25
+ rpcId: string;
26
+ contentType?: string;
27
+ contentLength?: number;
28
+ }
29
+ /** Signals that a body stream has finished cleanly. */
30
+ export interface TransportV2BodyEnd {
31
+ t: 'body.end';
32
+ bid: number;
33
+ kind: TransportV2BodyKind;
34
+ }
35
+ /** Signals that a body stream was cancelled or errored. */
36
+ export interface TransportV2BodyAbort {
37
+ t: 'body.abort';
38
+ bid: number;
39
+ kind: TransportV2BodyKind;
40
+ error?: string;
41
+ }
42
+ /** Union of v2-specific JSON control messages. */
43
+ export type TransportV2ControlMsg = TransportV2Hello | TransportV2Welcome | TransportV2BodyOpen | TransportV2BodyEnd | TransportV2BodyAbort;
44
+ /**
45
+ * Binary frame kinds for v2. Values 1 (StreamChunk) and 2 (WsData) are
46
+ * deliberately stable with v1 so a future shared decoder can route either
47
+ * version's frames. Value 3 (BodyChunk) is new in v2 for HTTP body streams.
48
+ */
49
+ export declare const TransportV2BinaryKind: {
50
+ readonly StreamChunk: 1;
51
+ readonly WsData: 2;
52
+ readonly BodyChunk: 3;
53
+ };
54
+ export type TransportV2BinaryKind = (typeof TransportV2BinaryKind)[keyof typeof TransportV2BinaryKind];
55
+ /** Binary frame flags for v2. */
56
+ export declare const TransportV2BinaryFlags: {
57
+ readonly FIN: 1;
58
+ readonly TEXT: 2;
59
+ readonly ABORT: 4;
60
+ };
61
+ /**
62
+ * Binary frame header layout (10 bytes, identical to v1 so wire shape stays
63
+ * compatible at the byte level for shared frame kinds):
64
+ *
65
+ * u8 kind — TransportV2BinaryKind
66
+ * u32 id — stream / ws / body id (little-endian)
67
+ * u32 seq — sequence number for ordering
68
+ * u8 flags — TransportV2BinaryFlags bitset
69
+ * … payload — opaque bytes
70
+ */
71
+ export declare const TRANSPORT_V2_BINARY_HEADER_SIZE = 10;
72
+ /** A decoded v2 binary frame. */
73
+ export interface TransportV2DecodedBinaryFrame {
74
+ kind: TransportV2BinaryKind;
75
+ id: number;
76
+ seq: number;
77
+ flags: number;
78
+ payload: Uint8Array;
79
+ }
80
+ /** Encode a v2 binary frame. Pure; allocates a single Uint8Array. */
81
+ export declare function encodeTransportV2BinaryFrame(kind: TransportV2BinaryKind, id: number, seq: number, flags: number, payload: Uint8Array): Uint8Array;
82
+ /** Decode a v2 binary frame. Pure; returns a view that aliases the input bytes. */
83
+ export declare function decodeTransportV2BinaryFrame(frame: Uint8Array): TransportV2DecodedBinaryFrame;
84
+ /** True when the FIN flag is set on a v2 binary frame. */
85
+ export declare function transportV2IsFin(flags: number): boolean;
86
+ /** True when the TEXT flag is set on a v2 binary frame. */
87
+ export declare function transportV2IsText(flags: number): boolean;
88
+ /** True when the ABORT flag is set on a v2 binary frame. */
89
+ export declare function transportV2IsAbort(flags: number): boolean;
90
+ /**
91
+ * Parse a JSON string as a v2-specific control message. Returns the typed
92
+ * message or throws if the payload is not a recognised v2 control type.
93
+ *
94
+ * Callers that need to multiplex v1 `JsonMsg` and v2 control messages should
95
+ * inspect the `t` field first and dispatch accordingly; this helper is
96
+ * deliberately strict so that v2-only code paths never silently accept v1
97
+ * payloads.
98
+ */
99
+ export declare function parseTransportV2ControlMsg(data: string): TransportV2ControlMsg;
100
+ /** Stringify a v2 control message. Pure. */
101
+ export declare function stringifyTransportV2ControlMsg(msg: TransportV2ControlMsg): string;
102
+ /**
103
+ * Compute the capability intersection a server should announce in its
104
+ * `welcome` reply, given its own supported set and the client's `hello`
105
+ * advertisement. Order is deterministic (sorted) so the wire output is
106
+ * reproducible across runs.
107
+ */
108
+ export declare function negotiateTransportV2Capabilities(supported: readonly string[], advertised: readonly string[]): string[];
109
+ //# sourceMappingURL=frames.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../../src/bridge/v2/frames.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export { TRANSPORT_V2_PROTOCOL_VERSION, TRANSPORT_V2_UNSUPPORTED_VERSION_CLOSE_CODE, TRANSPORT_V2_BINARY_HEADER_SIZE, TransportV2BinaryKind, TransportV2BinaryFlags, encodeTransportV2BinaryFrame, decodeTransportV2BinaryFrame, transportV2IsFin, transportV2IsText, transportV2IsAbort, parseTransportV2ControlMsg, stringifyTransportV2ControlMsg, negotiateTransportV2Capabilities } from './frames.js';
2
+ export type { TransportV2Hello, TransportV2Welcome, TransportV2BodyKind, TransportV2BodyOpen, TransportV2BodyEnd, TransportV2BodyAbort, TransportV2ControlMsg, TransportV2DecodedBinaryFrame } from './frames.js';
3
+ export { TRANSPORT_V2_DEFAULT_BODY_CHUNK_SIZE, TransportV2BodyReaderRegistry, writeTransportV2Body } from './body-streams.js';
4
+ export type { TransportV2BodyWriterIo, TransportV2BodyWriterOptions } from './body-streams.js';
5
+ export { TransportV2Codec } from './codec.js';
6
+ export type { TransportV2CodecOptions, TransportV2HandshakeOk, TransportV2RpcCall, TransportV2RpcErr, TransportV2RpcMsg, TransportV2RpcOk, TransportV2WireError } from './codec.js';
7
+ export { createTransportV2Pair } from './transport.js';
8
+ export type { TransportV2InMemoryPair, WebSocketLike, WebSocketLikeCloseEvent, WebSocketLikeMessageEvent } from './transport.js';
9
+ export { deserializeRequestV2, deserializeResponseV2, serializeRequestV2, serializeResponseV2 } from './serialization.js';
10
+ export type { TransportV2BodyRef, TransportV2SerializedRequest, TransportV2SerializedResponse } from './serialization.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bridge/v2/index.ts"],"names":[],"mappings":"AAWA,OAAO,EACN,6BAA6B,EAC7B,2CAA2C,EAC3C,+BAA+B,EAC/B,qBAAqB,EACrB,sBAAsB,EACtB,4BAA4B,EAC5B,4BAA4B,EAC5B,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,0BAA0B,EAC1B,8BAA8B,EAC9B,gCAAgC,EAChC,MAAM,UAAU,CAAA;AACjB,YAAY,EACX,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,6BAA6B,EAC7B,MAAM,UAAU,CAAA;AAEjB,OAAO,EACN,oCAAoC,EACpC,6BAA6B,EAC7B,oBAAoB,EACpB,MAAM,gBAAgB,CAAA;AACvB,YAAY,EACX,uBAAuB,EACvB,4BAA4B,EAC5B,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC1C,YAAY,EACX,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACnD,YAAY,EACX,uBAAuB,EACvB,aAAa,EACb,uBAAuB,EACvB,yBAAyB,EACzB,MAAM,aAAa,CAAA;AAEpB,OAAO,EACN,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,iBAAiB,CAAA;AACxB,YAAY,EACX,kBAAkB,EAClB,4BAA4B,EAC5B,6BAA6B,EAC7B,MAAM,iBAAiB,CAAA"}