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.
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.
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.
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";
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.
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.
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.
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:
Bumped the peer dependency range for vue-tsc to ^2.1.0 because there was a breaking change in its API. If you're using Vue support, upgrade both packages simultaneously, e.g. npm i -D prettier-plugin-organize-imports vue-tsc.
Version 4.1.0 bumps the peer dependency range for vue-tsc to ^2.1.0 because there was a breaking change in its API. If you're using Vue support, upgrade both packages simultaneously, e.g. npm i -D prettier-plugin-organize-imports vue-tsc.
Version 4.0.0 upgrades/replaces the Volar packages used for Vue support, to use the latest vue-tsc package that's part of Volar 2. To migrate, you just have to remove @volar/vue-typescript and if you're using it, also @volar/vue-language-plugin-pug, and replace it with vue-tsc and @vue/language-plugin-pug respectively. There are no breaking changes other than this.
Version 3.2.4 implements a fix to skip when formatting ranges (i.e. if the plugin is requested to format a range, it doesn't do anything because it would lack the full file context).
Version 3.2.3 updates the readme with instructions for Prettier 3.
Version 3.2.2 fixes a performance regression introduced in 3.2.0.
Version 3.2.1 fixes the implementation of the language service host's getCurrentDirectory method to return the directory containing the tsconfig, rather than using ts.sys.getCurrentDirectory (which returns process.cwd()). This should prevent issues with resolving compiler plugins with Volar (which is used for Vue support).
Version 3.2.0 adds and fixes support for pug templates in Vue files (via @volar/vue-language-plugin-pug). Please be aware that you'll need to update your version of the @volar/vue-typescript peer dependency from 0.x to 1.x.
Version 3.1.0 adds an option to skip destructive code actions like removing unused imports.
Version 3.0.3 fixes a performance regression introduced in 3.0.2.
Version 3.0.2 fixes a regression introduced by adding some file-system related methods to the language service host (to fix a bug), which revealed that another method's implementation was incorrect.
Version 3.0.1 bumps the @volar/vue-typescript version to fix more edge cases, e. g. not removing imports when a component is used via kebab-case naming. @volar/vue-typescript is now defined as an optional peer dependency and you'll need to install version 0.39 or later. Furthermore a fix has been added that should help support more module resolution algorithms.
Version 3.0.0 switches to a different package for Vue support, which fixes some more issues, e. g. support for setup scripts. No breaking changes otherwise.
Version 2.3.4 fixes an issue with Vue v2 files.
Version 2.3.3 fixes a bug where default imports were removed erroneously.
Version 2.3.1 adds debug logs and fixes Vue.js support.
Version 2.2.0 adds a compiler options cache to improve performance.
Version 2.1.0 adds support for Vue.js (.vue files).
Version 2.0.0 adds support for the parsers babel (i. e. JavaScript) and babel-ts which are only available since Prettier v2 (and thus the peer dependency has received a major bump).
This changes how the custom glob pattern in the workspace config is treated. Any file matching the glob is considered a Vitest config file. Any folder matching the glob pattern is treated as a workspace project and is subject to the regular config resolution (single vitest.config.ts or vite.config.ts inside the folder)
For example, projects/* will match anything inside the projects folder. If it's a folder, we try to find the config inside that folder (if there is none, it is still treated as a project with the default config). If it's a file, it will be treated as a Vitest config. projects/**/* previously would assume that you only wanted to have folders as projects, but now it will match every single file insideprojects.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the dependencies group with 8 updates in the / directory:
2.9.2
2.10.3
2.27.7
2.27.8
22.0.0
22.7.0
0.23.0
0.24.0
1.7.9
1.7.16
4.0.0
4.1.0
0.6.5
0.6.8
2.0.4
2.1.1
Updates
@astrojs/compiler
from 2.9.2 to 2.10.3Release notes
Sourced from
@astrojs/compiler
's releases.Commits
71fb3ef
[ci] release (#1042)5d0023d
Fix line returns segments being one character too long on Windows (#1043)f55a2af
fix/class:list directive was not properly merging with the class attribute (#...1c01c72
[ci] release (#1041)f05a7cc
fix(tsx): Extract positions based on utf-16 encoding (#1037)b9b0b6a
[ci] release (#1034)21b7b95
revert: top level returns transformations (#1036)af471f5
fix(tsx): Collect multibytes characters in skipped script and styles (#1033)0ebfc96
chore: cover all tests (#1011)f31a4ea
[ci] release (#1029)Updates
@changesets/cli
from 2.27.7 to 2.27.8Release notes
Sourced from
@changesets/cli
's releases.Commits
c867f32
Version Packages (#1439)bc75c1a
Replacechalk
withpicocolors
(#1417)52c302a
Remove unused@babel/runtime
dependency (#1445)5150fc1
switch frompreferred-pm
topackage-manager-detector
(#1446)4efc038
Fix logging --version flag (#1419)Updates
@types/node
from 22.0.0 to 22.7.0Commits
Updates
esbuild
from 0.23.0 to 0.24.0Release notes
Sourced from esbuild's releases.
... (truncated)
Changelog
Sourced from esbuild's changelog.
... (truncated)
Commits
d34e79e
publish 0.24.0 to npm045a87f
fix #3887: omit dead export warning fordefault
6e049b8
fix #3913: useDefineForClassFields and decorators9c26f98
lower decorators for useDefineForClassFields #391346fdb68
fix #3898: incorrect cyclic tsconfig.json warningb500443
fix #3917: running esbuild cli with denob125e62
runmake update-compat-table
112b9aa
fix #3915: stack overflow with yarn + tsconfiged5a555
wasm: catch and rethrow stack overflows (#3915)11d3196
fix #3902: update go 1.22.5 => 1.23.1Updates
lefthook
from 1.7.9 to 1.7.16Release notes
Sourced from lefthook's releases.
Changelog
Sourced from lefthook's changelog.
Commits
6858ccb
1.7.16: allow spaces in project name when using scriptseb24c87
chore: enhance some code parts (#824)3daab42
fix: quote script path (#823)76cf1a0
docs: fix typo for command names in configuration.md (#814)5ad1281
1.7.15: better color controls72de5de
fix: add better colors control (#812)2df5428
deps: August 2024 (#802)18e619a
1.7.14: fix for OpenBSD NPM packagea9ee42d
1.7.13: add OpenBSD support1aa06dc
feat: support openbsd (#808)Updates
prettier-plugin-organize-imports
from 4.0.0 to 4.1.0Release notes
Sourced from prettier-plugin-organize-imports's releases.
Changelog
Sourced from prettier-plugin-organize-imports's changelog.
Commits
b7c15ad
4.1.02e9c480
chore: update dev dependenciesfb7e872
docs: update changelog3fb452e
feat: support vue-tsc v2.1 (#136)4678129
chore(ci): run on node 22fa99724
chore(ci): fix run-script invocation3ea4a81
chore: use tsc to type-check the project59c5329
chore(tests): upgrade ava from v3 to v6b253038
fix: drop@vue/language-plugin-pug
as peer dependencyUpdates
prettier-plugin-tailwindcss
from 0.6.5 to 0.6.8Release notes
Sourced from prettier-plugin-tailwindcss's releases.
Changelog
Sourced from prettier-plugin-tailwindcss's changelog.
Commits
64373cf
0.6.8081b4f5
Fix crash (#320)b1e25fd
0.6.7385e7c2
Update changelogcdb3b98
Add support for newloadModule
andloadStylesheet
APIs from v4 (#317)15e8009
Add support for@plugin
and@config
in v4 (#316)9844623
Improve performance ofspliceChangesIntoString
(#312)0368ffb
0.6.6b7830c6
Support Tailwind CSSv4.0.0-alpha.19
(#310)ee50b9b
Add cache for known plugins (#301)Updates
vitest
from 2.0.4 to 2.1.1Release notes
Sourced from vitest's releases.
... (truncated)
Commits
699055e
chore: release v2.1.136b5ace
fix(workspace): resolve glob pattern once to avoid name collision (#6489)16aa76c
fix(browser): make example test callbacks async (#6484)9f1fd18
chore: release v2.1.094a186e
fix(ui): render project name consistently (#6329)ac698b1
fix:expect.getState().testPath
always returns correct path (#6472)b2be23e
chore: release v2.1.0-beta.70b44722
fix: ignore importer when resolving Vitest (#6469)97773e2
chore: fix edge case in license files bundling (#6460)7ab0f4a
feat(browser): support--inspect-brk
(#6434)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show