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:
Bumps the dev-dependencies group with 12 updates in the / directory:
1.7.0
1.7.3
13.7.3
13.9.0
0.20.2
0.21.3
7.6.0
7.6.2
16.3.1
16.5.0
4.7.2
4.10.5
18.2.0
18.3.1
18.2.79
18.3.2
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.9.0Release notes
Sourced from cypress's releases.
Commits
b31740c
chore: revert making check-ts resource-class smaller (#29484)bd8e9bf
chore: release 13.9.0 (#29485)d875569
chore: fix mocha junit reporter when running mocha <6 (#29481)66dac23
fix: #29171 set correct host header with fetch (#29452)84b6bf2
chore: right size some circleci jobs (#29448)555a924
fix: update firefox to close extra windows between specs (#29475)4782f89
chore: release@cypress/eslint-plugin-dev-v6
.0.03b799a1
breaking: the supported eslint version is 8 for@cypress/eslint-plugin-dev
.d1b59a4
chore: release@cypress/react-v8
.0.11396e96
fix: handle promises rejected with undefined gracefully (#29454)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.5.0Release notes
Sourced from stylelint's releases.
Changelog
Sourced from stylelint's changelog.
Commits
fb54d13
16.5.08b4beb9
Prepare 16.5.0 (#7653)45cb671
Bump@stylelint/remark-preset
from 5.0.0 to 5.1.0 in the stylelint group (#7672)c6456b2
Bump remark-cli from 12.0.0 to 12.0.1 (#7673)b0b8173
Bump rollup from 4.16.3 to 4.17.2 (#7671)c56f714
Revert "Refactor Cosmiconfig types" (#7661)f87f784
Fixshorthand-property-no-redundant-values
false negatives for functions (#...c85f75b
Fixvalue-no-vendor-prefix
false positives/negatives (#7658)68cb920
Fixvalue-no-vendor-prefix
false negatives (#7654)d159c1b
RefactormatchesStringOrRegExp()
utility (#7651)Updates
tsx
from 4.7.2 to 4.10.5Release notes
Sourced from tsx's releases.
... (truncated)
Commits
86cf87c
fix: handle parsing variableof
4a8a2dc
fix(cjs): support file url (#18)942e9bc
fix: V8 coverage support05c382f
style(parseEsm): make filename optional5cdd50b
perf: skip parsing ifimport(
is not found in minified codead970ac
chore: improve issue template0a989d9
docs: fix broken links (#555)e2afc60
chore: improve issue templates0e66aed
chore: upgrade deps2c87fc1
fix: expose types foresm/api
(#551)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
from 18.3d6c42f7
Bump to 18.3.173bfaa1
Turn on key spread warning in jsx-runtime for everyone (#25697)c2a246e
Turn on string ref deprecation warning for everybody (not codemoddable) (#25383)2cfb474
Bump version from 18.2 to 18.3Maintainer changes
This version was pushed to npm by react-bot, a new releaser for react since your current version.
Updates
@types/react
from 18.2.79 to 18.3.2Commits
Updates
react-dom
from 18.2.0 to 18.3.1Release notes
Sourced from react-dom's releases.
Changelog
Sourced from react-dom's changelog.
Commits
d6c42f7
Bump to 18.3.18a015b6
Add deprecation warning for unmountComponentAtNodec3b2839
Add deprecation warning for findDOMNoded4ea75d
ReactDOMTestUtils deprecation warnings7548c01
DeprecaterenderToStaticNodeStream
(#28872) (#28874)Superseded by #960.