devflare 1.0.0-next.5 → 1.0.0-next.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/LLM.md +17312 -2139
- package/README.md +397 -605
- package/bin/devflare.js +30 -14
- package/dist/_chunks/account-Csog80ie.js +462 -0
- package/dist/_chunks/account-resources-CsmVowJp.js +159 -0
- package/dist/_chunks/ai-CBEuLdoP.js +322 -0
- package/dist/_chunks/api-TzdliH-6.js +568 -0
- package/dist/_chunks/build-Ccza8VQz.js +24 -0
- package/dist/_chunks/build-artifacts-BNssqhxE.js +483 -0
- package/dist/_chunks/cli-CU7wSG1-.js +1163 -0
- package/dist/_chunks/cloudflare-BaloqI3H.js +157 -0
- package/dist/_chunks/colors-DiK6wPJ5.js +13 -0
- package/dist/_chunks/command-utils-_bGRraDR.js +45 -0
- package/dist/_chunks/compiler-BtLp9T9N.js +500 -0
- package/dist/_chunks/config-QU8UEWmA.js +78 -0
- package/dist/_chunks/config-path-1yI7BiDU.js +42 -0
- package/dist/_chunks/context-CX50Y2Kb.js +2250 -0
- package/dist/_chunks/decorators-QmV57ixr.js +19 -0
- package/dist/_chunks/dependencies-C2oxFjU_.js +57 -0
- package/dist/_chunks/deploy-aifBaMVv.js +1032 -0
- package/dist/_chunks/dev-DF_3baGr.js +3483 -0
- package/dist/_chunks/doctor-tR9kGT_Z.js +219 -0
- package/dist/_chunks/durable-object-DMtH0XYX.js +234 -0
- package/dist/_chunks/env-S0_nMVz1.js +125 -0
- package/dist/_chunks/family-DKPp4wqj.js +143 -0
- package/dist/_chunks/generated-artifacts-dMJY4KAt.js +32 -0
- package/dist/_chunks/glob-CmQOvunB.js +56 -0
- package/dist/_chunks/init-DnkJOmpW.js +165 -0
- package/dist/_chunks/loader-OQ2AWpqm.js +1308 -0
- package/dist/_chunks/local-dev-vars-CTSa-wvF.js +81 -0
- package/dist/_chunks/local-hyperdrive-CJ90j46O.js +119 -0
- package/dist/_chunks/local-media-bindings-DsAW4AMF.js +335 -0
- package/dist/_chunks/local-secrets-CYoHfvQ1.js +123 -0
- package/dist/_chunks/local-workflow-entrypoints-8d_mXh8T.js +90 -0
- package/dist/_chunks/login-rVWUZOKC.js +51 -0
- package/dist/_chunks/package-metadata-DjHBLB-z.js +39 -0
- package/dist/_chunks/preferences-BKp_7XJx.js +241 -0
- package/dist/_chunks/preview-C3Cdr8an.js +462 -0
- package/dist/_chunks/preview-registry-ClAbLTHH.js +1186 -0
- package/dist/_chunks/preview-resources-DRWR0gaB.js +359 -0
- package/dist/_chunks/previews-BxNq8Y_J.js +1134 -0
- package/dist/_chunks/productions-DK7xwbEs.js +411 -0
- package/dist/_chunks/ref-CYJNAAe_.js +178 -0
- package/dist/_chunks/remote-CZnP-HLJ.js +79 -0
- package/dist/_chunks/remote-config-D39BY9ji.js +132 -0
- package/dist/_chunks/resolve-package-qizBfCIm.js +152 -0
- package/dist/_chunks/rolldown-runtime-CvQ6eiug.js +14 -0
- package/dist/_chunks/routes-B6XiI8Sa.js +851 -0
- package/dist/_chunks/runtime-DL-Nz3k8.js +550 -0
- package/dist/_chunks/schema-normalization-GjhTATHL.js +666 -0
- package/dist/_chunks/secrets-qT1JaBGt.js +95 -0
- package/dist/_chunks/tail-CuWI04BL.js +239 -0
- package/dist/_chunks/token-Dmi0KXyX.js +333 -0
- package/dist/_chunks/tokens-iVcgNXi-.js +221 -0
- package/dist/_chunks/types-BquPXsFg.js +484 -0
- package/dist/_chunks/ui-BUoZApvE.js +103 -0
- package/dist/_chunks/usage-BBTGzjon.js +272 -0
- package/dist/_chunks/vite-D_wLDGBs.js +1267 -0
- package/dist/_chunks/vite-utils-OVLMV605.js +183 -0
- package/dist/_chunks/worker-DEF-e8LL.js +410 -0
- package/dist/_chunks/worker-bundler-dTTnYU3n.js +458 -0
- package/dist/_chunks/worker-entrypoint-CQW77lG8.js +247 -0
- package/dist/_chunks/workerName-CFJsLZA-.js +23 -0
- package/dist/bridge/client.d.ts +49 -7
- package/dist/bridge/client.d.ts.map +1 -1
- package/dist/bridge/gateway-runtime.d.ts +8 -0
- package/dist/bridge/gateway-runtime.d.ts.map +1 -0
- package/dist/bridge/index.d.ts +6 -6
- package/dist/bridge/index.d.ts.map +1 -1
- package/dist/bridge/log.d.ts +5 -0
- package/dist/bridge/log.d.ts.map +1 -0
- package/dist/bridge/miniflare.d.ts +85 -2
- package/dist/bridge/miniflare.d.ts.map +1 -1
- package/dist/bridge/proxy.d.ts +12 -11
- package/dist/bridge/proxy.d.ts.map +1 -1
- package/dist/bridge/server.d.ts +2 -1
- package/dist/bridge/server.d.ts.map +1 -1
- package/dist/bridge/v2/body-streams.d.ts +53 -0
- package/dist/bridge/v2/body-streams.d.ts.map +1 -0
- package/dist/bridge/v2/codec.d.ts +106 -0
- package/dist/bridge/v2/codec.d.ts.map +1 -0
- package/dist/bridge/v2/control-messages.d.ts +46 -0
- package/dist/bridge/v2/control-messages.d.ts.map +1 -0
- package/dist/bridge/v2/frames.d.ts +109 -0
- package/dist/bridge/v2/frames.d.ts.map +1 -0
- package/dist/bridge/v2/index.d.ts +11 -0
- package/dist/bridge/v2/index.d.ts.map +1 -0
- package/dist/bridge/v2/serialization.d.ts +48 -0
- package/dist/bridge/v2/serialization.d.ts.map +1 -0
- package/dist/bridge/v2/transport.d.ts +31 -0
- package/dist/bridge/v2/transport.d.ts.map +1 -0
- package/dist/bridge/v2/value-codec.d.ts +61 -0
- package/dist/bridge/v2/value-codec.d.ts.map +1 -0
- package/dist/bridge/{serialization.d.ts → v2/value-serialization.d.ts} +40 -18
- package/dist/bridge/v2/value-serialization.d.ts.map +1 -0
- package/dist/bridge/{protocol.d.ts → v2/wire.d.ts} +32 -8
- package/dist/bridge/v2/wire.d.ts.map +1 -0
- package/dist/bridge/v2/ws-relay.d.ts +53 -0
- package/dist/bridge/v2/ws-relay.d.ts.map +1 -0
- package/dist/browser-shim/handler.d.ts +2 -2
- package/dist/browser-shim/handler.d.ts.map +1 -1
- package/dist/browser-shim/index.d.ts +2 -2
- package/dist/browser-shim/server.d.ts +63 -0
- package/dist/browser-shim/server.d.ts.map +1 -1
- package/dist/browser.d.ts +5705 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +80 -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 +3 -1
- package/dist/bundler/index.d.ts.map +1 -1
- package/dist/bundler/rolldown-shared.d.ts +53 -0
- package/dist/bundler/rolldown-shared.d.ts.map +1 -0
- package/dist/bundler/worker-bundler.d.ts +13 -0
- package/dist/bundler/worker-bundler.d.ts.map +1 -0
- package/dist/bundler/worker-compat.d.ts +4 -0
- package/dist/bundler/worker-compat.d.ts.map +1 -0
- package/dist/cli/build-manifest.d.ts +66 -0
- package/dist/cli/build-manifest.d.ts.map +1 -0
- package/dist/cli/command-utils.d.ts +18 -0
- package/dist/cli/command-utils.d.ts.map +1 -0
- package/dist/cli/commands/account.d.ts +2 -2
- package/dist/cli/commands/account.d.ts.map +1 -1
- package/dist/cli/commands/ai.d.ts +1 -1
- package/dist/cli/commands/ai.d.ts.map +1 -1
- package/dist/cli/commands/build-artifacts.d.ts +40 -0
- package/dist/cli/commands/build-artifacts.d.ts.map +1 -0
- package/dist/cli/commands/build.d.ts +2 -2
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/config.d.ts +4 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/deploy/metadata.d.ts +18 -0
- package/dist/cli/commands/deploy/metadata.d.ts.map +1 -0
- package/dist/cli/commands/deploy/prepare.d.ts +23 -0
- package/dist/cli/commands/deploy/prepare.d.ts.map +1 -0
- package/dist/cli/commands/deploy/runtime.d.ts +4 -0
- package/dist/cli/commands/deploy/runtime.d.ts.map +1 -0
- package/dist/cli/commands/deploy/verification.d.ts +36 -0
- package/dist/cli/commands/deploy/verification.d.ts.map +1 -0
- package/dist/cli/commands/deploy.d.ts +2 -2
- package/dist/cli/commands/deploy.d.ts.map +1 -1
- package/dist/cli/commands/dev.d.ts +9 -1
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/doctor.d.ts +2 -2
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/init.d.ts +2 -2
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/login.d.ts +4 -0
- package/dist/cli/commands/login.d.ts.map +1 -0
- package/dist/cli/commands/previews-support/cleanup.d.ts +9 -0
- package/dist/cli/commands/previews-support/cleanup.d.ts.map +1 -0
- package/dist/cli/commands/previews-support/family.d.ts +10 -0
- package/dist/cli/commands/previews-support/family.d.ts.map +1 -0
- package/dist/cli/commands/previews-support/render.d.ts +8 -0
- package/dist/cli/commands/previews-support/render.d.ts.map +1 -0
- package/dist/cli/commands/previews-support/theme.d.ts +10 -0
- package/dist/cli/commands/previews-support/theme.d.ts.map +1 -0
- package/dist/cli/commands/previews-support/types.d.ts +70 -0
- package/dist/cli/commands/previews-support/types.d.ts.map +1 -0
- package/dist/cli/commands/previews.d.ts +4 -0
- package/dist/cli/commands/previews.d.ts.map +1 -0
- package/dist/cli/commands/productions.d.ts +4 -0
- package/dist/cli/commands/productions.d.ts.map +1 -0
- package/dist/cli/commands/remote.d.ts +1 -1
- package/dist/cli/commands/remote.d.ts.map +1 -1
- package/dist/cli/commands/secrets.d.ts +4 -0
- package/dist/cli/commands/secrets.d.ts.map +1 -0
- package/dist/cli/commands/tail.d.ts +44 -0
- package/dist/cli/commands/tail.d.ts.map +1 -0
- package/dist/cli/commands/token.d.ts +4 -0
- package/dist/cli/commands/token.d.ts.map +1 -0
- package/dist/cli/commands/type-generation/discovery.d.ts +7 -0
- package/dist/cli/commands/type-generation/discovery.d.ts.map +1 -0
- package/dist/cli/commands/type-generation/generator.d.ts +121 -0
- package/dist/cli/commands/type-generation/generator.d.ts.map +1 -0
- package/dist/cli/commands/type-generation/models.d.ts +27 -0
- package/dist/cli/commands/type-generation/models.d.ts.map +1 -0
- package/dist/cli/commands/types.d.ts +2 -2
- package/dist/cli/commands/types.d.ts.map +1 -1
- package/dist/cli/commands/worker.d.ts +4 -0
- package/dist/cli/commands/worker.d.ts.map +1 -0
- package/dist/cli/config-path.d.ts +6 -0
- package/dist/cli/config-path.d.ts.map +1 -0
- package/dist/cli/dependencies.d.ts +2 -1
- package/dist/cli/dependencies.d.ts.map +1 -1
- package/dist/cli/deploy-strategy.d.ts +17 -0
- package/dist/cli/deploy-strategy.d.ts.map +1 -0
- package/dist/cli/deploy-target.d.ts +17 -0
- package/dist/cli/deploy-target.d.ts.map +1 -0
- package/dist/cli/generated-artifacts.d.ts +12 -0
- package/dist/cli/generated-artifacts.d.ts.map +1 -0
- package/dist/cli/gradual-deploy.d.ts +49 -0
- package/dist/cli/gradual-deploy.d.ts.map +1 -0
- package/dist/cli/help-pages/pages/account.d.ts +3 -0
- package/dist/cli/help-pages/pages/account.d.ts.map +1 -0
- package/dist/cli/help-pages/pages/core.d.ts +4 -0
- package/dist/cli/help-pages/pages/core.d.ts.map +1 -0
- package/dist/cli/help-pages/pages/index.d.ts +3 -0
- package/dist/cli/help-pages/pages/index.d.ts.map +1 -0
- package/dist/cli/help-pages/pages/misc.d.ts +3 -0
- package/dist/cli/help-pages/pages/misc.d.ts.map +1 -0
- package/dist/cli/help-pages/pages/previews.d.ts +3 -0
- package/dist/cli/help-pages/pages/previews.d.ts.map +1 -0
- package/dist/cli/help-pages/pages/productions.d.ts +3 -0
- package/dist/cli/help-pages/pages/productions.d.ts.map +1 -0
- package/dist/cli/help-pages/render.d.ts +12 -0
- package/dist/cli/help-pages/render.d.ts.map +1 -0
- package/dist/cli/help-pages/shared.d.ts +15 -0
- package/dist/cli/help-pages/shared.d.ts.map +1 -0
- package/dist/cli/help-pages/types.d.ts +23 -0
- package/dist/cli/help-pages/types.d.ts.map +1 -0
- package/dist/cli/help.d.ts +6 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/package-metadata.d.ts +16 -0
- package/dist/cli/package-metadata.d.ts.map +1 -0
- package/dist/cli/preview-bindings.d.ts +49 -0
- package/dist/cli/preview-bindings.d.ts.map +1 -0
- package/dist/cli/preview.d.ts +10 -0
- package/dist/cli/preview.d.ts.map +1 -0
- package/dist/cli/ui.d.ts +37 -0
- package/dist/cli/ui.d.ts.map +1 -0
- package/dist/cli/workspace-build-guard.d.ts +14 -0
- package/dist/cli/workspace-build-guard.d.ts.map +1 -0
- package/dist/cli/wrangler-auth.d.ts +1 -1
- package/dist/cloudflare/account-core.d.ts +6 -0
- package/dist/cloudflare/account-core.d.ts.map +1 -0
- package/dist/cloudflare/account-resources.d.ts +40 -0
- package/dist/cloudflare/account-resources.d.ts.map +1 -0
- package/dist/cloudflare/account-status.d.ts +11 -0
- package/dist/cloudflare/account-status.d.ts.map +1 -0
- package/dist/cloudflare/account-workers.d.ts +14 -0
- package/dist/cloudflare/account-workers.d.ts.map +1 -0
- package/dist/cloudflare/account.d.ts +7 -64
- package/dist/cloudflare/account.d.ts.map +1 -1
- package/dist/cloudflare/api.d.ts +71 -3
- package/dist/cloudflare/api.d.ts.map +1 -1
- package/dist/cloudflare/auth.d.ts +1 -1
- package/dist/cloudflare/auth.d.ts.map +1 -1
- package/dist/cloudflare/index.d.ts +61 -6
- package/dist/cloudflare/index.d.ts.map +1 -1
- package/dist/cloudflare/index.js +4 -13
- package/dist/cloudflare/known-permission-group-ids.generated.d.ts +10 -0
- package/dist/cloudflare/known-permission-group-ids.generated.d.ts.map +1 -0
- package/dist/cloudflare/kv-namespace.d.ts +4 -0
- package/dist/cloudflare/kv-namespace.d.ts.map +1 -0
- package/dist/cloudflare/preferences.d.ts +7 -0
- package/dist/cloudflare/preferences.d.ts.map +1 -1
- package/dist/cloudflare/preview-registry-cache.d.ts +6 -0
- package/dist/cloudflare/preview-registry-cache.d.ts.map +1 -0
- package/dist/cloudflare/preview-registry-inference.d.ts +14 -0
- package/dist/cloudflare/preview-registry-inference.d.ts.map +1 -0
- package/dist/cloudflare/preview-registry-records.d.ts +4 -0
- package/dist/cloudflare/preview-registry-records.d.ts.map +1 -0
- package/dist/cloudflare/preview-registry-shape.d.ts +47 -0
- package/dist/cloudflare/preview-registry-shape.d.ts.map +1 -0
- package/dist/cloudflare/preview-registry-store.d.ts +14 -0
- package/dist/cloudflare/preview-registry-store.d.ts.map +1 -0
- package/dist/cloudflare/preview-registry-transport.d.ts +4 -0
- package/dist/cloudflare/preview-registry-transport.d.ts.map +1 -0
- package/dist/cloudflare/preview-registry-types.d.ts +103 -0
- package/dist/cloudflare/preview-registry-types.d.ts.map +1 -0
- package/dist/cloudflare/preview-registry.d.ts +42 -0
- package/dist/cloudflare/preview-registry.d.ts.map +1 -0
- package/dist/cloudflare/preview-urls.d.ts +3 -0
- package/dist/cloudflare/preview-urls.d.ts.map +1 -0
- package/dist/cloudflare/registry-schema.d.ts +253 -0
- package/dist/cloudflare/registry-schema.d.ts.map +1 -0
- package/dist/cloudflare/remote-config.d.ts.map +1 -1
- package/dist/cloudflare/tokens.d.ts +44 -0
- package/dist/cloudflare/tokens.d.ts.map +1 -0
- package/dist/cloudflare/types.d.ts +124 -7
- package/dist/cloudflare/types.d.ts.map +1 -1
- package/dist/cloudflare/usage.d.ts +31 -3
- package/dist/cloudflare/usage.d.ts.map +1 -1
- package/dist/config/binding-resolution-helpers.d.ts +41 -0
- package/dist/config/binding-resolution-helpers.d.ts.map +1 -0
- package/dist/config/compatibility.d.ts +3 -0
- package/dist/config/compatibility.d.ts.map +1 -0
- package/dist/config/compiler/bindings.d.ts +14 -0
- package/dist/config/compiler/bindings.d.ts.map +1 -0
- package/dist/config/compiler/core-helpers.d.ts +6 -0
- package/dist/config/compiler/core-helpers.d.ts.map +1 -0
- package/dist/config/compiler/do-workers.d.ts +34 -0
- package/dist/config/compiler/do-workers.d.ts.map +1 -0
- package/dist/config/compiler/paths.d.ts +18 -0
- package/dist/config/compiler/paths.d.ts.map +1 -0
- package/dist/config/compiler/types.d.ts +309 -0
- package/dist/config/compiler/types.d.ts.map +1 -0
- package/dist/config/compiler.d.ts +22 -134
- package/dist/config/compiler.d.ts.map +1 -1
- package/dist/config/cron.d.ts +19 -0
- package/dist/config/cron.d.ts.map +1 -0
- package/dist/config/define.d.ts +8 -5
- package/dist/config/define.d.ts.map +1 -1
- package/dist/config/deploy-resources.d.ts +58 -0
- package/dist/config/deploy-resources.d.ts.map +1 -0
- package/dist/config/env-vars.d.ts +309 -0
- package/dist/config/env-vars.d.ts.map +1 -0
- package/dist/config/framework-providers.d.ts +9 -0
- package/dist/config/framework-providers.d.ts.map +1 -0
- package/dist/config/index.d.ts +12 -5
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/loader.d.ts +2 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/local-dev-vars.d.ts +15 -0
- package/dist/config/local-dev-vars.d.ts.map +1 -0
- package/dist/config/preview-resources.d.ts +83 -0
- package/dist/config/preview-resources.d.ts.map +1 -0
- package/dist/config/preview.d.ts +29 -0
- package/dist/config/preview.d.ts.map +1 -0
- package/dist/config/ref.d.ts +16 -25
- package/dist/config/ref.d.ts.map +1 -1
- package/dist/config/resolve-phased.d.ts +72 -0
- package/dist/config/resolve-phased.d.ts.map +1 -0
- package/dist/config/resolve.d.ts +11 -0
- package/dist/config/resolve.d.ts.map +1 -0
- package/dist/config/resource-resolution.d.ts +80 -0
- package/dist/config/resource-resolution.d.ts.map +1 -0
- package/dist/config/schema-bindings.d.ts +2087 -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 +3771 -0
- package/dist/config/schema-env.d.ts.map +1 -0
- package/dist/config/schema-normalization.d.ts +267 -0
- package/dist/config/schema-normalization.d.ts.map +1 -0
- package/dist/config/schema-runtime.d.ts +557 -0
- package/dist/config/schema-runtime.d.ts.map +1 -0
- package/dist/config/schema-types-bindings-platform.d.ts +520 -0
- package/dist/config/schema-types-bindings-platform.d.ts.map +1 -0
- package/dist/config/schema-types-bindings-resources.d.ts +802 -0
- package/dist/config/schema-types-bindings-resources.d.ts.map +1 -0
- package/dist/config/schema-types-bindings.d.ts +293 -0
- package/dist/config/schema-types-bindings.d.ts.map +1 -0
- package/dist/config/schema-types-build.d.ts +86 -0
- package/dist/config/schema-types-build.d.ts.map +1 -0
- package/dist/config/schema-types-runtime-server.d.ts +122 -0
- package/dist/config/schema-types-runtime-server.d.ts.map +1 -0
- package/dist/config/schema-types-runtime.d.ts +913 -0
- package/dist/config/schema-types-runtime.d.ts.map +1 -0
- package/dist/config/schema-types.d.ts +458 -0
- package/dist/config/schema-types.d.ts.map +1 -0
- package/dist/config/schema.d.ts +5699 -2021
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/service-bindings-validation.d.ts +36 -0
- package/dist/config/service-bindings-validation.d.ts.map +1 -0
- package/dist/config-entry.d.ts +7 -0
- package/dist/config-entry.d.ts.map +1 -0
- package/dist/config-entry.js +3 -0
- package/dist/decorators/durable-object.d.ts.map +1 -1
- package/dist/decorators/index.d.ts +2 -2
- package/dist/decorators/index.js +2 -9
- package/dist/dev-server/d1-migrations.d.ts +36 -0
- package/dist/dev-server/d1-migrations.d.ts.map +1 -0
- package/dist/dev-server/dev-server-state.d.ts +59 -0
- package/dist/dev-server/dev-server-state.d.ts.map +1 -0
- package/dist/dev-server/gateway-script.d.ts +21 -0
- package/dist/dev-server/gateway-script.d.ts.map +1 -0
- package/dist/dev-server/index.d.ts +1 -1
- package/dist/dev-server/miniflare-bindings.d.ts +90 -0
- package/dist/dev-server/miniflare-bindings.d.ts.map +1 -0
- package/dist/dev-server/miniflare-dev-config.d.ts +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 +93 -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/env.d.ts +10 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/index.d.ts +8 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -298
- 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 +10 -3
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +5 -111
- package/dist/runtime/middleware.d.ts +119 -67
- 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 +18 -4
- package/dist/runtime/validation.d.ts.map +1 -1
- package/dist/secrets/local-secrets.d.ts +46 -0
- package/dist/secrets/local-secrets.d.ts.map +1 -0
- package/dist/shims/local-hyperdrive.d.ts +12 -0
- package/dist/shims/local-hyperdrive.d.ts.map +1 -0
- package/dist/shims/local-media-bindings.d.ts +19 -0
- package/dist/shims/local-media-bindings.d.ts.map +1 -0
- package/dist/shims/local-worker-loader.d.ts +3 -0
- package/dist/shims/local-worker-loader.d.ts.map +1 -0
- package/dist/sveltekit/index.d.ts +1 -1
- package/dist/sveltekit/index.d.ts.map +1 -1
- package/dist/sveltekit/index.js +313 -167
- package/dist/sveltekit/local-bindings.d.ts +4 -0
- package/dist/sveltekit/local-bindings.d.ts.map +1 -0
- package/dist/sveltekit/platform.d.ts +20 -2
- package/dist/sveltekit/platform.d.ts.map +1 -1
- package/dist/test/ai-search.d.ts +39 -0
- package/dist/test/ai-search.d.ts.map +1 -0
- package/dist/test/alarm.d.ts +55 -0
- package/dist/test/alarm.d.ts.map +1 -0
- package/dist/test/binding-hints.d.ts +10 -0
- package/dist/test/binding-hints.d.ts.map +1 -0
- package/dist/test/cf.d.ts +71 -35
- package/dist/test/cf.d.ts.map +1 -1
- package/dist/test/containers.d.ts +87 -0
- package/dist/test/containers.d.ts.map +1 -0
- package/dist/test/email.d.ts +16 -7
- package/dist/test/email.d.ts.map +1 -1
- package/dist/test/index.d.ts +20 -21
- package/dist/test/index.d.ts.map +1 -1
- package/dist/test/index.js +4981 -70
- package/dist/test/offline-bindings.d.ts +115 -0
- package/dist/test/offline-bindings.d.ts.map +1 -0
- package/dist/test/queue.d.ts.map +1 -1
- package/dist/test/remote-ai.d.ts.map +1 -1
- package/dist/test/remote-cloudflare.d.ts +13 -0
- package/dist/test/remote-cloudflare.d.ts.map +1 -0
- package/dist/test/remote-vectorize.d.ts.map +1 -1
- package/dist/test/resolve-service-bindings.d.ts +64 -4
- package/dist/test/resolve-service-bindings.d.ts.map +1 -1
- package/dist/test/scheduled.d.ts.map +1 -1
- package/dist/test/should-skip.d.ts +14 -18
- package/dist/test/should-skip.d.ts.map +1 -1
- package/dist/test/simple-context-bindings.d.ts +13 -0
- package/dist/test/simple-context-bindings.d.ts.map +1 -0
- package/dist/test/simple-context-durable-objects.d.ts +6 -0
- package/dist/test/simple-context-durable-objects.d.ts.map +1 -0
- package/dist/test/simple-context-env.d.ts +35 -0
- package/dist/test/simple-context-env.d.ts.map +1 -0
- package/dist/test/simple-context-gateway-script.d.ts +2 -0
- package/dist/test/simple-context-gateway-script.d.ts.map +1 -0
- package/dist/test/simple-context-handlers.d.ts +12 -0
- package/dist/test/simple-context-handlers.d.ts.map +1 -0
- package/dist/test/simple-context-lifecycle.d.ts +32 -0
- package/dist/test/simple-context-lifecycle.d.ts.map +1 -0
- package/dist/test/simple-context-mfconfig.d.ts +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 +8 -27
- package/dist/test/simple-context.d.ts.map +1 -1
- package/dist/test/tail.d.ts +3 -2
- package/dist/test/tail.d.ts.map +1 -1
- package/dist/test/utilities/analytics-engine.d.ts +22 -0
- package/dist/test/utilities/analytics-engine.d.ts.map +1 -0
- package/dist/test/utilities/artifacts.d.ts +11 -0
- package/dist/test/utilities/artifacts.d.ts.map +1 -0
- package/dist/test/utilities/context.d.ts +39 -0
- package/dist/test/utilities/context.d.ts.map +1 -0
- package/dist/test/utilities/d1.d.ts +21 -0
- package/dist/test/utilities/d1.d.ts.map +1 -0
- package/dist/test/utilities/env.d.ts +43 -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/stream-flagship.d.ts +27 -0
- package/dist/test/utilities/stream-flagship.d.ts.map +1 -0
- package/dist/test/utilities/vectorize.d.ts +38 -0
- package/dist/test/utilities/vectorize.d.ts.map +1 -0
- package/dist/test/utilities/workflows.d.ts +26 -0
- package/dist/test/utilities/workflows.d.ts.map +1 -0
- package/dist/test/utilities.d.ts +13 -98
- package/dist/test/utilities.d.ts.map +1 -1
- package/dist/test/worker.d.ts +6 -0
- package/dist/test/worker.d.ts.map +1 -1
- package/dist/transform/durable-object.d.ts.map +1 -1
- package/dist/transform/index.d.ts +2 -2
- package/dist/transform/worker-entrypoint.d.ts +5 -0
- package/dist/transform/worker-entrypoint.d.ts.map +1 -1
- package/dist/utils/entrypoint-discovery.d.ts +6 -3
- package/dist/utils/entrypoint-discovery.d.ts.map +1 -1
- package/dist/utils/glob.d.ts.map +1 -1
- package/dist/utils/resolve-package.d.ts.map +1 -1
- package/dist/utils/send-email.d.ts +15 -0
- package/dist/utils/send-email.d.ts.map +1 -0
- package/dist/utils/send-email.js +163 -0
- package/dist/vite/config-file.d.ts +25 -0
- package/dist/vite/config-file.d.ts.map +1 -0
- package/dist/vite/index.d.ts +3 -2
- package/dist/vite/index.d.ts.map +1 -1
- package/dist/vite/index.js +2 -339
- package/dist/vite/plugin-config-hook.d.ts +28 -0
- package/dist/vite/plugin-config-hook.d.ts.map +1 -0
- package/dist/vite/plugin-context.d.ts +27 -0
- package/dist/vite/plugin-context.d.ts.map +1 -0
- package/dist/vite/plugin-durable-objects.d.ts +18 -0
- package/dist/vite/plugin-durable-objects.d.ts.map +1 -0
- package/dist/vite/plugin-programmatic.d.ts +44 -0
- package/dist/vite/plugin-programmatic.d.ts.map +1 -0
- package/dist/vite/plugin-service-bindings.d.ts +13 -0
- package/dist/vite/plugin-service-bindings.d.ts.map +1 -0
- package/dist/vite/plugin-transform.d.ts +41 -0
- package/dist/vite/plugin-transform.d.ts.map +1 -0
- package/dist/vite/plugin.d.ts +10 -41
- package/dist/vite/plugin.d.ts.map +1 -1
- package/dist/worker-entry/composed-worker.d.ts +7 -0
- package/dist/worker-entry/composed-worker.d.ts.map +1 -0
- package/dist/worker-entry/durable-object-discovery.d.ts +20 -0
- package/dist/worker-entry/durable-object-discovery.d.ts.map +1 -0
- package/dist/worker-entry/extensions.d.ts +5 -0
- package/dist/worker-entry/extensions.d.ts.map +1 -0
- package/dist/worker-entry/routes.d.ts +22 -0
- package/dist/worker-entry/routes.d.ts.map +1 -0
- package/dist/worker-entry/surface-paths.d.ts +26 -0
- package/dist/worker-entry/surface-paths.d.ts.map +1 -0
- package/dist/worker-entry/validate-fetch-style.d.ts +12 -0
- package/dist/worker-entry/validate-fetch-style.d.ts.map +1 -0
- package/dist/workflows/local-workflow-entrypoints.d.ts +7 -0
- package/dist/workflows/local-workflow-entrypoints.d.ts.map +1 -0
- package/package.json +159 -116
- package/R2.md +0 -170
- package/dist/account-rvrj687w.js +0 -397
- package/dist/ai-dx4fr9jh.js +0 -107
- package/dist/bridge/protocol.d.ts.map +0 -1
- package/dist/bridge/serialization.d.ts.map +0 -1
- package/dist/browser-shim/worker.d.ts +0 -14
- package/dist/browser-shim/worker.d.ts.map +0 -1
- package/dist/build-mnf6v8gd.js +0 -53
- package/dist/deploy-nhceck39.js +0 -70
- package/dist/dev-b9dmrj7b.js +0 -2417
- package/dist/doctor-fmgb3d28.js +0 -190
- package/dist/durable-object-t4kbb0yt.js +0 -13
- package/dist/index-07q6yxyc.js +0 -168
- package/dist/index-18hvb6gb.js +0 -194
- package/dist/index-1xpj0m4r.js +0 -57
- package/dist/index-37x76zdn.js +0 -4
- package/dist/index-3t6rypgc.js +0 -13
- package/dist/index-67qcae0f.js +0 -183
- package/dist/index-a855bdsx.js +0 -18
- package/dist/index-d8bdkx2h.js +0 -109
- 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-rbht7m9r.js +0 -36
- package/dist/index-tfyxa77h.js +0 -850
- package/dist/index-tk6ej9dj.js +0 -94
- package/dist/index-z14anrqp.js +0 -226
- package/dist/init-f9mgmew3.js +0 -186
- package/dist/remote-q59qk463.js +0 -97
- package/dist/test/bridge-context.d.ts +0 -76
- package/dist/test/bridge-context.d.ts.map +0 -1
- package/dist/test/multi-worker-context.d.ts +0 -114
- package/dist/test/multi-worker-context.d.ts.map +0 -1
- package/dist/types-5nyrz1sz.js +0 -454
- package/dist/worker-entrypoint-m9th0rg0.js +0 -13
|
@@ -0,0 +1,483 @@
|
|
|
1
|
+
import { d as resolveConfigEnvVars } from "./preview-C3Cdr8an.js";
|
|
2
|
+
import { r as loadConfig, u as resolveConfigForEnvironment } from "./loader-OQ2AWpqm.js";
|
|
3
|
+
import { c as writeWranglerConfig, i as isolateViteBuildOutputPaths$1, o as rebaseWranglerConfigPaths, t as compileBuildConfig } from "./compiler-BtLp9T9N.js";
|
|
4
|
+
import { f as logLine } from "./ui-BUoZApvE.js";
|
|
5
|
+
import { n as getPackageVersion } from "./package-metadata-DjHBLB-z.js";
|
|
6
|
+
import { t as resolvePackageSpecifier } from "./resolve-package-qizBfCIm.js";
|
|
7
|
+
import { i as writeGeneratedViteConfig, l as prepareComposedWorkerEntrypoint, n as resolveEffectiveViteProject } from "./vite-D_wLDGBs.js";
|
|
8
|
+
import { t as bundleWorkerEntry } from "./worker-bundler-dTTnYU3n.js";
|
|
9
|
+
import { t as detectViteProject } from "./vite-utils-OVLMV605.js";
|
|
10
|
+
import { t as getDependencies } from "./dependencies-C2oxFjU_.js";
|
|
11
|
+
import { n as getGeneratedArtifactPaths, t as ensureGeneratedDirectory } from "./generated-artifacts-dMJY4KAt.js";
|
|
12
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
13
|
+
import { dirname, relative, resolve } from "pathe";
|
|
14
|
+
import { createHash } from "node:crypto";
|
|
15
|
+
const BUILD_MANIFEST_FILENAME = "manifest.json";
|
|
16
|
+
/**
|
|
17
|
+
* Compute a stable hash of the source DevflareConfig. Used both at build
|
|
18
|
+
* time (to stamp the manifest) and at deploy time (to detect drift).
|
|
19
|
+
*
|
|
20
|
+
* The hash deliberately ignores transient fields like `accountId` so that
|
|
21
|
+
* setting CLOUDFLARE_ACCOUNT_ID between build and deploy doesn't trip drift.
|
|
22
|
+
*/
|
|
23
|
+
function hashSourceConfig(config) {
|
|
24
|
+
const normalized = JSON.stringify(config, (key, value) => {
|
|
25
|
+
if (key === "accountId") return void 0;
|
|
26
|
+
if (value === null || value === void 0) return void 0;
|
|
27
|
+
if (key === "__ref" && value && typeof value === "object") {
|
|
28
|
+
const nameOverride = value.__nameOverride;
|
|
29
|
+
return nameOverride ? `ref:${nameOverride}` : "ref:<unresolved>";
|
|
30
|
+
}
|
|
31
|
+
return value;
|
|
32
|
+
});
|
|
33
|
+
return createHash("sha256").update(normalized).digest("hex");
|
|
34
|
+
}
|
|
35
|
+
function summarizeBindings(config) {
|
|
36
|
+
const bindings = config.bindings ?? {};
|
|
37
|
+
return {
|
|
38
|
+
kv: Object.keys(bindings.kv ?? {}).sort(),
|
|
39
|
+
d1: Object.keys(bindings.d1 ?? {}).sort(),
|
|
40
|
+
r2: Object.keys(bindings.r2 ?? {}).sort(),
|
|
41
|
+
queues: Object.keys(bindings.queues ?? {}).sort(),
|
|
42
|
+
rateLimits: Object.keys(bindings.rateLimits ?? {}).sort(),
|
|
43
|
+
versionMetadata: bindings.versionMetadata ? [bindings.versionMetadata.binding] : [],
|
|
44
|
+
workerLoaders: Object.keys(bindings.workerLoaders ?? {}).sort(),
|
|
45
|
+
mtlsCertificates: Object.keys(bindings.mtlsCertificates ?? {}).sort(),
|
|
46
|
+
dispatchNamespaces: Object.keys(bindings.dispatchNamespaces ?? {}).sort(),
|
|
47
|
+
workflows: Object.keys(bindings.workflows ?? {}).sort(),
|
|
48
|
+
pipelines: Object.keys(bindings.pipelines ?? {}).sort(),
|
|
49
|
+
images: Object.keys(bindings.images ?? {}).sort(),
|
|
50
|
+
media: Object.keys(bindings.media ?? {}).sort(),
|
|
51
|
+
artifacts: Object.keys(bindings.artifacts ?? {}).sort(),
|
|
52
|
+
secretsStore: Object.keys(bindings.secretsStore ?? {}).sort(),
|
|
53
|
+
tailConsumers: (config.tailConsumers ?? []).map((consumer) => typeof consumer === "string" ? consumer : consumer.service).sort(),
|
|
54
|
+
hyperdrive: Object.keys(bindings.hyperdrive ?? {}).sort(),
|
|
55
|
+
vectorize: Object.keys(bindings.vectorize ?? {}).sort(),
|
|
56
|
+
services: Object.keys(bindings.services ?? {}).sort()
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function createBuildManifest(config, options) {
|
|
60
|
+
return {
|
|
61
|
+
manifestVersion: 1,
|
|
62
|
+
devflareVersion: options.devflareVersion,
|
|
63
|
+
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
64
|
+
sourceConfigHash: hashSourceConfig(config),
|
|
65
|
+
intendedTarget: options.intendedTarget,
|
|
66
|
+
bindingsSnapshot: summarizeBindings(config)
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
async function writeBuildManifest(buildDir, manifest) {
|
|
70
|
+
const manifestPath = resolve(buildDir, BUILD_MANIFEST_FILENAME);
|
|
71
|
+
await writeFile(manifestPath, `${JSON.stringify(manifest, null, " ")}\n`, "utf-8");
|
|
72
|
+
return manifestPath;
|
|
73
|
+
}
|
|
74
|
+
async function readBuildManifest(buildDir) {
|
|
75
|
+
const manifestPath = resolve(buildDir, BUILD_MANIFEST_FILENAME);
|
|
76
|
+
try {
|
|
77
|
+
const raw = await readFile(manifestPath, "utf-8");
|
|
78
|
+
const parsed = JSON.parse(raw);
|
|
79
|
+
if (typeof parsed?.manifestVersion !== "number") return null;
|
|
80
|
+
return parsed;
|
|
81
|
+
} catch {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
function targetsEqual(a, b) {
|
|
86
|
+
return a.environment === b.environment && a.preview === b.preview && a.previewScope === b.previewScope && a.branchName === b.branchName;
|
|
87
|
+
}
|
|
88
|
+
function compareManifests(previous, current) {
|
|
89
|
+
const prevBindings = new Set(Object.entries(previous.bindingsSnapshot).flatMap(([k, v]) => v.map((n) => `${k}:${n}`)));
|
|
90
|
+
const currBindings = new Set(Object.entries(current.bindingsSnapshot).flatMap(([k, v]) => v.map((n) => `${k}:${n}`)));
|
|
91
|
+
const bindingsAdded = [...currBindings].filter((b) => !prevBindings.has(b));
|
|
92
|
+
const bindingsRemoved = [...prevBindings].filter((b) => !currBindings.has(b));
|
|
93
|
+
return {
|
|
94
|
+
configChanged: previous.sourceConfigHash !== current.sourceConfigHash,
|
|
95
|
+
versionChanged: previous.devflareVersion !== current.devflareVersion,
|
|
96
|
+
targetChanged: !targetsEqual(previous.intendedTarget, current.intendedTarget),
|
|
97
|
+
previousVersion: previous.devflareVersion,
|
|
98
|
+
currentVersion: current.devflareVersion,
|
|
99
|
+
previousTarget: previous.intendedTarget,
|
|
100
|
+
currentTarget: current.intendedTarget,
|
|
101
|
+
bindingsAdded,
|
|
102
|
+
bindingsRemoved
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
function formatDriftWarning(drift) {
|
|
106
|
+
const lines = [];
|
|
107
|
+
if (drift.versionChanged) lines.push(`devflare version differs (built with ${drift.previousVersion}, deploying with ${drift.currentVersion})`);
|
|
108
|
+
if (drift.targetChanged) lines.push(`deployment target differs (built for ${formatTarget(drift.previousTarget)}, deploying as ${formatTarget(drift.currentTarget)})`);
|
|
109
|
+
if (drift.configChanged) lines.push("source config changed since build (devflare.config.ts hash differs)");
|
|
110
|
+
if (drift.bindingsAdded.length > 0) lines.push(`bindings added since build: ${drift.bindingsAdded.join(", ")}`);
|
|
111
|
+
if (drift.bindingsRemoved.length > 0) lines.push(`bindings removed since build: ${drift.bindingsRemoved.join(", ")}`);
|
|
112
|
+
if (lines.length === 0) return null;
|
|
113
|
+
return [
|
|
114
|
+
"Build artefact drift detected:",
|
|
115
|
+
...lines.map((line) => ` - ${line}`),
|
|
116
|
+
"Re-run `devflare build` to refresh the artefact, or pass --force to deploy anyway."
|
|
117
|
+
].join("\n");
|
|
118
|
+
}
|
|
119
|
+
function formatTarget(t) {
|
|
120
|
+
const parts = [];
|
|
121
|
+
if (t.environment) parts.push(`env=${t.environment}`);
|
|
122
|
+
parts.push(t.preview ? "preview" : "production");
|
|
123
|
+
if (t.previewScope) parts.push(`scope=${t.previewScope}`);
|
|
124
|
+
if (t.branchName) parts.push(`branch=${t.branchName}`);
|
|
125
|
+
return parts.join(" ");
|
|
126
|
+
}
|
|
127
|
+
//#endregion
|
|
128
|
+
//#region src/cli/deploy-strategy.ts
|
|
129
|
+
function normalizeBranchScope(value) {
|
|
130
|
+
const trimmed = value?.trim();
|
|
131
|
+
return trimmed ? trimmed : void 0;
|
|
132
|
+
}
|
|
133
|
+
function shouldIncludePreviewCrons(config) {
|
|
134
|
+
return config.previews?.includeCrons === true;
|
|
135
|
+
}
|
|
136
|
+
function omitQueueConsumers(config) {
|
|
137
|
+
if (!config.bindings?.queues?.consumers?.length) return config;
|
|
138
|
+
const nextBindings = { ...config.bindings };
|
|
139
|
+
const nextQueues = { ...nextBindings.queues };
|
|
140
|
+
delete nextQueues.consumers;
|
|
141
|
+
if (!nextQueues.producers || Object.keys(nextQueues.producers).length === 0) delete nextBindings.queues;
|
|
142
|
+
else nextBindings.queues = nextQueues;
|
|
143
|
+
return {
|
|
144
|
+
...config,
|
|
145
|
+
bindings: nextBindings
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
function omitCronTriggers(config) {
|
|
149
|
+
if (!config.triggers?.crons?.length) return config;
|
|
150
|
+
const nextTriggers = { ...config.triggers };
|
|
151
|
+
delete nextTriggers.crons;
|
|
152
|
+
if (Object.keys(nextTriggers).length === 0) {
|
|
153
|
+
const { triggers: _triggers, ...rest } = config;
|
|
154
|
+
return rest;
|
|
155
|
+
}
|
|
156
|
+
return {
|
|
157
|
+
...config,
|
|
158
|
+
triggers: nextTriggers
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
function applyDeploymentStrategy(config, options = {}) {
|
|
162
|
+
const branchScope = normalizeBranchScope(options.previewBranch) ?? normalizeBranchScope(options.branchName);
|
|
163
|
+
if (!(!options.preview && options.environment === "preview" && Boolean(branchScope))) return {
|
|
164
|
+
config,
|
|
165
|
+
strategy: "default",
|
|
166
|
+
omittedResources: []
|
|
167
|
+
};
|
|
168
|
+
const omittedResources = [];
|
|
169
|
+
let nextConfig = config;
|
|
170
|
+
if (nextConfig.bindings?.queues?.consumers?.length) {
|
|
171
|
+
nextConfig = omitQueueConsumers(nextConfig);
|
|
172
|
+
omittedResources.push("queue-consumers");
|
|
173
|
+
}
|
|
174
|
+
if (!shouldIncludePreviewCrons(nextConfig) && nextConfig.triggers?.crons?.length) {
|
|
175
|
+
nextConfig = omitCronTriggers(nextConfig);
|
|
176
|
+
omittedResources.push("cron-triggers");
|
|
177
|
+
}
|
|
178
|
+
return {
|
|
179
|
+
config: nextConfig,
|
|
180
|
+
strategy: "preview-scope",
|
|
181
|
+
branchScope,
|
|
182
|
+
omittedResources
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
function describeDeploymentStrategy(result) {
|
|
186
|
+
if (result.strategy !== "preview-scope" || result.omittedResources.length === 0) return;
|
|
187
|
+
const labels = result.omittedResources.map((resource) => {
|
|
188
|
+
return resource === "queue-consumers" ? "queue consumers" : "cron triggers";
|
|
189
|
+
});
|
|
190
|
+
const formattedLabels = labels.length === 2 ? `${labels[0]} and ${labels[1]}` : labels[0];
|
|
191
|
+
return `Named preview-scope deploy detected${result.branchScope ? ` (${result.branchScope})` : ""}; omitting shared ${formattedLabels} from the deployed Wrangler config to avoid singleton Cloudflare resource conflicts.`;
|
|
192
|
+
}
|
|
193
|
+
//#endregion
|
|
194
|
+
//#region src/cli/commands/build-artifacts.ts
|
|
195
|
+
function getBuildArtifactPaths(cwd) {
|
|
196
|
+
return getGeneratedArtifactPaths(cwd);
|
|
197
|
+
}
|
|
198
|
+
function isNestedPath(parentPath, candidatePath) {
|
|
199
|
+
const normalizedParentPath = parentPath.replace(/\\/g, "/");
|
|
200
|
+
return candidatePath.replace(/\\/g, "/").startsWith(`${normalizedParentPath}/`);
|
|
201
|
+
}
|
|
202
|
+
function isolateViteBuildOutputPaths(cwd, wranglerConfig) {
|
|
203
|
+
return isolateViteBuildOutputPaths$1(cwd, wranglerConfig);
|
|
204
|
+
}
|
|
205
|
+
function getViteBuildCleanupTargets(cwd, wranglerConfig) {
|
|
206
|
+
const targets = [];
|
|
207
|
+
const assetsDirectory = wranglerConfig.assets?.directory;
|
|
208
|
+
const mainEntry = wranglerConfig.main;
|
|
209
|
+
if (assetsDirectory) targets.push(resolve(cwd, assetsDirectory));
|
|
210
|
+
if (mainEntry) {
|
|
211
|
+
const mainEntryPath = resolve(cwd, mainEntry);
|
|
212
|
+
if (!targets.some((targetPath) => {
|
|
213
|
+
return mainEntryPath === targetPath || isNestedPath(targetPath, mainEntryPath);
|
|
214
|
+
})) targets.push(mainEntryPath);
|
|
215
|
+
}
|
|
216
|
+
return targets;
|
|
217
|
+
}
|
|
218
|
+
function shouldRetryCleanup(error) {
|
|
219
|
+
if (!error || typeof error !== "object") return false;
|
|
220
|
+
const errorCode = error.code;
|
|
221
|
+
return errorCode === "EBUSY" || errorCode === "EPERM" || errorCode === "ENOTEMPTY";
|
|
222
|
+
}
|
|
223
|
+
async function getCleanupFileSystem() {
|
|
224
|
+
return await import("node:fs/promises");
|
|
225
|
+
}
|
|
226
|
+
async function pathExists(cleanupFs, targetPath) {
|
|
227
|
+
try {
|
|
228
|
+
await cleanupFs.access(targetPath);
|
|
229
|
+
return true;
|
|
230
|
+
} catch {
|
|
231
|
+
return false;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
function createDeferredCleanupPath(targetPath, uniqueSuffix) {
|
|
235
|
+
return `${targetPath}.devflare-stale-${uniqueSuffix ?? `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`}`;
|
|
236
|
+
}
|
|
237
|
+
async function tryMoveLockedPathAside(targetPath, logger, cleanupFs) {
|
|
238
|
+
if (!await pathExists(cleanupFs, targetPath)) return true;
|
|
239
|
+
const deferredCleanupPath = createDeferredCleanupPath(targetPath);
|
|
240
|
+
try {
|
|
241
|
+
await cleanupFs.rename(targetPath, deferredCleanupPath);
|
|
242
|
+
} catch {
|
|
243
|
+
return false;
|
|
244
|
+
}
|
|
245
|
+
logger.warn(`Moved locked build output aside to ${deferredCleanupPath} after repeated cleanup failures; continuing build`);
|
|
246
|
+
try {
|
|
247
|
+
await cleanupFs.rm(deferredCleanupPath, {
|
|
248
|
+
recursive: true,
|
|
249
|
+
force: true
|
|
250
|
+
});
|
|
251
|
+
} catch (error) {
|
|
252
|
+
const cleanupErrorCode = error instanceof Error && "code" in error && typeof error.code === "string" ? error.code : "an unknown error";
|
|
253
|
+
logger.warn(`Deferred cleanup for ${deferredCleanupPath} is still blocked by ${cleanupErrorCode}; you can remove it manually later`);
|
|
254
|
+
}
|
|
255
|
+
return true;
|
|
256
|
+
}
|
|
257
|
+
async function removePathWithRetries(targetPath, logger, attempts = 5, cleanupFs) {
|
|
258
|
+
const fs = cleanupFs ?? await getCleanupFileSystem();
|
|
259
|
+
let lastError;
|
|
260
|
+
for (let attempt = 1; attempt <= attempts; attempt++) try {
|
|
261
|
+
await fs.rm(targetPath, {
|
|
262
|
+
recursive: true,
|
|
263
|
+
force: true
|
|
264
|
+
});
|
|
265
|
+
return;
|
|
266
|
+
} catch (error) {
|
|
267
|
+
lastError = error;
|
|
268
|
+
if (!shouldRetryCleanup(error) || attempt === attempts) break;
|
|
269
|
+
logger.warn(`Retrying cleanup for ${targetPath} after ${error.code} (${attempt}/${attempts})`);
|
|
270
|
+
await new Promise((resolveRetry) => setTimeout(resolveRetry, attempt * 100));
|
|
271
|
+
}
|
|
272
|
+
if (shouldRetryCleanup(lastError) && await tryMoveLockedPathAside(targetPath, logger, fs)) return;
|
|
273
|
+
if (shouldRetryCleanup(lastError)) {
|
|
274
|
+
const cleanupErrorCode = lastError instanceof Error && "code" in lastError && typeof lastError.code === "string" ? lastError.code : "an unknown error";
|
|
275
|
+
logger.warn(`Continuing build without pre-clean for ${targetPath} because cleanup is still blocked by ${cleanupErrorCode}`);
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
throw lastError;
|
|
279
|
+
}
|
|
280
|
+
async function cleanupViteBuildOutputs(cwd, wranglerConfig, logger) {
|
|
281
|
+
const cleanupTargets = getViteBuildCleanupTargets(cwd, wranglerConfig);
|
|
282
|
+
for (const cleanupTarget of cleanupTargets) await removePathWithRetries(cleanupTarget, logger);
|
|
283
|
+
}
|
|
284
|
+
async function writeDeployRedirect(cwd, generatedConfigPath) {
|
|
285
|
+
const fs = await import("node:fs/promises");
|
|
286
|
+
const paths = getBuildArtifactPaths(cwd);
|
|
287
|
+
await ensureGeneratedDirectory(paths.deployDir);
|
|
288
|
+
const configPath = relative(paths.deployDir, generatedConfigPath).replace(/\\/g, "/");
|
|
289
|
+
await fs.writeFile(paths.deployRedirectPath, `${JSON.stringify({ configPath }, null, " ")}\n`, "utf-8");
|
|
290
|
+
}
|
|
291
|
+
async function readDeployRedirect(cwd) {
|
|
292
|
+
const fs = await import("node:fs/promises");
|
|
293
|
+
const paths = getBuildArtifactPaths(cwd);
|
|
294
|
+
try {
|
|
295
|
+
const rawConfig = await fs.readFile(paths.deployRedirectPath, "utf-8");
|
|
296
|
+
const parsed = JSON.parse(rawConfig);
|
|
297
|
+
if (typeof parsed.configPath !== "string" || parsed.configPath.length === 0) return null;
|
|
298
|
+
return resolve(dirname(paths.deployRedirectPath), parsed.configPath);
|
|
299
|
+
} catch {
|
|
300
|
+
return null;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
async function writeGeneratedDeployWranglerConfig(cwd, wranglerConfig, options = {}) {
|
|
304
|
+
const paths = getBuildArtifactPaths(cwd);
|
|
305
|
+
await ensureGeneratedDirectory(paths.buildDir, true);
|
|
306
|
+
const buildConfig = rebaseWranglerConfigPaths(cwd, paths.buildDir, wranglerConfig);
|
|
307
|
+
if (options.main) buildConfig.main = options.main;
|
|
308
|
+
await writeWranglerConfig(paths.buildDir, buildConfig, "wrangler.jsonc");
|
|
309
|
+
return paths.buildWranglerConfigPath;
|
|
310
|
+
}
|
|
311
|
+
async function writeGeneratedDevWranglerConfig(cwd, wranglerConfig) {
|
|
312
|
+
const paths = getGeneratedArtifactPaths(cwd);
|
|
313
|
+
await ensureGeneratedDirectory(paths.devflareDir, true);
|
|
314
|
+
const devConfig = rebaseWranglerConfigPaths(cwd, paths.devflareDir, wranglerConfig);
|
|
315
|
+
await writeWranglerConfig(paths.devflareDir, devConfig, "wrangler.jsonc");
|
|
316
|
+
return paths.devWranglerConfigPath;
|
|
317
|
+
}
|
|
318
|
+
async function buildWorkerOnlyDeployArtifact(cwd, wranglerConfig, config, logger) {
|
|
319
|
+
if (!wranglerConfig.main) return await writeGeneratedDeployWranglerConfig(cwd, wranglerConfig);
|
|
320
|
+
const paths = getBuildArtifactPaths(cwd);
|
|
321
|
+
logLine(logger, `Generated deploy artifact: ${relative(cwd, await bundleWorkerEntry({
|
|
322
|
+
cwd,
|
|
323
|
+
inputFile: resolve(cwd, wranglerConfig.main),
|
|
324
|
+
outFile: paths.buildWorkerPath,
|
|
325
|
+
rolldownOptions: config.rolldown?.options,
|
|
326
|
+
sourcemap: config.rolldown?.sourcemap,
|
|
327
|
+
minify: config.rolldown?.minify,
|
|
328
|
+
logger
|
|
329
|
+
})).replace(/\\/g, "/")}`);
|
|
330
|
+
return await writeGeneratedDeployWranglerConfig(cwd, wranglerConfig, { main: "./worker.js" });
|
|
331
|
+
}
|
|
332
|
+
async function resolveLocalViteExecutable(cwd, fs) {
|
|
333
|
+
const workspaceLocal = await findWorkspaceLocalBinary(cwd, fs, [
|
|
334
|
+
"vite",
|
|
335
|
+
"bin",
|
|
336
|
+
"vite.js"
|
|
337
|
+
]);
|
|
338
|
+
if (workspaceLocal) return workspaceLocal;
|
|
339
|
+
const viteExecutablePath = resolvePackageSpecifier("vite/bin/vite.js", cwd);
|
|
340
|
+
try {
|
|
341
|
+
await fs.access(viteExecutablePath);
|
|
342
|
+
} catch {
|
|
343
|
+
throw new Error(`Could not resolve a local Vite CLI entrypoint from ${cwd}. Install vite in this package before running a Vite-backed Devflare build.`);
|
|
344
|
+
}
|
|
345
|
+
return viteExecutablePath;
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Walk up the directory tree from `startDir` looking for
|
|
349
|
+
* `node_modules/<segments>`. Returns the first match or null.
|
|
350
|
+
*
|
|
351
|
+
* This preserves the workspace-local (symlinked) path rather than the
|
|
352
|
+
* package manager's underlying cache realpath, which matters for Node
|
|
353
|
+
* package resolution semantics under Bun on Windows.
|
|
354
|
+
*/
|
|
355
|
+
async function findWorkspaceLocalBinary(startDir, fs, segments) {
|
|
356
|
+
let currentDir = resolve(startDir);
|
|
357
|
+
for (let depth = 0; depth < 64; depth++) {
|
|
358
|
+
const candidate = resolve(currentDir, "node_modules", ...segments);
|
|
359
|
+
try {
|
|
360
|
+
await fs.access(candidate);
|
|
361
|
+
return candidate;
|
|
362
|
+
} catch {}
|
|
363
|
+
const parent = dirname(currentDir);
|
|
364
|
+
if (parent === currentDir) return null;
|
|
365
|
+
currentDir = parent;
|
|
366
|
+
}
|
|
367
|
+
return null;
|
|
368
|
+
}
|
|
369
|
+
/** True when the current process is Bun (and `bun` is therefore on PATH). */
|
|
370
|
+
function isRunningUnderBun() {
|
|
371
|
+
return typeof globalThis.Bun !== "undefined" || typeof process.versions.bun === "string";
|
|
372
|
+
}
|
|
373
|
+
async function prepareBuildArtifacts(parsed, logger, options) {
|
|
374
|
+
const cwd = options.cwd || process.cwd();
|
|
375
|
+
const configPath = parsed.options.config;
|
|
376
|
+
const environment = parsed.options.env;
|
|
377
|
+
const config = await resolveConfigEnvVars(resolveConfigForEnvironment(await loadConfig({
|
|
378
|
+
cwd,
|
|
379
|
+
configFile: configPath
|
|
380
|
+
}), environment), {
|
|
381
|
+
cwd,
|
|
382
|
+
configPath,
|
|
383
|
+
mode: "build"
|
|
384
|
+
});
|
|
385
|
+
logLine(logger, `Building: ${config.name}`);
|
|
386
|
+
const composedMainEntry = await prepareComposedWorkerEntrypoint(cwd, config, environment);
|
|
387
|
+
const deps = await getDependencies();
|
|
388
|
+
const viteProject = resolveEffectiveViteProject(await detectViteProject(cwd, deps.fs), config, environment);
|
|
389
|
+
const deploymentStrategy = applyDeploymentStrategy(config, {
|
|
390
|
+
environment,
|
|
391
|
+
preview: parsed.options.preview === true,
|
|
392
|
+
branchName: parsed.options["branch-name"],
|
|
393
|
+
previewBranch: process.env.DEVFLARE_PREVIEW_BRANCH
|
|
394
|
+
});
|
|
395
|
+
const deploymentStrategyMessage = describeDeploymentStrategy(deploymentStrategy);
|
|
396
|
+
if (deploymentStrategyMessage) logLine(logger, deploymentStrategyMessage);
|
|
397
|
+
const devWranglerConfig = viteProject.shouldStartVite ? isolateViteBuildOutputPaths(cwd, compileBuildConfig(config)) : compileBuildConfig(config);
|
|
398
|
+
const deployWranglerConfig = viteProject.shouldStartVite ? isolateViteBuildOutputPaths(cwd, compileBuildConfig(deploymentStrategy.config)) : compileBuildConfig(deploymentStrategy.config);
|
|
399
|
+
if (viteProject.shouldStartVite) {
|
|
400
|
+
if (composedMainEntry) {
|
|
401
|
+
deployWranglerConfig.main = relative(cwd, composedMainEntry);
|
|
402
|
+
logLine(logger, `Generated composed worker entry: ${deployWranglerConfig.main}`);
|
|
403
|
+
}
|
|
404
|
+
} else if (composedMainEntry) {
|
|
405
|
+
const bundledMainPath = relative(cwd, await bundleWorkerEntry({
|
|
406
|
+
cwd,
|
|
407
|
+
inputFile: composedMainEntry,
|
|
408
|
+
outFile: resolve(cwd, ".devflare", "worker-entrypoints", "main.js"),
|
|
409
|
+
rolldownOptions: config.rolldown?.options,
|
|
410
|
+
sourcemap: config.rolldown?.sourcemap,
|
|
411
|
+
minify: config.rolldown?.minify,
|
|
412
|
+
logger
|
|
413
|
+
})).replace(/\\/g, "/");
|
|
414
|
+
devWranglerConfig.main = bundledMainPath;
|
|
415
|
+
deployWranglerConfig.main = bundledMainPath;
|
|
416
|
+
logLine(logger, `Generated bundled worker entry: ${bundledMainPath}`);
|
|
417
|
+
}
|
|
418
|
+
let deployConfigPath;
|
|
419
|
+
if (viteProject.shouldStartVite) {
|
|
420
|
+
const generatedViteConfigPath = await writeGeneratedViteConfig({
|
|
421
|
+
cwd,
|
|
422
|
+
configPath,
|
|
423
|
+
environment,
|
|
424
|
+
localConfigPath: viteProject.viteConfigPath
|
|
425
|
+
});
|
|
426
|
+
const viteExecutablePath = await resolveLocalViteExecutable(cwd, deps.fs);
|
|
427
|
+
await cleanupViteBuildOutputs(cwd, devWranglerConfig, logger);
|
|
428
|
+
logLine(logger, "Running vite build...");
|
|
429
|
+
const useBunRuntime = isRunningUnderBun();
|
|
430
|
+
const buildCommand = useBunRuntime ? "bun" : viteExecutablePath;
|
|
431
|
+
const buildArgs = useBunRuntime ? [
|
|
432
|
+
"--bun",
|
|
433
|
+
viteExecutablePath,
|
|
434
|
+
"build",
|
|
435
|
+
"--config",
|
|
436
|
+
generatedViteConfigPath
|
|
437
|
+
] : [
|
|
438
|
+
"build",
|
|
439
|
+
"--config",
|
|
440
|
+
generatedViteConfigPath
|
|
441
|
+
];
|
|
442
|
+
const buildProc = await deps.exec.exec(buildCommand, buildArgs, {
|
|
443
|
+
cwd,
|
|
444
|
+
stdio: "inherit",
|
|
445
|
+
env: {
|
|
446
|
+
...process.env,
|
|
447
|
+
DEVFLARE_BUILD: "true"
|
|
448
|
+
},
|
|
449
|
+
reject: false
|
|
450
|
+
});
|
|
451
|
+
if (buildProc.exitCode !== 0) throw new Error(`Vite build failed (exit code ${buildProc.exitCode}).\n\nCommand: ${buildCommand} ${buildArgs.join(" ")}\nWorking directory: ${cwd}\nVite executable: ${viteExecutablePath}\nRuntime: ${useBunRuntime ? "bun --bun" : "node (default execa runtime)"}\n\nVite's own output is printed above. If you only see "UNHANDLED PROMISE REJECTION"\nwith no other detail, common causes are:\n - A Vite plugin or transitive dependency (e.g. rolldown) cannot be resolved\n from the executable's physical path. This commonly happens when the package\n manager resolves the Vite binary to a global cache directory outside the\n workspace's node_modules tree. Try reinstalling, or run vite directly to\n isolate: \`bunx --bun vite build --config ${relative(cwd, generatedViteConfigPath).replace(/\\/g, "/")}\`.\n - A peer dependency or framework adapter is missing. Re-check the package's\n devDependencies against the framework's documented requirements.\n - The generated vite config references a path that does not yet exist.`);
|
|
452
|
+
const existingDeployConfigPath = await readDeployRedirect(cwd);
|
|
453
|
+
const generatedDeployConfigPath = deployWranglerConfig.main && deployWranglerConfig.main !== devWranglerConfig.main ? await buildWorkerOnlyDeployArtifact(cwd, deployWranglerConfig, config, logger) : await writeGeneratedDeployWranglerConfig(cwd, deployWranglerConfig);
|
|
454
|
+
deployConfigPath = existingDeployConfigPath && existingDeployConfigPath !== generatedDeployConfigPath ? existingDeployConfigPath : generatedDeployConfigPath;
|
|
455
|
+
} else {
|
|
456
|
+
logLine(logger, "Skipping Vite build (no effective Vite config found for this package)");
|
|
457
|
+
deployConfigPath = await buildWorkerOnlyDeployArtifact(cwd, deployWranglerConfig, config, logger);
|
|
458
|
+
}
|
|
459
|
+
const generatedDevConfigPath = await writeGeneratedDevWranglerConfig(cwd, devWranglerConfig);
|
|
460
|
+
logger.debug(`Generated dev Wrangler config: ${relative(cwd, generatedDevConfigPath).replace(/\\/g, "/")}`);
|
|
461
|
+
await writeDeployRedirect(cwd, deployConfigPath);
|
|
462
|
+
logLine(logger, `Generated deploy Wrangler config: ${relative(cwd, deployConfigPath).replace(/\\/g, "/")}`);
|
|
463
|
+
logLine(logger, `Generated deploy redirect: ${relative(cwd, getBuildArtifactPaths(cwd).deployRedirectPath).replace(/\\/g, "/")}`);
|
|
464
|
+
const manifest = createBuildManifest(config, {
|
|
465
|
+
devflareVersion: await getPackageVersion(),
|
|
466
|
+
intendedTarget: {
|
|
467
|
+
environment,
|
|
468
|
+
preview: parsed.options.preview === true,
|
|
469
|
+
previewScope: typeof parsed.options.preview === "string" ? parsed.options.preview : void 0,
|
|
470
|
+
branchName: parsed.options["branch-name"]
|
|
471
|
+
}
|
|
472
|
+
});
|
|
473
|
+
const manifestPath = await writeBuildManifest(getBuildArtifactPaths(cwd).buildDir, manifest);
|
|
474
|
+
logger.debug(`Generated build manifest: ${relative(cwd, manifestPath).replace(/\\/g, "/")}`);
|
|
475
|
+
return {
|
|
476
|
+
config,
|
|
477
|
+
wranglerConfig: deployWranglerConfig,
|
|
478
|
+
deployConfigPath,
|
|
479
|
+
viteProject
|
|
480
|
+
};
|
|
481
|
+
}
|
|
482
|
+
//#endregion
|
|
483
|
+
export { createBuildManifest as a, compareManifests as i, applyDeploymentStrategy as n, formatDriftWarning as o, describeDeploymentStrategy as r, readBuildManifest as s, prepareBuildArtifacts as t };
|