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.
- package/LICENSE +21 -0
- package/LLM.md +17315 -2144
- package/README.md +397 -607
- package/bin/devflare.js +30 -14
- package/dist/_chunks/account-Cflj6rw3.js +462 -0
- package/dist/_chunks/account-resources-CsmVowJp.js +159 -0
- package/dist/_chunks/ai-CBEuLdoP.js +322 -0
- package/dist/_chunks/api-TzdliH-6.js +568 -0
- package/dist/_chunks/build-Dp8k2SWa.js +24 -0
- package/dist/_chunks/build-artifacts-DLEYfdVL.js +483 -0
- package/dist/_chunks/cli-BlVetiEh.js +1171 -0
- package/dist/_chunks/cloudflare-BaloqI3H.js +157 -0
- package/dist/_chunks/colors-DiK6wPJ5.js +13 -0
- package/dist/_chunks/command-utils-CSnoFdxM.js +45 -0
- package/dist/_chunks/compiler-CgIFPfRA.js +521 -0
- package/dist/_chunks/config-BwRb2_vD.js +78 -0
- package/dist/_chunks/config-path-C3ac6r66.js +42 -0
- package/dist/_chunks/context-CX50Y2Kb.js +2250 -0
- package/dist/_chunks/decorators-QmV57ixr.js +19 -0
- package/dist/_chunks/dependencies-C2oxFjU_.js +57 -0
- package/dist/_chunks/deploy-Blrdr3Gv.js +1032 -0
- package/dist/_chunks/dev-DRP6LR2H.js +3524 -0
- package/dist/_chunks/doctor-n_eqvv52.js +219 -0
- package/dist/_chunks/durable-object-DMtH0XYX.js +234 -0
- package/dist/_chunks/env-S0_nMVz1.js +125 -0
- package/dist/_chunks/family-D3SV6I0N.js +143 -0
- package/dist/_chunks/generated-artifacts-dMJY4KAt.js +32 -0
- package/dist/_chunks/glob-CmQOvunB.js +56 -0
- package/dist/_chunks/init-DnkJOmpW.js +165 -0
- package/dist/_chunks/loader-E_UGyTrJ.js +1330 -0
- package/dist/_chunks/local-dev-vars-CTSa-wvF.js +81 -0
- package/dist/_chunks/local-hyperdrive-CJ90j46O.js +119 -0
- package/dist/_chunks/local-media-bindings-DsAW4AMF.js +335 -0
- package/dist/_chunks/local-secrets-6sMstHXw.js +123 -0
- package/dist/_chunks/login-D9-EwpSA.js +51 -0
- package/dist/_chunks/package-metadata-DjHBLB-z.js +39 -0
- package/dist/_chunks/preferences-BKp_7XJx.js +241 -0
- package/dist/_chunks/preview-C3Cdr8an.js +462 -0
- package/dist/_chunks/preview-registry-ClAbLTHH.js +1186 -0
- package/dist/_chunks/preview-resources-D_aFwtZR.js +359 -0
- package/dist/_chunks/previews-D-GPVCeq.js +1133 -0
- package/dist/_chunks/productions-me2YvmWK.js +504 -0
- package/dist/_chunks/r2-presign-runtime-zTOLS0Ea.js +291 -0
- package/dist/_chunks/ref-CYJNAAe_.js +178 -0
- package/dist/_chunks/remote-CZnP-HLJ.js +79 -0
- package/dist/_chunks/remote-config-D39BY9ji.js +132 -0
- package/dist/_chunks/resolve-package-qizBfCIm.js +152 -0
- package/dist/_chunks/rolldown-runtime-CvQ6eiug.js +14 -0
- package/dist/_chunks/routes-BMU7ga_l.js +851 -0
- package/dist/_chunks/runtime-RekfD_2X.js +874 -0
- package/dist/_chunks/schema-normalization-Zgm4W6O6.js +667 -0
- package/dist/_chunks/secrets-CxVCXmdh.js +95 -0
- package/dist/_chunks/tail-aMFzd-2K.js +239 -0
- package/dist/_chunks/token-Dmi0KXyX.js +333 -0
- package/dist/_chunks/tokens-iVcgNXi-.js +221 -0
- package/dist/_chunks/types-ByjwxoVA.js +484 -0
- package/dist/_chunks/ui-BUoZApvE.js +103 -0
- package/dist/_chunks/usage-BBTGzjon.js +272 -0
- package/dist/_chunks/vite-CtvgOi1c.js +1267 -0
- package/dist/_chunks/vite-utils-OVLMV605.js +183 -0
- package/dist/_chunks/worker-CtTVZeTH.js +410 -0
- package/dist/_chunks/worker-bundler-dTTnYU3n.js +458 -0
- package/dist/_chunks/worker-entrypoint-CQW77lG8.js +247 -0
- package/dist/_chunks/workerName-CFJsLZA-.js +23 -0
- package/dist/bridge/client.d.ts +49 -7
- package/dist/bridge/client.d.ts.map +1 -1
- package/dist/bridge/gateway-runtime.d.ts +8 -0
- package/dist/bridge/gateway-runtime.d.ts.map +1 -0
- package/dist/bridge/index.d.ts +6 -6
- package/dist/bridge/index.d.ts.map +1 -1
- package/dist/bridge/log.d.ts +5 -0
- package/dist/bridge/log.d.ts.map +1 -0
- package/dist/bridge/miniflare-gateway.d.ts +45 -0
- package/dist/bridge/miniflare-gateway.d.ts.map +1 -0
- package/dist/bridge/miniflare.d.ts +92 -2
- package/dist/bridge/miniflare.d.ts.map +1 -1
- package/dist/bridge/proxy.d.ts +12 -11
- package/dist/bridge/proxy.d.ts.map +1 -1
- package/dist/bridge/r2-presign-runtime.d.ts +9 -0
- package/dist/bridge/r2-presign-runtime.d.ts.map +1 -0
- package/dist/bridge/server.d.ts +2 -1
- package/dist/bridge/server.d.ts.map +1 -1
- package/dist/bridge/v2/body-streams.d.ts +53 -0
- package/dist/bridge/v2/body-streams.d.ts.map +1 -0
- package/dist/bridge/v2/codec.d.ts +106 -0
- package/dist/bridge/v2/codec.d.ts.map +1 -0
- package/dist/bridge/v2/control-messages.d.ts +46 -0
- package/dist/bridge/v2/control-messages.d.ts.map +1 -0
- package/dist/bridge/v2/frames.d.ts +109 -0
- package/dist/bridge/v2/frames.d.ts.map +1 -0
- package/dist/bridge/v2/index.d.ts +11 -0
- package/dist/bridge/v2/index.d.ts.map +1 -0
- package/dist/bridge/v2/serialization.d.ts +48 -0
- package/dist/bridge/v2/serialization.d.ts.map +1 -0
- package/dist/bridge/v2/transport.d.ts +31 -0
- package/dist/bridge/v2/transport.d.ts.map +1 -0
- package/dist/bridge/v2/value-codec.d.ts +61 -0
- package/dist/bridge/v2/value-codec.d.ts.map +1 -0
- package/dist/bridge/{serialization.d.ts → v2/value-serialization.d.ts} +40 -18
- package/dist/bridge/v2/value-serialization.d.ts.map +1 -0
- package/dist/bridge/{protocol.d.ts → v2/wire.d.ts} +32 -8
- package/dist/bridge/v2/wire.d.ts.map +1 -0
- package/dist/bridge/v2/ws-relay.d.ts +53 -0
- package/dist/bridge/v2/ws-relay.d.ts.map +1 -0
- package/dist/browser-shim/handler.d.ts +2 -2
- package/dist/browser-shim/handler.d.ts.map +1 -1
- package/dist/browser-shim/index.d.ts +2 -2
- package/dist/browser-shim/server.d.ts +63 -0
- package/dist/browser-shim/server.d.ts.map +1 -1
- package/dist/browser.d.ts +5778 -43
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +73 -142
- package/dist/bundler/defaults.d.ts +23 -0
- package/dist/bundler/defaults.d.ts.map +1 -0
- package/dist/bundler/do-bundler.d.ts +7 -0
- package/dist/bundler/do-bundler.d.ts.map +1 -1
- package/dist/bundler/index.d.ts +3 -1
- package/dist/bundler/index.d.ts.map +1 -1
- package/dist/bundler/rolldown-shared.d.ts +53 -0
- package/dist/bundler/rolldown-shared.d.ts.map +1 -0
- package/dist/bundler/worker-bundler.d.ts +13 -0
- package/dist/bundler/worker-bundler.d.ts.map +1 -0
- package/dist/bundler/worker-compat.d.ts +4 -0
- package/dist/bundler/worker-compat.d.ts.map +1 -0
- package/dist/cli/build-manifest.d.ts +66 -0
- package/dist/cli/build-manifest.d.ts.map +1 -0
- package/dist/cli/command-utils.d.ts +18 -0
- package/dist/cli/command-utils.d.ts.map +1 -0
- package/dist/cli/commands/account.d.ts +2 -2
- package/dist/cli/commands/account.d.ts.map +1 -1
- package/dist/cli/commands/ai.d.ts +1 -1
- package/dist/cli/commands/ai.d.ts.map +1 -1
- package/dist/cli/commands/build-artifacts.d.ts +40 -0
- package/dist/cli/commands/build-artifacts.d.ts.map +1 -0
- package/dist/cli/commands/build.d.ts +2 -2
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/config.d.ts +4 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/deploy/metadata.d.ts +18 -0
- package/dist/cli/commands/deploy/metadata.d.ts.map +1 -0
- package/dist/cli/commands/deploy/prepare.d.ts +23 -0
- package/dist/cli/commands/deploy/prepare.d.ts.map +1 -0
- package/dist/cli/commands/deploy/runtime.d.ts +4 -0
- package/dist/cli/commands/deploy/runtime.d.ts.map +1 -0
- package/dist/cli/commands/deploy/verification.d.ts +36 -0
- package/dist/cli/commands/deploy/verification.d.ts.map +1 -0
- package/dist/cli/commands/deploy.d.ts +2 -2
- package/dist/cli/commands/deploy.d.ts.map +1 -1
- package/dist/cli/commands/dev.d.ts +9 -1
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/doctor.d.ts +2 -2
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/init.d.ts +2 -2
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/login.d.ts +4 -0
- package/dist/cli/commands/login.d.ts.map +1 -0
- package/dist/cli/commands/previews-support/cleanup.d.ts +9 -0
- package/dist/cli/commands/previews-support/cleanup.d.ts.map +1 -0
- package/dist/cli/commands/previews-support/family.d.ts +10 -0
- package/dist/cli/commands/previews-support/family.d.ts.map +1 -0
- package/dist/cli/commands/previews-support/render.d.ts +8 -0
- package/dist/cli/commands/previews-support/render.d.ts.map +1 -0
- package/dist/cli/commands/previews-support/theme.d.ts +10 -0
- package/dist/cli/commands/previews-support/theme.d.ts.map +1 -0
- package/dist/cli/commands/previews-support/types.d.ts +70 -0
- package/dist/cli/commands/previews-support/types.d.ts.map +1 -0
- package/dist/cli/commands/previews.d.ts +4 -0
- package/dist/cli/commands/previews.d.ts.map +1 -0
- package/dist/cli/commands/productions.d.ts +4 -0
- package/dist/cli/commands/productions.d.ts.map +1 -0
- package/dist/cli/commands/remote.d.ts +1 -1
- package/dist/cli/commands/remote.d.ts.map +1 -1
- package/dist/cli/commands/secrets.d.ts +4 -0
- package/dist/cli/commands/secrets.d.ts.map +1 -0
- package/dist/cli/commands/tail.d.ts +44 -0
- package/dist/cli/commands/tail.d.ts.map +1 -0
- package/dist/cli/commands/token.d.ts +4 -0
- package/dist/cli/commands/token.d.ts.map +1 -0
- package/dist/cli/commands/type-generation/discovery.d.ts +7 -0
- package/dist/cli/commands/type-generation/discovery.d.ts.map +1 -0
- package/dist/cli/commands/type-generation/generator.d.ts +121 -0
- package/dist/cli/commands/type-generation/generator.d.ts.map +1 -0
- package/dist/cli/commands/type-generation/models.d.ts +27 -0
- package/dist/cli/commands/type-generation/models.d.ts.map +1 -0
- package/dist/cli/commands/types.d.ts +2 -2
- package/dist/cli/commands/types.d.ts.map +1 -1
- package/dist/cli/commands/worker.d.ts +4 -0
- package/dist/cli/commands/worker.d.ts.map +1 -0
- package/dist/cli/config-path.d.ts +6 -0
- package/dist/cli/config-path.d.ts.map +1 -0
- package/dist/cli/dependencies.d.ts +2 -1
- package/dist/cli/dependencies.d.ts.map +1 -1
- package/dist/cli/deploy-strategy.d.ts +17 -0
- package/dist/cli/deploy-strategy.d.ts.map +1 -0
- package/dist/cli/deploy-target.d.ts +17 -0
- package/dist/cli/deploy-target.d.ts.map +1 -0
- package/dist/cli/generated-artifacts.d.ts +12 -0
- package/dist/cli/generated-artifacts.d.ts.map +1 -0
- package/dist/cli/gradual-deploy.d.ts +49 -0
- package/dist/cli/gradual-deploy.d.ts.map +1 -0
- package/dist/cli/help-pages/pages/account.d.ts +3 -0
- package/dist/cli/help-pages/pages/account.d.ts.map +1 -0
- package/dist/cli/help-pages/pages/core.d.ts +4 -0
- package/dist/cli/help-pages/pages/core.d.ts.map +1 -0
- package/dist/cli/help-pages/pages/index.d.ts +3 -0
- package/dist/cli/help-pages/pages/index.d.ts.map +1 -0
- package/dist/cli/help-pages/pages/misc.d.ts +3 -0
- package/dist/cli/help-pages/pages/misc.d.ts.map +1 -0
- package/dist/cli/help-pages/pages/previews.d.ts +3 -0
- package/dist/cli/help-pages/pages/previews.d.ts.map +1 -0
- package/dist/cli/help-pages/pages/productions.d.ts +3 -0
- package/dist/cli/help-pages/pages/productions.d.ts.map +1 -0
- package/dist/cli/help-pages/render.d.ts +12 -0
- package/dist/cli/help-pages/render.d.ts.map +1 -0
- package/dist/cli/help-pages/shared.d.ts +15 -0
- package/dist/cli/help-pages/shared.d.ts.map +1 -0
- package/dist/cli/help-pages/types.d.ts +23 -0
- package/dist/cli/help-pages/types.d.ts.map +1 -0
- package/dist/cli/help.d.ts +6 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/package-metadata.d.ts +16 -0
- package/dist/cli/package-metadata.d.ts.map +1 -0
- package/dist/cli/preview-bindings.d.ts +49 -0
- package/dist/cli/preview-bindings.d.ts.map +1 -0
- package/dist/cli/preview.d.ts +10 -0
- package/dist/cli/preview.d.ts.map +1 -0
- package/dist/cli/ui.d.ts +37 -0
- package/dist/cli/ui.d.ts.map +1 -0
- package/dist/cli/workspace-build-guard.d.ts +14 -0
- package/dist/cli/workspace-build-guard.d.ts.map +1 -0
- package/dist/cli/wrangler-auth.d.ts +1 -1
- package/dist/cloudflare/account-core.d.ts +6 -0
- package/dist/cloudflare/account-core.d.ts.map +1 -0
- package/dist/cloudflare/account-resources.d.ts +40 -0
- package/dist/cloudflare/account-resources.d.ts.map +1 -0
- package/dist/cloudflare/account-status.d.ts +11 -0
- package/dist/cloudflare/account-status.d.ts.map +1 -0
- package/dist/cloudflare/account-workers.d.ts +14 -0
- package/dist/cloudflare/account-workers.d.ts.map +1 -0
- package/dist/cloudflare/account.d.ts +7 -64
- package/dist/cloudflare/account.d.ts.map +1 -1
- package/dist/cloudflare/api.d.ts +71 -3
- package/dist/cloudflare/api.d.ts.map +1 -1
- package/dist/cloudflare/auth.d.ts +1 -1
- package/dist/cloudflare/auth.d.ts.map +1 -1
- package/dist/cloudflare/index.d.ts +61 -6
- package/dist/cloudflare/index.d.ts.map +1 -1
- package/dist/cloudflare/index.js +4 -13
- package/dist/cloudflare/known-permission-group-ids.generated.d.ts +10 -0
- package/dist/cloudflare/known-permission-group-ids.generated.d.ts.map +1 -0
- package/dist/cloudflare/kv-namespace.d.ts +4 -0
- package/dist/cloudflare/kv-namespace.d.ts.map +1 -0
- package/dist/cloudflare/preferences.d.ts +7 -0
- package/dist/cloudflare/preferences.d.ts.map +1 -1
- package/dist/cloudflare/preview-registry-cache.d.ts +6 -0
- package/dist/cloudflare/preview-registry-cache.d.ts.map +1 -0
- package/dist/cloudflare/preview-registry-inference.d.ts +14 -0
- package/dist/cloudflare/preview-registry-inference.d.ts.map +1 -0
- package/dist/cloudflare/preview-registry-records.d.ts +4 -0
- package/dist/cloudflare/preview-registry-records.d.ts.map +1 -0
- package/dist/cloudflare/preview-registry-shape.d.ts +47 -0
- package/dist/cloudflare/preview-registry-shape.d.ts.map +1 -0
- package/dist/cloudflare/preview-registry-store.d.ts +14 -0
- package/dist/cloudflare/preview-registry-store.d.ts.map +1 -0
- package/dist/cloudflare/preview-registry-transport.d.ts +4 -0
- package/dist/cloudflare/preview-registry-transport.d.ts.map +1 -0
- package/dist/cloudflare/preview-registry-types.d.ts +103 -0
- package/dist/cloudflare/preview-registry-types.d.ts.map +1 -0
- package/dist/cloudflare/preview-registry.d.ts +42 -0
- package/dist/cloudflare/preview-registry.d.ts.map +1 -0
- package/dist/cloudflare/preview-urls.d.ts +3 -0
- package/dist/cloudflare/preview-urls.d.ts.map +1 -0
- package/dist/cloudflare/registry-schema.d.ts +253 -0
- package/dist/cloudflare/registry-schema.d.ts.map +1 -0
- package/dist/cloudflare/remote-config.d.ts.map +1 -1
- package/dist/cloudflare/tokens.d.ts +44 -0
- package/dist/cloudflare/tokens.d.ts.map +1 -0
- package/dist/cloudflare/types.d.ts +124 -7
- package/dist/cloudflare/types.d.ts.map +1 -1
- package/dist/cloudflare/usage.d.ts +31 -3
- package/dist/cloudflare/usage.d.ts.map +1 -1
- package/dist/config/binding-resolution-helpers.d.ts +41 -0
- package/dist/config/binding-resolution-helpers.d.ts.map +1 -0
- package/dist/config/compatibility.d.ts +3 -0
- package/dist/config/compatibility.d.ts.map +1 -0
- package/dist/config/compiler/bindings.d.ts +14 -0
- package/dist/config/compiler/bindings.d.ts.map +1 -0
- package/dist/config/compiler/core-helpers.d.ts +6 -0
- package/dist/config/compiler/core-helpers.d.ts.map +1 -0
- package/dist/config/compiler/do-workers.d.ts +34 -0
- package/dist/config/compiler/do-workers.d.ts.map +1 -0
- package/dist/config/compiler/paths.d.ts +18 -0
- package/dist/config/compiler/paths.d.ts.map +1 -0
- package/dist/config/compiler/types.d.ts +308 -0
- package/dist/config/compiler/types.d.ts.map +1 -0
- package/dist/config/compiler.d.ts +22 -134
- package/dist/config/compiler.d.ts.map +1 -1
- package/dist/config/cron.d.ts +19 -0
- package/dist/config/cron.d.ts.map +1 -0
- package/dist/config/define.d.ts +8 -5
- package/dist/config/define.d.ts.map +1 -1
- package/dist/config/deploy-resources.d.ts +58 -0
- package/dist/config/deploy-resources.d.ts.map +1 -0
- package/dist/config/env-vars.d.ts +309 -0
- package/dist/config/env-vars.d.ts.map +1 -0
- package/dist/config/framework-providers.d.ts +9 -0
- package/dist/config/framework-providers.d.ts.map +1 -0
- package/dist/config/index.d.ts +12 -5
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/loader.d.ts +2 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/local-dev-vars.d.ts +15 -0
- package/dist/config/local-dev-vars.d.ts.map +1 -0
- package/dist/config/preview-resources.d.ts +83 -0
- package/dist/config/preview-resources.d.ts.map +1 -0
- package/dist/config/preview.d.ts +29 -0
- package/dist/config/preview.d.ts.map +1 -0
- package/dist/config/ref.d.ts +16 -25
- package/dist/config/ref.d.ts.map +1 -1
- package/dist/config/resolve-phased.d.ts +72 -0
- package/dist/config/resolve-phased.d.ts.map +1 -0
- package/dist/config/resolve.d.ts +11 -0
- package/dist/config/resolve.d.ts.map +1 -0
- package/dist/config/resource-resolution.d.ts +80 -0
- package/dist/config/resource-resolution.d.ts.map +1 -0
- package/dist/config/schema-bindings.d.ts +2124 -0
- package/dist/config/schema-bindings.d.ts.map +1 -0
- package/dist/config/schema-build.d.ts +67 -0
- package/dist/config/schema-build.d.ts.map +1 -0
- package/dist/config/schema-env.d.ts +3821 -0
- package/dist/config/schema-env.d.ts.map +1 -0
- package/dist/config/schema-normalization.d.ts +272 -0
- package/dist/config/schema-normalization.d.ts.map +1 -0
- package/dist/config/schema-runtime.d.ts +597 -0
- package/dist/config/schema-runtime.d.ts.map +1 -0
- package/dist/config/schema-types-bindings-platform.d.ts +520 -0
- package/dist/config/schema-types-bindings-platform.d.ts.map +1 -0
- package/dist/config/schema-types-bindings-resources.d.ts +802 -0
- package/dist/config/schema-types-bindings-resources.d.ts.map +1 -0
- package/dist/config/schema-types-bindings.d.ts +293 -0
- package/dist/config/schema-types-bindings.d.ts.map +1 -0
- package/dist/config/schema-types-build.d.ts +86 -0
- package/dist/config/schema-types-build.d.ts.map +1 -0
- package/dist/config/schema-types-runtime-server.d.ts +196 -0
- package/dist/config/schema-types-runtime-server.d.ts.map +1 -0
- package/dist/config/schema-types-runtime.d.ts +913 -0
- package/dist/config/schema-types-runtime.d.ts.map +1 -0
- package/dist/config/schema-types.d.ts +458 -0
- package/dist/config/schema-types.d.ts.map +1 -0
- package/dist/config/schema.d.ts +5796 -2023
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/service-bindings-validation.d.ts +36 -0
- package/dist/config/service-bindings-validation.d.ts.map +1 -0
- package/dist/config-entry.d.ts +7 -0
- package/dist/config-entry.d.ts.map +1 -0
- package/dist/config-entry.js +3 -0
- package/dist/decorators/durable-object.d.ts.map +1 -1
- package/dist/decorators/index.d.ts +2 -2
- package/dist/decorators/index.js +2 -9
- package/dist/dev-server/d1-migrations.d.ts +36 -0
- package/dist/dev-server/d1-migrations.d.ts.map +1 -0
- package/dist/dev-server/dev-server-state.d.ts +59 -0
- package/dist/dev-server/dev-server-state.d.ts.map +1 -0
- package/dist/dev-server/gateway-script.d.ts +22 -0
- package/dist/dev-server/gateway-script.d.ts.map +1 -0
- package/dist/dev-server/index.d.ts +1 -1
- package/dist/dev-server/miniflare-bindings.d.ts +90 -0
- package/dist/dev-server/miniflare-bindings.d.ts.map +1 -0
- package/dist/dev-server/miniflare-dev-config.d.ts +49 -0
- package/dist/dev-server/miniflare-dev-config.d.ts.map +1 -0
- package/dist/dev-server/miniflare-log.d.ts +20 -0
- package/dist/dev-server/miniflare-log.d.ts.map +1 -0
- package/dist/dev-server/miniflare-worker-config.d.ts +100 -0
- package/dist/dev-server/miniflare-worker-config.d.ts.map +1 -0
- package/dist/dev-server/reload-queue.d.ts +13 -0
- package/dist/dev-server/reload-queue.d.ts.map +1 -0
- package/dist/dev-server/runtime-stdio.d.ts +8 -0
- package/dist/dev-server/runtime-stdio.d.ts.map +1 -0
- package/dist/dev-server/server-startup-helpers.d.ts +84 -0
- package/dist/dev-server/server-startup-helpers.d.ts.map +1 -0
- package/dist/dev-server/server.d.ts +2 -0
- package/dist/dev-server/server.d.ts.map +1 -1
- package/dist/dev-server/vite-process.d.ts +24 -0
- package/dist/dev-server/vite-process.d.ts.map +1 -0
- package/dist/dev-server/vite-utils.d.ts +19 -1
- package/dist/dev-server/vite-utils.d.ts.map +1 -1
- package/dist/dev-server/worker-source-watcher.d.ts +17 -0
- package/dist/dev-server/worker-source-watcher.d.ts.map +1 -0
- package/dist/dev-server/worker-surface-paths.d.ts +6 -0
- package/dist/dev-server/worker-surface-paths.d.ts.map +1 -0
- package/dist/env.d.ts +10 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/index.d.ts +8 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -297
- package/dist/runtime/context-events.d.ts +13 -0
- package/dist/runtime/context-events.d.ts.map +1 -0
- package/dist/runtime/context-types.d.ts +82 -0
- package/dist/runtime/context-types.d.ts.map +1 -0
- package/dist/runtime/context.d.ts +20 -44
- package/dist/runtime/context.d.ts.map +1 -1
- package/dist/runtime/exports.d.ts +70 -55
- package/dist/runtime/exports.d.ts.map +1 -1
- package/dist/runtime/index.d.ts +11 -5
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +5 -184
- package/dist/runtime/middleware.d.ts +119 -67
- package/dist/runtime/middleware.d.ts.map +1 -1
- package/dist/runtime/r2-presign.d.ts +164 -0
- package/dist/runtime/r2-presign.d.ts.map +1 -0
- package/dist/runtime/router/index.d.ts +7 -0
- package/dist/runtime/router/index.d.ts.map +1 -0
- package/dist/runtime/router/types.d.ts +24 -0
- package/dist/runtime/router/types.d.ts.map +1 -0
- package/dist/runtime/validation.d.ts +18 -4
- package/dist/runtime/validation.d.ts.map +1 -1
- package/dist/secrets/local-secrets.d.ts +46 -0
- package/dist/secrets/local-secrets.d.ts.map +1 -0
- package/dist/shims/local-hyperdrive.d.ts +12 -0
- package/dist/shims/local-hyperdrive.d.ts.map +1 -0
- package/dist/shims/local-media-bindings.d.ts +19 -0
- package/dist/shims/local-media-bindings.d.ts.map +1 -0
- package/dist/shims/local-worker-loader.d.ts +3 -0
- package/dist/shims/local-worker-loader.d.ts.map +1 -0
- package/dist/sveltekit/index.d.ts +1 -1
- package/dist/sveltekit/index.d.ts.map +1 -1
- package/dist/sveltekit/index.js +313 -169
- package/dist/sveltekit/local-bindings.d.ts +4 -0
- package/dist/sveltekit/local-bindings.d.ts.map +1 -0
- package/dist/sveltekit/platform.d.ts +20 -2
- package/dist/sveltekit/platform.d.ts.map +1 -1
- package/dist/test/ai-search.d.ts +39 -0
- package/dist/test/ai-search.d.ts.map +1 -0
- package/dist/test/alarm.d.ts +55 -0
- package/dist/test/alarm.d.ts.map +1 -0
- package/dist/test/binding-hints.d.ts +10 -0
- package/dist/test/binding-hints.d.ts.map +1 -0
- package/dist/test/cf.d.ts +71 -35
- package/dist/test/cf.d.ts.map +1 -1
- package/dist/test/containers.d.ts +87 -0
- package/dist/test/containers.d.ts.map +1 -0
- package/dist/test/email.d.ts +16 -7
- package/dist/test/email.d.ts.map +1 -1
- package/dist/test/index.d.ts +20 -21
- package/dist/test/index.d.ts.map +1 -1
- package/dist/test/index.js +5082 -75
- package/dist/test/offline-bindings.d.ts +124 -0
- package/dist/test/offline-bindings.d.ts.map +1 -0
- package/dist/test/queue.d.ts.map +1 -1
- package/dist/test/remote-ai.d.ts.map +1 -1
- package/dist/test/remote-cloudflare.d.ts +13 -0
- package/dist/test/remote-cloudflare.d.ts.map +1 -0
- package/dist/test/remote-vectorize.d.ts.map +1 -1
- package/dist/test/resolve-service-bindings.d.ts +64 -4
- package/dist/test/resolve-service-bindings.d.ts.map +1 -1
- package/dist/test/scheduled.d.ts.map +1 -1
- package/dist/test/should-skip.d.ts +14 -18
- package/dist/test/should-skip.d.ts.map +1 -1
- package/dist/test/simple-context-bindings.d.ts +13 -0
- package/dist/test/simple-context-bindings.d.ts.map +1 -0
- package/dist/test/simple-context-durable-objects.d.ts +6 -0
- package/dist/test/simple-context-durable-objects.d.ts.map +1 -0
- package/dist/test/simple-context-env.d.ts +35 -0
- package/dist/test/simple-context-env.d.ts.map +1 -0
- package/dist/test/simple-context-gateway-script.d.ts +2 -0
- package/dist/test/simple-context-gateway-script.d.ts.map +1 -0
- package/dist/test/simple-context-handlers.d.ts +12 -0
- package/dist/test/simple-context-handlers.d.ts.map +1 -0
- package/dist/test/simple-context-lifecycle.d.ts +32 -0
- package/dist/test/simple-context-lifecycle.d.ts.map +1 -0
- package/dist/test/simple-context-mfconfig.d.ts +18 -0
- package/dist/test/simple-context-mfconfig.d.ts.map +1 -0
- package/dist/test/simple-context-multi-worker.d.ts +16 -0
- package/dist/test/simple-context-multi-worker.d.ts.map +1 -0
- package/dist/test/simple-context-paths.d.ts +40 -0
- package/dist/test/simple-context-paths.d.ts.map +1 -0
- package/dist/test/simple-context-runtime.d.ts +19 -0
- package/dist/test/simple-context-runtime.d.ts.map +1 -0
- package/dist/test/simple-context-startup.d.ts +11 -0
- package/dist/test/simple-context-startup.d.ts.map +1 -0
- package/dist/test/simple-context-transport.d.ts +14 -0
- package/dist/test/simple-context-transport.d.ts.map +1 -0
- package/dist/test/simple-context.d.ts +8 -27
- package/dist/test/simple-context.d.ts.map +1 -1
- package/dist/test/tail.d.ts +3 -2
- package/dist/test/tail.d.ts.map +1 -1
- package/dist/test/utilities/analytics-engine.d.ts +22 -0
- package/dist/test/utilities/analytics-engine.d.ts.map +1 -0
- package/dist/test/utilities/artifacts.d.ts +11 -0
- package/dist/test/utilities/artifacts.d.ts.map +1 -0
- package/dist/test/utilities/context.d.ts +39 -0
- package/dist/test/utilities/context.d.ts.map +1 -0
- package/dist/test/utilities/d1.d.ts +21 -0
- package/dist/test/utilities/d1.d.ts.map +1 -0
- package/dist/test/utilities/env.d.ts +45 -0
- package/dist/test/utilities/env.d.ts.map +1 -0
- package/dist/test/utilities/kv.d.ts +11 -0
- package/dist/test/utilities/kv.d.ts.map +1 -0
- package/dist/test/utilities/media.d.ts +16 -0
- package/dist/test/utilities/media.d.ts.map +1 -0
- package/dist/test/utilities/platform.d.ts +41 -0
- package/dist/test/utilities/platform.d.ts.map +1 -0
- package/dist/test/utilities/queue.d.ts +5 -0
- package/dist/test/utilities/queue.d.ts.map +1 -0
- package/dist/test/utilities/r2.d.ts +2 -0
- package/dist/test/utilities/r2.d.ts.map +1 -0
- package/dist/test/utilities/send-email.d.ts +27 -0
- package/dist/test/utilities/send-email.d.ts.map +1 -0
- package/dist/test/utilities/stream-flagship.d.ts +27 -0
- package/dist/test/utilities/stream-flagship.d.ts.map +1 -0
- package/dist/test/utilities/vectorize.d.ts +38 -0
- package/dist/test/utilities/vectorize.d.ts.map +1 -0
- package/dist/test/utilities/workflows.d.ts +26 -0
- package/dist/test/utilities/workflows.d.ts.map +1 -0
- package/dist/test/utilities.d.ts +14 -98
- package/dist/test/utilities.d.ts.map +1 -1
- package/dist/test/worker.d.ts +6 -0
- package/dist/test/worker.d.ts.map +1 -1
- package/dist/transform/durable-object.d.ts.map +1 -1
- package/dist/transform/index.d.ts +2 -2
- package/dist/transform/worker-entrypoint.d.ts +5 -0
- package/dist/transform/worker-entrypoint.d.ts.map +1 -1
- package/dist/utils/entrypoint-discovery.d.ts +6 -3
- package/dist/utils/entrypoint-discovery.d.ts.map +1 -1
- package/dist/utils/glob.d.ts.map +1 -1
- package/dist/utils/resolve-package.d.ts.map +1 -1
- package/dist/utils/send-email.d.ts +15 -0
- package/dist/utils/send-email.d.ts.map +1 -0
- package/dist/utils/send-email.js +163 -0
- package/dist/vite/config-file.d.ts +25 -0
- package/dist/vite/config-file.d.ts.map +1 -0
- package/dist/vite/index.d.ts +3 -2
- package/dist/vite/index.d.ts.map +1 -1
- package/dist/vite/index.js +2 -339
- package/dist/vite/plugin-config-hook.d.ts +28 -0
- package/dist/vite/plugin-config-hook.d.ts.map +1 -0
- package/dist/vite/plugin-context.d.ts +27 -0
- package/dist/vite/plugin-context.d.ts.map +1 -0
- package/dist/vite/plugin-durable-objects.d.ts +18 -0
- package/dist/vite/plugin-durable-objects.d.ts.map +1 -0
- package/dist/vite/plugin-programmatic.d.ts +44 -0
- package/dist/vite/plugin-programmatic.d.ts.map +1 -0
- package/dist/vite/plugin-service-bindings.d.ts +13 -0
- package/dist/vite/plugin-service-bindings.d.ts.map +1 -0
- package/dist/vite/plugin-transform.d.ts +41 -0
- package/dist/vite/plugin-transform.d.ts.map +1 -0
- package/dist/vite/plugin.d.ts +10 -41
- package/dist/vite/plugin.d.ts.map +1 -1
- package/dist/worker-entry/composed-worker.d.ts +7 -0
- package/dist/worker-entry/composed-worker.d.ts.map +1 -0
- package/dist/worker-entry/durable-object-discovery.d.ts +20 -0
- package/dist/worker-entry/durable-object-discovery.d.ts.map +1 -0
- package/dist/worker-entry/extensions.d.ts +5 -0
- package/dist/worker-entry/extensions.d.ts.map +1 -0
- package/dist/worker-entry/routes.d.ts +22 -0
- package/dist/worker-entry/routes.d.ts.map +1 -0
- package/dist/worker-entry/surface-paths.d.ts +26 -0
- package/dist/worker-entry/surface-paths.d.ts.map +1 -0
- package/dist/worker-entry/validate-fetch-style.d.ts +12 -0
- package/dist/worker-entry/validate-fetch-style.d.ts.map +1 -0
- package/dist/workflows/local-workflow-entrypoints.d.ts +7 -0
- package/dist/workflows/local-workflow-entrypoints.d.ts.map +1 -0
- package/package.json +160 -117
- package/R2.md +0 -170
- package/dist/account-rvrj687w.js +0 -397
- package/dist/ai-dx4fr9jh.js +0 -107
- package/dist/bridge/protocol.d.ts.map +0 -1
- package/dist/bridge/serialization.d.ts.map +0 -1
- package/dist/browser-shim/worker.d.ts +0 -14
- package/dist/browser-shim/worker.d.ts.map +0 -1
- package/dist/build-nz5yrj7f.js +0 -53
- package/dist/deploy-a5pcxd5w.js +0 -70
- package/dist/dev-7agn9g5s.js +0 -2418
- package/dist/doctor-v7jy4s3r.js +0 -190
- package/dist/durable-object-t4kbb0yt.js +0 -13
- package/dist/index-18hvb6gb.js +0 -194
- package/dist/index-1xpj0m4r.js +0 -57
- package/dist/index-37x76zdn.js +0 -4
- package/dist/index-3t6rypgc.js +0 -13
- package/dist/index-62b3gt2g.js +0 -12
- package/dist/index-67qcae0f.js +0 -183
- package/dist/index-9ats0s83.js +0 -70
- package/dist/index-a855bdsx.js +0 -18
- package/dist/index-ccrh4w3t.js +0 -1133
- package/dist/index-d8bdkx2h.js +0 -109
- package/dist/index-gz1gndna.js +0 -307
- package/dist/index-hcex3rgh.js +0 -266
- package/dist/index-k7r18na8.js +0 -0
- package/dist/index-n3np2d6t.js +0 -462
- package/dist/index-n7rs26ft.js +0 -77
- package/dist/index-npc1c8jx.js +0 -44
- package/dist/index-p7g30wd2.js +0 -281
- package/dist/index-rbht7m9r.js +0 -36
- package/dist/index-rprrn24p.js +0 -2153
- package/dist/index-tfyxa77h.js +0 -850
- package/dist/index-tk6ej9dj.js +0 -94
- package/dist/index-v8vvsn9x.js +0 -169
- package/dist/index-z14anrqp.js +0 -226
- package/dist/init-f9mgmew3.js +0 -186
- package/dist/remote-q59qk463.js +0 -97
- package/dist/test/bridge-context.d.ts +0 -76
- package/dist/test/bridge-context.d.ts.map +0 -1
- package/dist/test/multi-worker-context.d.ts +0 -114
- package/dist/test/multi-worker-context.d.ts.map +0 -1
- package/dist/types-vss6vrz7.js +0 -455
- 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,
|
|
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,
|
|
1
|
+
{"version":3,"file":"miniflare.d.ts","sourceRoot":"","sources":["../../src/bridge/miniflare.ts"],"names":[],"mappings":"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"}
|
package/dist/bridge/proxy.d.ts
CHANGED
|
@@ -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]:
|
|
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
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
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,
|
|
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"}
|
package/dist/bridge/server.d.ts
CHANGED
|
@@ -2,7 +2,8 @@ export interface GatewayEnv {
|
|
|
2
2
|
[key: string]: unknown;
|
|
3
3
|
}
|
|
4
4
|
declare const _default: {
|
|
5
|
-
fetch(request: Request
|
|
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":"
|
|
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"}
|