devflare 1.0.0-next.2 → 1.0.0-next.21
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/LLM.md +15743 -1751
- package/README.md +383 -605
- package/bin/devflare.js +14 -4
- package/dist/account-05zgta47.js +475 -0
- package/dist/account-0evqkmnc.js +475 -0
- package/dist/account-0v11zbzk.js +475 -0
- package/dist/account-2w85efas.js +475 -0
- package/dist/account-61gw9s7t.js +475 -0
- package/dist/account-65sk9q34.js +475 -0
- package/dist/account-77vx7q2f.js +475 -0
- package/dist/account-7z38mgqf.js +475 -0
- package/dist/account-8wgprpbt.js +475 -0
- package/dist/account-9gt3tej1.js +475 -0
- package/dist/account-b2ag1esh.js +475 -0
- package/dist/account-bxtcz61a.js +475 -0
- package/dist/account-d43d1eqs.js +475 -0
- package/dist/account-dtndtbad.js +475 -0
- package/dist/account-e95v7f4s.js +475 -0
- package/dist/account-fbyyptg7.js +475 -0
- package/dist/account-gnzhz1c9.js +475 -0
- package/dist/account-gyfqg964.js +475 -0
- package/dist/account-m6jq6fnp.js +475 -0
- package/dist/account-mvnfagh9.js +475 -0
- package/dist/account-p0crq2gh.js +475 -0
- package/dist/account-q6pvs9d9.js +475 -0
- package/dist/account-qkcevx7a.js +475 -0
- package/dist/account-rp4zbvw1.js +475 -0
- package/dist/account-txwqg1rx.js +475 -0
- package/dist/account-w5n5bjh2.js +475 -0
- package/dist/account-zd61t0ey.js +475 -0
- package/dist/api-11gkk043.js +33 -0
- package/dist/api-2n6dd2ws.js +33 -0
- package/dist/api-dbxvch9h.js +33 -0
- package/dist/api-p9hf69kr.js +33 -0
- package/dist/api-r10j00ev.js +33 -0
- package/dist/api-senf2569.js +33 -0
- package/dist/api-swcgnp72.js +33 -0
- package/dist/api-th82mps4.js +27 -0
- package/dist/bridge/client.d.ts +34 -6
- 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 +3 -3
- 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.d.ts +73 -0
- package/dist/bridge/miniflare.d.ts.map +1 -1
- package/dist/bridge/protocol.d.ts +1 -1
- package/dist/bridge/protocol.d.ts.map +1 -1
- package/dist/bridge/proxy.d.ts +9 -11
- package/dist/bridge/proxy.d.ts.map +1 -1
- package/dist/bridge/serialization.d.ts +36 -16
- package/dist/bridge/serialization.d.ts.map +1 -1
- 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 +51 -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/legacy-protocol.d.ts +146 -0
- package/dist/bridge/v2/legacy-protocol.d.ts.map +1 -0
- package/dist/bridge/v2/legacy-serialization.d.ts +103 -0
- package/dist/bridge/v2/legacy-serialization.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/v2/value-serialization.d.ts +103 -0
- package/dist/bridge/v2/value-serialization.d.ts.map +1 -0
- package/dist/bridge/v2/wire.d.ts +170 -0
- 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 +1 -1
- package/dist/browser-shim/handler.d.ts.map +1 -1
- package/dist/browser-shim/server.d.ts +63 -0
- package/dist/browser-shim/server.d.ts.map +1 -1
- package/dist/browser.d.ts +4505 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +145 -0
- package/dist/build-07mjrvsn.js +53 -0
- package/dist/build-0rfr8k1s.js +53 -0
- package/dist/build-1313sg73.js +52 -0
- package/dist/build-1hnntbks.js +53 -0
- package/dist/build-1r3myv0k.js +53 -0
- package/dist/build-28561w5v.js +54 -0
- package/dist/build-2s5paw5p.js +54 -0
- package/dist/build-4c350cp7.js +54 -0
- package/dist/build-50yqpwb3.js +54 -0
- package/dist/build-55z8psd6.js +53 -0
- package/dist/build-5b9wj2p0.js +53 -0
- package/dist/build-5frhzh1m.js +53 -0
- package/dist/build-6ye9vnab.js +52 -0
- package/dist/build-8gv18jrq.js +52 -0
- package/dist/build-9bgqypy6.js +53 -0
- package/dist/build-9em4ymqn.js +52 -0
- package/dist/build-b1z6wqet.js +54 -0
- package/dist/build-e7wym63t.js +54 -0
- package/dist/build-eh3x12qc.js +52 -0
- package/dist/build-emhyycp7.js +53 -0
- package/dist/build-f1m9jn7b.js +53 -0
- package/dist/build-ffe72jjv.js +54 -0
- package/dist/build-fx90y6za.js +53 -0
- package/dist/build-ge6qp3t4.js +54 -0
- package/dist/build-h31egsze.js +53 -0
- package/dist/build-hpczwagb.js +53 -0
- package/dist/build-hpkbanpw.js +54 -0
- package/dist/build-j2re91xe.js +54 -0
- package/dist/build-j78389rg.js +52 -0
- package/dist/build-m3kckn5g.js +53 -0
- package/dist/build-mf3thcjm.js +53 -0
- package/dist/build-n3n5bv37.js +52 -0
- package/dist/build-ngfy4v5x.js +53 -0
- package/dist/build-pr843h0d.js +52 -0
- package/dist/build-qyg2b45p.js +52 -0
- package/dist/build-r6884kyt.js +53 -0
- package/dist/build-re370wkf.js +53 -0
- package/dist/build-ta8c6t11.js +54 -0
- package/dist/build-vvndgwg0.js +52 -0
- package/dist/build-wp559jkf.js +54 -0
- package/dist/build-wvjj8f28.js +54 -0
- package/dist/build-x4r67275.js +52 -0
- package/dist/build-x7maz3eb.js +54 -0
- package/dist/build-xp4pfhvv.js +52 -0
- package/dist/build-y489r2h9.js +54 -0
- package/dist/build-y6g4bvx5.js +52 -0
- package/dist/build-ypg6f2kw.js +54 -0
- package/dist/build-yts8wwgf.js +54 -0
- package/dist/build-yvn0yhwx.js +52 -0
- package/dist/build-yzkdqexs.js +54 -0
- package/dist/build-z4vmhs5c.js +53 -0
- 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 +2 -0
- 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 +1 -1
- package/dist/cli/commands/account.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.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 +1 -0
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- 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/secrets.d.ts +4 -0
- package/dist/cli/commands/secrets.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 +110 -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.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 +1 -0
- 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/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 +12 -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/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.map +1 -1
- package/dist/cloudflare/index.d.ts +57 -2
- package/dist/cloudflare/index.d.ts.map +1 -1
- package/dist/cloudflare/index.js +49 -2
- 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/tokens.d.ts +41 -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 +30 -2
- 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 +267 -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/deploy-resources.d.ts +58 -0
- package/dist/config/deploy-resources.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 +10 -4
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/loader.d.ts +1 -0
- 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 +31 -0
- package/dist/config/preview.d.ts.map +1 -0
- package/dist/config/ref.d.ts +14 -23
- 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 +1495 -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 +2949 -0
- package/dist/config/schema-env.d.ts.map +1 -0
- package/dist/config/schema-normalization.d.ts +184 -0
- package/dist/config/schema-normalization.d.ts.map +1 -0
- package/dist/config/schema-runtime.d.ts +468 -0
- package/dist/config/schema-runtime.d.ts.map +1 -0
- package/dist/config/schema.d.ts +4056 -1875
- 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-1japnjmx.js +59 -0
- package/dist/config-287wjn1m.js +59 -0
- package/dist/config-4x6vq82e.js +59 -0
- package/dist/config-5n0avhcx.js +59 -0
- package/dist/config-6m0n7d84.js +59 -0
- package/dist/config-70s2ap5j.js +59 -0
- package/dist/config-7cf004ag.js +59 -0
- package/dist/config-7hge8ze6.js +59 -0
- package/dist/config-7rbp7aek.js +59 -0
- package/dist/config-b8xbbmta.js +59 -0
- package/dist/config-b98dp58n.js +59 -0
- package/dist/config-baee5690.js +59 -0
- package/dist/config-bczpc1ey.js +59 -0
- package/dist/config-cf3djhqy.js +59 -0
- package/dist/config-entry.d.ts +5 -0
- package/dist/config-entry.d.ts.map +1 -0
- package/dist/config-entry.js +14 -0
- package/dist/config-fhmwzaw6.js +59 -0
- package/dist/config-g9vkfa4x.js +59 -0
- package/dist/config-gpexkzth.js +59 -0
- package/dist/config-nspw7sgv.js +59 -0
- package/dist/config-ntm4x9wt.js +59 -0
- package/dist/config-nv6hfpg6.js +59 -0
- package/dist/config-pjc33wew.js +59 -0
- package/dist/config-pnz2e8s3.js +59 -0
- package/dist/config-qj5jw8km.js +93 -0
- package/dist/config-qts6nh6g.js +59 -0
- package/dist/config-sg2xrdt4.js +59 -0
- package/dist/config-vzwckat3.js +59 -0
- package/dist/config-wa7hm0w9.js +59 -0
- package/dist/config-x90dkmm7.js +59 -0
- package/dist/decorators/durable-object.d.ts.map +1 -1
- package/dist/deploy-1jfagtn9.js +1055 -0
- package/dist/deploy-1s6nv5rp.js +921 -0
- package/dist/deploy-2afw0jfg.js +1055 -0
- package/dist/deploy-2fzj68kq.js +1055 -0
- package/dist/deploy-30ph1rrd.js +921 -0
- package/dist/deploy-39dmfn9d.js +921 -0
- package/dist/deploy-44n2pshy.js +1016 -0
- package/dist/deploy-45qxpsfe.js +921 -0
- package/dist/deploy-57nzn9wj.js +1045 -0
- package/dist/deploy-64e57w1g.js +1040 -0
- package/dist/deploy-82j43vta.js +1040 -0
- package/dist/deploy-99m8qhpa.js +1041 -0
- package/dist/deploy-9twkd32f.js +1040 -0
- package/dist/deploy-a2eq2c1n.js +1040 -0
- package/dist/deploy-a3pb1qs5.js +921 -0
- package/dist/deploy-agbtfm04.js +921 -0
- package/dist/deploy-aswbtbf3.js +921 -0
- package/dist/deploy-asyryrvm.js +1055 -0
- package/dist/deploy-bqf3kxy5.js +972 -0
- package/dist/deploy-fv4z648h.js +921 -0
- package/dist/deploy-gsybda2f.js +1038 -0
- package/dist/deploy-h17nzysm.js +921 -0
- package/dist/deploy-hc89h4wg.js +1045 -0
- package/dist/deploy-hc927rw6.js +1045 -0
- package/dist/deploy-jey5pnqn.js +1040 -0
- package/dist/deploy-jf3yczsz.js +1055 -0
- package/dist/deploy-jv0yfqvk.js +1040 -0
- package/dist/deploy-kn3z6spd.js +941 -0
- package/dist/deploy-m22xmz9w.js +921 -0
- package/dist/deploy-nefp2njy.js +1038 -0
- package/dist/deploy-pnnf8tgy.js +1045 -0
- package/dist/deploy-ppp8pg6w.js +1038 -0
- package/dist/deploy-q33bw715.js +1055 -0
- package/dist/deploy-qah2eag6.js +1041 -0
- package/dist/deploy-qdq2gpad.js +1045 -0
- package/dist/deploy-r1yf8913.js +1038 -0
- package/dist/deploy-r8nam9rr.js +1038 -0
- package/dist/deploy-rrm4a0xw.js +921 -0
- package/dist/deploy-s0tfnc12.js +1040 -0
- package/dist/deploy-s636ks9k.js +1041 -0
- package/dist/deploy-sany8t54.js +1045 -0
- package/dist/deploy-skqn61j3.js +1038 -0
- package/dist/deploy-smv2870h.js +921 -0
- package/dist/deploy-sp16nxs5.js +972 -0
- package/dist/deploy-sr805bvq.js +921 -0
- package/dist/deploy-t9dehmn0.js +1041 -0
- package/dist/deploy-taxt7njz.js +1041 -0
- package/dist/deploy-tmdgecs3.js +1055 -0
- package/dist/deploy-tnfvfh9m.js +1040 -0
- package/dist/deploy-v0y8kczr.js +1055 -0
- package/dist/deploy-w5f8db4s.js +1040 -0
- package/dist/deploy-wsxcectr.js +921 -0
- package/dist/deploy-xhj6zbcx.js +1055 -0
- package/dist/deploy-xqm869nf.js +1055 -0
- package/dist/deploy-xyfbhj3v.js +1038 -0
- package/dist/deploy-yv1y5xaa.js +921 -0
- package/dist/deploy-z3ejw37k.js +1040 -0
- package/dist/dev-02tgdc4f.js +2160 -0
- package/dist/dev-0tqhveye.js +2314 -0
- package/dist/dev-1mvcts8w.js +2515 -0
- package/dist/dev-2a283xts.js +2515 -0
- package/dist/dev-3dj2gkfq.js +2314 -0
- package/dist/dev-3e0etsww.js +2314 -0
- package/dist/dev-47dk7c13.js +2314 -0
- package/dist/dev-4a2a31cm.js +2314 -0
- package/dist/dev-4w1stcn8.js +2427 -0
- package/dist/dev-5wkh1z4a.js +2188 -0
- package/dist/dev-62nhytf8.js +2505 -0
- package/dist/dev-6t22zmey.js +2350 -0
- package/dist/dev-75acm2xj.js +2478 -0
- package/dist/dev-802rg9dp.js +2515 -0
- package/dist/dev-89p1sdv7.js +2395 -0
- package/dist/dev-8d1gxjky.js +2427 -0
- package/dist/dev-8yawx3cv.js +2314 -0
- package/dist/dev-9h4p8a0c.js +2393 -0
- package/dist/dev-9xmttj4c.js +2314 -0
- package/dist/dev-at6gy2td.js +2427 -0
- package/dist/dev-bgpxrwms.js +2551 -0
- package/dist/dev-bkbz97z0.js +2314 -0
- package/dist/dev-ct3344kv.js +2160 -0
- package/dist/dev-d1bb2t0f.js +2515 -0
- package/dist/{dev-qnxet3j9.js → dev-dg8dh5c1.js} +947 -809
- package/dist/dev-dr5jb965.js +2427 -0
- package/dist/dev-dwry8494.js +2489 -0
- package/dist/dev-e4sjqtbq.js +2314 -0
- package/dist/dev-ecq26mg4.js +2350 -0
- package/dist/dev-ef237vgp.js +2324 -0
- package/dist/dev-enbdg4st.js +2314 -0
- package/dist/dev-g6112y4w.js +2515 -0
- package/dist/dev-h2kneh95.js +2496 -0
- package/dist/dev-jcrxg8hq.js +2160 -0
- package/dist/dev-jk0gqges.js +2432 -0
- package/dist/dev-k62936am.js +2314 -0
- package/dist/dev-k8ptbvrs.js +2160 -0
- package/dist/dev-kqm107h4.js +2422 -0
- package/dist/dev-kybq3mwr.js +2489 -0
- package/dist/dev-kzs65xcr.js +2551 -0
- package/dist/dev-n0gx7eya.js +2350 -0
- package/dist/dev-n23m6rtb.js +2314 -0
- package/dist/dev-n8qndkyg.js +2512 -0
- package/dist/dev-ny8fmkzg.js +2432 -0
- package/dist/dev-p1c65cga.js +2386 -0
- package/dist/dev-p32fkbwf.js +2489 -0
- package/dist/dev-p4fjbb4h.js +2395 -0
- package/dist/dev-pnfcv79z.js +2160 -0
- package/dist/dev-qm9d4mfh.js +2478 -0
- package/dist/dev-qnrrv5ey.js +2393 -0
- package/dist/dev-qqysg50t.js +2427 -0
- package/dist/dev-r9f3n11q.js +2410 -0
- package/dist/dev-rcthnse5.js +2473 -0
- package/dist/dev-s0815dw4.js +2427 -0
- package/dist/dev-s4tpkg60.js +2314 -0
- package/dist/dev-s82fcesg.js +2314 -0
- package/dist/dev-s9sz53me.js +2401 -0
- package/dist/dev-sdka7z0d.js +2427 -0
- 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 +21 -0
- package/dist/dev-server/gateway-script.d.ts.map +1 -0
- package/dist/dev-server/miniflare-bindings.d.ts +59 -0
- package/dist/dev-server/miniflare-bindings.d.ts.map +1 -0
- package/dist/dev-server/miniflare-dev-config.d.ts +35 -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 +74 -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 +15 -0
- package/dist/dev-server/vite-process.d.ts.map +1 -0
- package/dist/dev-server/vite-utils.d.ts +55 -0
- package/dist/dev-server/vite-utils.d.ts.map +1 -0
- 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/dev-t3tjscah.js +2350 -0
- package/dist/dev-t50kdb1j.js +2338 -0
- package/dist/dev-t5xf55pt.js +2314 -0
- package/dist/dev-t63c44bb.js +2314 -0
- package/dist/dev-tgwja5mz.js +2496 -0
- package/dist/dev-wg3d38sy.js +2433 -0
- package/dist/dev-wh4rfgsh.js +2427 -0
- package/dist/dev-wjh8gdd1.js +2284 -0
- package/dist/dev-xzxy9qvq.js +2314 -0
- package/dist/dev-yymaq4ph.js +2392 -0
- package/dist/dev-zg2w2ve3.js +2422 -0
- package/dist/dev-zgx7fhe9.js +2553 -0
- package/dist/dev-zsb2xk1x.js +2427 -0
- package/dist/dev-zty3yhzg.js +2324 -0
- package/dist/doctor-0a2brpyz.js +259 -0
- package/dist/doctor-2shhdak6.js +245 -0
- package/dist/doctor-3mqavqg3.js +245 -0
- package/dist/doctor-5g73w40j.js +245 -0
- package/dist/doctor-5nek32fz.js +245 -0
- package/dist/doctor-7ra1w0sk.js +245 -0
- package/dist/doctor-ak830a0k.js +245 -0
- package/dist/doctor-bye3cs8a.js +245 -0
- package/dist/doctor-c5m9pmwq.js +245 -0
- package/dist/doctor-cqfkgxvw.js +245 -0
- package/dist/doctor-e1h9mhzp.js +245 -0
- package/dist/doctor-fmqsrafk.js +245 -0
- package/dist/doctor-gamefzcs.js +245 -0
- package/dist/doctor-hgs7wr5g.js +245 -0
- package/dist/doctor-j8ytsy94.js +245 -0
- package/dist/doctor-mcmkgp6e.js +245 -0
- package/dist/doctor-qb6m2exc.js +245 -0
- package/dist/doctor-qq4tsh8q.js +245 -0
- package/dist/doctor-rn53ctfs.js +245 -0
- package/dist/doctor-tecv869a.js +245 -0
- package/dist/doctor-wg0245pe.js +245 -0
- package/dist/doctor-z3jfqxtz.js +245 -0
- package/dist/{durable-object-t4kbb0yt.js → durable-object-4hey8fgy.js} +1 -1
- package/dist/durable-object-v3gsnybk.js +13 -0
- package/dist/durable-object-yt8v1dyn.js +13 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/index-01kehw41.js +348 -0
- package/dist/index-05pbj4hy.js +1193 -0
- package/dist/index-06bg0z9y.js +185 -0
- package/dist/index-0d7tw5r4.js +136 -0
- package/dist/index-0krb65s3.js +215 -0
- package/dist/index-0m6e4mxz.js +133 -0
- package/dist/index-0mantew0.js +513 -0
- package/dist/index-0mezg6ar.js +1372 -0
- package/dist/index-0tk2rs0q.js +185 -0
- package/dist/index-0vah20er.js +1410 -0
- package/dist/index-0wa0ebm1.js +68 -0
- package/dist/index-124e9t4t.js +232 -0
- package/dist/index-1546yrn0.js +74 -0
- package/dist/index-15fpa5tx.js +232 -0
- package/dist/index-1714y3cz.js +1410 -0
- package/dist/index-18mp5v50.js +538 -0
- package/dist/index-195tc6qh.js +1372 -0
- package/dist/index-1bg8w2gf.js +52 -0
- package/dist/index-1d4jg11n.js +542 -0
- package/dist/index-1e2qtrmj.js +188 -0
- package/dist/index-1ghhgb9d.js +74 -0
- package/dist/index-1nhd9nkd.js +232 -0
- package/dist/index-1p814k7s.js +227 -0
- package/dist/index-1qs5gcm7.js +895 -0
- package/dist/index-1wn8mjep.js +808 -0
- package/dist/index-1xhd5czz.js +185 -0
- package/dist/index-29k04v43.js +574 -0
- package/dist/index-2a2g4fwp.js +993 -0
- package/dist/index-2bmtj21z.js +192 -0
- package/dist/index-2dpmd14d.js +52 -0
- package/dist/index-2fa0afdp.js +1372 -0
- package/dist/index-2jywf4pz.js +1372 -0
- package/dist/index-2qhk9nbx.js +1372 -0
- package/dist/index-2rcrefqd.js +1372 -0
- package/dist/index-2t2m5148.js +1372 -0
- package/dist/index-2vbzamev.js +437 -0
- package/dist/index-2vdep9h0.js +993 -0
- package/dist/index-2vq6bveq.js +574 -0
- package/dist/index-2y90j9cz.js +74 -0
- package/dist/index-33ep0z9x.js +385 -0
- package/dist/index-36h8gkhb.js +1088 -0
- package/dist/index-37jgbaw6.js +1372 -0
- package/dist/index-380ncsqc.js +977 -0
- package/dist/index-38fq7pww.js +560 -0
- package/dist/index-3bxqn033.js +1410 -0
- package/dist/index-3e1x39fc.js +365 -0
- package/dist/index-3e7by9sy.js +223 -0
- package/dist/index-3edvz3hs.js +124 -0
- package/dist/index-3egad6wm.js +538 -0
- package/dist/index-3f8rzmjw.js +232 -0
- package/dist/index-3jme4hgw.js +1234 -0
- package/dist/index-3p7s9mk9.js +360 -0
- package/dist/index-3vd4r37r.js +1372 -0
- package/dist/index-3vgn5e89.js +1682 -0
- package/dist/index-3x7k3t0f.js +513 -0
- package/dist/index-3xfe2dst.js +399 -0
- package/dist/index-464j1zb4.js +513 -0
- package/dist/index-47w35sft.js +244 -0
- package/dist/index-48rxsj95.js +365 -0
- package/dist/index-4bezcdd1.js +385 -0
- package/dist/index-4by4c7rm.js +52 -0
- package/dist/index-4fp11z9e.js +973 -0
- package/dist/index-4knecthc.js +70 -0
- package/dist/index-4phjwd6h.js +412 -0
- package/dist/index-4z5jrw0j.js +594 -0
- package/dist/index-502y7w13.js +538 -0
- package/dist/index-50em8s6c.js +898 -0
- package/dist/index-50mxxb4q.js +185 -0
- package/dist/index-51mzqy0d.js +895 -0
- package/dist/index-53pqqpq9.js +74 -0
- package/dist/index-5achzspr.js +185 -0
- package/dist/index-5ef3jmv7.js +1372 -0
- package/dist/index-5enq8ntr.js +1766 -0
- package/dist/index-5eswe8yv.js +844 -0
- package/dist/index-5fnq9r9m.js +1410 -0
- package/dist/index-5gevxfgs.js +513 -0
- package/dist/index-5gmf048z.js +817 -0
- package/dist/index-5jtkxpjf.js +971 -0
- package/dist/index-5m85bd9x.js +168 -0
- package/dist/index-5n5nn0a8.js +264 -0
- package/dist/index-5p3bgjwr.js +808 -0
- package/dist/index-5vzcszr2.js +1230 -0
- package/dist/index-5w77r4w9.js +513 -0
- package/dist/index-5w9f2b17.js +695 -0
- package/dist/index-627srx16.js +45 -0
- package/dist/index-62b3gt2g.js +12 -0
- package/dist/index-62srkqcm.js +168 -0
- package/dist/index-63cgqe43.js +1372 -0
- package/dist/index-65e7xx1a.js +19 -0
- package/dist/index-65qrje14.js +185 -0
- package/dist/index-666tdx14.js +895 -0
- package/dist/index-66sx3b3v.js +385 -0
- package/dist/index-678j0n13.js +74 -0
- package/dist/index-6bqgf5x8.js +227 -0
- package/dist/index-6ftrth7n.js +1218 -0
- package/dist/index-6g90pvxa.js +215 -0
- package/dist/index-6h8xbs75.js +44 -0
- package/dist/index-6j4m5x2d.js +1372 -0
- package/dist/index-6jwpke14.js +385 -0
- package/dist/index-6knsjvxh.js +1372 -0
- package/dist/index-6kwq6yf8.js +979 -0
- package/dist/index-6mg4yvc6.js +74 -0
- package/dist/index-6phry941.js +133 -0
- package/dist/index-6r59wbek.js +232 -0
- package/dist/index-6sf815ps.js +74 -0
- package/dist/index-6xknvbyk.js +1088 -0
- package/dist/index-6zd89k6y.js +1230 -0
- package/dist/index-71rwg0cn.js +264 -0
- package/dist/index-75ex2m0x.js +695 -0
- package/dist/index-79exzs3q.js +1218 -0
- package/dist/index-7bxj118m.js +264 -0
- package/dist/index-7c6np4mq.js +397 -0
- package/dist/index-7cm339qz.js +133 -0
- package/dist/index-7e359eb5.js +895 -0
- package/dist/index-7ef3ktz5.js +1372 -0
- package/dist/index-7eqyr4j8.js +70 -0
- package/dist/index-7hpjfdzh.js +185 -0
- package/dist/index-7k278fgz.js +273 -0
- package/dist/index-7kazxkjt.js +1372 -0
- package/dist/index-7m0x8m9r.js +844 -0
- package/dist/index-7p74smg8.js +1372 -0
- package/dist/index-7q8fke3k.js +188 -0
- package/dist/index-7qk6eafn.js +1682 -0
- package/dist/index-7r7dfpcm.js +133 -0
- package/dist/index-7vbjt6ba.js +805 -0
- package/dist/index-7z4b0vgd.js +470 -0
- package/dist/index-8052df4m.js +627 -0
- package/dist/index-82epjzrr.js +1410 -0
- package/dist/index-82f1z98k.js +41 -0
- package/dist/index-82xn4azv.js +74 -0
- package/dist/index-82z7rvz6.js +1238 -0
- package/dist/index-83wns7cz.js +70 -0
- package/dist/index-852945d4.js +413 -0
- package/dist/index-86rvj79f.js +133 -0
- package/dist/index-88tcq0t4.js +542 -0
- package/dist/index-8atc1yb9.js +68 -0
- package/dist/index-8evn52g1.js +1218 -0
- package/dist/index-8jkf4nsd.js +695 -0
- package/dist/index-8nx4ce3e.js +133 -0
- package/dist/index-8p7rxkbs.js +1426 -0
- package/dist/index-8q1bcnrh.js +1372 -0
- package/dist/index-8t5gynct.js +971 -0
- package/dist/index-8tj0awnv.js +476 -0
- package/dist/index-8x745h59.js +1069 -0
- package/dist/index-905svbb6.js +470 -0
- package/dist/index-94cb0sac.js +1372 -0
- package/dist/index-95mmvbw7.js +538 -0
- package/dist/index-97x94h0m.js +438 -0
- package/dist/index-9an9qqr1.js +728 -0
- package/dist/index-9bawzcny.js +574 -0
- package/dist/index-9bjjqdfc.js +236 -0
- package/dist/index-9d125myk.js +1372 -0
- package/dist/index-9d7x3vfr.js +236 -0
- package/dist/index-9fbtk7gv.js +817 -0
- package/dist/index-9gg0kqw0.js +470 -0
- package/dist/index-9nf8zs4p.js +1069 -0
- package/dist/index-9ryw7mcw.js +971 -0
- package/dist/{index-gz1gndna.js → index-9wt9x09k.js} +42 -62
- package/dist/index-a3e13a7m.js +478 -0
- package/dist/index-a6j44jmr.js +1372 -0
- package/dist/index-a75ejnvt.js +1711 -0
- package/dist/index-aabgympv.js +39 -0
- package/dist/index-ab2nck1h.js +1372 -0
- package/dist/index-abrqnq3e.js +488 -0
- package/dist/index-acwbmagz.js +412 -0
- package/dist/index-afjbpgb1.js +1218 -0
- package/dist/index-aqjdaem7.js +74 -0
- package/dist/index-aqrwyy57.js +288 -0
- package/dist/index-at89fpde.js +470 -0
- package/dist/index-awr0tp6p.js +313 -0
- package/dist/index-b1be9bdh.js +1372 -0
- package/dist/index-b1xs3wc4.js +513 -0
- package/dist/index-b50x7seh.js +513 -0
- package/dist/index-b5ra8w3q.js +52 -0
- package/dist/index-b6448fd0.js +133 -0
- package/dist/index-b64sbzgv.js +884 -0
- package/dist/index-b7r8ntpm.js +1372 -0
- package/dist/index-b9j55r7q.js +240 -0
- package/dist/index-ba9gyy13.js +513 -0
- package/dist/index-bb66mn7p.js +52 -0
- package/dist/index-bc5pvbbd.js +1193 -0
- package/dist/index-bdatd1za.js +1372 -0
- package/dist/index-bj0mk3dw.js +74 -0
- package/dist/index-bj3a8dr0.js +1372 -0
- package/dist/index-bj5avaba.js +109 -0
- package/dist/index-bk3eez1g.js +513 -0
- package/dist/index-btjx137w.js +774 -0
- package/dist/index-btrfqp9h.js +133 -0
- package/dist/index-bx6gangy.js +402 -0
- package/dist/index-c0tc0yts.js +471 -0
- package/dist/index-c0whkev9.js +200 -0
- package/dist/index-c3nxftnp.js +699 -0
- package/dist/index-c643s0gv.js +488 -0
- package/dist/index-ca96qkva.js +1372 -0
- package/dist/index-cdtzkedk.js +993 -0
- package/dist/index-cejgenma.js +1372 -0
- package/dist/index-cp8jt5pr.js +52 -0
- package/dist/index-cpz69pek.js +1372 -0
- package/dist/index-crrdegk5.js +456 -0
- package/dist/index-cskszwkx.js +1372 -0
- package/dist/index-cxf22a0s.js +74 -0
- package/dist/index-cy3c3w81.js +270 -0
- package/dist/index-d2md1j3d.js +185 -0
- package/dist/index-d5dgb1j6.js +74 -0
- package/dist/index-da397xcx.js +1372 -0
- package/dist/index-damyy8bw.js +1372 -0
- package/dist/index-dbr6bfz6.js +528 -0
- package/dist/index-dd1g0g7e.js +360 -0
- package/dist/index-dd6fwwmq.js +456 -0
- package/dist/index-dgww0ewn.js +574 -0
- package/dist/index-dh1954bp.js +52 -0
- package/dist/index-djp2wd1f.js +1372 -0
- package/dist/index-dktb9az5.js +1372 -0
- package/dist/index-dm9q84c7.js +360 -0
- package/dist/index-dmbdj6va.js +805 -0
- package/dist/index-dmf76tac.js +1372 -0
- package/dist/index-dphr32gc.js +420 -0
- package/dist/index-dxh2qyyw.js +52 -0
- package/dist/index-dzayfxjy.js +492 -0
- package/dist/index-e05q77kt.js +397 -0
- package/dist/index-e11b1fb2.js +495 -0
- package/dist/index-e3zvspqj.js +968 -0
- package/dist/index-e4tzzbn9.js +1372 -0
- package/dist/index-e5ct1gwb.js +1372 -0
- package/dist/index-e7ptcz1a.js +1372 -0
- package/dist/index-e7wt0203.js +513 -0
- package/dist/index-ebwsvf9t.js +365 -0
- package/dist/index-ed73jn3d.js +185 -0
- package/dist/index-ed7n5d07.js +185 -0
- package/dist/index-ejs2a4kd.js +513 -0
- package/dist/index-esjrgt3y.js +467 -0
- package/dist/index-ev03khsd.js +513 -0
- package/dist/index-f1gsqm54.js +168 -0
- package/dist/index-f1yshy4s.js +412 -0
- package/dist/index-f51mkh13.js +1088 -0
- package/dist/index-f86n1fpd.js +55 -0
- package/dist/index-f90314kt.js +52 -0
- package/dist/index-f9mhsept.js +185 -0
- package/dist/index-fa6zwffw.js +70 -0
- package/dist/index-fama7kpt.js +52 -0
- package/dist/index-fgk87mk2.js +1067 -0
- package/dist/index-fkyvxe4b.js +968 -0
- package/dist/index-fnk0tkw7.js +412 -0
- package/dist/index-g0h40xke.js +513 -0
- package/dist/index-g0rqh52c.js +385 -0
- package/dist/index-g170d619.js +385 -0
- package/dist/index-g3qtxkms.js +881 -0
- package/dist/index-g5aq66bj.js +1534 -0
- package/dist/index-gactvqcs.js +467 -0
- package/dist/index-gaew61v4.js +470 -0
- package/dist/index-gba371j7.js +542 -0
- package/dist/index-gegyyfnw.js +1372 -0
- package/dist/index-get7he2s.js +133 -0
- package/dist/index-gj5qh491.js +54 -0
- package/dist/index-gn5wy09x.js +205 -0
- package/dist/index-gq39t0rx.js +895 -0
- package/dist/index-gtbgzwfs.js +264 -0
- package/dist/index-gtpz0gkz.js +185 -0
- package/dist/index-h1s66pmp.js +52 -0
- package/dist/index-h5dqna7q.js +1410 -0
- package/dist/index-h8r2d8y5.js +366 -0
- package/dist/index-heeqwrfd.js +385 -0
- package/dist/index-hheb5dyt.js +192 -0
- package/dist/index-hjs9j2g9.js +895 -0
- package/dist/index-hjz2x9nq.js +441 -0
- package/dist/index-hkex7ns5.js +513 -0
- package/dist/index-hmbctwv6.js +517 -0
- package/dist/index-hn5nbxbt.js +147 -0
- package/dist/index-hpjh0qjx.js +1723 -0
- package/dist/index-hpwa6vsw.js +239 -0
- package/dist/index-hpzasdhw.js +513 -0
- package/dist/index-hqdr9wdm.js +74 -0
- package/dist/index-hrvz8d26.js +1372 -0
- package/dist/index-hs6ekcfs.js +412 -0
- package/dist/index-hyvhnf6r.js +971 -0
- package/dist/index-j2kc5rbv.js +895 -0
- package/dist/index-j2xdxwsz.js +133 -0
- package/dist/index-j47hhb3r.js +694 -0
- package/dist/index-j5aphr5x.js +185 -0
- package/dist/index-j68v36q1.js +188 -0
- package/dist/index-j7cf22x7.js +968 -0
- package/dist/index-j7xxrbnr.js +694 -0
- package/dist/index-jdzrvnfj.js +52 -0
- package/dist/index-jg720mq7.js +476 -0
- package/dist/index-jptqxkew.js +470 -0
- package/dist/index-jrzddxvt.js +2167 -0
- package/dist/index-jsymy3mb.js +781 -0
- package/dist/index-jwvy32xk.js +188 -0
- package/dist/index-jxe1b19v.js +133 -0
- package/dist/index-jz96ry5g.js +513 -0
- package/dist/index-k6wtsgs1.js +971 -0
- package/dist/index-k7m5f1dg.js +200 -0
- package/dist/index-kawa49m8.js +371 -0
- package/dist/index-key4e5c9.js +168 -0
- package/dist/index-kgstnk6g.js +239 -0
- package/dist/index-khbmdrn2.js +884 -0
- package/dist/index-khnw972v.js +117 -0
- package/dist/index-kpzfwex6.js +264 -0
- package/dist/index-kse4gn99.js +74 -0
- package/dist/index-ktscz0r2.js +264 -0
- package/dist/index-kwqff3ba.js +1410 -0
- package/dist/index-kxc4gtyt.js +574 -0
- package/dist/index-kybmjvad.js +1212 -0
- package/dist/index-kzm9cea8.js +185 -0
- package/dist/index-m2d74gqg.js +808 -0
- package/dist/index-m2v0fj08.js +74 -0
- package/dist/index-m56w7mjt.js +513 -0
- package/dist/index-m95ha3n4.js +264 -0
- package/dist/index-ma151p8g.js +264 -0
- package/dist/index-mg8vwqxf.js +514 -0
- package/dist/index-mhdsywhs.js +264 -0
- package/dist/index-mjgx910r.js +895 -0
- package/dist/index-mjve6tqn.js +447 -0
- package/dist/index-mkrmaea3.js +185 -0
- package/dist/index-mkxnyyjn.js +264 -0
- package/dist/index-mkxzgn0q.js +1372 -0
- package/dist/index-mp5mrst6.js +1372 -0
- package/dist/index-ms15cr86.js +513 -0
- package/dist/index-mt99xkc6.js +133 -0
- package/dist/index-mttv6k25.js +881 -0
- package/dist/index-myxfx52v.js +385 -0
- package/dist/index-mzmq3v0d.js +1088 -0
- package/dist/index-mzw7732t.js +74 -0
- package/dist/index-n3mjwz22.js +188 -0
- package/dist/index-n3yksgz0.js +1372 -0
- package/dist/index-n4jr3dmk.js +484 -0
- package/dist/index-n5drt64b.js +74 -0
- package/dist/index-n8frmffg.js +264 -0
- package/dist/index-n8k8chde.js +694 -0
- package/dist/index-na796ka6.js +994 -0
- package/dist/index-nbs4q0qg.js +1218 -0
- package/dist/index-newpq2zf.js +968 -0
- package/dist/index-nexg9p7j.js +1271 -0
- package/dist/index-nfm8tb5n.js +74 -0
- package/dist/index-ng9n3znd.js +1372 -0
- package/dist/index-nga2tg9z.js +1372 -0
- package/dist/index-ngbzr9gz.js +805 -0
- package/dist/index-nh90nk7j.js +380 -0
- package/dist/index-nhbkm2ba.js +467 -0
- package/dist/index-njnmfxm5.js +1372 -0
- package/dist/index-nqma24j3.js +385 -0
- package/dist/index-nrfhk0k5.js +1088 -0
- package/dist/index-ntddf5d9.js +993 -0
- package/dist/index-nte9n8w9.js +538 -0
- package/dist/index-ntxp7ke1.js +264 -0
- package/dist/index-nwxnmw41.js +264 -0
- package/dist/index-nxkesg55.js +68 -0
- package/dist/index-p0zppqxm.js +467 -0
- package/dist/index-p1xe5eem.js +513 -0
- package/dist/index-p296ban8.js +191 -0
- package/dist/index-p477xm52.js +385 -0
- package/dist/index-p7q23nce.js +1031 -0
- package/dist/index-p8nmkrgw.js +470 -0
- package/dist/index-p97s12vf.js +904 -0
- package/dist/index-p9hvv0yd.js +401 -0
- package/dist/index-pac7wv88.js +307 -0
- package/dist/index-pkxf6h87.js +895 -0
- package/dist/index-pqp4312v.js +52 -0
- package/dist/index-pt49cgjv.js +1426 -0
- package/dist/index-ptp2pfq1.js +52 -0
- package/dist/index-pw9jn6kz.js +574 -0
- package/dist/index-pyeycp3f.js +74 -0
- package/dist/index-q23xf3vr.js +479 -0
- package/dist/index-q31ne0xa.js +412 -0
- package/dist/index-q34rvh5a.js +247 -0
- package/dist/index-q5errwrj.js +904 -0
- package/dist/index-q5nhzc9m.js +1217 -0
- package/dist/index-q8f4kawk.js +204 -0
- package/dist/index-qer8zv2r.js +997 -0
- package/dist/index-qf2dkqxh.js +249 -0
- package/dist/index-qhyy018y.js +467 -0
- package/dist/index-qmhdydwy.js +70 -0
- package/dist/index-qmtdf7k5.js +639 -0
- package/dist/index-qpmvca5j.js +470 -0
- package/dist/index-qr96vaj1.js +52 -0
- package/dist/index-qtyhg3dn.js +904 -0
- package/dist/index-qwgr4q7s.js +37 -0
- package/dist/index-qye17gq5.js +264 -0
- package/dist/index-r0839f5k.js +133 -0
- package/dist/index-r1rqg72v.js +1372 -0
- package/dist/index-rab2dfh3.js +494 -0
- package/dist/index-rbckga8p.js +971 -0
- package/dist/index-rbxb5x2w.js +1372 -0
- package/dist/index-rck779bj.js +739 -0
- package/dist/index-rfn2gt5f.js +1658 -0
- package/dist/index-rg21w26a.js +470 -0
- package/dist/index-rgcz45t0.js +1372 -0
- package/dist/index-rhnd376q.js +133 -0
- package/dist/index-rjc5z3w6.js +971 -0
- package/dist/index-rkhtayd6.js +385 -0
- package/dist/index-rm8srzmv.js +371 -0
- package/dist/index-rmhk5j03.js +968 -0
- package/dist/index-rp0aye39.js +1426 -0
- package/dist/index-rp4t86bt.js +993 -0
- package/dist/index-rpq5ktdy.js +264 -0
- package/dist/index-rpsmhdd4.js +1218 -0
- package/dist/index-rqpakjyr.js +470 -0
- package/dist/index-rttk33x6.js +232 -0
- package/dist/index-rwa82e89.js +385 -0
- package/dist/index-rz185crv.js +695 -0
- package/dist/index-rz7rx80s.js +1410 -0
- package/dist/index-s22verzj.js +1218 -0
- package/dist/index-s2s3g1nt.js +133 -0
- package/dist/index-s37h3jgk.js +572 -0
- package/dist/index-s7ytytth.js +781 -0
- package/dist/index-sb705m7d.js +52 -0
- package/dist/index-sefnpzwa.js +185 -0
- package/dist/index-sgxw0xzd.js +513 -0
- package/dist/index-stc0caq6.js +1009 -0
- package/dist/index-stgn34cr.js +148 -0
- package/dist/index-svz82w9h.js +513 -0
- package/dist/index-sx49e8x9.js +884 -0
- package/dist/index-sxadwvw9.js +185 -0
- package/dist/index-sxn223fz.js +1372 -0
- package/dist/index-sy0c2mh0.js +1372 -0
- package/dist/index-syeh1hca.js +264 -0
- package/dist/index-syscwrjp.js +1576 -0
- package/dist/index-t14zr0ys.js +1063 -0
- package/dist/index-t18wyhgf.js +418 -0
- package/dist/index-t4fhcx1n.js +71 -0
- package/dist/index-td4hbgj5.js +1372 -0
- package/dist/index-tjc99447.js +68 -0
- package/dist/index-tknbyxzn.js +2202 -0
- package/dist/index-tkvt9mmq.js +484 -0
- package/dist/index-tmmcf4m6.js +808 -0
- package/dist/index-tpgs5v64.js +366 -0
- package/dist/index-tt4fsv91.js +412 -0
- package/dist/{index-07q6yxyc.js → index-tte89s31.js} +30 -29
- package/dist/index-tvjg7swe.js +1372 -0
- package/dist/index-txndxr4w.js +513 -0
- package/dist/index-tyh5jc55.js +990 -0
- package/dist/index-tyt0wa52.js +470 -0
- package/dist/index-tyt3wcfr.js +1372 -0
- package/dist/index-v35460hf.js +574 -0
- package/dist/index-v3znz08m.js +968 -0
- package/dist/index-v78xbj6n.js +808 -0
- package/dist/index-v7q00d1e.js +1410 -0
- package/dist/index-v915brjk.js +1372 -0
- package/dist/index-v922fmsx.js +52 -0
- package/dist/index-v9w1bbfe.js +842 -0
- package/dist/index-vbbgtm8p.js +513 -0
- package/dist/index-vcjgrmzj.js +456 -0
- package/dist/{index-pf5s73n9.js → index-vdewcg1r.js} +243 -385
- package/dist/index-vhqww6tt.js +307 -0
- package/dist/index-vkkmx4xe.js +1372 -0
- package/dist/index-vrps1gky.js +2202 -0
- package/dist/index-vse8620z.js +1372 -0
- package/dist/index-vt803j3b.js +1372 -0
- package/dist/index-vtjp46c3.js +52 -0
- package/dist/index-vxhxk8mf.js +904 -0
- package/dist/index-w3azfsa0.js +695 -0
- package/dist/index-w4c9vmvg.js +1517 -0
- package/dist/index-w4tq35dn.js +52 -0
- package/dist/index-w5qxvxzq.js +991 -0
- package/dist/index-w5sedpqn.js +986 -0
- package/dist/index-waha3chv.js +1230 -0
- package/dist/index-wdxww0kj.js +1006 -0
- package/dist/index-wdy5y07x.js +1372 -0
- package/dist/index-wf9pnh6j.js +385 -0
- package/dist/{index-z14anrqp.js → index-wfbfz02q.js} +14 -15
- package/dist/index-wnnbbbkt.js +1192 -0
- package/dist/index-wqd8n2qk.js +574 -0
- package/dist/index-wvcmvtjf.js +1372 -0
- package/dist/index-x0jbntp0.js +470 -0
- package/dist/index-x12e6fzy.js +476 -0
- package/dist/index-x6scc3nx.js +70 -0
- package/dist/index-x8e2wsbv.js +971 -0
- package/dist/index-xagpz645.js +2199 -0
- package/dist/index-xbth1r6e.js +572 -0
- package/dist/index-xec4p3v5.js +560 -0
- package/dist/index-xgfyxpfs.js +1218 -0
- package/dist/index-xm9fqhcb.js +447 -0
- package/dist/index-xm9hp9xc.js +1372 -0
- package/dist/index-xp7zkxcx.js +1372 -0
- package/dist/index-xrbj0ebk.js +185 -0
- package/dist/index-xskax7r3.js +50 -0
- package/dist/index-xvk5n96q.js +694 -0
- package/dist/index-xy1jvt4w.js +1229 -0
- package/dist/index-xzg9hhf3.js +470 -0
- package/dist/index-xzpg0kaz.js +70 -0
- package/dist/index-y1d8za14.js +196 -0
- package/dist/index-y3q6qvv3.js +316 -0
- package/dist/index-y44ts1dk.js +52 -0
- package/dist/index-y59hnmd0.js +132 -0
- package/dist/index-y5nt1wjb.js +971 -0
- package/dist/index-y7mkb00x.js +133 -0
- package/dist/index-y82b8w14.js +1372 -0
- package/dist/index-yb07t3c5.js +1372 -0
- package/dist/index-yc3xz3vm.js +431 -0
- package/dist/index-yeaqrevg.js +1372 -0
- package/dist/index-ygwsd1nn.js +438 -0
- package/dist/index-yhdavjk7.js +371 -0
- package/dist/index-yjhns95b.js +188 -0
- package/dist/index-yk23p7he.js +1372 -0
- package/dist/index-ykfgpsmm.js +190 -0
- package/dist/index-ymz3cfab.js +968 -0
- package/dist/index-yq9g1sq7.js +264 -0
- package/dist/index-ys5q9ch9.js +366 -0
- package/dist/index-yt0n4p46.js +973 -0
- package/dist/index-ytq1t9jx.js +232 -0
- package/dist/index-ywmtmf3b.js +513 -0
- package/dist/index-yzb44q6d.js +1372 -0
- package/dist/index-z043xk61.js +133 -0
- package/dist/index-z0gsf674.js +431 -0
- package/dist/index-z32n0ndp.js +1372 -0
- package/dist/index-z40mjts9.js +212 -0
- package/dist/index-z4qgk76w.js +1372 -0
- package/dist/index-z5k5bjc7.js +1218 -0
- package/dist/index-z73sytma.js +895 -0
- package/dist/index-z8njfj2g.js +385 -0
- package/dist/index-z9fjnwa8.js +397 -0
- package/dist/{index-1xpj0m4r.js → index-z9gy8w6b.js} +1 -1
- package/dist/index-zapkc14c.js +264 -0
- package/dist/index-zes6w8yr.js +185 -0
- package/dist/index-zgrqest7.js +695 -0
- package/dist/index-zjv6apef.js +1410 -0
- package/dist/index-zsngz131.js +1372 -0
- package/dist/index-zt22fe2j.js +54 -0
- package/dist/index-zxhc6sb0.js +192 -0
- package/dist/index.d.ts +2 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -269
- package/dist/{init-f9mgmew3.js → init-cwpergap.js} +63 -69
- package/dist/init-wfh63bfz.js +180 -0
- package/dist/login-1amyp1jy.js +77 -0
- package/dist/login-1cdwn1dj.js +77 -0
- package/dist/login-456h8jk3.js +77 -0
- package/dist/login-4n470c4j.js +77 -0
- package/dist/login-4sh7s849.js +77 -0
- package/dist/login-5dmkf0pz.js +77 -0
- package/dist/login-7yex6ppq.js +77 -0
- package/dist/login-83bjfhvz.js +77 -0
- package/dist/login-88tp4gbb.js +77 -0
- package/dist/login-b51faqpc.js +77 -0
- package/dist/login-bxyjqmbj.js +77 -0
- package/dist/login-c4649qss.js +77 -0
- package/dist/login-d80a2qxd.js +77 -0
- package/dist/login-ddw888xb.js +77 -0
- package/dist/login-dp0napaz.js +77 -0
- package/dist/login-e7pytkdc.js +77 -0
- package/dist/login-fe0brfcr.js +77 -0
- package/dist/login-h7sm5trm.js +77 -0
- package/dist/login-j3r6z2t4.js +77 -0
- package/dist/login-jkfkdjg4.js +77 -0
- package/dist/login-kch6f2yj.js +77 -0
- package/dist/login-pmqh94ws.js +77 -0
- package/dist/login-rc82x5j8.js +77 -0
- package/dist/login-tvppwyx2.js +77 -0
- package/dist/login-vd0m3xr4.js +77 -0
- package/dist/login-w76jx22q.js +77 -0
- package/dist/login-ze7y36rc.js +77 -0
- package/dist/previews-02jmcwft.js +1214 -0
- package/dist/previews-2wfvsjfy.js +1337 -0
- package/dist/previews-31bq82km.js +1225 -0
- package/dist/previews-31feb8r3.js +1337 -0
- package/dist/previews-3w4pxqby.js +1337 -0
- package/dist/previews-62pcvvpe.js +1214 -0
- package/dist/previews-6fepv94a.js +1225 -0
- package/dist/previews-76fxkp59.js +1214 -0
- package/dist/previews-844bp6kf.js +1214 -0
- package/dist/previews-8amn46qv.js +1214 -0
- package/dist/previews-93ttrf5f.js +1337 -0
- package/dist/previews-a5xbkksy.js +1214 -0
- package/dist/previews-bdrefjzx.js +1337 -0
- package/dist/previews-bgnryzav.js +1214 -0
- package/dist/previews-bkhv9dnr.js +1214 -0
- package/dist/previews-c2c64z5m.js +1214 -0
- package/dist/previews-cfcn56b4.js +1337 -0
- package/dist/previews-e4wgscsb.js +1214 -0
- package/dist/previews-ew4reetn.js +1214 -0
- package/dist/previews-hzqke1fg.js +1214 -0
- package/dist/previews-j8wa3sge.js +1214 -0
- package/dist/previews-k5n6vhpm.js +1214 -0
- package/dist/previews-mssq1hrm.js +1337 -0
- package/dist/previews-n4sdyxa5.js +1214 -0
- package/dist/previews-npwrwb0b.js +1214 -0
- package/dist/previews-q8ph9wbe.js +1214 -0
- package/dist/previews-rfswrh7q.js +1214 -0
- package/dist/previews-s0y5yp8s.js +1214 -0
- package/dist/previews-s5b6mnz5.js +1214 -0
- package/dist/previews-sdte4984.js +1200 -0
- package/dist/previews-t5tdm6t0.js +1225 -0
- package/dist/previews-tcaz1gt8.js +1337 -0
- package/dist/previews-tk7vpzj9.js +1214 -0
- package/dist/previews-tqt4pk27.js +1214 -0
- package/dist/previews-vqg4psk2.js +1225 -0
- package/dist/productions-2t9q8f57.js +505 -0
- package/dist/productions-4abj58kx.js +505 -0
- package/dist/productions-4dpec71r.js +505 -0
- package/dist/productions-4h80j2c7.js +505 -0
- package/dist/productions-4nedsanh.js +505 -0
- package/dist/productions-5c58yafp.js +505 -0
- package/dist/productions-5xq5cjhx.js +505 -0
- package/dist/productions-6dr0bmd7.js +505 -0
- package/dist/productions-86jaqt7m.js +505 -0
- package/dist/productions-8f6s8dqr.js +505 -0
- package/dist/productions-a2hcwwzf.js +505 -0
- package/dist/productions-b7svyjp7.js +505 -0
- package/dist/productions-bf2cnr05.js +505 -0
- package/dist/productions-bn2q31my.js +505 -0
- package/dist/productions-dkgry3gv.js +505 -0
- package/dist/productions-dv8g7f6g.js +505 -0
- package/dist/productions-e2m9s4tr.js +505 -0
- package/dist/productions-eqh105tk.js +505 -0
- package/dist/productions-etvcm7yf.js +505 -0
- package/dist/productions-f1zpbmjz.js +505 -0
- package/dist/productions-fgshs1m7.js +505 -0
- package/dist/productions-hphmt68n.js +505 -0
- package/dist/productions-j14pvx93.js +505 -0
- package/dist/productions-j7s1ywvg.js +505 -0
- package/dist/productions-jp3v3q3p.js +505 -0
- package/dist/productions-m9p42amj.js +505 -0
- package/dist/productions-mxbneawa.js +505 -0
- package/dist/productions-np4exh9p.js +505 -0
- package/dist/productions-rr1hqgda.js +505 -0
- package/dist/productions-rtf9ksgg.js +505 -0
- package/dist/productions-vhq7yx86.js +505 -0
- package/dist/productions-w2nzftcz.js +505 -0
- package/dist/productions-wbks5h7e.js +505 -0
- package/dist/productions-y99ayk6h.js +505 -0
- package/dist/productions-zpqyw5gm.js +505 -0
- package/dist/router/types.d.ts +24 -0
- package/dist/router/types.d.ts.map +1 -0
- 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 +27 -40
- package/dist/runtime/context.d.ts.map +1 -1
- package/dist/runtime/exports.d.ts +47 -55
- package/dist/runtime/exports.d.ts.map +1 -1
- package/dist/runtime/index.d.ts +8 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +108 -99
- package/dist/runtime/middleware.d.ts +102 -60
- package/dist/runtime/middleware.d.ts.map +1 -1
- 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/router.d.ts +7 -0
- package/dist/runtime/router.d.ts.map +1 -0
- package/dist/runtime/validation.d.ts +10 -2
- 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/secrets-8wcj47nh.js +91 -0
- package/dist/secrets-b2ww34ta.js +91 -0
- package/dist/secrets-b7g4z621.js +91 -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.js +187 -75
- 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 +19 -1
- 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/binding-hints.d.ts +11 -0
- package/dist/test/binding-hints.d.ts.map +1 -0
- package/dist/test/bridge-context.d.ts +12 -2
- package/dist/test/bridge-context.d.ts.map +1 -1
- package/dist/test/cf.d.ts +35 -21
- 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 +5 -8
- package/dist/test/index.d.ts.map +1 -1
- package/dist/test/index.js +4595 -43
- package/dist/test/local-worker-loader.d.ts +3 -0
- package/dist/test/local-worker-loader.d.ts.map +1 -0
- package/dist/test/offline-bindings.d.ts +65 -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 +63 -3
- 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 +10 -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 +7 -26
- package/dist/test/simple-context.d.ts.map +1 -1
- package/dist/test/tail.d.ts +2 -1
- package/dist/test/tail.d.ts.map +1 -1
- 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 +40 -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 +38 -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 +12 -0
- package/dist/test/utilities/r2.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 +10 -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/token-3b9wws58.js +419 -0
- package/dist/token-47kcz18j.js +419 -0
- package/dist/token-a2b38w0z.js +419 -0
- package/dist/token-exz78pth.js +419 -0
- package/dist/token-fcthx92c.js +419 -0
- package/dist/token-grwp8z4q.js +419 -0
- package/dist/token-jkmm44z2.js +419 -0
- package/dist/token-qxtvzm3b.js +419 -0
- package/dist/token-rq8mvtz9.js +419 -0
- package/dist/token-sct51r47.js +419 -0
- package/dist/token-sfgxcgen.js +419 -0
- package/dist/transform/durable-object.d.ts.map +1 -1
- package/dist/transform/worker-entrypoint.d.ts +5 -0
- package/dist/transform/worker-entrypoint.d.ts.map +1 -1
- package/dist/{types-5nyrz1sz.js → types-0qv4xces.js} +266 -148
- package/dist/types-2ejrbba1.js +695 -0
- package/dist/types-2nvrs9jg.js +572 -0
- package/dist/types-2pbe8kzw.js +572 -0
- package/dist/types-2zyt0m43.js +572 -0
- package/dist/types-4xxer9ep.js +572 -0
- package/dist/types-5t5y7a5n.js +572 -0
- package/dist/types-5wd2rygw.js +572 -0
- package/dist/types-7j3ykgx7.js +572 -0
- package/dist/types-7jkbm95a.js +695 -0
- package/dist/types-8g78x34n.js +572 -0
- package/dist/types-a2fk9yns.js +695 -0
- package/dist/types-dyb3c6zw.js +695 -0
- package/dist/types-e2n9f3pd.js +695 -0
- package/dist/types-e6d336q3.js +572 -0
- package/dist/types-hqh2fx0x.js +572 -0
- package/dist/types-j12xmdnd.js +572 -0
- package/dist/types-j4s6qcrc.js +695 -0
- package/dist/types-jqn26et3.js +572 -0
- package/dist/types-n0mxbq26.js +572 -0
- package/dist/types-naz9hvw5.js +572 -0
- package/dist/types-qjcd1jks.js +572 -0
- package/dist/types-r9zb8sw1.js +572 -0
- package/dist/types-rv5xwgsn.js +572 -0
- package/dist/types-t39njdqx.js +572 -0
- package/dist/types-tkgch3xv.js +572 -0
- package/dist/types-vhvt4hvm.js +693 -0
- package/dist/types-vvtb7rrh.js +572 -0
- package/dist/types-w1grncdj.js +572 -0
- package/dist/types-wmw49exb.js +572 -0
- package/dist/types-ymxz9jga.js +572 -0
- package/dist/utils/entrypoint-discovery.d.ts +6 -3
- package/dist/utils/entrypoint-discovery.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 +19 -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 +1 -0
- package/dist/vite/index.d.ts.map +1 -1
- package/dist/vite/index.js +25 -331
- 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-18ceqscc.js +513 -0
- package/dist/worker-1yqpwte2.js +513 -0
- package/dist/worker-2aw27zxy.js +513 -0
- package/dist/worker-45tp4a8f.js +513 -0
- package/dist/worker-663em30d.js +513 -0
- package/dist/worker-68zttchg.js +513 -0
- package/dist/worker-729cf3fh.js +513 -0
- package/dist/worker-99tew196.js +513 -0
- package/dist/worker-argxc7fb.js +513 -0
- package/dist/worker-aydzxt4f.js +513 -0
- package/dist/worker-ejdxma7k.js +513 -0
- 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-entrypoint-3rmzd4c1.js +15 -0
- package/dist/worker-entrypoint-4xp7msd7.js +16 -0
- package/dist/{worker-entrypoint-m9th0rg0.js → worker-entrypoint-c259fmfs.js} +1 -1
- package/dist/worker-entrypoint-f1v9y4s8.js +15 -0
- package/dist/worker-f6xqjg65.js +513 -0
- package/dist/worker-fcdsnj14.js +513 -0
- package/dist/worker-fdnn62de.js +513 -0
- package/dist/worker-fk42rzse.js +513 -0
- package/dist/worker-frnh95rg.js +513 -0
- package/dist/worker-jkemk8d2.js +513 -0
- package/dist/worker-k55nfrmp.js +513 -0
- package/dist/worker-kqc6w7ry.js +513 -0
- package/dist/worker-ksvcq8be.js +513 -0
- package/dist/worker-m4ze8djx.js +513 -0
- package/dist/worker-mjzfstv5.js +513 -0
- package/dist/worker-p4rtsndj.js +513 -0
- package/dist/worker-p6d53qan.js +513 -0
- package/dist/worker-qh2qbv97.js +513 -0
- package/dist/worker-r234vnv9.js +513 -0
- package/dist/worker-r47bv7gt.js +513 -0
- package/dist/worker-s4nvbqsm.js +513 -0
- package/dist/worker-ttj7vwce.js +513 -0
- package/dist/worker-wnan5dca.js +513 -0
- package/dist/worker-wv4jdneg.js +513 -0
- package/dist/worker-xcbscr75.js +513 -0
- package/dist/worker-yw3atfb1.js +513 -0
- package/dist/worker-ywwkf3cp.js +513 -0
- package/dist/worker-z8wtk0sh.js +513 -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 +140 -115
- package/dist/account-rvrj687w.js +0 -397
- package/dist/browser-shim/worker.d.ts +0 -14
- package/dist/browser-shim/worker.d.ts.map +0 -1
- package/dist/build-mnf6v8gd.js +0 -53
- package/dist/deploy-nhceck39.js +0 -70
- package/dist/doctor-e8fy6fj5.js +0 -186
- package/dist/index-67qcae0f.js +0 -183
- package/dist/index-ep3445yc.js +0 -2225
- package/dist/index-hcex3rgh.js +0 -266
- package/dist/index-m2q41jwa.js +0 -462
- package/dist/index-n7rs26ft.js +0 -77
- package/dist/index-tfyxa77h.js +0 -850
- package/dist/index-tk6ej9dj.js +0 -94
- package/dist/test/multi-worker-context.d.ts +0 -114
- package/dist/test/multi-worker-context.d.ts.map +0 -1
|
@@ -0,0 +1,1723 @@
|
|
|
1
|
+
// src/bridge/v2/wire.ts
|
|
2
|
+
var BinaryKind = {
|
|
3
|
+
StreamChunk: 1,
|
|
4
|
+
WsData: 2
|
|
5
|
+
};
|
|
6
|
+
var BinaryFlags = {
|
|
7
|
+
FIN: 1,
|
|
8
|
+
TEXT: 2
|
|
9
|
+
};
|
|
10
|
+
var BINARY_HEADER_SIZE = 10;
|
|
11
|
+
function encodeBinaryFrame(kind, id, seq, flags, payload) {
|
|
12
|
+
const frame = new Uint8Array(BINARY_HEADER_SIZE + payload.byteLength);
|
|
13
|
+
const view = new DataView(frame.buffer);
|
|
14
|
+
view.setUint8(0, kind);
|
|
15
|
+
view.setUint32(1, id, true);
|
|
16
|
+
view.setUint32(5, seq, true);
|
|
17
|
+
view.setUint8(9, flags);
|
|
18
|
+
frame.set(payload, BINARY_HEADER_SIZE);
|
|
19
|
+
return frame;
|
|
20
|
+
}
|
|
21
|
+
function parseJsonMsg(data) {
|
|
22
|
+
const msg = JSON.parse(data);
|
|
23
|
+
if (typeof msg !== "object" || msg === null || !("t" in msg)) {
|
|
24
|
+
throw new Error("Invalid message: missing type field");
|
|
25
|
+
}
|
|
26
|
+
return msg;
|
|
27
|
+
}
|
|
28
|
+
function stringifyJsonMsg(msg) {
|
|
29
|
+
return JSON.stringify(msg);
|
|
30
|
+
}
|
|
31
|
+
var streamIdCounter = 0;
|
|
32
|
+
var wsIdCounter = 0;
|
|
33
|
+
function nextStreamId() {
|
|
34
|
+
return ++streamIdCounter;
|
|
35
|
+
}
|
|
36
|
+
function nextWsId() {
|
|
37
|
+
return ++wsIdCounter;
|
|
38
|
+
}
|
|
39
|
+
var DEFAULT_CHUNK_SIZE = 256 * 1024;
|
|
40
|
+
var HTTP_TRANSFER_THRESHOLD = 512 * 1024;
|
|
41
|
+
var DEFAULT_BRIDGE_PORT = 8686;
|
|
42
|
+
|
|
43
|
+
// src/bridge/v2/value-serialization.ts
|
|
44
|
+
async function serializeRequest(request, options) {
|
|
45
|
+
const streams = [];
|
|
46
|
+
const threshold = options?.httpThreshold ?? 10 * 1024 * 1024;
|
|
47
|
+
const headers = [];
|
|
48
|
+
request.headers.forEach((value, key) => {
|
|
49
|
+
headers.push([key, value]);
|
|
50
|
+
});
|
|
51
|
+
let body = null;
|
|
52
|
+
if (request.body) {
|
|
53
|
+
const bytes = await request.arrayBuffer();
|
|
54
|
+
if (bytes.byteLength > threshold) {
|
|
55
|
+
throw new Error("http body transfer not implemented; caller should use inline or binary transfer");
|
|
56
|
+
} else if (bytes.byteLength > 0) {
|
|
57
|
+
body = { type: "bytes", data: base64Encode(new Uint8Array(bytes)) };
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
serialized: {
|
|
62
|
+
url: request.url,
|
|
63
|
+
method: request.method,
|
|
64
|
+
headers,
|
|
65
|
+
body,
|
|
66
|
+
redirect: request.redirect
|
|
67
|
+
},
|
|
68
|
+
streams
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
function deserializeRequest(serialized, getStream) {
|
|
72
|
+
let body = null;
|
|
73
|
+
if (serialized.body) {
|
|
74
|
+
switch (serialized.body.type) {
|
|
75
|
+
case "bytes":
|
|
76
|
+
body = base64Decode(serialized.body.data);
|
|
77
|
+
break;
|
|
78
|
+
case "stream":
|
|
79
|
+
if (getStream) {
|
|
80
|
+
body = getStream(serialized.body.sid) ?? null;
|
|
81
|
+
}
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return new Request(serialized.url, {
|
|
86
|
+
method: serialized.method,
|
|
87
|
+
headers: serialized.headers,
|
|
88
|
+
body,
|
|
89
|
+
redirect: serialized.redirect
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
async function serializeResponse(response, options) {
|
|
93
|
+
const streams = [];
|
|
94
|
+
const threshold = options?.httpThreshold ?? 10 * 1024 * 1024;
|
|
95
|
+
const headers = [];
|
|
96
|
+
response.headers.forEach((value, key) => {
|
|
97
|
+
headers.push([key, value]);
|
|
98
|
+
});
|
|
99
|
+
let body = null;
|
|
100
|
+
if (response.body) {
|
|
101
|
+
const bytes = await response.arrayBuffer();
|
|
102
|
+
if (bytes.byteLength > threshold) {
|
|
103
|
+
throw new Error("http body transfer not implemented; caller should use inline or binary transfer");
|
|
104
|
+
} else if (bytes.byteLength > 0) {
|
|
105
|
+
body = { type: "bytes", data: base64Encode(new Uint8Array(bytes)) };
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return {
|
|
109
|
+
serialized: {
|
|
110
|
+
status: response.status,
|
|
111
|
+
statusText: response.statusText,
|
|
112
|
+
headers,
|
|
113
|
+
body
|
|
114
|
+
},
|
|
115
|
+
streams
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
function deserializeResponse(serialized, getStream) {
|
|
119
|
+
let body = null;
|
|
120
|
+
if (serialized.body) {
|
|
121
|
+
switch (serialized.body.type) {
|
|
122
|
+
case "bytes":
|
|
123
|
+
body = base64Decode(serialized.body.data);
|
|
124
|
+
break;
|
|
125
|
+
case "stream":
|
|
126
|
+
if (getStream) {
|
|
127
|
+
body = getStream(serialized.body.sid) ?? null;
|
|
128
|
+
}
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return new Response(body, {
|
|
133
|
+
status: serialized.status,
|
|
134
|
+
statusText: serialized.statusText,
|
|
135
|
+
headers: serialized.headers
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
async function serializeValue(value) {
|
|
139
|
+
const streams = [];
|
|
140
|
+
const result = await serializeValueInternal(value, streams);
|
|
141
|
+
return { value: result, streams };
|
|
142
|
+
}
|
|
143
|
+
async function serializeValueInternal(value, streams) {
|
|
144
|
+
if (value === null || value === undefined) {
|
|
145
|
+
return value;
|
|
146
|
+
}
|
|
147
|
+
if (value instanceof Request) {
|
|
148
|
+
const { serialized, streams: reqStreams } = await serializeRequest(value);
|
|
149
|
+
streams.push(...reqStreams);
|
|
150
|
+
return { __type: "Request", ...serialized };
|
|
151
|
+
}
|
|
152
|
+
if (value instanceof Response) {
|
|
153
|
+
const { serialized, streams: resStreams } = await serializeResponse(value);
|
|
154
|
+
streams.push(...resStreams);
|
|
155
|
+
return { __type: "Response", ...serialized };
|
|
156
|
+
}
|
|
157
|
+
if (value instanceof ReadableStream) {
|
|
158
|
+
const sid = nextStreamId();
|
|
159
|
+
streams.push({ sid, stream: value });
|
|
160
|
+
return { __type: "ReadableStream", sid };
|
|
161
|
+
}
|
|
162
|
+
if (value instanceof Uint8Array) {
|
|
163
|
+
return { __type: "Uint8Array", data: base64Encode(value) };
|
|
164
|
+
}
|
|
165
|
+
if (value instanceof ArrayBuffer) {
|
|
166
|
+
return { __type: "ArrayBuffer", data: base64Encode(new Uint8Array(value)) };
|
|
167
|
+
}
|
|
168
|
+
if (value instanceof Date) {
|
|
169
|
+
return { __devflare: "date", iso: value.toISOString() };
|
|
170
|
+
}
|
|
171
|
+
if (value instanceof URL) {
|
|
172
|
+
return { __devflare: "url", href: value.href };
|
|
173
|
+
}
|
|
174
|
+
if (value instanceof Error) {
|
|
175
|
+
const encoded = {
|
|
176
|
+
__devflare: "error",
|
|
177
|
+
name: value.name,
|
|
178
|
+
message: value.message
|
|
179
|
+
};
|
|
180
|
+
if (value.stack)
|
|
181
|
+
encoded.stack = value.stack;
|
|
182
|
+
return encoded;
|
|
183
|
+
}
|
|
184
|
+
if (value instanceof Map) {
|
|
185
|
+
const entries = [];
|
|
186
|
+
for (const [k, v] of value.entries()) {
|
|
187
|
+
entries.push([
|
|
188
|
+
await serializeValueInternal(k, streams),
|
|
189
|
+
await serializeValueInternal(v, streams)
|
|
190
|
+
]);
|
|
191
|
+
}
|
|
192
|
+
return { __devflare: "map", entries };
|
|
193
|
+
}
|
|
194
|
+
if (value instanceof Set) {
|
|
195
|
+
const values = [];
|
|
196
|
+
for (const v of value.values()) {
|
|
197
|
+
values.push(await serializeValueInternal(v, streams));
|
|
198
|
+
}
|
|
199
|
+
return { __devflare: "set", values };
|
|
200
|
+
}
|
|
201
|
+
if (Array.isArray(value)) {
|
|
202
|
+
return Promise.all(value.map((v) => serializeValueInternal(v, streams)));
|
|
203
|
+
}
|
|
204
|
+
if (typeof value === "object") {
|
|
205
|
+
const result = {};
|
|
206
|
+
for (const [k, v] of Object.entries(value)) {
|
|
207
|
+
result[k] = await serializeValueInternal(v, streams);
|
|
208
|
+
}
|
|
209
|
+
return result;
|
|
210
|
+
}
|
|
211
|
+
return value;
|
|
212
|
+
}
|
|
213
|
+
function deserializeValue(value, getStream) {
|
|
214
|
+
if (value === null || value === undefined) {
|
|
215
|
+
return value;
|
|
216
|
+
}
|
|
217
|
+
if (typeof value === "object" && value !== null) {
|
|
218
|
+
const obj = value;
|
|
219
|
+
if (typeof obj.__devflare === "string") {
|
|
220
|
+
switch (obj.__devflare) {
|
|
221
|
+
case "date":
|
|
222
|
+
return new Date(obj.iso);
|
|
223
|
+
case "url":
|
|
224
|
+
return new URL(obj.href);
|
|
225
|
+
case "error": {
|
|
226
|
+
const err = new Error(obj.message);
|
|
227
|
+
if (typeof obj.name === "string")
|
|
228
|
+
err.name = obj.name;
|
|
229
|
+
if (typeof obj.stack === "string")
|
|
230
|
+
err.stack = obj.stack;
|
|
231
|
+
return err;
|
|
232
|
+
}
|
|
233
|
+
case "map": {
|
|
234
|
+
const entries = obj.entries ?? [];
|
|
235
|
+
const map = new Map;
|
|
236
|
+
for (const [k, v] of entries) {
|
|
237
|
+
map.set(deserializeValue(k, getStream), deserializeValue(v, getStream));
|
|
238
|
+
}
|
|
239
|
+
return map;
|
|
240
|
+
}
|
|
241
|
+
case "set": {
|
|
242
|
+
const values = obj.values ?? [];
|
|
243
|
+
const set = new Set;
|
|
244
|
+
for (const v of values) {
|
|
245
|
+
set.add(deserializeValue(v, getStream));
|
|
246
|
+
}
|
|
247
|
+
return set;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
if (obj.__type === "Request") {
|
|
252
|
+
return deserializeRequest(obj, getStream);
|
|
253
|
+
}
|
|
254
|
+
if (obj.__type === "Response") {
|
|
255
|
+
return deserializeResponse(obj, getStream);
|
|
256
|
+
}
|
|
257
|
+
if (obj.__type === "ReadableStream") {
|
|
258
|
+
const sid = obj.sid;
|
|
259
|
+
return getStream?.(sid) ?? null;
|
|
260
|
+
}
|
|
261
|
+
if (obj.__type === "Uint8Array") {
|
|
262
|
+
return base64Decode(obj.data);
|
|
263
|
+
}
|
|
264
|
+
if (obj.__type === "ArrayBuffer") {
|
|
265
|
+
return base64Decode(obj.data).buffer;
|
|
266
|
+
}
|
|
267
|
+
if (obj.__type === "R2Object") {
|
|
268
|
+
return deserializeR2Object(obj);
|
|
269
|
+
}
|
|
270
|
+
if (obj.__type === "R2ObjectBody") {
|
|
271
|
+
return deserializeR2ObjectBody(obj);
|
|
272
|
+
}
|
|
273
|
+
if (Array.isArray(value)) {
|
|
274
|
+
return value.map((v) => deserializeValue(v, getStream));
|
|
275
|
+
}
|
|
276
|
+
const result = {};
|
|
277
|
+
for (const [k, v] of Object.entries(obj)) {
|
|
278
|
+
result[k] = deserializeValue(v, getStream);
|
|
279
|
+
}
|
|
280
|
+
return result;
|
|
281
|
+
}
|
|
282
|
+
return value;
|
|
283
|
+
}
|
|
284
|
+
function applySerializedHttpMetadata(headers, httpMetadata) {
|
|
285
|
+
if (httpMetadata?.contentType) {
|
|
286
|
+
headers.set("Content-Type", httpMetadata.contentType);
|
|
287
|
+
}
|
|
288
|
+
if (httpMetadata?.contentLanguage) {
|
|
289
|
+
headers.set("Content-Language", httpMetadata.contentLanguage);
|
|
290
|
+
}
|
|
291
|
+
if (httpMetadata?.contentDisposition) {
|
|
292
|
+
headers.set("Content-Disposition", httpMetadata.contentDisposition);
|
|
293
|
+
}
|
|
294
|
+
if (httpMetadata?.contentEncoding) {
|
|
295
|
+
headers.set("Content-Encoding", httpMetadata.contentEncoding);
|
|
296
|
+
}
|
|
297
|
+
if (httpMetadata?.cacheControl) {
|
|
298
|
+
headers.set("Cache-Control", httpMetadata.cacheControl);
|
|
299
|
+
}
|
|
300
|
+
if (httpMetadata?.cacheExpiry) {
|
|
301
|
+
headers.set("Expires", new Date(httpMetadata.cacheExpiry).toUTCString());
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
function createSerializedR2Metadata(serialized) {
|
|
305
|
+
return {
|
|
306
|
+
key: serialized.key,
|
|
307
|
+
version: serialized.version,
|
|
308
|
+
size: serialized.size,
|
|
309
|
+
etag: serialized.etag,
|
|
310
|
+
httpEtag: serialized.httpEtag,
|
|
311
|
+
checksums: serialized.checksums,
|
|
312
|
+
uploaded: serialized.uploaded ? new Date(serialized.uploaded) : new Date,
|
|
313
|
+
httpMetadata: serialized.httpMetadata,
|
|
314
|
+
customMetadata: serialized.customMetadata,
|
|
315
|
+
range: serialized.range,
|
|
316
|
+
storageClass: serialized.storageClass,
|
|
317
|
+
writeHttpMetadata(headers) {
|
|
318
|
+
applySerializedHttpMetadata(headers, serialized.httpMetadata);
|
|
319
|
+
}
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
function deserializeR2Object(obj) {
|
|
323
|
+
const serialized = obj;
|
|
324
|
+
return {
|
|
325
|
+
...createSerializedR2Metadata(serialized)
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
function deserializeR2ObjectBody(obj) {
|
|
329
|
+
const serialized = obj;
|
|
330
|
+
const bodyBytes = serialized.bodyData ? base64Decode(serialized.bodyData) : new Uint8Array(0);
|
|
331
|
+
const r2ObjectBody = {
|
|
332
|
+
...createSerializedR2Metadata(serialized),
|
|
333
|
+
body: new ReadableStream({
|
|
334
|
+
start(controller) {
|
|
335
|
+
controller.enqueue(bodyBytes);
|
|
336
|
+
controller.close();
|
|
337
|
+
}
|
|
338
|
+
}),
|
|
339
|
+
bodyUsed: false,
|
|
340
|
+
async arrayBuffer() {
|
|
341
|
+
const copy = new Uint8Array(bodyBytes.byteLength);
|
|
342
|
+
copy.set(bodyBytes);
|
|
343
|
+
return copy.buffer;
|
|
344
|
+
},
|
|
345
|
+
async text() {
|
|
346
|
+
return new TextDecoder().decode(bodyBytes);
|
|
347
|
+
},
|
|
348
|
+
async json() {
|
|
349
|
+
const text = new TextDecoder().decode(bodyBytes);
|
|
350
|
+
return JSON.parse(text);
|
|
351
|
+
},
|
|
352
|
+
async blob() {
|
|
353
|
+
const contentType = serialized.httpMetadata?.contentType || "application/octet-stream";
|
|
354
|
+
const buffer = bodyBytes.buffer.slice(bodyBytes.byteOffset, bodyBytes.byteOffset + bodyBytes.byteLength);
|
|
355
|
+
return new Blob([buffer], { type: contentType });
|
|
356
|
+
}
|
|
357
|
+
};
|
|
358
|
+
return r2ObjectBody;
|
|
359
|
+
}
|
|
360
|
+
function base64Encode(bytes) {
|
|
361
|
+
if (typeof Buffer !== "undefined") {
|
|
362
|
+
return Buffer.from(bytes).toString("base64");
|
|
363
|
+
}
|
|
364
|
+
let binary = "";
|
|
365
|
+
for (let i = 0;i < bytes.byteLength; i++) {
|
|
366
|
+
binary += String.fromCharCode(bytes[i]);
|
|
367
|
+
}
|
|
368
|
+
return btoa(binary);
|
|
369
|
+
}
|
|
370
|
+
function base64Decode(str) {
|
|
371
|
+
if (typeof Buffer !== "undefined") {
|
|
372
|
+
return new Uint8Array(Buffer.from(str, "base64"));
|
|
373
|
+
}
|
|
374
|
+
const binary = atob(str);
|
|
375
|
+
const bytes = new Uint8Array(binary.length);
|
|
376
|
+
for (let i = 0;i < binary.length; i++) {
|
|
377
|
+
bytes[i] = binary.charCodeAt(i);
|
|
378
|
+
}
|
|
379
|
+
return bytes;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
// src/bridge/v2/frames.ts
|
|
383
|
+
var TRANSPORT_V2_PROTOCOL_VERSION = 2;
|
|
384
|
+
var TRANSPORT_V2_UNSUPPORTED_VERSION_CLOSE_CODE = 4001;
|
|
385
|
+
var TransportV2BinaryKind = {
|
|
386
|
+
StreamChunk: 1,
|
|
387
|
+
WsData: 2,
|
|
388
|
+
BodyChunk: 3
|
|
389
|
+
};
|
|
390
|
+
var TransportV2BinaryFlags = {
|
|
391
|
+
FIN: 1,
|
|
392
|
+
TEXT: 2,
|
|
393
|
+
ABORT: 4
|
|
394
|
+
};
|
|
395
|
+
var TRANSPORT_V2_BINARY_HEADER_SIZE = 10;
|
|
396
|
+
function decodeTransportV2BinaryFrame(frame) {
|
|
397
|
+
if (frame.byteLength < TRANSPORT_V2_BINARY_HEADER_SIZE) {
|
|
398
|
+
throw new Error(`Invalid transport v2 binary frame: too short (${frame.byteLength} bytes, need at least ${TRANSPORT_V2_BINARY_HEADER_SIZE})`);
|
|
399
|
+
}
|
|
400
|
+
const view = new DataView(frame.buffer, frame.byteOffset, frame.byteLength);
|
|
401
|
+
const kind = view.getUint8(0);
|
|
402
|
+
if (kind !== TransportV2BinaryKind.StreamChunk && kind !== TransportV2BinaryKind.WsData && kind !== TransportV2BinaryKind.BodyChunk) {
|
|
403
|
+
throw new Error(`Invalid transport v2 binary frame: unknown kind ${kind}`);
|
|
404
|
+
}
|
|
405
|
+
return {
|
|
406
|
+
kind,
|
|
407
|
+
id: view.getUint32(1, true),
|
|
408
|
+
seq: view.getUint32(5, true),
|
|
409
|
+
flags: view.getUint8(9),
|
|
410
|
+
payload: frame.subarray(TRANSPORT_V2_BINARY_HEADER_SIZE)
|
|
411
|
+
};
|
|
412
|
+
}
|
|
413
|
+
function transportV2IsFin(flags) {
|
|
414
|
+
return (flags & TransportV2BinaryFlags.FIN) !== 0;
|
|
415
|
+
}
|
|
416
|
+
function transportV2IsAbort(flags) {
|
|
417
|
+
return (flags & TransportV2BinaryFlags.ABORT) !== 0;
|
|
418
|
+
}
|
|
419
|
+
var KNOWN_V2_CONTROL_TYPES = new Set([
|
|
420
|
+
"hello",
|
|
421
|
+
"welcome",
|
|
422
|
+
"body.open",
|
|
423
|
+
"body.end",
|
|
424
|
+
"body.abort"
|
|
425
|
+
]);
|
|
426
|
+
function parseTransportV2ControlMsg(data) {
|
|
427
|
+
const msg = JSON.parse(data);
|
|
428
|
+
if (typeof msg !== "object" || msg === null || !("t" in msg)) {
|
|
429
|
+
throw new Error("Invalid transport v2 control message: missing type field");
|
|
430
|
+
}
|
|
431
|
+
if (!KNOWN_V2_CONTROL_TYPES.has(msg.t)) {
|
|
432
|
+
throw new Error(`Invalid transport v2 control message: unknown type "${msg.t}"`);
|
|
433
|
+
}
|
|
434
|
+
if (msg.t === "hello" || msg.t === "welcome") {
|
|
435
|
+
if (msg.protocolVersion !== TRANSPORT_V2_PROTOCOL_VERSION) {
|
|
436
|
+
throw new Error(`Invalid transport v2 ${msg.t}: protocolVersion ${msg.protocolVersion} != ${TRANSPORT_V2_PROTOCOL_VERSION}`);
|
|
437
|
+
}
|
|
438
|
+
if (!Array.isArray(msg.capabilities)) {
|
|
439
|
+
throw new Error(`Invalid transport v2 ${msg.t}: capabilities must be an array`);
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
return msg;
|
|
443
|
+
}
|
|
444
|
+
function stringifyTransportV2ControlMsg(msg) {
|
|
445
|
+
return JSON.stringify(msg);
|
|
446
|
+
}
|
|
447
|
+
function negotiateTransportV2Capabilities(supported, advertised) {
|
|
448
|
+
const supportedSet = new Set(supported);
|
|
449
|
+
const intersection = advertised.filter((cap) => supportedSet.has(cap));
|
|
450
|
+
return [...new Set(intersection)].sort();
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
// src/bridge/v2/body-streams.ts
|
|
454
|
+
var TRANSPORT_V2_DEFAULT_BODY_CHUNK_SIZE = 256 * 1024;
|
|
455
|
+
class TransportV2BodyReaderRegistry {
|
|
456
|
+
#streams = new Map;
|
|
457
|
+
getOrOpen(bid) {
|
|
458
|
+
const existing = this.#streams.get(bid);
|
|
459
|
+
if (existing !== undefined)
|
|
460
|
+
return existing.stream;
|
|
461
|
+
return this.open(bid);
|
|
462
|
+
}
|
|
463
|
+
open(bid) {
|
|
464
|
+
if (this.#streams.has(bid)) {
|
|
465
|
+
throw new Error(`v2 body reader already registered for bid ${bid}`);
|
|
466
|
+
}
|
|
467
|
+
const state = {
|
|
468
|
+
controller: null,
|
|
469
|
+
stream: null,
|
|
470
|
+
closed: false
|
|
471
|
+
};
|
|
472
|
+
state.stream = new ReadableStream({
|
|
473
|
+
start: (controller) => {
|
|
474
|
+
state.controller = controller;
|
|
475
|
+
},
|
|
476
|
+
cancel: () => {
|
|
477
|
+
state.closed = true;
|
|
478
|
+
this.#streams.delete(bid);
|
|
479
|
+
}
|
|
480
|
+
});
|
|
481
|
+
this.#streams.set(bid, state);
|
|
482
|
+
return state.stream;
|
|
483
|
+
}
|
|
484
|
+
pushChunk(frame) {
|
|
485
|
+
if (frame.kind !== TransportV2BinaryKind.BodyChunk) {
|
|
486
|
+
throw new Error(`v2 body reader received non-BodyChunk frame (kind=${frame.kind})`);
|
|
487
|
+
}
|
|
488
|
+
const state = this.#streams.get(frame.id);
|
|
489
|
+
if (state === undefined || state.closed)
|
|
490
|
+
return;
|
|
491
|
+
const isFin = transportV2IsFin(frame.flags);
|
|
492
|
+
const isAbort = transportV2IsAbort(frame.flags);
|
|
493
|
+
if (isAbort) {
|
|
494
|
+
state.closed = true;
|
|
495
|
+
state.controller?.error(new Error(`v2 body stream ${frame.id} aborted by writer`));
|
|
496
|
+
this.#streams.delete(frame.id);
|
|
497
|
+
return;
|
|
498
|
+
}
|
|
499
|
+
if (frame.payload.byteLength > 0) {
|
|
500
|
+
state.controller?.enqueue(new Uint8Array(frame.payload));
|
|
501
|
+
}
|
|
502
|
+
if (isFin) {
|
|
503
|
+
state.closed = true;
|
|
504
|
+
state.controller?.close();
|
|
505
|
+
this.#streams.delete(frame.id);
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
end(bid) {
|
|
509
|
+
const state = this.#streams.get(bid);
|
|
510
|
+
if (state === undefined || state.closed)
|
|
511
|
+
return;
|
|
512
|
+
state.closed = true;
|
|
513
|
+
state.controller?.close();
|
|
514
|
+
this.#streams.delete(bid);
|
|
515
|
+
}
|
|
516
|
+
abort(bid, reason) {
|
|
517
|
+
const state = this.#streams.get(bid);
|
|
518
|
+
if (state === undefined || state.closed)
|
|
519
|
+
return;
|
|
520
|
+
state.closed = true;
|
|
521
|
+
state.controller?.error(new Error(reason ?? `v2 body stream ${bid} aborted`));
|
|
522
|
+
this.#streams.delete(bid);
|
|
523
|
+
}
|
|
524
|
+
get size() {
|
|
525
|
+
return this.#streams.size;
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
// src/bridge/v2/codec.ts
|
|
530
|
+
class TransportV2Codec {
|
|
531
|
+
bodyReaders = new TransportV2BodyReaderRegistry;
|
|
532
|
+
#socket;
|
|
533
|
+
#capabilities;
|
|
534
|
+
#options;
|
|
535
|
+
#handshakeResolver = null;
|
|
536
|
+
#handshakePromise;
|
|
537
|
+
#sentHello = false;
|
|
538
|
+
#receivedHello = false;
|
|
539
|
+
#receivedWelcome = false;
|
|
540
|
+
#negotiated = null;
|
|
541
|
+
#pendingRpc = new Map;
|
|
542
|
+
#nextBid = 1;
|
|
543
|
+
#nextRpcId = 1;
|
|
544
|
+
#closed = false;
|
|
545
|
+
constructor(socket, options = {}) {
|
|
546
|
+
this.#socket = socket;
|
|
547
|
+
this.#capabilities = options.capabilities ?? [];
|
|
548
|
+
this.#options = options;
|
|
549
|
+
this.#handshakePromise = new Promise((resolve, reject) => {
|
|
550
|
+
this.#handshakeResolver = { resolve, reject };
|
|
551
|
+
});
|
|
552
|
+
socket.onmessage = (event) => this.#onMessage(event);
|
|
553
|
+
socket.onclose = () => this.#onClose();
|
|
554
|
+
socket.onerror = (event) => this.#onError(event.error);
|
|
555
|
+
}
|
|
556
|
+
allocateBid() {
|
|
557
|
+
return this.#nextBid++;
|
|
558
|
+
}
|
|
559
|
+
allocateRpcId() {
|
|
560
|
+
return `v2_rpc_${this.#nextRpcId++}`;
|
|
561
|
+
}
|
|
562
|
+
sendHello() {
|
|
563
|
+
if (this.#sentHello)
|
|
564
|
+
return;
|
|
565
|
+
this.#sentHello = true;
|
|
566
|
+
const hello = {
|
|
567
|
+
t: "hello",
|
|
568
|
+
protocolVersion: TRANSPORT_V2_PROTOCOL_VERSION,
|
|
569
|
+
capabilities: [...this.#capabilities]
|
|
570
|
+
};
|
|
571
|
+
this.#socket.send(stringifyTransportV2ControlMsg(hello));
|
|
572
|
+
}
|
|
573
|
+
get handshake() {
|
|
574
|
+
return this.#handshakePromise;
|
|
575
|
+
}
|
|
576
|
+
get negotiated() {
|
|
577
|
+
return this.#negotiated;
|
|
578
|
+
}
|
|
579
|
+
sendText(message) {
|
|
580
|
+
if (this.#closed) {
|
|
581
|
+
throw new Error("cannot send on a closed v2 codec");
|
|
582
|
+
}
|
|
583
|
+
this.#socket.send(message);
|
|
584
|
+
}
|
|
585
|
+
sendBinary(frame) {
|
|
586
|
+
if (this.#closed) {
|
|
587
|
+
throw new Error("cannot send on a closed v2 codec");
|
|
588
|
+
}
|
|
589
|
+
this.#socket.send(frame);
|
|
590
|
+
}
|
|
591
|
+
call(method, params = []) {
|
|
592
|
+
const id = this.allocateRpcId();
|
|
593
|
+
const call = { t: "rpc.call", id, method, params };
|
|
594
|
+
const promise = new Promise((resolve, reject) => {
|
|
595
|
+
this.#pendingRpc.set(id, { resolve, reject });
|
|
596
|
+
});
|
|
597
|
+
this.sendText(JSON.stringify(call));
|
|
598
|
+
return promise;
|
|
599
|
+
}
|
|
600
|
+
respondOk(id, result) {
|
|
601
|
+
const reply = { t: "rpc.ok", id, result };
|
|
602
|
+
this.sendText(JSON.stringify(reply));
|
|
603
|
+
}
|
|
604
|
+
respondErr(id, error) {
|
|
605
|
+
const reply = { t: "rpc.err", id, error };
|
|
606
|
+
this.sendText(JSON.stringify(reply));
|
|
607
|
+
}
|
|
608
|
+
sendWireError(err) {
|
|
609
|
+
const frame = { t: "error", ...err };
|
|
610
|
+
this.sendText(JSON.stringify(frame));
|
|
611
|
+
}
|
|
612
|
+
openBodyReader(bid) {
|
|
613
|
+
return this.bodyReaders.getOrOpen(bid);
|
|
614
|
+
}
|
|
615
|
+
setRpcCallHandler(handler) {
|
|
616
|
+
this.#options = { ...this.#options, onRpcCall: handler };
|
|
617
|
+
}
|
|
618
|
+
close(code, reason) {
|
|
619
|
+
if (this.#closed)
|
|
620
|
+
return;
|
|
621
|
+
this.#closed = true;
|
|
622
|
+
this.#failPending(new Error("v2 transport closed"));
|
|
623
|
+
this.#socket.close(code, reason);
|
|
624
|
+
}
|
|
625
|
+
get isClosed() {
|
|
626
|
+
return this.#closed;
|
|
627
|
+
}
|
|
628
|
+
#onMessage(event) {
|
|
629
|
+
const { data } = event;
|
|
630
|
+
if (typeof data === "string") {
|
|
631
|
+
this.#onText(data);
|
|
632
|
+
} else if (data instanceof Uint8Array) {
|
|
633
|
+
this.#onBinary(data);
|
|
634
|
+
} else if (data instanceof ArrayBuffer) {
|
|
635
|
+
this.#onBinary(new Uint8Array(data));
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
#onText(data) {
|
|
639
|
+
let msg;
|
|
640
|
+
try {
|
|
641
|
+
msg = parseTransportV2ControlMsg(data);
|
|
642
|
+
} catch {
|
|
643
|
+
const rpc = tryParseRpcMsg(data);
|
|
644
|
+
if (rpc !== null) {
|
|
645
|
+
this.#onRpcMessage(rpc);
|
|
646
|
+
return;
|
|
647
|
+
}
|
|
648
|
+
const wireErr = tryParseWireError(data);
|
|
649
|
+
if (wireErr !== null) {
|
|
650
|
+
this.#options.onWireError?.(wireErr);
|
|
651
|
+
return;
|
|
652
|
+
}
|
|
653
|
+
this.#options.onUnknownControl?.(data);
|
|
654
|
+
return;
|
|
655
|
+
}
|
|
656
|
+
switch (msg.t) {
|
|
657
|
+
case "hello":
|
|
658
|
+
this.#onHello(msg);
|
|
659
|
+
break;
|
|
660
|
+
case "welcome":
|
|
661
|
+
this.#onWelcome(msg);
|
|
662
|
+
break;
|
|
663
|
+
case "body.open":
|
|
664
|
+
this.bodyReaders.getOrOpen(msg.bid);
|
|
665
|
+
break;
|
|
666
|
+
case "body.end":
|
|
667
|
+
this.bodyReaders.end(msg.bid);
|
|
668
|
+
break;
|
|
669
|
+
case "body.abort":
|
|
670
|
+
this.bodyReaders.abort(msg.bid, msg.error);
|
|
671
|
+
break;
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
#onBinary(data) {
|
|
675
|
+
let frame;
|
|
676
|
+
try {
|
|
677
|
+
frame = decodeTransportV2BinaryFrame(data);
|
|
678
|
+
} catch {
|
|
679
|
+
return;
|
|
680
|
+
}
|
|
681
|
+
if (frame.kind === TransportV2BinaryKind.BodyChunk) {
|
|
682
|
+
this.bodyReaders.pushChunk(frame);
|
|
683
|
+
return;
|
|
684
|
+
}
|
|
685
|
+
this.#options.onUnknownBinary?.(frame);
|
|
686
|
+
}
|
|
687
|
+
#onRpcMessage(msg) {
|
|
688
|
+
switch (msg.t) {
|
|
689
|
+
case "rpc.call":
|
|
690
|
+
this.#options.onRpcCall?.(msg);
|
|
691
|
+
break;
|
|
692
|
+
case "rpc.ok": {
|
|
693
|
+
const pending = this.#pendingRpc.get(msg.id);
|
|
694
|
+
if (pending !== undefined) {
|
|
695
|
+
this.#pendingRpc.delete(msg.id);
|
|
696
|
+
pending.resolve(msg.result);
|
|
697
|
+
}
|
|
698
|
+
break;
|
|
699
|
+
}
|
|
700
|
+
case "rpc.err": {
|
|
701
|
+
const pending = this.#pendingRpc.get(msg.id);
|
|
702
|
+
if (pending !== undefined) {
|
|
703
|
+
this.#pendingRpc.delete(msg.id);
|
|
704
|
+
const err = new Error(msg.error.message);
|
|
705
|
+
Object.assign(err, { code: msg.error.code, details: msg.error.details });
|
|
706
|
+
pending.reject(err);
|
|
707
|
+
}
|
|
708
|
+
break;
|
|
709
|
+
}
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
#onHello(msg) {
|
|
713
|
+
if (this.#receivedHello) {
|
|
714
|
+
this.close(TRANSPORT_V2_UNSUPPORTED_VERSION_CLOSE_CODE, "duplicate hello");
|
|
715
|
+
return;
|
|
716
|
+
}
|
|
717
|
+
this.#receivedHello = true;
|
|
718
|
+
const negotiated = negotiateTransportV2Capabilities(this.#capabilities, msg.capabilities);
|
|
719
|
+
const welcome = {
|
|
720
|
+
t: "welcome",
|
|
721
|
+
protocolVersion: TRANSPORT_V2_PROTOCOL_VERSION,
|
|
722
|
+
capabilities: negotiated
|
|
723
|
+
};
|
|
724
|
+
this.#socket.send(stringifyTransportV2ControlMsg(welcome));
|
|
725
|
+
this.#completeHandshake({ protocolVersion: TRANSPORT_V2_PROTOCOL_VERSION, capabilities: negotiated });
|
|
726
|
+
}
|
|
727
|
+
#onWelcome(msg) {
|
|
728
|
+
if (this.#receivedWelcome)
|
|
729
|
+
return;
|
|
730
|
+
this.#receivedWelcome = true;
|
|
731
|
+
this.#completeHandshake({
|
|
732
|
+
protocolVersion: TRANSPORT_V2_PROTOCOL_VERSION,
|
|
733
|
+
capabilities: msg.capabilities
|
|
734
|
+
});
|
|
735
|
+
}
|
|
736
|
+
#completeHandshake(result) {
|
|
737
|
+
if (this.#negotiated !== null)
|
|
738
|
+
return;
|
|
739
|
+
this.#negotiated = result;
|
|
740
|
+
this.#handshakeResolver?.resolve(result);
|
|
741
|
+
this.#handshakeResolver = null;
|
|
742
|
+
}
|
|
743
|
+
#onClose() {
|
|
744
|
+
if (this.#closed) {
|
|
745
|
+
return;
|
|
746
|
+
}
|
|
747
|
+
this.#closed = true;
|
|
748
|
+
this.#failPending(new Error("v2 transport closed"));
|
|
749
|
+
}
|
|
750
|
+
#onError(error) {
|
|
751
|
+
const wrapped = error instanceof Error ? error : new Error(String(error));
|
|
752
|
+
this.#failPending(wrapped);
|
|
753
|
+
}
|
|
754
|
+
#failPending(error) {
|
|
755
|
+
const resolver = this.#handshakeResolver;
|
|
756
|
+
if (resolver !== null) {
|
|
757
|
+
this.#handshakeResolver = null;
|
|
758
|
+
resolver.reject(error);
|
|
759
|
+
}
|
|
760
|
+
for (const pending of this.#pendingRpc.values()) {
|
|
761
|
+
pending.reject(error);
|
|
762
|
+
}
|
|
763
|
+
this.#pendingRpc.clear();
|
|
764
|
+
}
|
|
765
|
+
}
|
|
766
|
+
function tryParseRpcMsg(data) {
|
|
767
|
+
let parsed;
|
|
768
|
+
try {
|
|
769
|
+
parsed = JSON.parse(data);
|
|
770
|
+
} catch {
|
|
771
|
+
return null;
|
|
772
|
+
}
|
|
773
|
+
if (typeof parsed !== "object" || parsed === null || !("t" in parsed))
|
|
774
|
+
return null;
|
|
775
|
+
const t = parsed.t;
|
|
776
|
+
if (t === "rpc.call" || t === "rpc.ok" || t === "rpc.err") {
|
|
777
|
+
return parsed;
|
|
778
|
+
}
|
|
779
|
+
return null;
|
|
780
|
+
}
|
|
781
|
+
function tryParseWireError(data) {
|
|
782
|
+
let parsed;
|
|
783
|
+
try {
|
|
784
|
+
parsed = JSON.parse(data);
|
|
785
|
+
} catch {
|
|
786
|
+
return null;
|
|
787
|
+
}
|
|
788
|
+
if (typeof parsed !== "object" || parsed === null || !("t" in parsed))
|
|
789
|
+
return null;
|
|
790
|
+
const candidate = parsed;
|
|
791
|
+
if (candidate.t !== "error")
|
|
792
|
+
return null;
|
|
793
|
+
const scope = candidate.scope;
|
|
794
|
+
if (scope !== "transport" && scope !== "rpc" && scope !== "stream" && scope !== "ws")
|
|
795
|
+
return null;
|
|
796
|
+
const err = candidate.error;
|
|
797
|
+
if (!err || typeof err.code !== "string" || typeof err.message !== "string")
|
|
798
|
+
return null;
|
|
799
|
+
return parsed;
|
|
800
|
+
}
|
|
801
|
+
|
|
802
|
+
// src/bridge/log.ts
|
|
803
|
+
var isDebugEnabled = () => {
|
|
804
|
+
try {
|
|
805
|
+
const env = globalThis.process?.env;
|
|
806
|
+
return Boolean(env?.DEVFLARE_DEBUG_BRIDGE);
|
|
807
|
+
} catch {
|
|
808
|
+
return false;
|
|
809
|
+
}
|
|
810
|
+
};
|
|
811
|
+
var bridgeLog = {
|
|
812
|
+
warn(message, error) {
|
|
813
|
+
if (!isDebugEnabled())
|
|
814
|
+
return;
|
|
815
|
+
console.warn(`[devflare:bridge] ${message}`, error);
|
|
816
|
+
},
|
|
817
|
+
debug(message, error) {
|
|
818
|
+
if (!isDebugEnabled())
|
|
819
|
+
return;
|
|
820
|
+
console.debug(`[devflare:bridge] ${message}`, error);
|
|
821
|
+
}
|
|
822
|
+
};
|
|
823
|
+
|
|
824
|
+
// src/bridge/client.ts
|
|
825
|
+
class BridgeWsAdapter {
|
|
826
|
+
onmessage = null;
|
|
827
|
+
onclose = null;
|
|
828
|
+
onerror = null;
|
|
829
|
+
#ws;
|
|
830
|
+
constructor(ws) {
|
|
831
|
+
this.#ws = ws;
|
|
832
|
+
}
|
|
833
|
+
send(data) {
|
|
834
|
+
this.#ws.send(data);
|
|
835
|
+
}
|
|
836
|
+
close(code, reason) {
|
|
837
|
+
this.#ws.close(code, reason);
|
|
838
|
+
}
|
|
839
|
+
}
|
|
840
|
+
var BRIDGE_CLIENT_CAPABILITIES = ["streams", "ws-relay", "http-transfer"];
|
|
841
|
+
|
|
842
|
+
class BridgeClient {
|
|
843
|
+
ws = null;
|
|
844
|
+
codec = null;
|
|
845
|
+
adapter = null;
|
|
846
|
+
url;
|
|
847
|
+
autoReconnect;
|
|
848
|
+
reconnectDelay;
|
|
849
|
+
connectTimeout;
|
|
850
|
+
activeStreams = new Map;
|
|
851
|
+
wsProxies = new Map;
|
|
852
|
+
pendingWsOpens = new Map;
|
|
853
|
+
outgoingStreams = new Map;
|
|
854
|
+
connectPromise = null;
|
|
855
|
+
isConnected = false;
|
|
856
|
+
constructor(options = {}) {
|
|
857
|
+
this.url = options.url ?? `ws://localhost:${DEFAULT_BRIDGE_PORT}`;
|
|
858
|
+
this.autoReconnect = options.autoReconnect ?? true;
|
|
859
|
+
this.reconnectDelay = options.reconnectDelay ?? 1000;
|
|
860
|
+
this.connectTimeout = options.connectTimeout ?? 5000;
|
|
861
|
+
}
|
|
862
|
+
getUrl() {
|
|
863
|
+
return this.url;
|
|
864
|
+
}
|
|
865
|
+
getHttpUrl() {
|
|
866
|
+
return this.url.replace(/^ws:\/\//, "http://").replace(/^wss:\/\//, "https://");
|
|
867
|
+
}
|
|
868
|
+
async connect() {
|
|
869
|
+
if (this.isConnected)
|
|
870
|
+
return;
|
|
871
|
+
if (this.connectPromise)
|
|
872
|
+
return this.connectPromise;
|
|
873
|
+
this.connectPromise = new Promise((resolve, reject) => {
|
|
874
|
+
const timeout = setTimeout(() => {
|
|
875
|
+
reject(new Error(`Connection timeout: ${this.url}`));
|
|
876
|
+
this.ws?.close();
|
|
877
|
+
}, this.connectTimeout);
|
|
878
|
+
try {
|
|
879
|
+
this.ws = new WebSocket(this.url);
|
|
880
|
+
this.ws.binaryType = "arraybuffer";
|
|
881
|
+
const adapter = new BridgeWsAdapter(this.ws);
|
|
882
|
+
this.adapter = adapter;
|
|
883
|
+
this.ws.onopen = () => {
|
|
884
|
+
clearTimeout(timeout);
|
|
885
|
+
this.codec = new TransportV2Codec(adapter, {
|
|
886
|
+
capabilities: [...BRIDGE_CLIENT_CAPABILITIES],
|
|
887
|
+
onUnknownControl: (data) => this.handleJsonMessage(data),
|
|
888
|
+
onUnknownBinary: (frame) => this.handleV2BinaryFrame(frame)
|
|
889
|
+
});
|
|
890
|
+
this.codec.sendHello();
|
|
891
|
+
this.codec.handshake.catch(() => {});
|
|
892
|
+
this.isConnected = true;
|
|
893
|
+
this.connectPromise = null;
|
|
894
|
+
resolve();
|
|
895
|
+
};
|
|
896
|
+
this.ws.onerror = (event) => {
|
|
897
|
+
clearTimeout(timeout);
|
|
898
|
+
this.connectPromise = null;
|
|
899
|
+
adapter.onerror?.({ error: event.error });
|
|
900
|
+
reject(new Error("WebSocket connection failed"));
|
|
901
|
+
};
|
|
902
|
+
this.ws.onclose = (event) => {
|
|
903
|
+
adapter.onclose?.({
|
|
904
|
+
code: event?.code ?? 1006,
|
|
905
|
+
reason: event?.reason ?? ""
|
|
906
|
+
});
|
|
907
|
+
this.handleDisconnect();
|
|
908
|
+
};
|
|
909
|
+
this.ws.onmessage = (event) => {
|
|
910
|
+
adapter.onmessage?.({ data: event.data });
|
|
911
|
+
};
|
|
912
|
+
} catch (error) {
|
|
913
|
+
clearTimeout(timeout);
|
|
914
|
+
this.connectPromise = null;
|
|
915
|
+
reject(error);
|
|
916
|
+
}
|
|
917
|
+
});
|
|
918
|
+
return this.connectPromise;
|
|
919
|
+
}
|
|
920
|
+
disconnect() {
|
|
921
|
+
this.autoReconnect = false;
|
|
922
|
+
this.codec?.close();
|
|
923
|
+
this.codec = null;
|
|
924
|
+
this.adapter = null;
|
|
925
|
+
this.ws?.close();
|
|
926
|
+
this.ws = null;
|
|
927
|
+
this.isConnected = false;
|
|
928
|
+
this.cleanupPending(new Error("Bridge disconnected"));
|
|
929
|
+
}
|
|
930
|
+
close() {
|
|
931
|
+
this.disconnect();
|
|
932
|
+
}
|
|
933
|
+
get connected() {
|
|
934
|
+
return this.isConnected;
|
|
935
|
+
}
|
|
936
|
+
handleDisconnect() {
|
|
937
|
+
this.isConnected = false;
|
|
938
|
+
this.codec?.close();
|
|
939
|
+
this.codec = null;
|
|
940
|
+
this.adapter = null;
|
|
941
|
+
this.ws = null;
|
|
942
|
+
this.cleanupPending(new Error("Bridge disconnected"));
|
|
943
|
+
if (this.autoReconnect) {
|
|
944
|
+
setTimeout(() => {
|
|
945
|
+
this.connect().catch((error) => {
|
|
946
|
+
bridgeLog.warn("auto-reconnect attempt failed", error);
|
|
947
|
+
});
|
|
948
|
+
}, this.reconnectDelay);
|
|
949
|
+
}
|
|
950
|
+
}
|
|
951
|
+
cleanupPending(error) {
|
|
952
|
+
for (const pending of this.pendingWsOpens.values()) {
|
|
953
|
+
pending.reject(error);
|
|
954
|
+
}
|
|
955
|
+
this.pendingWsOpens.clear();
|
|
956
|
+
for (const stream of this.activeStreams.values()) {
|
|
957
|
+
stream.closed = true;
|
|
958
|
+
if (stream.pendingPull) {
|
|
959
|
+
stream.pendingPull.reject(error);
|
|
960
|
+
stream.pendingPull = null;
|
|
961
|
+
}
|
|
962
|
+
try {
|
|
963
|
+
stream.controller.error(error);
|
|
964
|
+
} catch {}
|
|
965
|
+
}
|
|
966
|
+
this.activeStreams.clear();
|
|
967
|
+
for (const proxy of this.wsProxies.values()) {
|
|
968
|
+
try {
|
|
969
|
+
proxy.onClose(1006, error.message);
|
|
970
|
+
} catch {}
|
|
971
|
+
}
|
|
972
|
+
this.wsProxies.clear();
|
|
973
|
+
this.outgoingStreams.clear();
|
|
974
|
+
}
|
|
975
|
+
async call(method, params, timeoutMs = 30000) {
|
|
976
|
+
await this.ensureConnected();
|
|
977
|
+
const codec = this.codec;
|
|
978
|
+
if (!codec) {
|
|
979
|
+
throw new Error("Bridge disconnected");
|
|
980
|
+
}
|
|
981
|
+
const { value: serializedParams, streams } = await serializeValue(params);
|
|
982
|
+
for (const streamRef of streams) {
|
|
983
|
+
this.outgoingStreams.set(streamRef.sid, streamRef);
|
|
984
|
+
}
|
|
985
|
+
const callPromise = codec.call(method, serializedParams);
|
|
986
|
+
let timeoutHandle = null;
|
|
987
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
988
|
+
timeoutHandle = setTimeout(() => {
|
|
989
|
+
reject(new Error(`RPC timeout: ${method}`));
|
|
990
|
+
}, timeoutMs);
|
|
991
|
+
});
|
|
992
|
+
try {
|
|
993
|
+
const rawResult = await Promise.race([callPromise, timeoutPromise]);
|
|
994
|
+
return deserializeValue(rawResult, (sid) => this.createReadableStream(sid));
|
|
995
|
+
} catch (error) {
|
|
996
|
+
if (!this.isConnected && error instanceof Error && /v2 transport closed|transport/.test(error.message)) {
|
|
997
|
+
throw new Error("Bridge disconnected");
|
|
998
|
+
}
|
|
999
|
+
throw error;
|
|
1000
|
+
} finally {
|
|
1001
|
+
if (timeoutHandle !== null)
|
|
1002
|
+
clearTimeout(timeoutHandle);
|
|
1003
|
+
}
|
|
1004
|
+
}
|
|
1005
|
+
async createWsProxy(binding, id, url, headers) {
|
|
1006
|
+
await this.ensureConnected();
|
|
1007
|
+
const wid = nextWsId();
|
|
1008
|
+
const proxy = {
|
|
1009
|
+
clientWs: null,
|
|
1010
|
+
onMessage: () => {},
|
|
1011
|
+
onClose: () => {}
|
|
1012
|
+
};
|
|
1013
|
+
this.wsProxies.set(wid, proxy);
|
|
1014
|
+
const openedPromise = new Promise((resolve, reject) => {
|
|
1015
|
+
this.pendingWsOpens.set(wid, { resolve, reject });
|
|
1016
|
+
});
|
|
1017
|
+
const msg = {
|
|
1018
|
+
t: "ws.open",
|
|
1019
|
+
wid,
|
|
1020
|
+
target: { binding, id, url, headers }
|
|
1021
|
+
};
|
|
1022
|
+
this.send(msg);
|
|
1023
|
+
try {
|
|
1024
|
+
await openedPromise;
|
|
1025
|
+
} catch (error) {
|
|
1026
|
+
this.wsProxies.delete(wid);
|
|
1027
|
+
throw error;
|
|
1028
|
+
}
|
|
1029
|
+
return {
|
|
1030
|
+
wid,
|
|
1031
|
+
send: (data) => {
|
|
1032
|
+
const payload = typeof data === "string" ? new TextEncoder().encode(data) : data;
|
|
1033
|
+
const flags = typeof data === "string" ? BinaryFlags.TEXT : 0;
|
|
1034
|
+
const frame = encodeBinaryFrame(BinaryKind.WsData, wid, 0, flags, payload);
|
|
1035
|
+
this.sendBinary(frame);
|
|
1036
|
+
},
|
|
1037
|
+
close: (code, reason) => {
|
|
1038
|
+
const closeMsg = { t: "ws.close", wid, code, reason };
|
|
1039
|
+
this.send(closeMsg);
|
|
1040
|
+
this.wsProxies.delete(wid);
|
|
1041
|
+
},
|
|
1042
|
+
onMessage: (handler) => {
|
|
1043
|
+
proxy.onMessage = handler;
|
|
1044
|
+
},
|
|
1045
|
+
onClose: (handler) => {
|
|
1046
|
+
proxy.onClose = handler;
|
|
1047
|
+
}
|
|
1048
|
+
};
|
|
1049
|
+
}
|
|
1050
|
+
createReadableStream(sid) {
|
|
1051
|
+
return new ReadableStream({
|
|
1052
|
+
start: (controller) => {
|
|
1053
|
+
this.activeStreams.set(sid, {
|
|
1054
|
+
controller,
|
|
1055
|
+
buffer: [],
|
|
1056
|
+
creditRemaining: 0,
|
|
1057
|
+
pendingPull: null,
|
|
1058
|
+
ended: false,
|
|
1059
|
+
closed: false
|
|
1060
|
+
});
|
|
1061
|
+
},
|
|
1062
|
+
pull: async (controller) => {
|
|
1063
|
+
const stream = this.activeStreams.get(sid);
|
|
1064
|
+
if (!stream || stream.closed)
|
|
1065
|
+
return;
|
|
1066
|
+
if (stream.buffer.length > 0) {
|
|
1067
|
+
const chunk = stream.buffer.shift();
|
|
1068
|
+
controller.enqueue(chunk);
|
|
1069
|
+
return;
|
|
1070
|
+
}
|
|
1071
|
+
if (stream.ended) {
|
|
1072
|
+
controller.close();
|
|
1073
|
+
this.activeStreams.delete(sid);
|
|
1074
|
+
return;
|
|
1075
|
+
}
|
|
1076
|
+
const pullMsg = {
|
|
1077
|
+
t: "stream.pull",
|
|
1078
|
+
sid,
|
|
1079
|
+
creditBytes: DEFAULT_CHUNK_SIZE * 4
|
|
1080
|
+
};
|
|
1081
|
+
this.send(pullMsg);
|
|
1082
|
+
await new Promise((resolve, reject) => {
|
|
1083
|
+
stream.pendingPull = { resolve, reject };
|
|
1084
|
+
});
|
|
1085
|
+
stream.pendingPull = null;
|
|
1086
|
+
if (stream.closed)
|
|
1087
|
+
return;
|
|
1088
|
+
if (stream.buffer.length > 0) {
|
|
1089
|
+
const chunk = stream.buffer.shift();
|
|
1090
|
+
controller.enqueue(chunk);
|
|
1091
|
+
return;
|
|
1092
|
+
}
|
|
1093
|
+
if (stream.ended) {
|
|
1094
|
+
controller.close();
|
|
1095
|
+
this.activeStreams.delete(sid);
|
|
1096
|
+
}
|
|
1097
|
+
},
|
|
1098
|
+
cancel: () => {
|
|
1099
|
+
const stream = this.activeStreams.get(sid);
|
|
1100
|
+
if (stream) {
|
|
1101
|
+
stream.closed = true;
|
|
1102
|
+
if (stream.pendingPull) {
|
|
1103
|
+
stream.pendingPull.reject(new Error("Stream cancelled"));
|
|
1104
|
+
stream.pendingPull = null;
|
|
1105
|
+
}
|
|
1106
|
+
}
|
|
1107
|
+
this.activeStreams.delete(sid);
|
|
1108
|
+
}
|
|
1109
|
+
});
|
|
1110
|
+
}
|
|
1111
|
+
handleJsonMessage(data) {
|
|
1112
|
+
try {
|
|
1113
|
+
const msg = parseJsonMsg(data);
|
|
1114
|
+
switch (msg.t) {
|
|
1115
|
+
case "event":
|
|
1116
|
+
this.handleEvent(msg);
|
|
1117
|
+
break;
|
|
1118
|
+
case "stream.pull":
|
|
1119
|
+
this.handleStreamPull(msg);
|
|
1120
|
+
break;
|
|
1121
|
+
case "stream.end":
|
|
1122
|
+
this.handleStreamEnd(msg);
|
|
1123
|
+
break;
|
|
1124
|
+
case "stream.abort":
|
|
1125
|
+
this.handleStreamAbort(msg);
|
|
1126
|
+
break;
|
|
1127
|
+
case "ws.opened":
|
|
1128
|
+
this.handleWsOpened(msg);
|
|
1129
|
+
break;
|
|
1130
|
+
case "ws.close":
|
|
1131
|
+
this.handleWsClose(msg);
|
|
1132
|
+
break;
|
|
1133
|
+
}
|
|
1134
|
+
} catch (error) {
|
|
1135
|
+
console.error("[devflare bridge client] parse error:", data, error);
|
|
1136
|
+
}
|
|
1137
|
+
}
|
|
1138
|
+
handleV2BinaryFrame(frame) {
|
|
1139
|
+
switch (frame.kind) {
|
|
1140
|
+
case BinaryKind.StreamChunk:
|
|
1141
|
+
this.handleStreamChunk(frame);
|
|
1142
|
+
break;
|
|
1143
|
+
case BinaryKind.WsData:
|
|
1144
|
+
this.handleWsData(frame);
|
|
1145
|
+
break;
|
|
1146
|
+
}
|
|
1147
|
+
}
|
|
1148
|
+
handleEvent(_msg) {}
|
|
1149
|
+
handleStreamPull(msg) {
|
|
1150
|
+
const streamRef = this.outgoingStreams.get(msg.sid);
|
|
1151
|
+
if (!streamRef)
|
|
1152
|
+
return;
|
|
1153
|
+
this.pumpStream(streamRef, msg.creditBytes);
|
|
1154
|
+
}
|
|
1155
|
+
async pumpStream(streamRef, creditBytes) {
|
|
1156
|
+
const reader = streamRef.stream.getReader();
|
|
1157
|
+
let sent = 0;
|
|
1158
|
+
let seq = 0;
|
|
1159
|
+
try {
|
|
1160
|
+
while (sent < creditBytes) {
|
|
1161
|
+
const { done, value } = await reader.read();
|
|
1162
|
+
if (done) {
|
|
1163
|
+
this.send({ t: "stream.end", sid: streamRef.sid });
|
|
1164
|
+
this.outgoingStreams.delete(streamRef.sid);
|
|
1165
|
+
break;
|
|
1166
|
+
}
|
|
1167
|
+
if (value) {
|
|
1168
|
+
const frame = encodeBinaryFrame(BinaryKind.StreamChunk, streamRef.sid, seq++, 0, value);
|
|
1169
|
+
this.sendBinary(frame);
|
|
1170
|
+
sent += value.byteLength;
|
|
1171
|
+
}
|
|
1172
|
+
}
|
|
1173
|
+
} catch (error) {
|
|
1174
|
+
this.send({
|
|
1175
|
+
t: "stream.abort",
|
|
1176
|
+
sid: streamRef.sid,
|
|
1177
|
+
error: String(error)
|
|
1178
|
+
});
|
|
1179
|
+
this.outgoingStreams.delete(streamRef.sid);
|
|
1180
|
+
} finally {
|
|
1181
|
+
reader.releaseLock();
|
|
1182
|
+
}
|
|
1183
|
+
}
|
|
1184
|
+
handleStreamChunk(decoded) {
|
|
1185
|
+
const stream = this.activeStreams.get(decoded.id);
|
|
1186
|
+
if (!stream || stream.closed)
|
|
1187
|
+
return;
|
|
1188
|
+
stream.buffer.push(decoded.payload);
|
|
1189
|
+
if (stream.pendingPull) {
|
|
1190
|
+
const pending = stream.pendingPull;
|
|
1191
|
+
stream.pendingPull = null;
|
|
1192
|
+
pending.resolve();
|
|
1193
|
+
}
|
|
1194
|
+
}
|
|
1195
|
+
handleStreamEnd(msg) {
|
|
1196
|
+
const stream = this.activeStreams.get(msg.sid);
|
|
1197
|
+
if (!stream)
|
|
1198
|
+
return;
|
|
1199
|
+
stream.ended = true;
|
|
1200
|
+
if (stream.pendingPull) {
|
|
1201
|
+
const pending = stream.pendingPull;
|
|
1202
|
+
stream.pendingPull = null;
|
|
1203
|
+
pending.resolve();
|
|
1204
|
+
}
|
|
1205
|
+
}
|
|
1206
|
+
handleStreamAbort(msg) {
|
|
1207
|
+
const stream = this.activeStreams.get(msg.sid);
|
|
1208
|
+
if (!stream)
|
|
1209
|
+
return;
|
|
1210
|
+
const err = new Error(msg.error ?? "Stream aborted");
|
|
1211
|
+
stream.closed = true;
|
|
1212
|
+
if (stream.pendingPull) {
|
|
1213
|
+
const pending = stream.pendingPull;
|
|
1214
|
+
stream.pendingPull = null;
|
|
1215
|
+
pending.reject(err);
|
|
1216
|
+
}
|
|
1217
|
+
try {
|
|
1218
|
+
stream.controller.error(err);
|
|
1219
|
+
} catch {}
|
|
1220
|
+
this.activeStreams.delete(msg.sid);
|
|
1221
|
+
}
|
|
1222
|
+
handleWsData(decoded) {
|
|
1223
|
+
const proxy = this.wsProxies.get(decoded.id);
|
|
1224
|
+
if (!proxy)
|
|
1225
|
+
return;
|
|
1226
|
+
const isText = (decoded.flags & BinaryFlags.TEXT) !== 0;
|
|
1227
|
+
const data = isText ? new TextDecoder().decode(decoded.payload) : decoded.payload;
|
|
1228
|
+
proxy.onMessage(data);
|
|
1229
|
+
}
|
|
1230
|
+
handleWsClose(msg) {
|
|
1231
|
+
const proxy = this.wsProxies.get(msg.wid);
|
|
1232
|
+
if (!proxy)
|
|
1233
|
+
return;
|
|
1234
|
+
proxy.onClose(msg.code, msg.reason);
|
|
1235
|
+
this.wsProxies.delete(msg.wid);
|
|
1236
|
+
}
|
|
1237
|
+
handleWsOpened(msg) {
|
|
1238
|
+
const pending = this.pendingWsOpens.get(msg.wid);
|
|
1239
|
+
if (!pending)
|
|
1240
|
+
return;
|
|
1241
|
+
this.pendingWsOpens.delete(msg.wid);
|
|
1242
|
+
pending.resolve();
|
|
1243
|
+
}
|
|
1244
|
+
async ensureConnected() {
|
|
1245
|
+
if (!this.isConnected) {
|
|
1246
|
+
await this.connect();
|
|
1247
|
+
}
|
|
1248
|
+
}
|
|
1249
|
+
send(msg) {
|
|
1250
|
+
const codec = this.codec;
|
|
1251
|
+
if (!codec || !this.isConnected) {
|
|
1252
|
+
throw new Error("Not connected to bridge");
|
|
1253
|
+
}
|
|
1254
|
+
codec.sendText(stringifyJsonMsg(msg));
|
|
1255
|
+
}
|
|
1256
|
+
sendBinary(frame) {
|
|
1257
|
+
const codec = this.codec;
|
|
1258
|
+
if (!codec || !this.isConnected) {
|
|
1259
|
+
throw new Error("Not connected to bridge");
|
|
1260
|
+
}
|
|
1261
|
+
codec.sendBinary(frame);
|
|
1262
|
+
}
|
|
1263
|
+
}
|
|
1264
|
+
var defaultClient = null;
|
|
1265
|
+
function getClient(options) {
|
|
1266
|
+
if (!defaultClient) {
|
|
1267
|
+
defaultClient = new BridgeClient(options);
|
|
1268
|
+
}
|
|
1269
|
+
return defaultClient;
|
|
1270
|
+
}
|
|
1271
|
+
|
|
1272
|
+
// src/bridge/proxy.ts
|
|
1273
|
+
function createKVProxy(client, bindingName) {
|
|
1274
|
+
return {
|
|
1275
|
+
async get(key, options) {
|
|
1276
|
+
return client.call(`${bindingName}.kv.get`, [key, options]);
|
|
1277
|
+
},
|
|
1278
|
+
async put(key, value, options) {
|
|
1279
|
+
await client.call(`${bindingName}.kv.put`, [key, value, options]);
|
|
1280
|
+
},
|
|
1281
|
+
async delete(key) {
|
|
1282
|
+
await client.call(`${bindingName}.kv.delete`, [key]);
|
|
1283
|
+
},
|
|
1284
|
+
async list(options) {
|
|
1285
|
+
return client.call(`${bindingName}.kv.list`, [options]);
|
|
1286
|
+
},
|
|
1287
|
+
async getWithMetadata(key, options) {
|
|
1288
|
+
return client.call(`${bindingName}.kv.getWithMetadata`, [key, options]);
|
|
1289
|
+
}
|
|
1290
|
+
};
|
|
1291
|
+
}
|
|
1292
|
+
function createR2Proxy(client, bindingName) {
|
|
1293
|
+
return {
|
|
1294
|
+
async head(key) {
|
|
1295
|
+
return client.call(`${bindingName}.r2.head`, [key]);
|
|
1296
|
+
},
|
|
1297
|
+
async get(key, options) {
|
|
1298
|
+
return client.call(`${bindingName}.r2.get`, [key, options]);
|
|
1299
|
+
},
|
|
1300
|
+
async put(key, value, options) {
|
|
1301
|
+
const size = getValueSize(value);
|
|
1302
|
+
if (size > HTTP_TRANSFER_THRESHOLD) {
|
|
1303
|
+
const transferId = `${bindingName}:${key}`;
|
|
1304
|
+
const httpUrl = client.getHttpUrl();
|
|
1305
|
+
const transferUrl = httpUrl.replace(/\/$/, "") + `/_devflare/transfer/${encodeURIComponent(transferId)}`;
|
|
1306
|
+
const response = await fetch(transferUrl, {
|
|
1307
|
+
method: "PUT",
|
|
1308
|
+
body: value,
|
|
1309
|
+
headers: {
|
|
1310
|
+
...options?.httpMetadata?.contentType ? { "Content-Type": options.httpMetadata.contentType } : {}
|
|
1311
|
+
}
|
|
1312
|
+
});
|
|
1313
|
+
if (!response.ok) {
|
|
1314
|
+
const error = await response.text();
|
|
1315
|
+
throw new Error(`HTTP transfer failed: ${error}`);
|
|
1316
|
+
}
|
|
1317
|
+
const serialized = await response.json();
|
|
1318
|
+
return deserializeValue(serialized);
|
|
1319
|
+
}
|
|
1320
|
+
return client.call(`${bindingName}.r2.put`, [key, value, options]);
|
|
1321
|
+
},
|
|
1322
|
+
async delete(keys) {
|
|
1323
|
+
await client.call(`${bindingName}.r2.delete`, [keys]);
|
|
1324
|
+
},
|
|
1325
|
+
async list(options) {
|
|
1326
|
+
return client.call(`${bindingName}.r2.list`, [options]);
|
|
1327
|
+
},
|
|
1328
|
+
async createMultipartUpload(key, options) {
|
|
1329
|
+
return client.call(`${bindingName}.r2.createMultipartUpload`, [key, options]);
|
|
1330
|
+
},
|
|
1331
|
+
async resumeMultipartUpload(key, uploadId) {
|
|
1332
|
+
return client.call(`${bindingName}.r2.resumeMultipartUpload`, [key, uploadId]);
|
|
1333
|
+
}
|
|
1334
|
+
};
|
|
1335
|
+
}
|
|
1336
|
+
function getValueSize(value) {
|
|
1337
|
+
if (value instanceof Blob)
|
|
1338
|
+
return value.size;
|
|
1339
|
+
if (value instanceof ArrayBuffer)
|
|
1340
|
+
return value.byteLength;
|
|
1341
|
+
if (value instanceof Uint8Array)
|
|
1342
|
+
return value.byteLength;
|
|
1343
|
+
if (typeof value === "string")
|
|
1344
|
+
return new TextEncoder().encode(value).byteLength;
|
|
1345
|
+
if (value instanceof ReadableStream)
|
|
1346
|
+
return Infinity;
|
|
1347
|
+
return 0;
|
|
1348
|
+
}
|
|
1349
|
+
function createD1Proxy(client, bindingName) {
|
|
1350
|
+
return {
|
|
1351
|
+
prepare(sql) {
|
|
1352
|
+
return createD1StatementProxy(client, bindingName, sql, []);
|
|
1353
|
+
},
|
|
1354
|
+
async batch(statements) {
|
|
1355
|
+
const serialized = statements.map((stmt) => {
|
|
1356
|
+
const s = stmt;
|
|
1357
|
+
return { sql: s._sql, bindings: s._bindings };
|
|
1358
|
+
});
|
|
1359
|
+
return client.call(`${bindingName}.d1.batch`, [serialized]);
|
|
1360
|
+
},
|
|
1361
|
+
async exec(sql) {
|
|
1362
|
+
return client.call(`${bindingName}.d1.exec`, [sql]);
|
|
1363
|
+
},
|
|
1364
|
+
async dump() {
|
|
1365
|
+
return client.call(`${bindingName}.d1.dump`, []);
|
|
1366
|
+
}
|
|
1367
|
+
};
|
|
1368
|
+
}
|
|
1369
|
+
function createD1StatementProxy(client, bindingName, sql, bindings) {
|
|
1370
|
+
const stmt = {
|
|
1371
|
+
_sql: sql,
|
|
1372
|
+
_bindings: bindings,
|
|
1373
|
+
bind(...values) {
|
|
1374
|
+
return createD1StatementProxy(client, bindingName, sql, values);
|
|
1375
|
+
},
|
|
1376
|
+
async first(column) {
|
|
1377
|
+
return client.call(`${bindingName}.d1.stmt.first`, [sql, ...bindings, column]);
|
|
1378
|
+
},
|
|
1379
|
+
async all() {
|
|
1380
|
+
return client.call(`${bindingName}.d1.stmt.all`, [sql, ...bindings]);
|
|
1381
|
+
},
|
|
1382
|
+
async run() {
|
|
1383
|
+
return client.call(`${bindingName}.d1.stmt.run`, [sql, ...bindings]);
|
|
1384
|
+
},
|
|
1385
|
+
async raw(options) {
|
|
1386
|
+
return client.call(`${bindingName}.d1.stmt.raw`, [sql, ...bindings, options]);
|
|
1387
|
+
}
|
|
1388
|
+
};
|
|
1389
|
+
return stmt;
|
|
1390
|
+
}
|
|
1391
|
+
function createDOProxy(client, bindingName, proxyOptions = {}) {
|
|
1392
|
+
return {
|
|
1393
|
+
idFromName(name) {
|
|
1394
|
+
return createDOIdProxy(client, bindingName, { type: "name", value: name });
|
|
1395
|
+
},
|
|
1396
|
+
idFromString(hexId) {
|
|
1397
|
+
return createDOIdProxy(client, bindingName, { type: "hex", value: hexId });
|
|
1398
|
+
},
|
|
1399
|
+
newUniqueId(options) {
|
|
1400
|
+
const tempId = crypto.randomUUID().replace(/-/g, "");
|
|
1401
|
+
return createDOIdProxy(client, bindingName, { type: "unique", value: tempId, options });
|
|
1402
|
+
},
|
|
1403
|
+
get(id) {
|
|
1404
|
+
const idProxy = id;
|
|
1405
|
+
return createDOStubProxy(client, bindingName, idProxy._idInfo, proxyOptions);
|
|
1406
|
+
},
|
|
1407
|
+
getByName(name) {
|
|
1408
|
+
const id = this.idFromName(name);
|
|
1409
|
+
return this.get(id);
|
|
1410
|
+
},
|
|
1411
|
+
jurisdiction(jurisdiction) {
|
|
1412
|
+
return createDOProxy(client, bindingName, proxyOptions);
|
|
1413
|
+
}
|
|
1414
|
+
};
|
|
1415
|
+
}
|
|
1416
|
+
function createDOIdProxy(client, bindingName, idInfo) {
|
|
1417
|
+
return {
|
|
1418
|
+
_idInfo: idInfo,
|
|
1419
|
+
toString() {
|
|
1420
|
+
if (idInfo.type === "hex")
|
|
1421
|
+
return idInfo.value;
|
|
1422
|
+
return `${idInfo.type}:${idInfo.value}`;
|
|
1423
|
+
},
|
|
1424
|
+
equals(other) {
|
|
1425
|
+
return this.toString() === other.toString();
|
|
1426
|
+
}
|
|
1427
|
+
};
|
|
1428
|
+
}
|
|
1429
|
+
function createDOStubProxy(client, bindingName, idInfo, proxyOptions = {}) {
|
|
1430
|
+
const { transformResult } = proxyOptions;
|
|
1431
|
+
let resolvedId = null;
|
|
1432
|
+
const resolveId = async () => {
|
|
1433
|
+
if (resolvedId)
|
|
1434
|
+
return resolvedId;
|
|
1435
|
+
switch (idInfo.type) {
|
|
1436
|
+
case "name":
|
|
1437
|
+
resolvedId = await client.call(`${bindingName}.do.idFromName`, [idInfo.value]);
|
|
1438
|
+
break;
|
|
1439
|
+
case "hex":
|
|
1440
|
+
resolvedId = { __type: "DOId", hex: idInfo.value };
|
|
1441
|
+
break;
|
|
1442
|
+
case "unique":
|
|
1443
|
+
resolvedId = await client.call(`${bindingName}.do.newUniqueId`, [idInfo.options]);
|
|
1444
|
+
break;
|
|
1445
|
+
}
|
|
1446
|
+
return resolvedId;
|
|
1447
|
+
};
|
|
1448
|
+
const stubBase = {
|
|
1449
|
+
async fetch(input, init) {
|
|
1450
|
+
const id = await resolveId();
|
|
1451
|
+
const request = input instanceof Request ? input : new Request(input, init);
|
|
1452
|
+
const { serialized } = await serializeRequest(request);
|
|
1453
|
+
const result = await client.call(`${bindingName}.do.fetch`, [bindingName, id, serialized]);
|
|
1454
|
+
return deserializeResponse(result);
|
|
1455
|
+
},
|
|
1456
|
+
async connect(url, options) {
|
|
1457
|
+
const id = await resolveId();
|
|
1458
|
+
const headersList = [];
|
|
1459
|
+
if (options?.headers) {
|
|
1460
|
+
const headers = new Headers(options.headers);
|
|
1461
|
+
headers.forEach((value, key) => {
|
|
1462
|
+
headersList.push([key, value]);
|
|
1463
|
+
});
|
|
1464
|
+
}
|
|
1465
|
+
const wsProxy = await client.createWsProxy(bindingName, id.hex, url, headersList);
|
|
1466
|
+
let readController = null;
|
|
1467
|
+
const readable = new ReadableStream({
|
|
1468
|
+
start(controller) {
|
|
1469
|
+
readController = controller;
|
|
1470
|
+
},
|
|
1471
|
+
cancel() {
|
|
1472
|
+
wsProxy.close();
|
|
1473
|
+
}
|
|
1474
|
+
});
|
|
1475
|
+
wsProxy.onMessage((data) => {
|
|
1476
|
+
if (readController) {
|
|
1477
|
+
const chunk = typeof data === "string" ? new TextEncoder().encode(data) : data;
|
|
1478
|
+
readController.enqueue(chunk);
|
|
1479
|
+
}
|
|
1480
|
+
});
|
|
1481
|
+
wsProxy.onClose((code, reason) => {
|
|
1482
|
+
if (readController) {
|
|
1483
|
+
readController.close();
|
|
1484
|
+
}
|
|
1485
|
+
});
|
|
1486
|
+
const writable = new WritableStream({
|
|
1487
|
+
write(chunk) {
|
|
1488
|
+
wsProxy.send(chunk);
|
|
1489
|
+
},
|
|
1490
|
+
close() {
|
|
1491
|
+
wsProxy.close(1000, "Normal closure");
|
|
1492
|
+
},
|
|
1493
|
+
abort(reason) {
|
|
1494
|
+
wsProxy.close(1001, reason?.toString() ?? "Aborted");
|
|
1495
|
+
}
|
|
1496
|
+
});
|
|
1497
|
+
return {
|
|
1498
|
+
readable,
|
|
1499
|
+
writable,
|
|
1500
|
+
get opened() {
|
|
1501
|
+
return Promise.resolve({
|
|
1502
|
+
remoteAddress: "127.0.0.1",
|
|
1503
|
+
localAddress: "127.0.0.1"
|
|
1504
|
+
});
|
|
1505
|
+
},
|
|
1506
|
+
get closed() {
|
|
1507
|
+
return new Promise((resolve) => {
|
|
1508
|
+
wsProxy.onClose(() => resolve());
|
|
1509
|
+
});
|
|
1510
|
+
},
|
|
1511
|
+
close() {
|
|
1512
|
+
wsProxy.close(1000, "Normal closure");
|
|
1513
|
+
return Promise.resolve();
|
|
1514
|
+
},
|
|
1515
|
+
startTls() {
|
|
1516
|
+
throw new Error("startTls not supported on DO WebSocket proxy");
|
|
1517
|
+
}
|
|
1518
|
+
};
|
|
1519
|
+
},
|
|
1520
|
+
get id() {
|
|
1521
|
+
return createDOIdProxy(client, bindingName, idInfo);
|
|
1522
|
+
},
|
|
1523
|
+
get name() {
|
|
1524
|
+
return idInfo.type === "name" ? idInfo.value : undefined;
|
|
1525
|
+
}
|
|
1526
|
+
};
|
|
1527
|
+
return new Proxy(stubBase, {
|
|
1528
|
+
get(target, prop) {
|
|
1529
|
+
if (prop in target) {
|
|
1530
|
+
return target[prop];
|
|
1531
|
+
}
|
|
1532
|
+
if (typeof prop === "symbol") {
|
|
1533
|
+
return;
|
|
1534
|
+
}
|
|
1535
|
+
if (prop === "then" || prop === "catch" || prop === "finally") {
|
|
1536
|
+
return;
|
|
1537
|
+
}
|
|
1538
|
+
return async (...args) => {
|
|
1539
|
+
const id = await resolveId();
|
|
1540
|
+
let result = await client.call(`${bindingName}.do.rpc`, [
|
|
1541
|
+
bindingName,
|
|
1542
|
+
id,
|
|
1543
|
+
prop,
|
|
1544
|
+
args
|
|
1545
|
+
]);
|
|
1546
|
+
if (transformResult) {
|
|
1547
|
+
result = transformResult(result);
|
|
1548
|
+
}
|
|
1549
|
+
return result;
|
|
1550
|
+
};
|
|
1551
|
+
}
|
|
1552
|
+
});
|
|
1553
|
+
}
|
|
1554
|
+
var EMPTY_QUEUE_METRICS = {
|
|
1555
|
+
backlogCount: 0,
|
|
1556
|
+
backlogBytes: 0
|
|
1557
|
+
};
|
|
1558
|
+
function createQueueResponse() {
|
|
1559
|
+
return { metadata: { metrics: EMPTY_QUEUE_METRICS } };
|
|
1560
|
+
}
|
|
1561
|
+
function createQueueProxy(client, bindingName) {
|
|
1562
|
+
return {
|
|
1563
|
+
async metrics() {
|
|
1564
|
+
return EMPTY_QUEUE_METRICS;
|
|
1565
|
+
},
|
|
1566
|
+
async send(message, options) {
|
|
1567
|
+
await client.call(`${bindingName}.queue.send`, [message, options]);
|
|
1568
|
+
return createQueueResponse();
|
|
1569
|
+
},
|
|
1570
|
+
async sendBatch(messages, options) {
|
|
1571
|
+
await client.call(`${bindingName}.queue.sendBatch`, [messages, options]);
|
|
1572
|
+
return createQueueResponse();
|
|
1573
|
+
}
|
|
1574
|
+
};
|
|
1575
|
+
}
|
|
1576
|
+
function createAIProxy(client, bindingName) {
|
|
1577
|
+
return {
|
|
1578
|
+
async run(model, inputs, options) {
|
|
1579
|
+
return client.call(`${bindingName}.ai.run`, [model, inputs, options]);
|
|
1580
|
+
}
|
|
1581
|
+
};
|
|
1582
|
+
}
|
|
1583
|
+
function createSendEmailProxy(client, bindingName) {
|
|
1584
|
+
return {
|
|
1585
|
+
async send(message) {
|
|
1586
|
+
return client.call(`${bindingName}.email.send`, [message]);
|
|
1587
|
+
}
|
|
1588
|
+
};
|
|
1589
|
+
}
|
|
1590
|
+
var globalBindingHints = {};
|
|
1591
|
+
function createEnvProxy(options = {}) {
|
|
1592
|
+
const client = options.client ?? getClient();
|
|
1593
|
+
const bindingProxies = new Map;
|
|
1594
|
+
const doProxyOptions = { transformResult: options.transformResult };
|
|
1595
|
+
const hints = { ...globalBindingHints, ...options.hints };
|
|
1596
|
+
return new Proxy({}, {
|
|
1597
|
+
get(target, prop) {
|
|
1598
|
+
if (typeof prop !== "string")
|
|
1599
|
+
return;
|
|
1600
|
+
if (bindingProxies.has(prop)) {
|
|
1601
|
+
return bindingProxies.get(prop);
|
|
1602
|
+
}
|
|
1603
|
+
const hint = hints[prop];
|
|
1604
|
+
let proxy;
|
|
1605
|
+
switch (hint) {
|
|
1606
|
+
case "kv":
|
|
1607
|
+
proxy = createKVProxy(client, prop);
|
|
1608
|
+
break;
|
|
1609
|
+
case "r2":
|
|
1610
|
+
proxy = createR2Proxy(client, prop);
|
|
1611
|
+
break;
|
|
1612
|
+
case "d1":
|
|
1613
|
+
proxy = createD1Proxy(client, prop);
|
|
1614
|
+
break;
|
|
1615
|
+
case "do":
|
|
1616
|
+
proxy = createDOProxy(client, prop, doProxyOptions);
|
|
1617
|
+
break;
|
|
1618
|
+
case "queue":
|
|
1619
|
+
proxy = createQueueProxy(client, prop);
|
|
1620
|
+
break;
|
|
1621
|
+
case "ai":
|
|
1622
|
+
proxy = createAIProxy(client, prop);
|
|
1623
|
+
break;
|
|
1624
|
+
case "sendEmail":
|
|
1625
|
+
proxy = createSendEmailProxy(client, prop);
|
|
1626
|
+
break;
|
|
1627
|
+
case "secret":
|
|
1628
|
+
case "var":
|
|
1629
|
+
proxy = createSimpleBindingProxy(client, prop);
|
|
1630
|
+
break;
|
|
1631
|
+
default:
|
|
1632
|
+
proxy = createGenericBindingProxy(client, prop);
|
|
1633
|
+
}
|
|
1634
|
+
bindingProxies.set(prop, proxy);
|
|
1635
|
+
return proxy;
|
|
1636
|
+
},
|
|
1637
|
+
has(target, prop) {
|
|
1638
|
+
return typeof prop === "string";
|
|
1639
|
+
},
|
|
1640
|
+
ownKeys() {
|
|
1641
|
+
return Object.keys(hints);
|
|
1642
|
+
},
|
|
1643
|
+
getOwnPropertyDescriptor(target, prop) {
|
|
1644
|
+
if (typeof prop === "string") {
|
|
1645
|
+
return { configurable: true, enumerable: true, writable: false };
|
|
1646
|
+
}
|
|
1647
|
+
return;
|
|
1648
|
+
}
|
|
1649
|
+
});
|
|
1650
|
+
}
|
|
1651
|
+
function createGenericBindingProxy(client, bindingName) {
|
|
1652
|
+
return new Proxy({}, {
|
|
1653
|
+
get(target, prop) {
|
|
1654
|
+
if (typeof prop !== "string")
|
|
1655
|
+
return;
|
|
1656
|
+
if (["get", "put", "delete", "list", "getWithMetadata"].includes(prop)) {
|
|
1657
|
+
return createKVProxy(client, bindingName)[prop];
|
|
1658
|
+
}
|
|
1659
|
+
if (["idFromName", "idFromString", "newUniqueId", "get"].includes(prop)) {
|
|
1660
|
+
return createDOProxy(client, bindingName)[prop];
|
|
1661
|
+
}
|
|
1662
|
+
if (["prepare", "batch", "exec", "dump"].includes(prop)) {
|
|
1663
|
+
return createD1Proxy(client, bindingName)[prop];
|
|
1664
|
+
}
|
|
1665
|
+
if (["head"].includes(prop)) {
|
|
1666
|
+
return createR2Proxy(client, bindingName)[prop];
|
|
1667
|
+
}
|
|
1668
|
+
return async (...args) => {
|
|
1669
|
+
return client.call(`${bindingName}.${prop}`, args);
|
|
1670
|
+
};
|
|
1671
|
+
}
|
|
1672
|
+
});
|
|
1673
|
+
}
|
|
1674
|
+
function createSimpleBindingProxy(client, bindingName) {
|
|
1675
|
+
let cachedValue;
|
|
1676
|
+
let fetched = false;
|
|
1677
|
+
let pendingValue = null;
|
|
1678
|
+
const loadValue = () => {
|
|
1679
|
+
if (fetched) {
|
|
1680
|
+
return Promise.resolve(cachedValue);
|
|
1681
|
+
}
|
|
1682
|
+
if (!pendingValue) {
|
|
1683
|
+
pendingValue = client.call(`${bindingName}.var.value`, []).then((value) => {
|
|
1684
|
+
cachedValue = value;
|
|
1685
|
+
fetched = true;
|
|
1686
|
+
return value;
|
|
1687
|
+
}).catch((error) => {
|
|
1688
|
+
pendingValue = null;
|
|
1689
|
+
throw error;
|
|
1690
|
+
});
|
|
1691
|
+
}
|
|
1692
|
+
return pendingValue;
|
|
1693
|
+
};
|
|
1694
|
+
return {
|
|
1695
|
+
then(resolve, reject) {
|
|
1696
|
+
return loadValue().then(resolve ?? undefined, reject ?? undefined);
|
|
1697
|
+
},
|
|
1698
|
+
toString() {
|
|
1699
|
+
if (!fetched)
|
|
1700
|
+
throw new Error(`Binding ${bindingName} not yet fetched. Use await.`);
|
|
1701
|
+
return String(cachedValue);
|
|
1702
|
+
}
|
|
1703
|
+
};
|
|
1704
|
+
}
|
|
1705
|
+
var globalEnvProxy = null;
|
|
1706
|
+
var bridgeEnv = new Proxy({}, {
|
|
1707
|
+
get(target, prop) {
|
|
1708
|
+
if (!globalEnvProxy) {
|
|
1709
|
+
globalEnvProxy = createEnvProxy({ lazy: true });
|
|
1710
|
+
}
|
|
1711
|
+
return globalEnvProxy[prop];
|
|
1712
|
+
}
|
|
1713
|
+
});
|
|
1714
|
+
function initEnv(options = {}) {
|
|
1715
|
+
globalEnvProxy = createEnvProxy(options);
|
|
1716
|
+
return globalEnvProxy;
|
|
1717
|
+
}
|
|
1718
|
+
function setBindingHints(hints) {
|
|
1719
|
+
globalBindingHints = { ...globalBindingHints, ...hints };
|
|
1720
|
+
globalEnvProxy = null;
|
|
1721
|
+
}
|
|
1722
|
+
|
|
1723
|
+
export { BridgeClient, getClient, createEnvProxy, bridgeEnv, initEnv, setBindingHints };
|