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 dependency esbuild to ^0.25.0 #9

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

Conversation

renovate[bot]
Copy link

@renovate renovate bot commented May 1, 2023

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
esbuild ^0.17.0 -> ^0.25.0 age adoption passing confidence

Release Notes

evanw/esbuild (esbuild)

v0.25.0

Compare Source

This release deliberately contains backwards-incompatible changes. To avoid automatically picking up releases like this, you should either be pinning the exact version of esbuild in your package.json file (recommended) or be using a version range syntax that only accepts patch upgrades such as ^0.24.0 or ~0.24.0. See npm's documentation about semver for more information.

  • Restrict access to esbuild's development server (GHSA-67mh-4wv8-2f99)

    This change addresses esbuild's first security vulnerability report. Previously esbuild set the Access-Control-Allow-Origin header to * to allow esbuild's development server to be flexible in how it's used for development. However, this allows the websites you visit to make HTTP requests to esbuild's local development server, which gives read-only access to your source code if the website were to fetch your source code's specific URL. You can read more information in the report.

    Starting with this release, CORS will now be disabled, and requests will now be denied if the host does not match the one provided to --serve=. The default host is 0.0.0.0, which refers to all of the IP addresses that represent the local machine (e.g. both 127.0.0.1 and 192.168.0.1). If you want to customize anything about esbuild's development server, you can put a proxy in front of esbuild and modify the incoming and/or outgoing requests.

    In addition, the serve() API call has been changed to return an array of hosts instead of a single host string. This makes it possible to determine all of the hosts that esbuild's development server will accept.

    Thanks to @​sapphi-red for reporting this issue.

  • Delete output files when a build fails in watch mode (#​3643)

    It has been requested for esbuild to delete files when a build fails in watch mode. Previously esbuild left the old files in place, which could cause people to not immediately realize that the most recent build failed. With this release, esbuild will now delete all output files if a rebuild fails. Fixing the build error and triggering another rebuild will restore all output files again.

  • Fix correctness issues with the CSS nesting transform (#​3620, #​3877, #​3933, #​3997, #​4005, #​4037, #​4038)

    This release fixes the following problems:

    • Naive expansion of CSS nesting can result in an exponential blow-up of generated CSS if each nesting level has multiple selectors. Previously esbuild sometimes collapsed individual nesting levels using :is() to limit expansion. However, this collapsing wasn't correct in some cases, so it has been removed to fix correctness issues.

      /* Original code */
      .parent {
        > .a,
        > .b1 > .b2 {
          color: red;
        }
      }
      
      /* Old output (with --supported:nesting=false) */
      .parent > :is(.a, .b1 > .b2) {
        color: red;
      }
      
      /* New output (with --supported:nesting=false) */
      .parent > .a,
      .parent > .b1 > .b2 {
        color: red;
      }

      Thanks to @​tim-we for working on a fix.

    • The & CSS nesting selector can be repeated multiple times to increase CSS specificity. Previously esbuild ignored this possibility and incorrectly considered && to have the same specificity as &. With this release, this should now work correctly:

      /* Original code (color should be red) */
      div {
        && { color: red }
        & { color: blue }
      }
      
      /* Old output (with --supported:nesting=false) */
      div {
        color: red;
      }
      div {
        color: blue;
      }
      
      /* New output (with --supported:nesting=false) */
      div:is(div) {
        color: red;
      }
      div {
        color: blue;
      }

      Thanks to @​CPunisher for working on a fix.

    • Previously transforming nested CSS incorrectly removed leading combinators from within pseudoclass selectors such as :where(). This edge case has been fixed and how has test coverage.

      /* Original code */
      a b:has(> span) {
        a & {
          color: green;
        }
      }
      
      /* Old output (with --supported:nesting=false) */
      a :is(a b:has(span)) {
        color: green;
      }
      
      /* New output (with --supported:nesting=false) */
      a :is(a b:has(> span)) {
        color: green;
      }

      This fix was contributed by @​NoremacNergfol.

    • The CSS minifier contains logic to remove the & selector when it can be implied, which happens when there is only one and it's the leading token. However, this logic was incorrectly also applied to selector lists inside of pseudo-class selectors such as :where(). With this release, the minifier will now avoid applying this logic in this edge case:

      /* Original code */
      .a {
        & .b { color: red }
        :where(& .b) { color: blue }
      }
      
      /* Old output (with --minify) */
      .a{.b{color:red}:where(.b){color:#​00f}}
      
      /* New output (with --minify) */
      .a{.b{color:red}:where(& .b){color:#​00f}}
  • Fix some correctness issues with source maps (#​1745, #​3183, #​3613, #​3982)

    Previously esbuild incorrectly treated source map path references as file paths instead of as URLs. With this release, esbuild will now treat source map path references as URLs. This fixes the following problems with source maps:

    • File names in sourceMappingURL that contained a space previously did not encode the space as %20, which resulted in JavaScript tools (including esbuild) failing to read that path back in when consuming the generated output file. This should now be fixed.

    • Absolute URLs in sourceMappingURL that use the file:// scheme previously attempted to read from a folder called file:. These URLs should now be recognized and parsed correctly.

    • Entries in the sources array in the source map are now treated as URLs instead of file paths. The correct behavior for this is much more clear now that source maps has a formal specification. Many thanks to those who worked on the specification.

  • Fix incorrect package for @esbuild/netbsd-arm64 (#​4018)

    Due to a copy+paste typo, the binary published to @esbuild/netbsd-arm64 was not actually for arm64, and didn't run in that environment. This release should fix running esbuild in that environment (NetBSD on 64-bit ARM). Sorry about the mistake.

  • Fix a minification bug with bitwise operators and bigints (#​4065)

    This change removes an incorrect assumption in esbuild that all bitwise operators result in a numeric integer. That assumption was correct up until the introduction of bigints in ES2020, but is no longer correct because almost all bitwise operators now operate on both numbers and bigints. Here's an example of the incorrect minification:

    // Original code
    if ((a & b) !== 0) found = true
    
    // Old output (with --minify)
    a&b&&(found=!0);
    
    // New output (with --minify)
    (a&b)!==0&&(found=!0);
  • Fix esbuild incorrectly rejecting valid TypeScript edge case (#​4027)

    The following TypeScript code is valid:

    export function open(async?: boolean): void {
      console.log(async as boolean)
    }

    Before this version, esbuild would fail to parse this with a syntax error as it expected the token sequence async as ... to be the start of an async arrow function expression async as => .... This edge case should be parsed correctly by esbuild starting with this release.

  • Transform BigInt values into constructor calls when unsupported (#​4049)

    Previously esbuild would refuse to compile the BigInt literals (such as 123n) if they are unsupported in the configured target environment (such as with --target=es6). The rationale was that they cannot be polyfilled effectively because they change the behavior of JavaScript's arithmetic operators and JavaScript doesn't have operator overloading.

    However, this prevents using esbuild with certain libraries that would otherwise work if BigInt literals were ignored, such as with old versions of the buffer library before the library fixed support for running in environments without BigInt support. So with this release, esbuild will now turn BigInt literals into BigInt constructor calls (so 123n becomes BigInt(123)) and generate a warning in this case. You can turn off the warning with --log-override:bigint=silent or restore the warning to an error with --log-override:bigint=error if needed.

  • Change how console API dropping works (#​4020)

    Previously the --drop:console feature replaced all method calls off of the console global with undefined regardless of how long the property access chain was (so it applied to console.log() and console.log.call(console) and console.log.not.a.method()). However, it was pointed out that this breaks uses of console.log.bind(console). That's also incompatible with Terser's implementation of the feature, which is where this feature originally came from (it does support bind). So with this release, using this feature with esbuild will now only replace one level of method call (unless extended by call or apply) and will replace the method being called with an empty function in complex cases:

    // Original code
    const x = console.log('x')
    const y = console.log.call(console, 'y')
    const z = console.log.bind(console)('z')
    
    // Old output (with --drop-console)
    const x = void 0;
    const y = void 0;
    const z = (void 0)("z");
    
    // New output (with --drop-console)
    const x = void 0;
    const y = void 0;
    const z = (() => {
    }).bind(console)("z");

    This should more closely match Terser's existing behavior.

  • Allow BigInt literals as define values

    With this release, you can now use BigInt literals as define values, such as with --define:FOO=123n. Previously trying to do this resulted in a syntax error.

  • Fix a bug with resolve extensions in node_modules (#​4053)

    The --resolve-extensions= option lets you specify the order in which to try resolving implicit file extensions. For complicated reasons, esbuild reorders TypeScript file extensions after JavaScript ones inside of node_modules so that JavaScript source code is always preferred to TypeScript source code inside of dependencies. However, this reordering had a bug that could accidentally change the relative order of TypeScript file extensions if one of them was a prefix of the other. That bug has been fixed in this release. You can see the issue for details.

  • Better minification of statically-determined switch cases (#​4028)

    With this release, esbuild will now try to trim unused code within switch statements when the test expression and case expressions are primitive literals. This can arise when the test expression is an identifier that is substituted for a primitive literal at compile time. For example:

    // Original code
    switch (MODE) {
      case 'dev':
        installDevToolsConsole()
        break
      case 'prod':
        return
      default:
        throw new Error
    }
    
    // Old output (with --minify '--define:MODE="prod"')
    switch("prod"){case"dev":installDevToolsConsole();break;case"prod":return;default:throw new Error}
    
    // New output (with --minify '--define:MODE="prod"')
    return;
  • Emit /* @​__KEY__ */ for string literals derived from property names (#​4034)

    Property name mangling is an advanced feature that shortens certain property names for better minification (I say "advanced feature" because it's very easy to break your code with it). Sometimes you need to store a property name in a string, such as obj.get('foo') instead of obj.foo. JavaScript minifiers such as esbuild and Terser have a convention where a /* @​__KEY__ */ comment before the string makes it behave like a property name. So obj.get(/* @​__KEY__ */ 'foo') allows the contents of the string 'foo' to be shortened.

    However, esbuild sometimes itself generates string literals containing property names when transforming code, such as when lowering class fields to ES6 or when transforming TypeScript decorators. Previously esbuild didn't generate its own /* @​__KEY__ */ comments in this case, which means that minifying your code by running esbuild again on its own output wouldn't work correctly (this does not affect people that both minify and transform their code in a single step).

    With this release, esbuild will now generate /* @​__KEY__ */ comments for property names in generated string literals. To avoid lots of unnecessary output for people that don't use this advanced feature, the generated comments will only be present when the feature is active. If you want to generate the comments but not actually mangle any property names, you can use a flag that has no effect such as --reserve-props=., which tells esbuild to not mangle any property names (but still activates this feature).

  • The text loader now strips the UTF-8 BOM if present (#​3935)

    Some software (such as Notepad on Windows) can create text files that start with the three bytes 0xEF 0xBB 0xBF, which is referred to as the "byte order mark". This prefix is intended to be removed before using the text. Previously esbuild's text loader included this byte sequence in the string, which turns into a prefix of \uFEFF in a JavaScript string when decoded from UTF-8. With this release, esbuild's text loader will now remove these bytes when they occur at the start of the file.

  • Omit legal comment output files when empty (#​3670)

    Previously configuring esbuild with --legal-comment=external or --legal-comment=linked would always generate a .LEGAL.txt output file even if it was empty. Starting with this release, esbuild will now only do this if the file will be non-empty. This should result in a more organized output directory in some cases.

  • Update Go from 1.23.1 to 1.23.5 (#​4056, #​4057)

    This should have no effect on existing code as this version change does not change Go's operating system support. It may remove certain reports from vulnerability scanners that detect which version of the Go compiler esbuild uses.

    This PR was contributed by @​MikeWillCook.

  • Allow passing a port of 0 to the development server (#​3692)

    Unix sockets interpret a port of 0 to mean "pick a random unused port in the ephemeral port range". However, esbuild's default behavior when the port is not specified is to pick the first unused port starting from 8000 and upward. This is more convenient because port 8000 is typically free, so you can for example restart the development server and reload your app in the browser without needing to change the port in the URL. Since esbuild is written in Go (which does not have optional fields like JavaScript), not specifying the port in Go means it defaults to 0, so previously passing a port of 0 to esbuild caused port 8000 to be picked.

    Starting with this release, passing a port of 0 to esbuild when using the CLI or the JS API will now pass port 0 to the OS, which will pick a random ephemeral port. To make this possible, the Port option in the Go API has been changed from uint16 to int (to allow for additional sentinel values) and passing a port of -1 in Go now picks a random port. Both the CLI and JS APIs now remap an explicitly-provided port of 0 into -1 for the internal Go API.

    Another option would have been to change Port in Go from uint16 to *uint16 (Go's closest equivalent of number | undefined). However, that would make the common case of providing an explicit port in Go very awkward as Go doesn't support taking the address of integer constants. This tradeoff isn't worth it as picking a random ephemeral port is a rare use case. So the CLI and JS APIs should now match standard Unix behavior when the port is 0, but you need to use -1 instead with Go API.

  • Minification now avoids inlining constants with direct eval (#​4055)

    Direct eval can be used to introduce a new variable like this:

    const variable = false
    ;(function () {
      eval("var variable = true")
      console.log(variable)
    })()

    Previously esbuild inlined variable here (which became false), which changed the behavior of the code. This inlining is now avoided, but please keep in mind that direct eval breaks many assumptions that JavaScript tools hold about normal code (especially when bundling) and I do not recommend using it. There are usually better alternatives that have a more localized impact on your code. You can read more about this here: https://esbuild.github.io/link/direct-eval/

v0.24.2

Compare Source

  • Fix regression with --define and import.meta (#​4010, #​4012, #​4013)

    The previous change in version 0.24.1 to use a more expression-like parser for define values to allow quoted property names introduced a regression that removed the ability to use --define:import.meta=.... Even though import is normally a keyword that can't be used as an identifier, ES modules special-case the import.meta expression to behave like an identifier anyway. This change fixes the regression.

    This fix was contributed by @​sapphi-red.

v0.24.1

Compare Source

  • Allow es2024 as a target in tsconfig.json (#​4004)

    TypeScript recently added es2024 as a compilation target, so esbuild now supports this in the target field of tsconfig.json files, such as in the following configuration file:

    {
      "compilerOptions": {
        "target": "ES2024"
      }
    }

    As a reminder, the only thing that esbuild uses this field for is determining whether or not to use legacy TypeScript behavior for class fields. You can read more in the documentation.

    This fix was contributed by @​billyjanitsch.

  • Allow automatic semicolon insertion after get/set

    This change fixes a grammar bug in the parser that incorrectly treated the following code as a syntax error:

    class Foo {
      get
      *x() {}
      set
      *y() {}
    }

    The above code will be considered valid starting with this release. This change to esbuild follows a similar change to TypeScript which will allow this syntax starting with TypeScript 5.7.

  • Allow quoted property names in --define and --pure (#​4008)

    The define and pure API options now accept identifier expressions containing quoted property names. Previously all identifiers in the identifier expression had to be bare identifiers. This change now makes --define and --pure consistent with --global-name, which already supported quoted property names. For example, the following is now possible:

    // The following code now transforms to "return true;\n"
    console.log(esbuild.transformSync(
      `return process.env['SOME-TEST-VAR']`,
      { define: { 'process.env["SOME-TEST-VAR"]': 'true' } },
    ))

    Note that if you're passing values like this on the command line using esbuild's --define flag, then you'll need to know how to escape quote characters for your shell. You may find esbuild's JavaScript API more ergonomic and portable than writing shell code.

  • Minify empty try/catch/finally blocks (#​4003)

    With this release, esbuild will now attempt to minify empty try blocks:

    // Original code
    try {} catch { foo() } finally { bar() }
    
    // Old output (with --minify)
    try{}catch{foo()}finally{bar()}
    
    // New output (with --minify)
    bar();

    This can sometimes expose additional minification opportunities.

  • Include entryPoint metadata for the copy loader (#​3985)

    Almost all entry points already include a entryPoint field in the outputs map in esbuild's build metadata. However, this wasn't the case for the copy loader as that loader is a special-case that doesn't behave like other loaders. This release adds the entryPoint field in this case.

  • Source mappings may now contain null entries (#​3310, #​3878)

    With this change, sources that result in an empty source map may now emit a null source mapping (i.e. one with a generated position but without a source index or original position). This change improves source map accuracy by fixing a problem where minified code from a source without any source mappings could potentially still be associated with a mapping from another source file earlier in the generated output on the same minified line. It manifests as nonsensical files in source mapped stack traces. Now the null mapping "resets" the source map so that any lookups into the minified code without any mappings resolves to null (which appears as the output file in stack traces) instead of the incorrect source file.

    This change shouldn't affect anything in most situations. I'm only mentioning it in the release notes in case it introduces a bug with source mapping. It's part of a work-in-progress future feature that will let you omit certain unimportant files from the generated source map to reduce source map size.

  • Avoid using the parent directory name for determinism (#​3998)

    To make generated code more readable, esbuild includes the name of the source file when generating certain variable names within the file. Specifically bundling a CommonJS file generates a variable to store the lazily-evaluated module initializer. However, if a file is named index.js (or with a different extension), esbuild will use the name of the parent directory instead for a better name (since many packages have files all named index.js but have unique directory names).

    This is problematic when the bundle entry point is named index.js and the parent directory name is non-deterministic (e.g. a temporary directory created by a build script). To avoid non-determinism in esbuild's output, esbuild will now use index instead of the parent directory in this case. Specifically this will happen if the parent directory is equal to esbuild's outbase API option, which defaults to the lowest common ancestor of all user-specified entry point paths.

  • Experimental support for esbuild on NetBSD (#​3974)

    With this release, esbuild now has a published binary executable for NetBSD in the @esbuild/netbsd-arm64 npm package, and esbuild's installer has been modified to attempt to use it when on NetBSD. Hopefully this makes installing esbuild via npm work on NetBSD. This change was contributed by @​bsiegert.

    ⚠️ Note: NetBSD is not one of Node's supported platforms, so installing esbuild may or may not work on NetBSD depending on how Node has been patched. This is not a problem with esbuild. ⚠️

v0.24.0

Compare Source

This release deliberately contains backwards-incompatible changes. To avoid automatically picking up releases like this, you should either be pinning the exact version of esbuild in your package.json file (recommended) or be using a version range syntax that only accepts patch upgrades such as ^0.23.0 or ~0.23.0. See npm's documentation about semver for more information.

  • Drop support for older platforms (#​3902)

    This release drops support for the following operating system:

    • macOS 10.15 Catalina

    This is because the Go programming language dropped support for this operating system version in Go 1.23, and this release updates esbuild from Go 1.22 to Go 1.23. Go 1.23 now requires macOS 11 Big Sur or later.

    Note that this only affects the binary esbuild executables that are published to the esbuild npm package. It's still possible to compile esbuild's source code for these older operating systems. If you need to, you can compile esbuild for yourself using an older version of the Go compiler (before Go version 1.23). That might look something like this:

    git clone https://github.com/evanw/esbuild.git
    cd esbuild
    go build ./cmd/esbuild
    ./esbuild --version
    
  • Fix class field decorators in TypeScript if useDefineForClassFields is false (#​3913)

    Setting the useDefineForClassFields flag to false in tsconfig.json means class fields use the legacy TypeScript behavior instead of the standard JavaScript behavior. Specifically they use assign semantics instead of define semantics (e.g. setters are triggered) and fields without an initializer are not initialized at all. However, when this legacy behavior is combined with standard JavaScript decorators, TypeScript switches to always initializing all fields, even those without initializers. Previously esbuild incorrectly continued to omit field initializers for this edge case. These field initializers in this case should now be emitted starting with this release.

  • Avoid incorrect cycle warning with tsconfig.json multiple inheritance (#​3898)

    TypeScript 5.0 introduced multiple inheritance for tsconfig.json files where extends can be an array of file paths. Previously esbuild would incorrectly treat files encountered more than once when processing separate subtrees of the multiple inheritance hierarchy as an inheritance cycle. With this release, tsconfig.json files containing this edge case should work correctly without generating a warning.

  • Handle Yarn Plug'n'Play stack overflow with tsconfig.json (#​3915)

    Previously a tsconfig.json file that extends another file in a package with an exports map could cause a stack overflow when Yarn's Plug'n'Play resolution was active. This edge case should work now starting with this release.

  • Work around more issues with Deno 1.31+ (#​3917)

    This version of Deno broke the stdin and stdout properties on command objects for inherited streams, which matters when you run esbuild's Deno module as the entry point (i.e. when import.meta.main is true). Previously esbuild would crash in Deno 1.31+ if you ran esbuild like that. This should be fixed starting with this release.

    This fix was contributed by @​Joshix-1.

v0.23.1

Compare Source

  • Allow using the node: import prefix with es* targets (#​3821)

    The node: prefix on imports is an alternate way to import built-in node modules. For example, import fs from "fs" can also be written import fs from "node:fs". This only works with certain newer versions of node, so esbuild removes it when you target older versions of node such as with --target=node14 so that your code still works. With the way esbuild's platform-specific feature compatibility table works, this was added by saying that only newer versions of node support this feature. However, that means that a target such as --target=node18,es2022 removes the node: prefix because none of the es* targets are known to support this feature. This release adds the support for the node: flag to esbuild's internal compatibility table for es* to allow you to use compound targets like this:

    // Original code
    import fs from 'node:fs'
    fs.open
    
    // Old output (with --bundle --format=esm --platform=node --target=node18,es2022)
    import fs from "fs";
    fs.open;
    
    // New output (with --bundle --format=esm --platform=node --target=node18,es2022)
    import fs from "node:fs";
    fs.open;
  • Fix a panic when using the CLI with invalid build flags if --analyze is present (#​3834)

    Previously esbuild's CLI could crash if it was invoked with flags that aren't valid for a "build" API call and the --analyze flag is present. This was caused by esbuild's internals attempting to add a Go plugin (which is how --analyze is implemented) to a null build object. The panic has been fixed in this release.

  • Fix incorrect location of certain error messages (#​3845)

    This release fixes a regression that caused certain errors relating to variable declarations to be reported at an incorrect location. The regression was introduced in version 0.18.7 of esbuild.

  • Print comments before case clauses in switch statements (#​3838)

    With this release, esbuild will attempt to print comments that come before case clauses in switch statements. This is similar to what esbuild already does for comments inside of certain types of expressions. Note that these types of comments are not printed if minification is enabled (specifically whitespace minification).

  • Fix a memory leak with pluginData (#​3825)

    With this release, the build context's internal pluginData cache will now be cleared when starting a new build. This should fix a leak of memory from plugins that return pluginData objects from onResolve and/or onLoad callbacks.

v0.23.0

Compare Source

This release deliberately contains backwards-incompatible changes. To avoid automatically picking up releases like this, you should either be pinning the exact version of esbuild in your package.json file (recommended) or be using a version range syntax that only accepts patch upgrades such as ^0.22.0 or ~0.22.0. See npm's documentation about semver for more information.

  • Revert the recent change to avoid bundling dependencies for node (#​3819)

    This release reverts the recent change in version 0.22.0 that made --packages=external the default behavior with --platform=node. The default is now back to --packages=bundle.

    I've just been made aware that Amazon doesn't pin their dependencies in their "AWS CDK" product, which means that whenever esbuild publishes a new release, many people (potentially everyone?) using their SDK around the world instantly starts using it without Amazon checking that it works first. This change in version 0.22.0 happened to break their SDK. I'm amazed that things haven't broken before this point. This revert attempts to avoid these problems for Amazon's customers. Hopefully Amazon will pin their dependencies in the future.

    In addition, this is probably a sign that esbuild is used widely enough that it now needs to switch to a more complicated release model. I may have esbuild use a beta channel model for further development.

  • Fix preserving collapsed JSX whitespace (#​3818)

    When transformed, certain whitespace inside JSX elements is ignored completely if it collapses to an empty string. However, the whitespace should only be ignored if the JSX is being transformed, not if it's being preserved. This release fixes a bug where esbuild was previously incorrectly ignoring collapsed whitespace with --jsx=preserve. Here is an example:

    // Original code
    <Foo>
      <Bar />
    </Foo>
    
    // Old output (with --jsx=preserve)
    <Foo><Bar /></Foo>;
    
    // New output (with --jsx=preserve)
    <Foo>
      <Bar />
    </Foo>;

v0.22.0

Compare Source

This release deliberately contains backwards-incompatible changes. To avoid automatically picking up releases like this, you should either be pinning the exact version of esbuild in your package.json file (recommended) or be using a version range syntax that only accepts patch upgrades such as ^0.21.0 or ~0.21.0. See npm's documentation about semver for more information.

  • Omit packages from bundles by default when targeting node (#​1874, #​2830, #​2846, #​2915, #​3145, #​3294, #​3323, #​3582, #​3809, #​3815)

    This breaking change is an experiment. People are commonly confused when using esbuild to bundle code for node (i.e. for --platform=node) because some packages may not be intended for bundlers, and may use node-specific features that don't work with a bundler. Even though esbuild's "getting started" instructions say to use --packages=external to work around this problem, many people don't read the documentation and don't do this, and are then confused when it doesn't work. So arguably this is a bad default behavior for esbuild to have if people keep tripping over this.

    With this release, esbuild will now omit packages from the bundle by default when the platform is node (i.e. the previous behavior of --packages=external is now the default in this case). Note that your dependencies must now be present on the file system when your bundle is run. If you don't want this behavior, you can do --packages=bundle to allow packages to be included in the bundle (i.e. the previous default behavior). Note that --packages=bundle doesn't mean all packages are bundled, just that packages are allowed to be bundled. You can still exclude individual packages from the bundle using --external: even when --packages=bundle is present.

    The --packages= setting considers all import paths that "look like" package imports in the original source code to be package imports. Specifically import paths that don't start with a path segment of / or . or .. are considered to be package imports. The only two exceptions to this rule are subpath imports (which start with a # character) and TypeScript path remappings via paths and/or baseUrl in tsconfig.json (which are applied first).

  • Drop support for older platforms (#​3802)

    This release drops support for the following operating systems:

    • Windows 7
    • Windows 8
    • Windows Server 2008
    • Windows Server 2012

    This is because the Go programming language dropped support for these operating system versions in Go 1.21, and this release updates esbuild from Go 1.20 to Go 1.22.

    Note that this only affects the binary esbuild executables that are published to the esbuild npm package. It's still possible to compile esbuild's source code for these older operating systems. If you need to, you can compile esbuild for yourself using an older version of the Go compiler (before Go version 1.21). That might look something like this:

    git clone https://github.com/evanw/esbuild.git
    cd esbuild
    go build ./cmd/esbuild
    ./esbuild.exe --version
    

    In addition, this release increases the minimum required node version for esbuild's JavaScript API from node 12 to node 18. Node 18 is the oldest version of node that is still being supported (see node's release schedule for more information). This increase is because of an incompatibility between the JavaScript that the Go compiler generates for the esbuild-wasm package and versions of node before node 17.4 (specifically the crypto.getRandomValues function).

  • Update await using behavior to match TypeScript

    TypeScript 5.5 subtly changes the way await using behaves. This release updates esbuild to match these changes in TypeScript. You can read more about these changes in microsoft/TypeScript#58624.

  • Allow es2024 as a target environment

    The ECMAScript 2024 specification was just approved, so it has been added to esbuild as a possible compilation target. You can read more about the features that it adds here: https://2ality.com/2024/06/ecmascript-2024.html. The only addition that's relevant for esbuild is the regular expression /v flag. With --target=es2024, regular expressions that use the /v flag will now be passed through untransformed instead of being transformed into a call to new RegExp.

  • Publish binaries for OpenBSD on 64-bit ARM (#​3665, #​3674)

    With this release, you should now be able to install the esbuild npm package in OpenBSD on 64-bit ARM, such as on an Apple device with an M1 chip.

    This was contributed by @​ikmckenz.

  • Publish binaries for WASI (WebAssembly System Interface) preview 1 (#​3300, #​3779)

    The upcoming WASI (WebAssembly System Interface) standard is going to be a way to run WebAssembly outside of a JavaScript host environment. In this scenario you only need a .wasm file without any supporting JavaScript code. Instead of JavaScript providing the APIs for the host environment, the WASI standard specifies a "system interface" that WebAssembly code can access directly (e.g. for file system access).

    Development versions of the WASI specification are being released using preview numbers. The people behind WASI are currently working on preview 2 but the Go compiler has released support for preview 1, which from what I understand is now considered an unsupported legacy release. However, some people have requested that esbuild publish binary executables that support WASI preview 1 so they can experiment with them.

    This release publishes esbuild precompiled for WASI preview 1 to the @esbuild/wasi-preview1 package on npm (specifically the file @esbuild/wasi-preview1/esbuild.wasm). This binary executable has not been tested and won't be officially supported, as it's for an old preview release of a specification that has since moved in another direction. If it works for you, great! If not, then you'll likely have to wait for the ecosystem to evolve before using esbuild with WASI. For example, it sounds like perhaps WASI preview 1 doesn't include support for opening network sockets so esbuild's local development server is unlikely to work with WASI preview 1.

  • Warn about onResolve plugins not setting a path (#​3790)

    Plugins that return values from onResolve without resolving the path (i.e. without setting either path or external: true) will now cause a warning. This is because esbuild only uses return values from onResolve if it successfully resolves the path, and it's not good for invalid input to be silently ignored.

  • Add a new Go API for running the CLI with plugins (#​3539)

    With esbuild's Go API, you can now call cli.RunWithPlugins(args, plugins) to pass an array of esbuild plugins to be used during the build process. This allows you to create a CLI that behaves similarly to esbuild's CLI but with additional Go plugins enabled.

    This was contributed by @​edewit.

v0.21.5

Compare Source

  • Fix Symbol.metadata on classes without a class decorator (#​3781)

    This release fixes a bug with esbuild's support for the decorator metadata proposal. Previously esbuild only added the Symbol.metadata property to decorated classes if there was a decorator on the class element itself. However, the proposal says that the Symbol.metadata property should be present on all classes that have any decorators at all, not just those with a decorator on the class element itself.

  • Allow unknown import attributes to be used with the copy loader (#​3792)

    Import attributes (the with keyword on import statements) are allowed to alter how that path is loaded. For example, esbuild cannot assume that it knows how to load ./bagel.js as type bagel:

    // This is an error with "--bundle" without also using "--external:./bagel.js"
    import tasty from "./bagel.js" with { type: "bagel" }

    Because of that, bundling this code with esbuild is an error unless the file ./bagel.js is external to the bundle (such as with --bundle --external:./bagel.js).

    However, there is an additional case where it's ok for esbuild to allow this: if the file is loaded using the copy loader. That's because the copy loader behaves similarly to --external in that the file is left external to the bundle. The difference is that the copy loader copies the file into the output folder and rewrites the import path while --external doesn't. That means the following will now work with the copy loader (such as with --bundle --loader:.bagel=copy):

    // This is no longer an error with "--bundle" and "--loader:.bagel=copy"
    import tasty from "./tasty.bagel" with { type: "bagel" }
  • Support import attributes with glob-style imports (#​3797)

    This release adds support for import attributes (the with option) to glob-style imports (dynamic imports with certain string literal patterns as paths). These imports previously didn't support import attributes due to an oversight. So code like this will now work correctly:

    async function loadLocale(locale: string): Locale {
      const data = await import(`./locales/${locale}.data`, { with: { type: 'json' } })
      return unpackLocale(locale, data)
    }

    Previously this didn't work even though esbuild normally supports forcing the JSON loader using an import attribute. Attempting to do this used to result in the following error:

    ✘ [ERROR] No loader is configured for ".data" files: locales/en-US.data
    
        example.ts:2:28:
          2 │   const data = await import(`./locales/${locale}.data`, { with: { type: 'json' } })
            ╵                             ~~~~~~~~~~~~~~~~~~~~~~~~~~
    

    In addition, this change means plugins can now access the contents of with for glob-style imports.

  • Support ${configDir} in tsconfig.json files (#​3782)

    This adds support for a new feature from the upcoming TypeScript 5.5 release. The character sequence ${configDir} is now respected at the start of baseUrl and paths values, which are used by esbuild during bundling to correctly map import paths to file system paths. This feature lets base tsconfig.json files specified via extends refer to the directory of the top-level tsconfig.json file. Here is an example:

    {
      "compilerOptions": {
        "paths": {
          "js/*": ["${configDir}/dist/js/*"]
        }
      }
    }

    You can read more in TypeScript's blog post about their upcoming 5.5 release. Note that this feature does not make use of template literals (you need to use "${configDir}/dist/js/*" not `${configDir}/dist/js/*`). The syntax for tsconfig.json is still just JSON with comments, and JSON syntax does not allow template literals. This feature only recognizes ${configDir} in strings for certain path-like properties, and only at the beginning of the string.

  • Fix internal error with --supported:object-accessors=false (#​3794)

    This release fixes a regression in 0.21.0 where some code that was added to esbuild's internal runtime library of helper functions for JavaScript decorators fails to parse when you configure esbuild with --supported:object-accessors=false. The reason is that esbuild introduced code that does { get [name]() {} } which uses both the object-extensions feature for the [name] and the object-accessors feature for the get, but esbuild was incorrectly only checking for object-extensions and not for object-accessors. Additional tests have been added to avoid this type of issue in the future. A workaround for this issue in earlier releases is to also add --supported:object-extensions=false.

v0.21.4

Compare Source

  • Update support for import assertions and import attributes in node (#​3778)

    Import assertions (the assert keyword) have been removed from node starting in v22.0.0. So esbuild will now strip them and generate a warning with --target=node22 or above:

    ▲ [WARNING] The "assert" keyword is not supported in the configured target environment ("node22") [assert-to-with]
    
        example.mjs:1:40:
          1 │ import json from "esbuild/package.json" assert { type: "json" }
            │                                         ~~~~~~
            ╵                                         with
    
      Did you mean to use "with" instead of "assert"?
    

    Import attributes (the with keyword) have been backported to node 18 starting in v18.20.0. So esbuild will no longer strip them with --target=node18.N if N is 20 or greater.

  • Fix for await transform when a label is present

    This release fixes a bug where the for await transform, which wraps the loop in a try statement, previously failed to also move the loop's label into the try statement. This bug only affects code that uses both of these features in combination. Here's an example of some affected code:

    // Original code
    async function test() {
      outer: for await (const x of [Promise.resolve([0, 1])]) {
        for (const y of x) if (y) break outer
        throw 'fail'
      }
    }
    
    // Old output (with --target=es6)
    function test() {
      return __async(this, null, function* () {
        outer: try {
          for (var iter = __forAwait([Promise.resolve([0, 1])]), more, temp, error; more = !(temp = yield iter.next()).done; more = false) {
            const x = temp.value;
            for (const y of x) if (y) break outer;
            throw "fail";
          }
        } catch (temp) {
          error = [temp];
        } finally {
          try {
            more && (temp = iter.return) && (yield temp.call(iter));
          } finally {
            if (error)
              throw error[0];
          }
        }
      });
    }
    
    // New output (with --target=es6)
    function test() {
      return __async(this, null, function* () {
        try {
          outer: for (var iter = __forAwait([Promise.resolve([0, 1])]), more, temp, error; more = !(temp = yield iter.next()).done; more = false) {
            const x = temp.value;
            for (const y of x) if (y) break outer;
            throw "fail";
          }
        } catch (temp) {
          error = [temp];
        } finally {
          try {
            more && (temp = iter.return) && (yield temp.call(iter));
          } finally {
            if (error)
              throw error[0];
          }
        }
      });
    }
  • Do additional constant folding after cross-module enum inlining (#​3416, #​3425)

    This release adds a few more cases where esbuild does constant folding after cross-module enum inlining.

    // Original code: enum.ts
    export enum Platform {
      WINDOWS = 'windows',
      MACOS = 'macos',
      LINUX = 'linux',
    }
    
    // Original code: main.ts
    import { Platform } from './enum';
    declare const PLATFORM: string;
    export function logPlatform() {
      if (PLATFORM == Platform.WINDOWS) console.log('Windows');
      else if (PLATFORM == Platform.MACOS) console.log('macOS');
      else if (PLATFORM == Platform.LINUX) console.log('Linux');
      else console.log('Other');
    }
    
    // Old output (with --bundle '--define:PLATFORM="macos"' --minify --format=esm)
    function n(){"windows"=="macos"?console.log("Windows"):"macos"=="macos"?console.log("macOS"):"linux"=="macos"?console.log("Linux"):console.log("Other")}export{n as logPlatform};
    
    // New output (with --bundle '--define:PLATFORM="macos"' --minify --format=esm)
    function n(){console.log("macOS")}export{n as logPlatform};
  • Pass import attributes to on-resolve plugins (#​3384, #​3639, #​3646)

    With this release, on-resolve plugins will now have access to the import attributes on the import via the with property of the arguments object. This mirrors the with property of the arguments object that's already passed to on-load plugins. In addition, you can now pass with to the resolve() API call which will then forward that value on to all relevant plugins. Here's an example of a plugin that can now be written:

    const examplePlugin = {
      name: 'Example plugin',
      setup(build) {
        build.onResolve({ filter: /.*/ }, args => {
          if (args.with.type === 'external')
            return { external: true }
        })
      }
    }
    
    require('esbuild').build({
      stdin: {
        contents: `
          import foo from "./foo" with { type: "external" }
          foo()
        `,
      },
      bundle: true,
      format: 'esm',
      write: false,
      plugins: [examplePlugin],
    }).then(result => {
      console.log(result.outputFiles[0].text)
    })
  • Formatting support for the @position-try rule (#​3773)

    Chrome shipped this new CSS at-rule in version 125 as part of the CSS anchor positioning API. With this release, esbuild now knows to expect a declaration list inside of the @position-try body block and will format it appropriately.

  • Always allow internal string import and export aliases (#​3343)

    Import and export names can be string literals in ES2022+. Previously esbuild forbid any usage of these aliases when the target was below ES2022. Starting with this release, esbuild will only forbid such usage when the alias would otherwise end up in output as a string literal. String literal aliases that are only used internally in the bundle and are "compiled away" are no longer errors. This makes it possible to use string literal aliases with esbuild's inject feature even when the target is earlier than ES2022.

v0.21.3

Compare Source

  • Implement the decorator metadata proposal (#​3760)

    This release implements the decorator metadata proposal, which is a sub-proposal of the decorators proposal. Microsoft shipped the decorators proposal in TypeScript 5.0 and the decorator metadata proposal in TypeScript 5.2, so it's important that esbuild also supports both of these features. Here's a quick example:

    // Shim the "Symbol.metadata" symbol
    Symbol.metadata ??= Symbol('Symbol.metadata')
    
    const track = (_, context) => {
    

Configuration

📅 Schedule: Branch creation - "* 0-3 1 * *" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, 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.

@stackblitz
Copy link

stackblitz bot commented May 1, 2023

Review PR in StackBlitz Codeflow Run & review this pull request in StackBlitz Codeflow.

@changeset-bot
Copy link

changeset-bot bot commented May 1, 2023

⚠️ No Changeset found

Latest commit: 17103ad

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.17.18 chore(deps): update dependency esbuild to ^0.17.19 May 30, 2023
@renovate renovate bot force-pushed the renovate/esbuild-0.x branch from 13be5db to 273e8a2 Compare May 30, 2023 23:49
@renovate renovate bot force-pushed the renovate/esbuild-0.x branch from 273e8a2 to e6051f9 Compare June 9, 2023 23:47
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.17.19 chore(deps): update dependency esbuild to ^0.18.0 Jun 9, 2023
@renovate renovate bot force-pushed the renovate/esbuild-0.x branch from e6051f9 to 746c4e5 Compare June 13, 2023 23:29
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.18.0 chore(deps): update dependency esbuild to ^0.18.2 Jun 13, 2023
@renovate renovate bot force-pushed the renovate/esbuild-0.x branch from 746c4e5 to 46f6bf4 Compare June 17, 2023 08:22
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.18.2 chore(deps): update dependency esbuild to ^0.18.4 Jun 17, 2023
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.18.4 chore(deps): update dependency esbuild to ^0.18.6 Jun 21, 2023
@renovate renovate bot force-pushed the renovate/esbuild-0.x branch 2 times, most recently from f571ced to b985ca3 Compare June 25, 2023 02:56
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.18.6 chore(deps): update dependency esbuild to ^0.18.7 Jun 25, 2023
@renovate renovate bot force-pushed the renovate/esbuild-0.x branch from b985ca3 to 95161cd Compare June 27, 2023 02:19
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.18.7 chore(deps): update dependency esbuild to ^0.18.10 Jun 27, 2023
@renovate renovate bot force-pushed the renovate/esbuild-0.x branch from 95161cd to fa41df9 Compare July 2, 2023 02:51
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.18.10 chore(deps): update dependency esbuild to ^0.18.11 Jul 2, 2023
@renovate renovate bot force-pushed the renovate/esbuild-0.x branch from fa41df9 to e507d3e Compare July 13, 2023 02:19
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.18.11 chore(deps): update dependency esbuild to ^0.18.12 Jul 13, 2023
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.18.12 chore(deps): update dependency esbuild to ^0.18.13 Jul 15, 2023
@renovate renovate bot force-pushed the renovate/esbuild-0.x branch from e507d3e to 1e6f815 Compare July 15, 2023 05:39
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.18.13 chore(deps): update dependency esbuild to ^0.18.14 Jul 18, 2023
@renovate renovate bot force-pushed the renovate/esbuild-0.x branch 2 times, most recently from 296d7a4 to 9da7869 Compare July 20, 2023 20:51
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.18.14 chore(deps): update dependency esbuild to ^0.18.15 Jul 20, 2023
@renovate renovate bot force-pushed the renovate/esbuild-0.x branch from 9da7869 to 07e2429 Compare July 23, 2023 05:12
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.18.15 chore(deps): update dependency esbuild to ^0.18.16 Jul 23, 2023
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.18.16 chore(deps): update dependency esbuild to ^0.18.17 Jul 26, 2023
@renovate renovate bot force-pushed the renovate/esbuild-0.x branch from 07e2429 to 0942e8d Compare July 26, 2023 05:31
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.20.0 chore(deps): update dependency esbuild to ^0.20.1 Feb 20, 2024
@renovate renovate bot force-pushed the renovate/esbuild-0.x branch from cef1bcf to d9efea1 Compare March 14, 2024 23:58
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.20.1 chore(deps): update dependency esbuild to ^0.20.2 Mar 14, 2024
@renovate renovate bot enabled auto-merge (rebase) March 21, 2024 20:52
@renovate renovate bot force-pushed the renovate/esbuild-0.x branch from d9efea1 to 8789deb Compare May 7, 2024 05:49
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.20.2 chore(deps): update dependency esbuild to ^0.21.0 May 7, 2024
@renovate renovate bot force-pushed the renovate/esbuild-0.x branch from 8789deb to d1712aa Compare May 9, 2024 02:45
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.21.0 chore(deps): update dependency esbuild to ^0.21.1 May 9, 2024
@renovate renovate bot force-pushed the renovate/esbuild-0.x branch from d1712aa to 4631ee3 Compare May 13, 2024 23:45
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.21.1 chore(deps): update dependency esbuild to ^0.21.2 May 13, 2024
Copy link
Author

renovate bot commented May 13, 2024

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: pnpm-lock.yaml
Scope: all 5 workspace projects
 WARN  GET https://registry.npmjs.org/@1stg/app-config/-/app-config-8.0.1.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/@1stg/lib-config/-/lib-config-11.0.1.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/@changesets/changelog-github/-/changelog-github-0.4.8.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/@changesets/cli/-/cli-2.26.1.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/@mdx-js/rollup/-/rollup-2.3.0.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-7.0.0.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/@types/lodash/-/lodash-4.14.192.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/@types/react/-/react-18.0.33.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/@types/web/-/web-0.0.99.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.2.0.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/@vitest/coverage-istanbul/-/coverage-istanbul-0.29.8.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/github-markdown-css/-/github-markdown-css-5.2.0.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/react/-/react-18.2.0.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/esbuild error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/@1stg/app-config/-/app-config-8.0.1.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/@1stg/lib-config/-/lib-config-11.0.1.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/@changesets/changelog-github/-/changelog-github-0.4.8.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/@changesets/cli/-/cli-2.26.1.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/@mdx-js/rollup/-/rollup-2.3.0.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-7.0.0.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/@types/lodash/-/lodash-4.14.192.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/@types/react/-/react-18.0.33.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/@types/web/-/web-0.0.99.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.2.0.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/@vitest/coverage-istanbul/-/coverage-istanbul-0.29.8.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/github-markdown-css/-/github-markdown-css-5.2.0.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/react/-/react-18.2.0.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/esbuild error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.10.0.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 ERR_INVALID_THIS  Value of "this" must be of type URLSearchParams

pnpm [ERR_INVALID_THIS]: Value of "this" must be of type URLSearchParams
    at Proxy.getAll (node:internal/url:542:13)
    at Proxy.<anonymous> (/opt/containerbase/tools/pnpm/8.1.1/22.13.1/node_modules/pnpm/dist/pnpm.cjs:60565:55)
    at /opt/containerbase/tools/pnpm/8.1.1/22.13.1/node_modules/pnpm/dist/pnpm.cjs:60627:31
    at Array.reduce (<anonymous>)
    at Proxy.raw (/opt/containerbase/tools/pnpm/8.1.1/22.13.1/node_modules/pnpm/dist/pnpm.cjs:60626:33)
    at new Headers (/opt/containerbase/tools/pnpm/8.1.1/22.13.1/node_modules/pnpm/dist/pnpm.cjs:60511:28)
    at getNodeRequestOptions (/opt/containerbase/tools/pnpm/8.1.1/22.13.1/node_modules/pnpm/dist/pnpm.cjs:60860:23)
    at /opt/containerbase/tools/pnpm/8.1.1/22.13.1/node_modules/pnpm/dist/pnpm.cjs:60917:25
    at new Promise (<anonymous>)
    at fetch (/opt/containerbase/tools/pnpm/8.1.1/22.13.1/node_modules/pnpm/dist/pnpm.cjs:60915:14)
 WARN  GET https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/sass/-/sass-1.61.0.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/sirv-cli/-/sirv-cli-2.0.2.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/tsx/-/tsx-3.12.6.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/type-coverage/-/type-coverage-2.25.0.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/unplugin-auto-import/-/unplugin-auto-import-0.15.2.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/vite/-/vite-4.2.1.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/vitest/-/vitest-0.29.8.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/cpy/-/cpy-9.0.1.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.1.0.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.

@renovate renovate bot force-pushed the renovate/esbuild-0.x branch from 4631ee3 to 28d11a6 Compare May 22, 2024 17:52
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.21.2 chore(deps): update dependency esbuild to ^0.21.3 May 22, 2024
@renovate renovate bot force-pushed the renovate/esbuild-0.x branch from 28d11a6 to 534ba80 Compare May 25, 2024 05:26
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.21.3 chore(deps): update dependency esbuild to ^0.21.4 May 25, 2024
@renovate renovate bot force-pushed the renovate/esbuild-0.x branch from 534ba80 to ed30770 Compare June 10, 2024 05:15
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.21.4 chore(deps): update dependency esbuild to ^0.21.5 Jun 10, 2024
@renovate renovate bot force-pushed the renovate/esbuild-0.x branch from ed30770 to 499fad4 Compare July 1, 2024 05:43
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.21.5 chore(deps): update dependency esbuild to ^0.22.0 Jul 1, 2024
@renovate renovate bot force-pushed the renovate/esbuild-0.x branch from 499fad4 to 218398e Compare July 3, 2024 05:29
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.22.0 chore(deps): update dependency esbuild to ^0.23.0 Jul 3, 2024
@renovate renovate bot force-pushed the renovate/esbuild-0.x branch from 218398e to 0896a16 Compare August 17, 2024 20:54
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.23.0 chore(deps): update dependency esbuild to ^0.23.1 Aug 17, 2024
@renovate renovate bot force-pushed the renovate/esbuild-0.x branch from 0896a16 to 5af2eb1 Compare September 22, 2024 05:19
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.23.1 chore(deps): update dependency esbuild to ^0.24.0 Sep 22, 2024
@renovate renovate bot force-pushed the renovate/esbuild-0.x branch from 5af2eb1 to a183ddb Compare December 21, 2024 05:53
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.24.0 chore(deps): update dependency esbuild to ^0.24.2 Dec 21, 2024
@renovate renovate bot force-pushed the renovate/esbuild-0.x branch from a183ddb to 17103ad Compare February 8, 2025 15:13
@renovate renovate bot changed the title chore(deps): update dependency esbuild to ^0.24.2 chore(deps): update dependency esbuild to ^0.25.0 Feb 8, 2025
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