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')
// Prints ["foo", "bar"]
console.log(Foo[Symbol.metadata].names)
⚠️ WARNING ⚠️
This proposal has been marked as "stage 3" which means "recommended for implementation". However, it's still a work in progress and isn't a part of JavaScript yet, so keep in mind that any code that uses JavaScript decorator metadata may need to be updated as the feature continues to evolve. If/when that happens, I will update esbuild's implementation to match the specification. I will not be supporting old versions of the specification.
In certain cases, bundling code that uses decorators in a derived class with a class body that references its own class name could previously generate code that crashes at run-time due to an incorrect variable name. This problem has been fixed. Here is an example of code that was compiled incorrectly before this fix:
This release fixes an issue with a scenario involving a tsconfig.json file that extends another file from within a symlinked directory that uses the paths feature. In that case, the implicit baseURL value should be based on the real path (i.e. after expanding all symbolic links) instead of the original path. This was already done for other files that esbuild resolves but was not yet done for tsconfig.json because it's special-cased (the regular path resolver can't be used because the information inside tsconfig.json is involved in path resolution). Note that this fix no longer applies if the --preserve-symlinks setting is enabled.
v0.21.2
Correct this in field and accessor decorators (#3761)
This release changes the value of this in initializers for class field and accessor decorators from the module-level this value to the appropriate this value for the decorated element (either the class or the instance). It was previously incorrect due to lack of test coverage. Here's an example of a decorator that doesn't work without this change:
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')
// Prints ["foo", "bar"]
console.log(Foo[Symbol.metadata].names)
⚠️ WARNING ⚠️
This proposal has been marked as "stage 3" which means "recommended for implementation". However, it's still a work in progress and isn't a part of JavaScript yet, so keep in mind that any code that uses JavaScript decorator metadata may need to be updated as the feature continues to evolve. If/when that happens, I will update esbuild's implementation to match the specification. I will not be supporting old versions of the specification.
In certain cases, bundling code that uses decorators in a derived class with a class body that references its own class name could previously generate code that crashes at run-time due to an incorrect variable name. This problem has been fixed. Here is an example of code that was compiled incorrectly before this fix:
This release fixes an issue with a scenario involving a tsconfig.json file that extends another file from within a symlinked directory that uses the paths feature. In that case, the implicit baseURL value should be based on the real path (i.e. after expanding all symbolic links) instead of the original path. This was already done for other files that esbuild resolves but was not yet done for tsconfig.json because it's special-cased (the regular path resolver can't be used because the information inside tsconfig.json is involved in path resolution). Note that this fix no longer applies if the --preserve-symlinks setting is enabled.
0.21.2
Correct this in field and accessor decorators (#3761)
This release changes the value of this in initializers for class field and accessor decorators from the module-level this value to the appropriate this value for the decorated element (either the class or the instance). It was previously incorrect due to lack of test coverage. Here's an example of a decorator that doesn't work without this change:
Don't set retainLines: true when the React compiler is used. This creates whitespace issues and the compiler is modifying the JSX too much to get correct line numbers after that. If you want to use the React compiler and get back correct line numbers for tools like vite-plugin-react-click-to-component to work, you should update your config to something like:
Don't set retainLines: true when the React compiler is used. This creates whitespace issues and the compiler is modifying the JSX too much to get correct line numbers after that. If you want to use the React compiler and get back correct line numbers for tools like vite-plugin-react-click-to-component to work, you should update your config to something like:
Bumps the dev-dependencies group with 13 updates in the / directory:
1.7.0
1.7.3
13.7.3
13.10.0
0.20.2
0.21.3
7.6.0
7.6.2
16.3.1
16.6.0
4.7.2
4.11.0
4.2.1
4.3.0
18.2.0
18.3.1
18.2.79
18.3.3
18.2.0
18.3.1
18.2.25
18.3.0
5.2.8
5.2.11
18.2.0
18.3.1
Updates
@biomejs/biome
from 1.7.0 to 1.7.3Release notes
Sourced from
@biomejs/biome
's releases.... (truncated)
Changelog
Sourced from
@biomejs/biome
's changelog.... (truncated)
Commits
b9f90b7
release: v1.7.3 (#2722)cb0182e
feat(linter): implementNoUnmatchableAnbSelector
(#2706)f77ab54
feat(linter): implementuseExplicitLengthCheck
(#2631)afa5004
feat(biome_css_analyzer): noUnknownSelectorPseudoElement (#2655)150dd0e
feat(biome_css_analyzer): implement noDuplicateAtImportRules (#2658)773a735
fix(linter): fix typo in rule name.useConsistentBuiltinInstatiation
to `us...2c70d3f
release: v1.7.2 (#2651)46c378e
feat(biome_css_analyzer): noUnknownFunction (#2570)de063b4
feat(lint/useDefaultSwitchClause): add rule (#2605)b3ed181
feat(linter): ImplementuseGenericFontNames
(#2573)Updates
cypress
from 13.7.3 to 13.10.0Release notes
Sourced from cypress's releases.
Commits
374ceb2
chore: change path created in prevous PR to make windows compliant (#29551)2567b72
chore: release@cypress/vite-dev-server-v5
.1.027471ad
chore: release 13.10.0 (#29549)079030b
feat: support vite v5 (#29518)3a3d877
fix: Encode fileServerFolder to fix #25839 (#29162)297abbb
fix: Add optional regex check for comma preceding 'but' in assertions for com...9c11188
chore: Update Chrome (beta) to 126.0.6478.7 (#29531)e39e748
fix: preserve orphaned process electron (#29515)3a00948
chore: Move what-is-circular dep within Cypress repo (#29530)5a23501
chore: turn off protocol element highlight selector tests (#29533)Updates
esbuild
from 0.20.2 to 0.21.3Release notes
Sourced from esbuild's releases.
... (truncated)
Changelog
Sourced from esbuild's changelog.
... (truncated)
Commits
efa3dd2
publish 0.21.3 to npm5e7cf25
fix #3760: implement decorator metadata proposalbd0b13b
lowering: always propagate class expression names90acd14
explicit bitwise operators for initializer flagsba548df
move decorator initializer list to after the class66b7c6d
fix #3768: bundled decorators in derived classes6e6f15f
fix #3767:tsconfig.json
files inside symlinksb7dcb95
transform: reuselowerField
for auto-accessorsb24180e
publish 0.21.2 to npmf82e0ad
fix #3761:this
in field and accessor decoratorsUpdates
semver
from 7.6.0 to 7.6.2Release notes
Sourced from semver's releases.
Changelog
Sourced from semver's changelog.
Commits
eb1380b
chore: release 7.6.2 (#714)6466ba9
fix(lru): use map.delete() directly (#713)d777418
chore: release 7.6.1 (#706)988a8de
deps: uninstalllru-cache
(#709)5feeb7f
chore: postinstall for dependabot template-oss PRdd09b60
chore: bump@npmcli/template-oss
to 4.22.0c570a34
fix(linting): no-unused-varsad8ff11
fix: use internal cache implementation3fabe4d
deps: remove lru-cacheec49cdc
chore: chore: chore: postinstall for dependabot template-oss PRUpdates
stylelint
from 16.3.1 to 16.6.0Release notes
Sourced from stylelint's releases.
Changelog
Sourced from stylelint's changelog.
Commits
141c511
16.6.071d3d4b
Prepare 16.6.0 (#7681)c0b52c5
Fix missing GitHub Sponsor fornpm fund
(#7707)8364760
Fixselector-not-notation
autofix of the"simple"
option (#7703)c4ea9d4
Refactor types forflattenNestedSelectorsForRule
and `getSelectorSourceInde...e0d8fdd
Refactor to jsonFormatter (#7705)c76a5d3
Fixno-descending-specificity
end positions (#7701)024fa7e
Refactor to addselectorSourceIndex
utility (#7702)2427d9d
Bump@csstools/selector-specificity
from 3.1.0 to 3.1.1 (#7697)a6a8447
Bump@changesets/cli
from 2.27.1 to 2.27.3 in the changesets group across 1 d...Updates
tsx
from 4.7.2 to 4.11.0Release notes
Sourced from tsx's releases.
... (truncated)
Commits
b6bf39b
fix: only error on invalid tsconfig if explicitly passed in (#30)3f42ae3
feat(esm api): configurabletsconfig
52d696c
docs: use .md extension in linksb54131c
refactor: reuse tsconfig utileeaefd6
test: separate tsconfig tests9cf2115
test: refactor organize fixturesa71c437
chore: update tsconfig.json86cf87c
fix: handle parsing variableof
4a8a2dc
fix(cjs): support file url (#18)942e9bc
fix: V8 coverage supportUpdates
@vitejs/plugin-react
from 4.2.1 to 4.3.0Release notes
Sourced from
@vitejs/plugin-react
's releases.Changelog
Sourced from
@vitejs/plugin-react
's changelog.Commits
7e7322a
release: plugin-react@4.3.04b4a95c
fix: don't use retainLines with react compiler (#319)2b7f2ae
fix: support HMR for class components (#320)302a323
docs: add minimum react version (#321)9ebfe68
chore: bump deps (#318)Updates
react
from 18.2.0 to 18.3.1Release notes
Sourced from react's releases.
Changelog
Sourced from react's changelog.
Commits
f1338f8
ExportReact.act
fr... _Description has been truncated_