Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): update devdependency wrangler to v4 #17

Open
wants to merge 1 commit into
base: production
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Mar 14, 2025

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
wrangler (source) ^3.99.0 -> ^4.0.0 age adoption passing confidence

Release Notes

cloudflare/workers-sdk (wrangler)

v4.0.0

Compare Source

Major Changes
  • #​7334 869ec7b Thanks @​penalosa! - Use --local by default for wrangler kv key and wrangler r2 object commands

  • #​7334 869ec7b Thanks @​dario-piotrowicz! - chore: remove deprecated getBindingsProxy

    remove the deprecated getBindingsProxy utility which has been replaced with getPlatformProxy

  • #​7334 869ec7b Thanks @​penalosa! - Remove the deprecated --format argument on wrangler deploy and wrangler dev.

    Remove deprecated config fields:

    • type
    • webpack_config
    • miniflare
    • build.upload
    • zone_id
    • usage_model
    • experimental_services
    • kv-namespaces
  • #​7334 869ec7b Thanks @​rozenmd! - Remove wrangler d1 backups

    This change removes wrangler d1 backups, a set of alpha-only commands that would allow folks to interact with backups of their D1 alpha DBs.

    For production D1 DBs, you can restore previous versions of your database with wrangler d1 time-travel and export it at any time with wrangler d1 export.

    Closes #​7470

  • #​7334 869ec7b Thanks @​rozenmd! - Remove --batch-size as an option for wrangler d1 execute and wrangler d1 migrations apply

    This change removes the deprecated --batch-size flag, as it is no longer necessary to decrease the number of queries wrangler sends to D1.

    Closes #​7470

  • #​7334 869ec7b Thanks @​rozenmd! - Remove alpha support from wrangler d1 migrations apply

    This change removes code that would take a backup of D1 alpha databases before proceeding with applying a migration.

    We can remove this code as alpha DBs have not accepted queries in months.

    Closes #​7470

  • #​7334 869ec7b Thanks @​penalosa! - Remove the deprecated wrangler generate command. Instead, use the C3 CLI to create new projects: https://developers.cloudflare.com/pages/get-started/c3/

  • #​7334 869ec7b Thanks @​penalosa! - Remove the deprecated wrangler init --no-delegate-c3 command. wrangler init is still available, but will always delegate to C3.

  • #​7334 869ec7b Thanks @​penalosa! - Remove support for legacy assets.

    This removes support for legacy assets using the --legacy-assets flag or legacy_assets config field. Instead, you should use Workers Assets

  • #​7334 869ec7b Thanks @​penalosa! - Remove the deprecated wrangler publish command. Instead, use wrangler deploy, which takes exactly the same arguments.

    Additionally, remove the following deprecated commands, which are no longer supported.

    • wrangler config
    • wrangler preview
    • wrangler route
    • wrangler subdomain

    Remove the following deprecated command aliases:

    • wrangler secret:*, replaced by wrangler secret *
    • wrangler kv:*, replaced by wrangler kv *
  • #​7334 869ec7b Thanks @​penalosa! - Remove the deprecated wrangler version command. Instead, use wrangler --version to check the current version of Wrangler.

  • #​7334 869ec7b Thanks @​penalosa! - The --node-compat flag and node_compat config properties are no longer supported as of Wrangler v4. Instead, use the nodejs_compat compatibility flag. This includes the functionality from legacy node_compat polyfills and natively implemented Node.js APIs. See https://developers.cloudflare.com/workers/runtime-apis/nodejs for more information.

    If you need to replicate the behaviour of the legacy node_compat feature, refer to https://developers.cloudflare.com/workers/wrangler/migration/update-v3-to-v4/ for a detailed guide.

  • #​7334 869ec7b Thanks @​threepointone! - chore: update esbuild

    This patch updates esbuild from 0.17.19 to 0.24.2. That's a big bump! Lots has gone into esbuild since May '23. All the details are available at https://github.com/evanw/esbuild/blob/main/CHANGELOG.md / https://github.com/evanw/esbuild/blob/main/CHANGELOG-2023.md.

    • We now support all modern JavasScript/TypeScript features suported by esbuild (as of December 2024). New additions include standard decorators, auto-accessors, and the using syntax.

    • 0.18 introduced wider support for configuration specified via tsconfig.json https://github.com/evanw/esbuild/issues/3019. After observing the (lack of) any actual broken code over the last year for this release, we feel comfortable releasing this without considering it a breaking change.

    • 0.19.3 introduced support for import attributes

      import stuff from './stuff.json' with { type: 'json' }

      While we don't currently expose the esbuild configuration for developers to add their own plugins to customise how modules with import attributes are bundled, we may introduce new "types" ourselves in the future.

    • 0.19.0 introduced support for wildcard imports. Specifics here (https://github.com/evanw/esbuild/blob/main/CHANGELOG-2023.md#0190). tl;dr -

      • These 2 patterns will bundle all files that match the glob pattern into a single file.

        const json1 = await import("./data/" + kind + ".json");
        const json2 = await import(`./data/${kind}.json`);
      • This pattern will NOT bundle any matching patterns:

        const path = "./data/" + kind + ".js";
        const json2 = await import(path);

        You can use find_additional_modules to bundle any additional modules that are not referenced in the code but are required by the project.

      Now, this MAY be a breaking change for some. Specifically, if you were previously using the pattern (that will now include all files matching the glob pattern in the bundle), BUT find_additional_modules was NOT configured to include some files, those files would now be included in the bundle. For example, consider this code:

      // src/index.js
      export default {
      	async fetch() {
      		const url = new URL(request.url);
      		const name = url.pathname;
      		const value = (await import("." + name)).default;
      		return new Response(value);
      	},
      };

      Imagine if in that folder, you had these 3 files:

      // src/one.js
      export default "one";
      // src/two.js
      export default "two";
      // src/hidden/secret.js
      export default "do not share this secret";

      And your wrangler.toml was:

      name = "my-worker"
      main = "src/index.js

      Before this update:

      1. A request to anything but http://localhost:8787/ would error. For example, a request to http://localhost:8787/one.js would error with No such module "one.js".
      2. Let's configure wrangler.toml to include all .js files in the src folder:
      name = "my-worker"
      main = "src/index.js
      
      find_additional_modules = true
      rules = [
        { type = "ESModule", globs = ["*.js"]}
      ]

      Now, a request to http://localhost:8787/one.js would return the contents of src/one.js, but a request to http://localhost:8787/hidden/secret.js would error with No such module "hidden/secret.js". To include this file, you could expand the rules array to be:

      rules = [
        { type = "ESModule", globs = ["**/*.js"]}
      ]

      Then, a request to http://localhost:8787/hidden/secret.js will return the contents of src/hidden/secret.js.

      After this update:

      • Let's put the wrangler.toml back to its original configuration:
      name = "my-worker"
      main = "src/index.js
      • Now, a request to http://localhost:8787/one.js will return the contents of src/one.js, but a request to http://localhost:8787/hidden/secret.js will ALSO return the contents of src/hidden/secret.js. THIS MAY NOT BE WHAT YOU WANT. You can "fix" this in 2 ways:

        1. Remove the inline wildcard import:
        // src/index.js
        export default {
        	async fetch() {
        		const name = new URL(request.url).pathname;
        		const moduleName = "./" + name;
        		const value = (await import(moduleName)).default;
        		return new Response(value);
        	},
        };

        Now, no extra modules are included in the bundle, and a request to http://localhost:8787/hidden/secret.js will throw an error. You can use the find_additional_modules feature to include it again.

        1. Don't use the wildcard import pattern:
        // src/index.js
        import one from "./one.js";
        import two from "./two.js";
        
        export default {
        	async fetch() {
        		const name = new URL(request.url).pathname;
        		switch (name) {
        			case "/one.js":
        				return new Response(one);
        			case "/two.js":
        				return new Response(two);
        			default:
        				return new Response("Not found", { status: 404 });
        		}
        	},
        };

        Further, there may be some files that aren't modules (js/ts/wasm/text/binary/etc) that are in the folder being included (For example, a photo.jpg file). This pattern will now attempt to include them in the bundle, and throw an error. It will look like this:

        [ERROR] No loader is configured for ".png" files: src/photo.jpg

        To fix this, simply move the offending file to a different folder.

        In general, we DO NOT recommend using the wildcard import pattern. If done wrong, it can leak files into your bundle that you don't want, or make your worker slightly slower to start. If you must use it (either with a wildcard import pattern or with find_additional_modules) you must be diligent to check that your worker is working as expected and that you are not leaking files into your bundle that you don't want. You can configure eslint to disallow dynamic imports like this:

        // eslint.config.js
        export default [
        	{
        		rules: {
        			"no-restricted-syntax": [
        				"error",
        				{
        					selector: "ImportExpression[argument.type!='Literal']",
        					message:
        						"Dynamic imports with non-literal arguments are not allowed.",
        				},
        			],
        		},
        	},
        ];
  • #​7334 869ec7b Thanks @​pmiguel! - Remove worker name prefix from KV namespace create

    When running wrangler kv namespace create <name>, previously the name of the namespace was automatically prefixed with the worker title, or worker- when running outside the context of a worker.
    After this change, KV namespaces will no longer get prefixed, and the name used is the name supplied, verbatim.

  • #​7334 869ec7b Thanks @​penalosa! - Packages in Workers SDK now support the versions of Node that Node itself supports (Current, Active, Maintenance). Currently, that includes Node v18, v20, and v22.

Minor Changes
  • #​7334 869ec7b Thanks @​emily-shen! - Include runtime types in the output of wrangler types by default

    wrangler types will now produce one file that contains both Env types and runtime types based on your compatibility date and flags. This is located at worker-configuration.d.ts by default.

    This behaviour was previously gated behind --experimental-include-runtime. That flag is no longer necessary and has been removed. It has been replaced by --include-runtime and --include-env, both of which are set to true by default. If you were previously using --x-include-runtime, you can drop that flag and remove the separate runtime.d.ts file.

    If you were previously using @cloudflare/workers-types we recommend you run uninstall (e.g. npm uninstall @&#8203;cloudflare/workers-types) and run wrangler types instead. Note that @cloudflare/workers-types will continue to be published.

  • #​7334 869ec7b Thanks @​penalosa! - feat: prompt users to rerun wrangler types during wrangler dev

    If a generated types file is found at the default output location of wrangler types (worker-configuration.d.ts), remind users to rerun wrangler types if it looks like they're out of date.

Patch Changes

v3.114.1

Compare Source

Patch Changes
  • #​8383 8d6d722 Thanks @​matthewdavidrodgers! - Make kv bulk put --local respect base64:true

    The bulk put api has an optional "base64" boolean property for each key.
    Before storing the key, the value should be decoded from base64.

    For real (remote) kv, this is handled by the rest api. For local kv, it
    seems the base64 field was ignored, meaning encoded base64 content was
    stored locally rather than the raw values.

    To fix, we need to decode each value before putting to the local
    miniflare namespace when base64 is true.

  • #​8273 e3efd68 Thanks @​penalosa! - Support AI, Vectorize, and Images bindings when using @cloudflare/vite-plugin

  • #​8427 a352798 Thanks @​vicb! - update unenv-preset dependency to fix bug with Performance global

    Fixes #​8407
    Fixes #​8409
    Fixes #​8411

  • #​8390 53e6323 Thanks @​GregBrimble! - Parse and apply metafiles (_headers and _redirects) in wrangler dev for Workers Assets

  • #​8392 4d9d9e6 Thanks @​jahands! - fix: retry zone and route lookup API calls

    In rare cases, looking up Zone or Route API calls may fail due to transient errors. This change improves the reliability of wrangler deploy when these errors occur.

    Also fixes a rare issue where concurrent API requests may fail without correctly throwing an error which may cause a deployment to incorrectly appear successful.

  • Updated dependencies [8242e07, 53e6323]:

v3.114.0

Compare Source

Minor Changes
  • #​8367 7b6b0c2 Thanks @​jonesphillip! - Deprecated --id parameter in favor of --name for both the wrangler r2 bucket lifecycle and wrangler r2 bucket lock commands

v3.113.0

Compare Source

Minor Changes
Patch Changes
  • #​8338 2d40989 Thanks @​GregBrimble! - feat: Upload _headers and _redirects if present with Workers Assets as part of wrangler deploy and wrangler versions upload.

  • #​8288 cf14e17 Thanks @​CarmenPopoviciu! - feat: Add assets Proxy Worker skeleton in miniflare

    This commit implements a very basic Proxy Worker skeleton, and wires it in the "pipeline" miniflare creates for assets. This Worker will be incrementally worked on, but for now, the current implementation will forward all incoming requests to the Router Worker, thus leaving the current assets behaviour in local dev, the same.

    This is an experimental feature available under the --x-assets-rpc flag: wrangler dev --x-assets-rpc.

  • #​8216 af9a57a Thanks @​ns476! - Support Images binding in wrangler types

  • #​8304 fbba583 Thanks @​jahands! - chore: add concurrency and caching for Zone IDs and Workers routes lookups

    Workers with many routes can result in duplicate Zone lookups during deployments, making deployments unnecessarily slow. This compounded by the lack of concurrency when making these API requests.

    This change deduplicates these requests and adds concurrency to help speed up deployments.

  • Updated dependencies [2d40989, da568e5, cf14e17, 79c7810]:

v3.112.0

Compare Source

Minor Changes
  • #​8256 f59d95b Thanks @​jbwcloudflare! - Add two new Queues commands: pause-delivery and resume-delivery

    These new commands allow users to pause and resume the delivery of messages to Queue Consumers

Patch Changes

v3.111.0

Compare Source

Minor Changes
Patch Changes

v3.110.0

Compare Source

Minor Changes
  • #​8253 6dd1e23 Thanks @​CarmenPopoviciu! - Add --cwd global argument to the wrangler CLI to allow changing the current working directory before running any command.
Patch Changes

v3.109.3

Compare Source

Patch Changes

v3.109.2

Compare Source

Patch Changes

v3.109.1

Compare Source

Patch Changes

v3.109.0

Compare Source

Minor Changes
  • #​8120 3fb801f Thanks @​sdnts! - Add a new update subcommand for Queues to allow updating Queue settings

  • #​8120 3fb801f Thanks @​sdnts! - Allow overriding message retention duration when creating Queues

  • #​8026 542c6ea Thanks @​penalosa! - Add --outfile to wrangler deploy for generating a worker bundle.

    This is an advanced feature that most users won't need to use. When set, Wrangler will output your built Worker bundle in a Cloudflare specific format that captures all information needed to deploy a Worker using the Worker Upload API

  • #​8026 542c6ea Thanks @​penalosa! - Add a wrangler check startup command to generate a CPU profile of your Worker's startup phase.

    This can be imported into Chrome DevTools or opened directly in VSCode to view a flamegraph of your Worker's startup phase. Additionally, when a Worker deployment fails with a startup time error Wrangler will automatically generate a CPU profile for easy investigation.

    Advanced usage:

    • --args: to customise the way wrangler check startup builds your Worker for analysis, provide the exact arguments you use when deploying your Worker with wrangler deploy. For instance, if you deploy your Worker with wrangler deploy --no-bundle, you should use wrangler check startup --args="--no-bundle" to profile the startup phase.
    • --worker-bundle: if you don't use Wrangler to deploy your Worker, you can use this argument to provide a Worker bundle to analyse. This should be a file path to a serialised multipart upload, with the exact same format as the API expects: https://developers.cloudflare.com/api/resources/workers/subresources/scripts/methods/update/
Patch Changes
  • #​8112 fff677e Thanks @​penalosa! - When reporting errors to Sentry, Wrangler will now include the console output as additional metadata

  • #​8120 3fb801f Thanks @​sdnts! - Check bounds when overriding delivery delay when creating Queues

  • #​7950 4db1fb5 Thanks @​cmackenzie1! - Add local binding support for Worker Pipelines

  • #​8119 1bc60d7 Thanks @​penalosa! - Output correct config format from wrangler d1 create. Previously, this command would always output TOML, regardless of the config file format

  • #​8130 1aa2a91 Thanks @​emily-shen! - Include default values for wrangler types --path and --x-include-runtime in telemetry

    User provided strings are still left redacted as always.

  • #​8061 35710e5 Thanks @​emily-shen! - fix: respect WRANGLER_LOG in wrangler dev

    Previously, --log-level=debug was the only way to see debug logs in wrangler dev, which was unlike all other commands.

  • Updated dependencies [4db1fb5]:

v3.108.1

Compare Source

Patch Changes

v3.108.0

Compare Source

Minor Changes
  • #​7990 b1966df Thanks @​cmsparks! - Add WRANGLER_CI_OVERRIDE_NAME for Workers CI

  • #​8028 b2dca9a Thanks @​emily-shen! - feat: Also log when no bindings are found.

    We currently print a worker's bindings during dev, versions upload and deploy. This just also prints something when there's no bindings found, in case you were expecting bindings.

  • #​8037 71fd250 Thanks @​WillTaylorDev! - Provides unsafe.metadata configurations when using wrangler versions secret put.

Patch Changes
  • #​8058 1f80d69 Thanks @​WillTaylorDev! - Bugfix: Modified versions secret put to inherit all known bindings, which circumvents a limitation in the API which does not return all fields for all bindings.

  • #​7986 88514c8 Thanks @​andyjessop! - docs: clarifies that local resources are "simulated locally" or "connected to remote resource", and adds console messages to help explain local dev

  • #​8008 9d08af8 Thanks @​ns476! - Add support for Images bindings (in private beta for now), with optional local support for platforms where Sharp is available.

  • #​7769 6abe69c Thanks @​cmackenzie1! - Adds the following new option for wrangler pipelines create and wrangler pipelines update commands:

    --cors-origins           CORS origin allowlist for HTTP endpoint (use * for any origin)  [array]
    
  • #​7290 0c0374c Thanks @​emily-shen! - fix: add support for workers with assets when running multiple workers in one wrangler dev instance

    https://github.com/cloudflare/workers-sdk/pull/7251 added support for running multiple Workers in one wrangler dev/miniflare session. e.g. wrangler dev -c wrangler.toml -c ../worker2/wrangler.toml, which among other things, allowed cross-service RPC to Durable Objects.

    However this did not work in the same way as production when there was a Worker with assets - this PR should fix that.

  • #​7769 6abe69c Thanks @​cmackenzie1! - Rename wrangler pipelines <create|update> flags

    The following parameters have been renamed:

    Previous Name New Name
    access-key-id r2-access-key-id
    secret-access-key r2-secret-access-key
    transform transform-worker
    r2 r2-bucket
    prefix r2-prefix
    binding enable-worker-binding
    http enable-http
    authentication require-http-auth
    filename file-template
    filepath partition-template
  • #​8012 c412a31 Thanks @​mtlemilio! - Use fetchPagedListResult when listing Hyperdrive configs from the API

    This fixes an issue where only 20 configs were being listed.

  • #​8077 60310cd Thanks @​emily-shen! - feat: add telemetry to experimental auto-provisioning

  • Updated dependencies [c80dbd8, 0c0374c]:

v3.107.3

Compare Source

Patch Changes

v3.107.2

Compare Source

Patch Changes

v3.107.1

Compare Source

Patch Changes

v3.107.0

Compare Source

Minor Changes
Patch Changes
  • #​7945 d758215 Thanks @​ns476! - Add Images binding (in private beta for the time being)

  • #​7947 f57bc4e Thanks @​dario-piotrowicz! - fix: avoid getPlatformProxy logging twice that it is using vars defined in .dev.vars files

    when getPlatformProxy is called and it retrieves values from .dev.vars files, it logs twice
    a message like: Using vars defined in .dev.vars, the changes here make sure that in such cases
    this log only appears once

  • #​7889 38db4ed Thanks @​emily-shen! - feat: add experimental resource auto-provisioning to versions upload

  • #​7864 de6fa18 Thanks @​dario-piotrowicz! - Update the unstable_getMiniflareWorkerOptions types to always include an env parameter.

    The unstable_getMiniflareWorkerOptions types, when accepting a config object as the first argument,
    didn't accept a second env argument. The changes here make sure they do, since the env is still
    relevant for picking up variables from .dev.vars files.

  • #​7964 bc4d6c8 Thanks @​LuisDuarte1! - Fix scripts binding to a workflow in a different script overriding workflow config

  • Updated dependencies [cf4f47a]:

v3.106.0

Compare Source

Minor Changes
  • #​7856 2b6f149 Thanks @​emily-shen! - feat: add sanitised error messages to Wrangler telemetry

    Error messages that have been audited for potential inclusion of personal information, and explicitly opted-in, are now included in Wrangler's telemetry collection. Collected error messages will not include any filepaths, user input or any other potentially private content.

  • #​7900 bd9228e Thanks @​vicb! - chore(wrangler): update unenv dependency version

    [email protected] allows using the workerd implementation for
    the Node modules net, timers, and timers/promises.
    See unjs/unenv#396.

Patch Changes
  • #​7904 50b13f6 Thanks @​WalshyDev! - fix: validation for R2 bucket names, the regex was wrongly rejecting buckets starting with a number and the message wasn't as clear as it could be on what was going wrong.

  • #​7895 134d61d Thanks @​jahands! - Fix regression in retryOnAPIFailure preventing any requests from being retried

    Also fixes a regression in pipelines that prevented 401 errors from being retried when waiting for an API token to become active.

  • #​7879 5c02e46 Thanks @​andyjessop! - Fix to not require local connection string when using Hyperdrive and wrangler dev --remote

  • #​7860 13ab591 Thanks @​vicb! - refactor(wrangler): make JSON parsing independent of Node

    Switch jsonc-parser to parse json:

    • JSON.parse() exception messages are not stable across Node versions
    • While jsonc-parser is used, JSONC specific syntax is disabled
  • Updated dependencies []:

v3.105.1

Compare Source

Patch Changes

v3.105.0

Compare Source

Minor Changes
  • #​7466 e5ebdb1 Thanks @​Ltadrian! - feat: implement the wrangler cert upload command

    This command allows users to upload a mTLS certificate/private key or certificate-authority certificate chain.

    For uploading mTLS certificate, run:

    • wrangler cert upload mtls-certificate --cert cert.pem --key key.pem --name MY_CERT

    For uploading CA certificate chain, run:

    • wrangler cert upload certificate-authority --ca-cert server-ca.pem --name SERVER_CA
Patch Changes

v3.104.0

Compare Source

Minor Changes
  • #​7715 26fa9e8 Thanks @​penalosa! - Support service bindings from Pages projects to Workers in a single workerd instance. To try it out, pass multiple -c flags to Wrangler: i.e. wrangler pages dev -c wrangler.toml -c ../other-worker/wrangler.toml. The first -c flag must point to your Pages config file, and the rest should point to Workers that are bound to your Pages project.

  • #​7816 f6cc029 Thanks @​dario-piotrowicz! - add support for assets bindings to getPlatformProxy

    this change makes sure that that getPlatformProxy, when the input configuration
    file contains an assets field, correctly returns the appropriate asset binding proxy

    example:

    // wrangler.json
    {
    	"name": "my-worker",
    	"assets": {
    		"directory": "./public/",
    		"binding": "ASSETS"
    	},
    	"vars": {
    		"MY_VAR": "my-var"
    	}
    }
    import { getPlatformProxy } from "wrangler";
    
    const { env, dispose } = await getPlatformProxy();
    
    if (env.ASSETS) {
    	const text = await (
    		await env.ASSETS.fetch("http://0.0.0.0/file.txt")
    	).text();
    	console.log(text); // logs the content of file.txt
    }
    
    await dispose();
Patch Changes

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Copy link

cloudflare-workers-and-pages bot commented Mar 14, 2025

Deploying in-dev with  Cloudflare Pages  Cloudflare Pages

Latest commit: 92575dc
Status:🚫  Build failed.

View logs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants