devflare 1.0.0-next.3 → 1.0.0-next.31
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 +15964 -1751
- package/README.md +392 -605
- package/bin/devflare.js +24 -14
- package/dist/account-g99mzrqp.js +475 -0
- package/dist/api-2n6dd2ws.js +33 -0
- package/dist/bridge/client.d.ts +48 -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 +74 -1
- package/dist/bridge/miniflare.d.ts.map +1 -1
- package/dist/bridge/proxy.d.ts +11 -10
- package/dist/bridge/proxy.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/serialization.d.ts +48 -0
- package/dist/bridge/v2/serialization.d.ts.map +1 -0
- package/dist/bridge/v2/transport.d.ts +31 -0
- package/dist/bridge/v2/transport.d.ts.map +1 -0
- package/dist/bridge/v2/value-codec.d.ts +61 -0
- package/dist/bridge/v2/value-codec.d.ts.map +1 -0
- package/dist/bridge/{serialization.d.ts → v2/value-serialization.d.ts} +40 -18
- package/dist/bridge/v2/value-serialization.d.ts.map +1 -0
- package/dist/bridge/{protocol.d.ts → v2/wire.d.ts} +28 -4
- 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 +4621 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +147 -0
- package/dist/build-4tyjywn9.js +54 -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 +8 -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 +112 -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 +44 -0
- package/dist/cloudflare/tokens.d.ts.map +1 -0
- package/dist/cloudflare/types.d.ts +124 -7
- package/dist/cloudflare/types.d.ts.map +1 -1
- package/dist/cloudflare/usage.d.ts +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 +270 -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/define.d.ts +7 -4
- package/dist/config/define.d.ts.map +1 -1
- package/dist/config/deploy-resources.d.ts +58 -0
- package/dist/config/deploy-resources.d.ts.map +1 -0
- package/dist/config/env-vars.d.ts +309 -0
- package/dist/config/env-vars.d.ts.map +1 -0
- package/dist/config/framework-providers.d.ts +9 -0
- package/dist/config/framework-providers.d.ts.map +1 -0
- package/dist/config/index.d.ts +12 -5
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/loader.d.ts +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 +3023 -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 +500 -0
- package/dist/config/schema-runtime.d.ts.map +1 -0
- package/dist/config/schema-types-bindings-platform.d.ts +378 -0
- package/dist/config/schema-types-bindings-platform.d.ts.map +1 -0
- package/dist/config/schema-types-bindings-resources.d.ts +551 -0
- package/dist/config/schema-types-bindings-resources.d.ts.map +1 -0
- package/dist/config/schema-types-bindings.d.ts +254 -0
- package/dist/config/schema-types-bindings.d.ts.map +1 -0
- package/dist/config/schema-types-build.d.ts +86 -0
- package/dist/config/schema-types-build.d.ts.map +1 -0
- package/dist/config/schema-types-runtime.d.ts +917 -0
- package/dist/config/schema-types-runtime.d.ts.map +1 -0
- package/dist/config/schema-types.d.ts +424 -0
- package/dist/config/schema-types.d.ts.map +1 -0
- package/dist/config/schema.d.ts +4537 -2214
- 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-88sdhx3w.js +105 -0
- package/dist/config-entry.d.ts +7 -0
- package/dist/config-entry.d.ts.map +1 -0
- package/dist/config-entry.js +16 -0
- package/dist/decorators/durable-object.d.ts.map +1 -1
- package/dist/deploy-8fpav2cw.js +1066 -0
- package/dist/dev-nxevkfdv.js +2609 -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 +36 -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 +19 -1
- package/dist/dev-server/vite-utils.d.ts.map +1 -1
- package/dist/dev-server/worker-source-watcher.d.ts +17 -0
- package/dist/dev-server/worker-source-watcher.d.ts.map +1 -0
- package/dist/dev-server/worker-surface-paths.d.ts +6 -0
- package/dist/dev-server/worker-surface-paths.d.ts.map +1 -0
- package/dist/{doctor-fmgb3d28.js → doctor-ztwx1y95.js} +104 -35
- package/dist/{durable-object-t4kbb0yt.js → durable-object-v3gsnybk.js} +1 -1
- package/dist/env.d.ts +10 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/index-11p28kxx.js +256 -0
- package/dist/index-15fpa5tx.js +232 -0
- package/dist/index-1d4jg11n.js +542 -0
- package/dist/index-3edvz3hs.js +124 -0
- package/dist/index-3jme4hgw.js +1234 -0
- package/dist/index-627srx16.js +45 -0
- package/dist/index-62b3gt2g.js +12 -0
- package/dist/index-67gr49zr.js +109 -0
- package/dist/index-69c0ed4a.js +895 -0
- package/dist/index-6sj0v0dk.js +2284 -0
- package/dist/index-7qd7nmdd.js +74 -0
- package/dist/index-85yjb686.js +413 -0
- package/dist/index-aabgympv.js +39 -0
- package/dist/{index-z14anrqp.js → index-aqrwyy57.js} +93 -31
- package/dist/index-c8p4njqy.js +479 -0
- package/dist/index-dfcp9hsd.js +1581 -0
- package/dist/index-dm9q84c7.js +360 -0
- package/dist/index-fcmj6641.js +147 -0
- package/dist/index-ft3trvra.js +476 -0
- package/dist/{index-18hvb6gb.js → index-gn5wy09x.js} +13 -2
- package/dist/index-hjjfxv02.js +708 -0
- package/dist/index-hpwa6vsw.js +239 -0
- package/dist/index-k9x5v335.js +1033 -0
- package/dist/index-mg8vwqxf.js +514 -0
- package/dist/index-ptwem1nt.js +1428 -0
- package/dist/{index-07q6yxyc.js → index-q8f4kawk.js} +68 -32
- package/dist/index-qmmqww7h.js +133 -0
- package/dist/{index-rbht7m9r.js → index-qwgr4q7s.js} +2 -1
- package/dist/index-qz6nbwpw.js +111 -0
- package/dist/index-rzp9ejrh.js +185 -0
- package/dist/index-s3km3y34.js +1205 -0
- package/dist/index-stgn34cr.js +148 -0
- package/dist/index-t9y0sve5.js +155 -0
- package/dist/index-vez803pp.js +52 -0
- package/dist/index-vhqww6tt.js +307 -0
- package/dist/index-xz18tstn.js +581 -0
- package/dist/{index-1xpj0m4r.js → index-z9gy8w6b.js} +1 -1
- package/dist/index-za0r01bx.js +588 -0
- package/dist/index.d.ts +3 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +34 -269
- package/dist/{init-f9mgmew3.js → init-cwpergap.js} +63 -69
- package/dist/login-r5ve73kf.js +77 -0
- package/dist/previews-qjj98rpp.js +1337 -0
- package/dist/productions-gzdtge0e.js +505 -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 +20 -44
- package/dist/runtime/context.d.ts.map +1 -1
- package/dist/runtime/exports.d.ts +70 -55
- package/dist/runtime/exports.d.ts.map +1 -1
- package/dist/runtime/index.d.ts +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/validation.d.ts +17 -3
- 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-4w5166km.js +91 -0
- package/dist/shims/local-hyperdrive.d.ts +12 -0
- package/dist/shims/local-hyperdrive.d.ts.map +1 -0
- package/dist/shims/local-media-bindings.d.ts +19 -0
- package/dist/shims/local-media-bindings.d.ts.map +1 -0
- package/dist/shims/local-worker-loader.d.ts +3 -0
- package/dist/shims/local-worker-loader.d.ts.map +1 -0
- package/dist/sveltekit/index.js +169 -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/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 +4641 -43
- 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 +41 -0
- package/dist/test/utilities/platform.d.ts.map +1 -0
- package/dist/test/utilities/queue.d.ts +5 -0
- package/dist/test/utilities/queue.d.ts.map +1 -0
- package/dist/test/utilities/r2.d.ts +2 -0
- package/dist/test/utilities/r2.d.ts.map +1 -0
- package/dist/test/utilities/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-35jcdqq8.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-6vc02evc.js +705 -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-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-m9th0rg0.js → worker-entrypoint-3rmzd4c1.js} +3 -1
- package/dist/worker-f2v85f7d.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 +154 -115
- package/dist/account-rvrj687w.js +0 -397
- package/dist/bridge/protocol.d.ts.map +0 -1
- package/dist/bridge/serialization.d.ts.map +0 -1
- package/dist/browser-shim/worker.d.ts +0 -14
- package/dist/browser-shim/worker.d.ts.map +0 -1
- package/dist/build-mnf6v8gd.js +0 -53
- package/dist/deploy-nhceck39.js +0 -70
- package/dist/dev-pa8dhm20.js +0 -2162
- package/dist/index-67qcae0f.js +0 -183
- package/dist/index-ep3445yc.js +0 -2225
- package/dist/index-gz1gndna.js +0 -307
- package/dist/index-hcex3rgh.js +0 -266
- package/dist/index-m2q41jwa.js +0 -462
- package/dist/index-n7rs26ft.js +0 -77
- package/dist/index-pf5s73n9.js +0 -1413
- package/dist/index-tfyxa77h.js +0 -850
- package/dist/index-tk6ej9dj.js +0 -94
- package/dist/test/bridge-context.d.ts +0 -76
- package/dist/test/bridge-context.d.ts.map +0 -1
- package/dist/test/multi-worker-context.d.ts +0 -114
- package/dist/test/multi-worker-context.d.ts.map +0 -1
- package/dist/types-5nyrz1sz.js +0 -454
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BOLD,
|
|
3
|
+
CYAN,
|
|
4
|
+
CYAN_BOLD,
|
|
5
|
+
DIM,
|
|
6
|
+
GREEN,
|
|
7
|
+
RED,
|
|
8
|
+
RESET,
|
|
9
|
+
WHITE,
|
|
10
|
+
YELLOW
|
|
11
|
+
} from "./index-3t6rypgc.js";
|
|
12
|
+
|
|
13
|
+
// src/cli/ui.ts
|
|
14
|
+
var ANSI_REGEX = /\x1b\[[0-9;]*m/g;
|
|
15
|
+
function createCliTheme(options = {}) {
|
|
16
|
+
if (options["no-color"] === true) {
|
|
17
|
+
return { useColor: false };
|
|
18
|
+
}
|
|
19
|
+
if (process.env.NO_COLOR?.trim()) {
|
|
20
|
+
return { useColor: false };
|
|
21
|
+
}
|
|
22
|
+
if (process.env.TERM === "dumb") {
|
|
23
|
+
return { useColor: false };
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
useColor: process.stdout?.isTTY === true
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function paint(value, code, theme) {
|
|
30
|
+
return theme.useColor ? `${code}${value}${RESET}` : value;
|
|
31
|
+
}
|
|
32
|
+
function dim(value, theme) {
|
|
33
|
+
return paint(value, DIM, theme);
|
|
34
|
+
}
|
|
35
|
+
function bold(value, theme) {
|
|
36
|
+
return paint(value, BOLD, theme);
|
|
37
|
+
}
|
|
38
|
+
function cyan(value, theme) {
|
|
39
|
+
return paint(value, CYAN, theme);
|
|
40
|
+
}
|
|
41
|
+
function cyanBold(value, theme) {
|
|
42
|
+
return paint(value, CYAN_BOLD, theme);
|
|
43
|
+
}
|
|
44
|
+
function green(value, theme) {
|
|
45
|
+
return paint(value, GREEN, theme);
|
|
46
|
+
}
|
|
47
|
+
function yellow(value, theme) {
|
|
48
|
+
return paint(value, YELLOW, theme);
|
|
49
|
+
}
|
|
50
|
+
function yellowBold(value, theme) {
|
|
51
|
+
return paint(value, `${BOLD}${YELLOW}`, theme);
|
|
52
|
+
}
|
|
53
|
+
function red(value, theme) {
|
|
54
|
+
return paint(value, RED, theme);
|
|
55
|
+
}
|
|
56
|
+
function whiteDim(value, theme) {
|
|
57
|
+
return paint(value, `${DIM}${WHITE}`, theme);
|
|
58
|
+
}
|
|
59
|
+
function accent(value, theme, kind = "cyan") {
|
|
60
|
+
switch (kind) {
|
|
61
|
+
case "yellow":
|
|
62
|
+
return yellowBold(value, theme);
|
|
63
|
+
case "green":
|
|
64
|
+
return green(value, theme);
|
|
65
|
+
case "red":
|
|
66
|
+
return red(value, theme);
|
|
67
|
+
case "dim":
|
|
68
|
+
return dim(value, theme);
|
|
69
|
+
case "bold":
|
|
70
|
+
return bold(value, theme);
|
|
71
|
+
case "white-dim":
|
|
72
|
+
return whiteDim(value, theme);
|
|
73
|
+
case "cyan":
|
|
74
|
+
default:
|
|
75
|
+
return cyanBold(value, theme);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
function logLine(logger, message = "") {
|
|
79
|
+
logger.log(message);
|
|
80
|
+
}
|
|
81
|
+
function stripAnsi(value) {
|
|
82
|
+
return value.replace(ANSI_REGEX, "");
|
|
83
|
+
}
|
|
84
|
+
function truncateCell(value, width) {
|
|
85
|
+
if (value.length <= width) {
|
|
86
|
+
return value;
|
|
87
|
+
}
|
|
88
|
+
if (width <= 1) {
|
|
89
|
+
return "…";
|
|
90
|
+
}
|
|
91
|
+
return `${value.slice(0, width - 1)}…`;
|
|
92
|
+
}
|
|
93
|
+
function truncateStyledCell(value, width) {
|
|
94
|
+
const plainValue = stripAnsi(value);
|
|
95
|
+
if (plainValue.length <= width) {
|
|
96
|
+
return value;
|
|
97
|
+
}
|
|
98
|
+
const truncatedPlainValue = truncateCell(plainValue, width);
|
|
99
|
+
const prefixMatch = value.match(/^((?:\x1b\[[0-9;]*m)+)/);
|
|
100
|
+
const suffixMatch = value.match(/((?:\x1b\[[0-9;]*m)+)$/);
|
|
101
|
+
const prefix = prefixMatch?.[1] ?? "";
|
|
102
|
+
const suffix = prefix ? RESET : suffixMatch?.[1] ?? "";
|
|
103
|
+
return `${prefix}${truncatedPlainValue}${suffix}`;
|
|
104
|
+
}
|
|
105
|
+
function padStyledCell(value, width) {
|
|
106
|
+
const truncatedValue = truncateStyledCell(value, width);
|
|
107
|
+
const visibleLength = stripAnsi(truncatedValue).length;
|
|
108
|
+
return `${truncatedValue}${" ".repeat(Math.max(width - visibleLength, 0))}`;
|
|
109
|
+
}
|
|
110
|
+
function formatTableLine(values, widths) {
|
|
111
|
+
return values.map((value, index) => {
|
|
112
|
+
const width = widths[index];
|
|
113
|
+
if (width === undefined || index === values.length - 1) {
|
|
114
|
+
return value;
|
|
115
|
+
}
|
|
116
|
+
return padStyledCell(value, width);
|
|
117
|
+
}).join(" ");
|
|
118
|
+
}
|
|
119
|
+
function renderTable(rows, columns, theme) {
|
|
120
|
+
if (rows.length === 0) {
|
|
121
|
+
return [];
|
|
122
|
+
}
|
|
123
|
+
const widths = columns.map((column) => column.width);
|
|
124
|
+
return [
|
|
125
|
+
formatTableLine(columns.map((column) => dim(column.label, theme)), widths),
|
|
126
|
+
...rows.map((row) => formatTableLine(columns.map((column) => column.value(row)), widths))
|
|
127
|
+
];
|
|
128
|
+
}
|
|
129
|
+
function logTable(logger, options) {
|
|
130
|
+
if (options.rows.length === 0) {
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
logLine(logger, `${accent(options.title, options.theme, options.titleAccent)} ${dim(`(${options.rows.length})`, options.theme)}`);
|
|
134
|
+
for (const line of renderTable(options.rows, options.columns, options.theme)) {
|
|
135
|
+
logLine(logger, line);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
function formatLabelValue(label, value, theme, labelWidth = 12) {
|
|
139
|
+
return `${dim(label.padEnd(labelWidth), theme)} ${value}`;
|
|
140
|
+
}
|
|
141
|
+
function formatCommand(command, description, theme) {
|
|
142
|
+
return ` ${cyan(command, theme)}${dim(" — ", theme)}${description}`;
|
|
143
|
+
}
|
|
144
|
+
function formatBullet(text, theme, bullet = "•") {
|
|
145
|
+
return ` ${dim(bullet, theme)} ${text}`;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export { createCliTheme, dim, bold, cyan, cyanBold, green, yellow, yellowBold, red, whiteDim, accent, logLine, formatTableLine, logTable, formatLabelValue, formatCommand, formatBullet };
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__require
|
|
3
|
+
} from "./index-37x76zdn.js";
|
|
4
|
+
|
|
5
|
+
// src/test/binding-hints.ts
|
|
6
|
+
function extractBindingHints(config) {
|
|
7
|
+
const hints = {};
|
|
8
|
+
if (config.bindings?.kv) {
|
|
9
|
+
for (const name of Object.keys(config.bindings.kv)) {
|
|
10
|
+
hints[name] = "kv";
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
if (config.bindings?.r2) {
|
|
14
|
+
for (const name of Object.keys(config.bindings.r2)) {
|
|
15
|
+
hints[name] = "r2";
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
if (config.bindings?.d1) {
|
|
19
|
+
for (const name of Object.keys(config.bindings.d1)) {
|
|
20
|
+
hints[name] = "d1";
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
if (config.bindings?.durableObjects) {
|
|
24
|
+
for (const name of Object.keys(config.bindings.durableObjects)) {
|
|
25
|
+
hints[name] = "do";
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
if (config.bindings?.services) {
|
|
29
|
+
for (const name of Object.keys(config.bindings.services)) {
|
|
30
|
+
hints[name] = "service";
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
if (config.bindings?.queues?.consumers) {
|
|
34
|
+
for (const consumer of config.bindings.queues.consumers) {
|
|
35
|
+
hints[consumer.queue] = "queue";
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (config.bindings?.queues?.producers) {
|
|
39
|
+
for (const name of Object.keys(config.bindings.queues.producers)) {
|
|
40
|
+
hints[name] = "queue";
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (config.bindings?.ai) {
|
|
44
|
+
hints[config.bindings.ai.binding] = "ai";
|
|
45
|
+
}
|
|
46
|
+
if (config.bindings?.sendEmail) {
|
|
47
|
+
for (const name of Object.keys(config.bindings.sendEmail)) {
|
|
48
|
+
hints[name] = "sendEmail";
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (config.bindings?.workflows) {
|
|
52
|
+
for (const name of Object.keys(config.bindings.workflows)) {
|
|
53
|
+
hints[name] = "workflow";
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return hints;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// src/shims/local-hyperdrive.ts
|
|
60
|
+
var HYPERDRIVE_CONNECT_MESSAGE = "Local Hyperdrive does not implement the raw socket connect(). " + "Use the populated connection fields (connectionString, or host/port/user/password/database) " + "with your Node database driver, or run a createTestContext()/Miniflare-backed test " + "(Miniflare establishes real Hyperdrive socket connections) for socket-level behavior.";
|
|
61
|
+
function defaultPortForDatabaseUrl(url) {
|
|
62
|
+
if (url.port) {
|
|
63
|
+
return Number(url.port);
|
|
64
|
+
}
|
|
65
|
+
return url.protocol === "mysql:" ? 3306 : 5432;
|
|
66
|
+
}
|
|
67
|
+
function createLocalHyperdrive(connectionString) {
|
|
68
|
+
const url = new URL(connectionString);
|
|
69
|
+
return {
|
|
70
|
+
connectionString,
|
|
71
|
+
host: url.hostname,
|
|
72
|
+
port: defaultPortForDatabaseUrl(url),
|
|
73
|
+
user: decodeURIComponent(url.username),
|
|
74
|
+
password: decodeURIComponent(url.password),
|
|
75
|
+
database: decodeURIComponent(url.pathname.replace(/^\//, "")),
|
|
76
|
+
connect() {
|
|
77
|
+
throw new Error(HYPERDRIVE_CONNECT_MESSAGE);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// src/shims/local-worker-loader.ts
|
|
83
|
+
var activeWorkerLoaderRuntimes = new Set;
|
|
84
|
+
function getModuleSource(module, mainModule) {
|
|
85
|
+
if (typeof module === "string") {
|
|
86
|
+
return module;
|
|
87
|
+
}
|
|
88
|
+
if (module && typeof module === "object" && typeof module.js === "string") {
|
|
89
|
+
return module.js;
|
|
90
|
+
}
|
|
91
|
+
throw new Error(`Worker Loader local shim only supports JavaScript main modules. Could not load "${mainModule}".`);
|
|
92
|
+
}
|
|
93
|
+
function createRequestInit(request) {
|
|
94
|
+
return {
|
|
95
|
+
method: request.method,
|
|
96
|
+
headers: request.headers,
|
|
97
|
+
body: request.body
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
async function createRuntime(code) {
|
|
101
|
+
const { Miniflare } = await import("miniflare");
|
|
102
|
+
const mainModule = code.mainModule;
|
|
103
|
+
const script = getModuleSource(code.modules[mainModule], mainModule);
|
|
104
|
+
const miniflare = new Miniflare({
|
|
105
|
+
modules: true,
|
|
106
|
+
compatibilityDate: code.compatibilityDate,
|
|
107
|
+
...code.compatibilityFlags && { compatibilityFlags: code.compatibilityFlags },
|
|
108
|
+
...code.env && { bindings: code.env },
|
|
109
|
+
script
|
|
110
|
+
});
|
|
111
|
+
await miniflare.ready;
|
|
112
|
+
activeWorkerLoaderRuntimes.add(miniflare);
|
|
113
|
+
return miniflare;
|
|
114
|
+
}
|
|
115
|
+
function createLocalWorkerStub(codeProvider) {
|
|
116
|
+
let runtimePromise = null;
|
|
117
|
+
const getRuntime = () => {
|
|
118
|
+
runtimePromise ??= Promise.resolve(codeProvider()).then(createRuntime);
|
|
119
|
+
return runtimePromise;
|
|
120
|
+
};
|
|
121
|
+
const fetcher = {
|
|
122
|
+
async fetch(input, init) {
|
|
123
|
+
const request = input instanceof Request ? input : new Request(input, init);
|
|
124
|
+
const runtime = await getRuntime();
|
|
125
|
+
return runtime.dispatchFetch(request.url, createRequestInit(request));
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
return {
|
|
129
|
+
getEntrypoint() {
|
|
130
|
+
return fetcher;
|
|
131
|
+
},
|
|
132
|
+
getDurableObjectClass() {
|
|
133
|
+
throw new Error("Worker Loader local shim cannot materialise a dynamic Durable Object class. getDurableObjectClass() returns an opaque facet-spawning reference that workerd only exposes inside the runtime. Use createTestContext() (a real Miniflare worker) for Durable Object behavior, or createMockWorkerLoader({ stub }) to inject a stub.");
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
function createLocalWorkerLoaderBinding() {
|
|
138
|
+
return {
|
|
139
|
+
get(_name, getCode) {
|
|
140
|
+
return createLocalWorkerStub(getCode);
|
|
141
|
+
},
|
|
142
|
+
load(code) {
|
|
143
|
+
return createLocalWorkerStub(() => code);
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
async function disposeLocalWorkerLoaderBindings() {
|
|
148
|
+
const runtimes = Array.from(activeWorkerLoaderRuntimes);
|
|
149
|
+
activeWorkerLoaderRuntimes.clear();
|
|
150
|
+
await Promise.all(runtimes.map(async (runtime) => {
|
|
151
|
+
await runtime.dispose();
|
|
152
|
+
}));
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export { extractBindingHints, createLocalHyperdrive, createLocalWorkerLoaderBinding, disposeLocalWorkerLoaderBindings };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import {
|
|
2
|
+
findFiles
|
|
3
|
+
} from "./index-qwgr4q7s.js";
|
|
4
|
+
import {
|
|
5
|
+
resolveConfigPath
|
|
6
|
+
} from "./index-dfcp9hsd.js";
|
|
7
|
+
|
|
8
|
+
// src/cli/config-path.ts
|
|
9
|
+
import { stat } from "node:fs/promises";
|
|
10
|
+
var CONFIG_FILE_EXTENSIONS = [".ts", ".mts", ".js", ".mjs"];
|
|
11
|
+
var SUPPORTED_CONFIG_FILENAMES = CONFIG_FILE_EXTENSIONS.map((extension) => `devflare.config${extension}`);
|
|
12
|
+
function hasKnownConfigExtension(filePath) {
|
|
13
|
+
return CONFIG_FILE_EXTENSIONS.some((extension) => filePath.endsWith(extension));
|
|
14
|
+
}
|
|
15
|
+
async function getExistingFilePath(filePath) {
|
|
16
|
+
try {
|
|
17
|
+
const fileStat = await stat(filePath);
|
|
18
|
+
return fileStat.isFile() ? filePath : null;
|
|
19
|
+
} catch {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
async function resolveConfigCandidatePath(candidatePath) {
|
|
24
|
+
const candidates = [candidatePath];
|
|
25
|
+
if (!hasKnownConfigExtension(candidatePath)) {
|
|
26
|
+
for (const extension of CONFIG_FILE_EXTENSIONS) {
|
|
27
|
+
candidates.push(`${candidatePath}${extension}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
for (const candidate of candidates) {
|
|
31
|
+
const existingFilePath = await getExistingFilePath(candidate);
|
|
32
|
+
if (existingFilePath) {
|
|
33
|
+
return existingFilePath;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return await resolveConfigPath(candidatePath) ?? null;
|
|
37
|
+
}
|
|
38
|
+
async function findConfigPathsUnderDirectory(rootDir) {
|
|
39
|
+
const matches = await findFiles([
|
|
40
|
+
...SUPPORTED_CONFIG_FILENAMES,
|
|
41
|
+
...SUPPORTED_CONFIG_FILENAMES.map((filename) => `**/${filename}`)
|
|
42
|
+
], {
|
|
43
|
+
cwd: rootDir,
|
|
44
|
+
absolute: true
|
|
45
|
+
});
|
|
46
|
+
return [...new Set(matches)].sort((left, right) => left.localeCompare(right));
|
|
47
|
+
}
|
|
48
|
+
function formatSupportedConfigFilenames() {
|
|
49
|
+
return SUPPORTED_CONFIG_FILENAMES.join(", ");
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export { resolveConfigCandidatePath, findConfigPathsUnderDirectory, formatSupportedConfigFilenames };
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
// src/transform/durable-object.ts
|
|
2
|
+
import ts from "typescript";
|
|
3
|
+
import MagicString from "magic-string";
|
|
4
|
+
function getBaseIdentifierName(expr) {
|
|
5
|
+
if (ts.isIdentifier(expr)) {
|
|
6
|
+
return expr.text;
|
|
7
|
+
}
|
|
8
|
+
if (ts.isPropertyAccessExpression(expr)) {
|
|
9
|
+
return expr.name.text;
|
|
10
|
+
}
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
function extendsDurableObject(node) {
|
|
14
|
+
const clauses = node.heritageClauses;
|
|
15
|
+
if (!clauses)
|
|
16
|
+
return false;
|
|
17
|
+
for (const clause of clauses) {
|
|
18
|
+
if (clause.token !== ts.SyntaxKind.ExtendsKeyword)
|
|
19
|
+
continue;
|
|
20
|
+
for (const type of clause.types) {
|
|
21
|
+
const name = getBaseIdentifierName(type.expression);
|
|
22
|
+
if (name === "DurableObject")
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
function getDurableObjectDecorator(node) {
|
|
29
|
+
const decorators = ts.canHaveDecorators(node) ? ts.getDecorators(node) : undefined;
|
|
30
|
+
if (!decorators)
|
|
31
|
+
return;
|
|
32
|
+
for (const decorator of decorators) {
|
|
33
|
+
const expr = decorator.expression;
|
|
34
|
+
if (ts.isCallExpression(expr) && ts.isIdentifier(expr.expression) && expr.expression.text === "durableObject") {
|
|
35
|
+
return decorator;
|
|
36
|
+
}
|
|
37
|
+
if (ts.isIdentifier(expr) && expr.text === "durableObject") {
|
|
38
|
+
return decorator;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
function parseDecoratorOptions(decorator) {
|
|
44
|
+
const expr = decorator.expression;
|
|
45
|
+
if (!ts.isCallExpression(expr))
|
|
46
|
+
return;
|
|
47
|
+
const arg = expr.arguments[0];
|
|
48
|
+
if (!arg || !ts.isObjectLiteralExpression(arg))
|
|
49
|
+
return;
|
|
50
|
+
const result = {};
|
|
51
|
+
for (const prop of arg.properties) {
|
|
52
|
+
if (!ts.isPropertyAssignment(prop))
|
|
53
|
+
continue;
|
|
54
|
+
let key;
|
|
55
|
+
if (ts.isIdentifier(prop.name))
|
|
56
|
+
key = prop.name.text;
|
|
57
|
+
else if (ts.isStringLiteral(prop.name))
|
|
58
|
+
key = prop.name.text;
|
|
59
|
+
if (!key)
|
|
60
|
+
continue;
|
|
61
|
+
const value = prop.initializer;
|
|
62
|
+
if (value.kind === ts.SyntaxKind.TrueKeyword) {
|
|
63
|
+
result[key] = true;
|
|
64
|
+
} else if (value.kind === ts.SyntaxKind.FalseKeyword) {
|
|
65
|
+
result[key] = false;
|
|
66
|
+
} else if (ts.isStringLiteralLike(value)) {
|
|
67
|
+
result[key] = value.text;
|
|
68
|
+
} else if (ts.isNumericLiteral(value)) {
|
|
69
|
+
result[key] = Number(value.text);
|
|
70
|
+
} else if (ts.isArrayLiteralExpression(value)) {
|
|
71
|
+
const items = [];
|
|
72
|
+
for (const el of value.elements) {
|
|
73
|
+
if (ts.isStringLiteralLike(el))
|
|
74
|
+
items.push(el.text);
|
|
75
|
+
}
|
|
76
|
+
result[key] = items;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return result;
|
|
80
|
+
}
|
|
81
|
+
function collectDurableObjectClasses(code) {
|
|
82
|
+
const sourceFile = ts.createSourceFile("durable-object.tsx", code, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
|
|
83
|
+
const classMap = new Map;
|
|
84
|
+
const inspect = (node) => {
|
|
85
|
+
if (!node.name)
|
|
86
|
+
return;
|
|
87
|
+
const modifiers = ts.canHaveModifiers(node) ? ts.getModifiers(node) : undefined;
|
|
88
|
+
const isExported = modifiers?.some((m) => m.kind === ts.SyntaxKind.ExportKeyword) ?? false;
|
|
89
|
+
if (!isExported)
|
|
90
|
+
return;
|
|
91
|
+
const name = node.name.text;
|
|
92
|
+
const extendsBase = extendsDurableObject(node);
|
|
93
|
+
const decorator = getDurableObjectDecorator(node);
|
|
94
|
+
const hasDecorator = decorator !== undefined;
|
|
95
|
+
if (!extendsBase && !hasDecorator)
|
|
96
|
+
return;
|
|
97
|
+
const existing = classMap.get(name);
|
|
98
|
+
const info = existing ?? { name, extendsBase: false, hasDecorator: false };
|
|
99
|
+
if (extendsBase)
|
|
100
|
+
info.extendsBase = true;
|
|
101
|
+
if (hasDecorator) {
|
|
102
|
+
info.hasDecorator = true;
|
|
103
|
+
const options = parseDecoratorOptions(decorator);
|
|
104
|
+
if (options)
|
|
105
|
+
info.decoratorOptions = options;
|
|
106
|
+
}
|
|
107
|
+
classMap.set(name, info);
|
|
108
|
+
};
|
|
109
|
+
for (const statement of sourceFile.statements) {
|
|
110
|
+
if (ts.isClassDeclaration(statement)) {
|
|
111
|
+
inspect(statement);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return Array.from(classMap.values());
|
|
115
|
+
}
|
|
116
|
+
function findDurableObjectClasses(code) {
|
|
117
|
+
return collectDurableObjectClasses(code).map((info) => info.name);
|
|
118
|
+
}
|
|
119
|
+
function findDurableObjectClassesDetailed(code) {
|
|
120
|
+
return collectDurableObjectClasses(code);
|
|
121
|
+
}
|
|
122
|
+
function generateWrapper(className, options = {}) {
|
|
123
|
+
const includeAlarms = options.alarms ?? false;
|
|
124
|
+
const includeWebsockets = options.websockets ?? false;
|
|
125
|
+
let wrapper = `
|
|
126
|
+
// ============ Devflare DO Wrapper for ${className} ============
|
|
127
|
+
import { createDurableObjectAlarmEvent, createDurableObjectFetchEvent, createDurableObjectWebSocketCloseEvent, createDurableObjectWebSocketErrorEvent, createDurableObjectWebSocketMessageEvent, runWithEventContext } from 'devflare/runtime'
|
|
128
|
+
|
|
129
|
+
const __Original${className} = ${className}
|
|
130
|
+
|
|
131
|
+
class ${className}Wrapper extends __Original${className} {
|
|
132
|
+
async fetch(request: Request): Promise<Response> {
|
|
133
|
+
const __devflareEvent = createDurableObjectFetchEvent(request, this.env, this.ctx)
|
|
134
|
+
return runWithEventContext(
|
|
135
|
+
__devflareEvent,
|
|
136
|
+
() => super.fetch(__devflareEvent)
|
|
137
|
+
)
|
|
138
|
+
}
|
|
139
|
+
`;
|
|
140
|
+
if (includeAlarms) {
|
|
141
|
+
wrapper += `
|
|
142
|
+
async alarm(): Promise<void> {
|
|
143
|
+
const __devflareEvent = createDurableObjectAlarmEvent(this.env, this.ctx)
|
|
144
|
+
return runWithEventContext(
|
|
145
|
+
__devflareEvent,
|
|
146
|
+
() => super.alarm?.(__devflareEvent) ?? Promise.resolve()
|
|
147
|
+
)
|
|
148
|
+
}
|
|
149
|
+
`;
|
|
150
|
+
}
|
|
151
|
+
if (includeWebsockets) {
|
|
152
|
+
wrapper += `
|
|
153
|
+
async webSocketMessage(ws: WebSocket, message: string | ArrayBuffer): Promise<void> {
|
|
154
|
+
const __devflareEvent = createDurableObjectWebSocketMessageEvent(ws, message, this.env, this.ctx)
|
|
155
|
+
return runWithEventContext(
|
|
156
|
+
__devflareEvent,
|
|
157
|
+
() => super.webSocketMessage?.(__devflareEvent, message) ?? Promise.resolve()
|
|
158
|
+
)
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
async webSocketClose(ws: WebSocket, code: number, reason: string, wasClean: boolean): Promise<void> {
|
|
162
|
+
const __devflareEvent = createDurableObjectWebSocketCloseEvent(ws, code, reason, wasClean, this.env, this.ctx)
|
|
163
|
+
return runWithEventContext(
|
|
164
|
+
__devflareEvent,
|
|
165
|
+
() => super.webSocketClose?.(__devflareEvent, code, reason, wasClean) ?? Promise.resolve()
|
|
166
|
+
)
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
async webSocketError(ws: WebSocket, error: unknown): Promise<void> {
|
|
170
|
+
const __devflareEvent = createDurableObjectWebSocketErrorEvent(ws, error, this.env, this.ctx)
|
|
171
|
+
return runWithEventContext(
|
|
172
|
+
__devflareEvent,
|
|
173
|
+
() => super.webSocketError?.(__devflareEvent, error) ?? Promise.resolve()
|
|
174
|
+
)
|
|
175
|
+
}
|
|
176
|
+
`;
|
|
177
|
+
}
|
|
178
|
+
wrapper += `}
|
|
179
|
+
|
|
180
|
+
export { ${className}Wrapper as ${className} }
|
|
181
|
+
// ============ End Devflare DO Wrapper ============
|
|
182
|
+
`;
|
|
183
|
+
return wrapper;
|
|
184
|
+
}
|
|
185
|
+
async function transformDurableObject(code, id) {
|
|
186
|
+
const doClasses = findDurableObjectClassesDetailed(code);
|
|
187
|
+
if (doClasses.length === 0) {
|
|
188
|
+
return null;
|
|
189
|
+
}
|
|
190
|
+
const s = new MagicString(code);
|
|
191
|
+
for (const classInfo of doClasses) {
|
|
192
|
+
const className = classInfo.name;
|
|
193
|
+
if (classInfo.extendsBase) {
|
|
194
|
+
const exportPattern = new RegExp(`export\\s+class\\s+${className}\\s+extends\\s+DurableObject`, "g");
|
|
195
|
+
let match;
|
|
196
|
+
while ((match = exportPattern.exec(code)) !== null) {
|
|
197
|
+
const start = match.index;
|
|
198
|
+
const exportKeywordEnd = start + "export ".length;
|
|
199
|
+
s.overwrite(start, exportKeywordEnd, "");
|
|
200
|
+
const classNameStart = start + match[0].indexOf(className);
|
|
201
|
+
const classNameEnd = classNameStart + className.length;
|
|
202
|
+
s.overwrite(classNameStart, classNameEnd, `__Original${className}`);
|
|
203
|
+
}
|
|
204
|
+
} else if (classInfo.hasDecorator) {
|
|
205
|
+
const decoratorPattern = new RegExp(`@durableObject\\s*\\([^)]*\\)\\s*\\n?\\s*export\\s+class\\s+${className}(?:\\s+extends\\s+(\\w+))?`, "g");
|
|
206
|
+
let match;
|
|
207
|
+
while ((match = decoratorPattern.exec(code)) !== null) {
|
|
208
|
+
const start = match.index;
|
|
209
|
+
const existingBaseClass = match[1];
|
|
210
|
+
const decoratorEnd = code.indexOf(")", start) + 1;
|
|
211
|
+
const exportStart = code.indexOf("export", decoratorEnd);
|
|
212
|
+
const classDefEnd = start + match[0].length;
|
|
213
|
+
s.overwrite(start, exportStart, "");
|
|
214
|
+
const classNameStart = code.indexOf(className, exportStart);
|
|
215
|
+
const classNameEnd = classNameStart + className.length;
|
|
216
|
+
if (existingBaseClass) {
|
|
217
|
+
s.overwrite(classNameStart, classNameEnd, `__Original${className}`);
|
|
218
|
+
} else {
|
|
219
|
+
s.overwrite(classNameStart, classDefEnd, `__Original${className} extends DurableObject`);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
const imports = `
|
|
225
|
+
import { createDurableObjectAlarmEvent, createDurableObjectFetchEvent, createDurableObjectWebSocketCloseEvent, createDurableObjectWebSocketErrorEvent, createDurableObjectWebSocketMessageEvent, runWithEventContext } from 'devflare/runtime'
|
|
226
|
+
`;
|
|
227
|
+
s.prepend(imports);
|
|
228
|
+
for (const classInfo of doClasses) {
|
|
229
|
+
const className = classInfo.name;
|
|
230
|
+
const options = classInfo.decoratorOptions || {};
|
|
231
|
+
const includeAlarms = options.alarms === true;
|
|
232
|
+
const includeWebsockets = options.websockets === true;
|
|
233
|
+
const wrapper = generateWrapperCodeInternal(className, {
|
|
234
|
+
alarms: includeAlarms,
|
|
235
|
+
websockets: includeWebsockets
|
|
236
|
+
});
|
|
237
|
+
s.append(wrapper);
|
|
238
|
+
}
|
|
239
|
+
return {
|
|
240
|
+
code: s.toString(),
|
|
241
|
+
map: s.generateMap({
|
|
242
|
+
source: id,
|
|
243
|
+
file: id + ".map",
|
|
244
|
+
includeContent: true
|
|
245
|
+
})
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
function generateWrapperCodeInternal(className, options) {
|
|
249
|
+
let wrapper = `
|
|
250
|
+
|
|
251
|
+
// ============ Devflare DO Wrapper for ${className} ============
|
|
252
|
+
class ${className}Wrapper extends __Original${className} {
|
|
253
|
+
async fetch(request: Request): Promise<Response> {
|
|
254
|
+
const __devflareEvent = createDurableObjectFetchEvent(request, this.env, this.ctx)
|
|
255
|
+
return runWithEventContext(
|
|
256
|
+
__devflareEvent,
|
|
257
|
+
() => super.fetch(__devflareEvent)
|
|
258
|
+
)
|
|
259
|
+
}
|
|
260
|
+
`;
|
|
261
|
+
if (options.alarms) {
|
|
262
|
+
wrapper += `
|
|
263
|
+
async alarm(): Promise<void> {
|
|
264
|
+
const __devflareEvent = createDurableObjectAlarmEvent(this.env, this.ctx)
|
|
265
|
+
return runWithEventContext(
|
|
266
|
+
__devflareEvent,
|
|
267
|
+
() => super.alarm?.(__devflareEvent) ?? Promise.resolve()
|
|
268
|
+
)
|
|
269
|
+
}
|
|
270
|
+
`;
|
|
271
|
+
}
|
|
272
|
+
if (options.websockets) {
|
|
273
|
+
wrapper += `
|
|
274
|
+
async webSocketMessage(ws: WebSocket, message: string | ArrayBuffer): Promise<void> {
|
|
275
|
+
const __devflareEvent = createDurableObjectWebSocketMessageEvent(ws, message, this.env, this.ctx)
|
|
276
|
+
return runWithEventContext(
|
|
277
|
+
__devflareEvent,
|
|
278
|
+
() => super.webSocketMessage?.(__devflareEvent, message) ?? Promise.resolve()
|
|
279
|
+
)
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
async webSocketClose(ws: WebSocket, code: number, reason: string, wasClean: boolean): Promise<void> {
|
|
283
|
+
const __devflareEvent = createDurableObjectWebSocketCloseEvent(ws, code, reason, wasClean, this.env, this.ctx)
|
|
284
|
+
return runWithEventContext(
|
|
285
|
+
__devflareEvent,
|
|
286
|
+
() => super.webSocketClose?.(__devflareEvent, code, reason, wasClean) ?? Promise.resolve()
|
|
287
|
+
)
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
async webSocketError(ws: WebSocket, error: unknown): Promise<void> {
|
|
291
|
+
const __devflareEvent = createDurableObjectWebSocketErrorEvent(ws, error, this.env, this.ctx)
|
|
292
|
+
return runWithEventContext(
|
|
293
|
+
__devflareEvent,
|
|
294
|
+
() => super.webSocketError?.(__devflareEvent, error) ?? Promise.resolve()
|
|
295
|
+
)
|
|
296
|
+
}
|
|
297
|
+
`;
|
|
298
|
+
}
|
|
299
|
+
wrapper += `}
|
|
300
|
+
|
|
301
|
+
export { ${className}Wrapper as ${className} }
|
|
302
|
+
// ============ End Devflare DO Wrapper ============
|
|
303
|
+
`;
|
|
304
|
+
return wrapper;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
export { findDurableObjectClasses, findDurableObjectClassesDetailed, generateWrapper, transformDurableObject };
|