Skip to content

Conversation

@patinthehat
Copy link
Member

snyk-top-banner

Snyk has created this PR to upgrade esbuild from 0.25.12 to 0.27.0.

ℹ️ Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


  • The recommended version is 2 versions ahead of your current version.

  • The recommended version was released a month ago.

Release notes
Package name: esbuild
  • 0.27.0 - 2025-11-09

    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.26.0 or ~0.26.0. See npm's documentation about semver for more information.

    • Use Uint8Array.fromBase64 if available (#4286)

      With this release, esbuild's binary loader will now use the new Uint8Array.fromBase64 function unless it's unavailable in the configured target environment. If it's unavailable, esbuild's previous code for this will be used as a fallback. Note that this means you may now need to specify target when using this feature with Node (for example --target=node22) unless you're using Node v25+.

    • Update the Go compiler from v1.23.12 to v1.25.4 (#4208, #4311)

      This raises the operating system requirements for running esbuild:

      • Linux: now requires a kernel version of 3.2 or later
      • macOS: now requires macOS 12 (Monterey) or later
  • 0.26.0 - 2025-11-09
    • Enable trusted publishing (#4281)

      GitHub and npm are recommending that maintainers for packages such as esbuild switch to trusted publishing. With this release, a VM on GitHub will now build and publish all of esbuild's packages to npm instead of me. In theory.

      Unfortunately there isn't really a way to test that this works other than to do it live. So this release is that live test. Hopefully this release is uneventful and is exactly the same as the previous one (well, except for the green provenance attestation checkmark on npm that happens with trusted publishing).

  • 0.25.12 - 2025-11-01
    • Fix a minification regression with CSS media queries (#4315)

      The previous release introduced support for parsing media queries which unintentionally introduced a regression with the removal of duplicate media rules during minification. Specifically the grammar for @ media <media-type> and <media-condition-without-or> { ... } was missing an equality check for the <media-condition-without-or> part, so rules with different suffix clauses in this position would incorrectly compare equal and be deduplicated. This release fixes the regression.

    • Update the list of known JavaScript globals (#4310)

      This release updates esbuild's internal list of known JavaScript globals. These are globals that are known to not have side-effects when the property is accessed. For example, accessing the global Array property is considered to be side-effect free but accessing the global scrollY property can trigger a layout, which is a side-effect. This is used by esbuild's tree-shaking to safely remove unused code that is known to be side-effect free. This update adds the following global properties:

      From ES2017:

      • Atomics
      • SharedArrayBuffer

      From ES2020:

      • BigInt64Array
      • BigUint64Array

      From ES2021:

      • FinalizationRegistry
      • WeakRef

      From ES2025:

      • Float16Array
      • Iterator

      Note that this does not indicate that constructing any of these objects is side-effect free, just that accessing the identifier is side-effect free. For example, this now allows esbuild to tree-shake classes that extend from Iterator:

      // This can now be tree-shaken by esbuild:
      class ExampleIterator extends Iterator {}
    • Add support for the new @ view-transition CSS rule (#4313)

      With this release, esbuild now has improved support for pretty-printing and minifying the new @ view-transition rule (which esbuild was previously unaware of):

      / Original code */
      @ view-transition {
      navigation: auto;
      types: check;
      }

      /* Old output */
      @ view-transition { navigation: auto; types: check; }

      /* New output */
      @ view-transition {
      navigation: auto;
      types: check;
      }

      The new view transition feature provides a mechanism for creating animated transitions between documents in a multi-page app. You can read more about view transition rules here.

      This change was contributed by @ yisibl.

    • Trim CSS rules that will never match

      The CSS minifier will now remove rules whose selectors contain :is() and :where() as those selectors will never match. These selectors can currently be automatically generated by esbuild when you give esbuild nonsensical input such as the following:

      / Original code */
      div:before {
      color: green;
      &.foo {
      color: red;
      }
      }

      /* Old output (with --supported:nesting=false --minify) */
      div:before{color:green}:is().foo{color:red}

      /* New output (with --supported:nesting=false --minify) */
      div:before{color:green}

      This input is nonsensical because CSS nesting is (unfortunately) not supported inside of pseudo-elements such as :before. Currently esbuild generates a rule containing :is() in this case when you tell esbuild to transform nested CSS into non-nested CSS. I think it's reasonable to do that as it sort of helps explain what's going on (or at least indicates that something is wrong in the output). It shouldn't be present in minified code, however, so this release now strips it out.

from esbuild GitHub release notes

Important

  • Check the changes in this PR to ensure they won't cause issues with your project.
  • This PR was automatically created by Snyk using the credentials of a real user.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

For more information:

@coderabbitai
Copy link

coderabbitai bot commented Dec 6, 2025

Important

Review skipped

Ignore keyword(s) in the title.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch snyk-upgrade-d0fea3e2400a60cfe053b16c27eef3fb

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@snyk-io
Copy link

snyk-io bot commented Dec 6, 2025

Snyk checks have passed. No issues have been found so far.

Status Scanner Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues
Code Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@what-the-diff
Copy link

what-the-diff bot commented Dec 6, 2025

PR Summary

  • Package Update
    This PR includes an update to the esbuild package which is one of the libraries we use. The version has been upgraded from ^0.25.3 to ^0.27.0. This brings with it some improvements and bug fixes incorporated in the newer version of esbuild, making our codebase more stable and efficient.

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.

3 participants