Skip to content

Wrangler

2025-01-28

3.106.0

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

    unenv@2.0.0-rc.1 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 []:

2025-01-24

3.105.1

Patch Changes

2025-01-22

3.105.0

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

2025-01-17

3.103.2

Patch Changes

  • #7804 16a9460 Thanks @vicb! - fix(wrangler): use require.resolve to resolve unenv path

2025-01-16

3.103.1

Patch Changes

2025-01-16

3.103.0

Minor Changes

  • #5086 8faf2c0 Thanks @dario-piotrowicz! - add --strict-vars option to wrangler types

    add a new --strict-vars option to wrangler types that developers can (by setting the flag to false) use to disable the default strict/literal types generation for their variables

    opting out of strict variables can be useful when developers change often their vars values, even more so when multiple environments are involved

    Example

    With a toml containing:

    [vars]
    MY_VARIABLE = "production_value"
    MY_NUMBERS = [1, 2, 3]
    
    [env.staging.vars]
    MY_VARIABLE = "staging_value"
    MY_NUMBERS = [7, 8, 9]
    

    the wrangler types command would generate the following interface:

    interface Env {
            MY_VARIABLE: "production_value" | "staging_value";
            MY_NUMBERS: [1,2,3] | [7,8,9];
    }
    

    while wrangler types --strict-vars=false would instead generate:

    interface Env {
            MY_VARIABLE: string;
            MY_NUMBERS: number[];
    }
    

    (allowing the developer to easily change their toml variables without the risk of breaking typescript types)

Patch Changes

  • #7720 902e3af Thanks @vicb! - chore(wrangler): use the unenv preset from @cloudflare/unenv-preset

  • #7760 19228e5 Thanks @vicb! - chore: update unenv dependency version

  • #7735 e8aaa39 Thanks @penalosa! - Unwrap the error cause when available to send to Sentry

  • #5086 8faf2c0 Thanks @dario-piotrowicz! - fix: widen multi-env vars types in wrangler types

    Currently, the type generated for vars is a string literal consisting of the value of the variable in the top level environment. If multiple environments are specified this wrongly restricts the type, since the variable could contain any of the values from each of the environments.

    For example, given a wrangler.toml containing the following:

    [vars]
    MY_VAR = "dev value"
    
    [env.production.vars]
    MY_VAR = "prod value"
    

    running wrangler types would generate:

    interface Env {
      MY_VAR: "dev value";
    }
    

    making typescript incorrectly assume that MY_VAR is always going to be "dev value"

    after these changes, the generated interface would instead be:

    interface Env {
      MY_VAR: "dev value" | "prod value";
    }
    
  • #7733 dceb196 Thanks @emily-shen! - feat: pull resource names for provisioning from config if provided

    Uses database_name and bucket_name for provisioning if specified. For R2, this only happens if there is not a bucket with that name already. Also respects R2 jurisdiction if provided.

  • Updated dependencies []: