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 is a prerelease version to test our ability to release.
Other than removing or updating dependencies, it contains no intended user-facing changes.
This is what 17.0.2 should have been, as that contained two breaking changes. After updating
Nise we are down to one breaking change, which only affects sinon-test (which has been updated),
so most people are not affected. The legacyRoutes flag that is currently enabled in Nise by default
will at some later version be disabled. We will then issue a little migration note.
01d45312
Use Nise 6 with legacyRoutes flag enabled (Carl-Erik Kopseng)
This should be disabled in a future Sinon version by default.
Bumps the dependencies group with 15 updates in the / directory:
20.10.6
20.12.12
1.85.0
1.89.0
2.3.8
2.3.10
2.22.0
2.26.1
5.0.0
5.1.1
0.19.11
0.21.3
43.0.0
43.0.1
10.3.10
10.3.15
10.2.0
10.4.0
2.0.1
2.1.0
3.1.1
3.2.5
16.2.0
16.3.0
17.0.1
18.0.0
5.3.3
5.4.5
3.10.0
3.11.0
Updates
@types/node
from 20.10.6 to 20.12.12Commits
Updates
@types/vscode
from 1.85.0 to 1.89.0Commits
Updates
@vscode/test-electron
from 2.3.8 to 2.3.10Changelog
Sourced from
@vscode/test-electron
's changelog.Commits
Updates
@vscode/vsce
from 2.22.0 to 2.26.1Release notes
Sourced from
@vscode/vsce
's releases.... (truncated)
Commits
9316842
Merge pull request #974 from microsoft/benibenj/modest-dragonfly093d33f
Merge pull request #973 from microsoft/benibenj/hon-guineafowlc1ced1d
:lipstick:dd558a9
Remove double checkingf6eb247
:lipstick:b1bde5a
Only sanitize on windows9e06c04
:lipstick:1188664
Commit message enclose in quotes97f8b80
:lipstick:434754f
Remove unused shell-quoteUpdates
chai
from 5.0.0 to 5.1.1Release notes
Sourced from chai's releases.
Commits
37263c0
fix: support some virtual contexts intoThrow
(#1609)91e58ed
Correct Mocha import instructions (#1611)61159d1
build(deps-dev): bump ip from 1.1.8 to 1.1.9 (#1608)8475d2a
Set up ESLint for JSDoc comments (#1605)936c0ca
5.1.02cf92f5
Fix publish script (#1602)1ba37b5
Set support in same members (#1583)f224339
Assert interface fix (#1601)d504573
Implementiterable
assertion (#1592)640d932
Convert comments in "legal comments" format to jsdoc (#1598)Updates
esbuild
from 0.19.11 to 0.21.3Release notes
Sourced from esbuild's releases.
... (truncated)
Changelog
Sourced from esbuild's changelog.
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
eslint-config-standard-with-typescript
from 43.0.0 to 43.0.1Release notes
Sourced from eslint-config-standard-with-typescript's releases.
Changelog
Sourced from eslint-config-standard-with-typescript's changelog.
Commits
a15c932
chore(release): 43.0.1 [skip ci]c7782be
Merge pull request #1394 from mightyiam/renovate/semantic-release-23.x5fb79c3
chore(deps): update dependency semantic-release to v23d3b4d11
Merge pull request #1400 from mightyiam/renovate/node-20.x7414eba
chore(deps): update dependency@types/node
to v20.11.58470a93
Merge pull request #1397 from mightyiam/repo-transfer932ffce
docs: update repository urls372e604
Merge pull request #1399 from mightyiam/project8d2f497
build: rm add-to-project workflowcd71373
Merge pull request #1393 from standard/renovate/node-20.xUpdates
glob
from 10.3.10 to 10.3.15Commits
921c4b9
10.3.1557f5551
engines: need 14.18, where 'node:path' shows up4da30cd
10.3.140e7f0cf
path-scurry@1.11.0d6a9d05
10.3.13435d1f7
fix: usenode:
-prefixed requires for builtins7732ea3
fix test-regen bugd5b6b5d
10.3.12e775a78
strip leading ./ from ignore patterns7e927b2
update changelogUpdates
mocha
from 10.2.0 to 10.4.0Release notes
Sourced from mocha's releases.
... (truncated)
Changelog
Sourced from mocha's changelog.
... (truncated)
Commits
ffd9557
Release v10.4.07ac67f3
build(deps): bump the github-actions group with 2 updates (#5125)7a2781c
chore: activate dependabot for workflows (#5123)97dcbb2
fix: harden error handling inlib/cli/run.js
(#5074)6f3f45e
fix: xunit integration test (#5122)a5b5652
docs: fix documentation concerning glob expansion on UNIX (#4869)efbb147
feat: add file path to xunit reporter (#4985)a2e600d
fix: closes #5115 (#5116)3735873
feat: include.cause
stacks in the error stack traces (#4829)b88978d
chore: bump ESLint ecmaVersion to 2020 (#5104)Maintainer changes
This version was pushed to npm by voxpelli, a new releaser for mocha since your current version.
Updates
pkgroll
from 2.0.1 to 2.1.0Release notes
Sourced from pkgroll's releases.
Commits
0c20132
feat: added--clean-dist
flag (#66)e526ba6
docs: remove old bannersc57dd51
ci: release rcd9fa3c0
chore: use lintroll9049b3e
docs: resize text129e052
docs: add logoc09f162
chore: upgrade dependencies1a60389
chore: upgrade dev deps92077f1
style: lint fix (#50)b5dd748
docs: add badgesUpdates
prettier
from 3.1.1 to 3.2.5Release notes
Sourced from prettier's releases.
Changelog
Sourced from prettier's changelog.
... (truncated)
Commits
7142cf3
Release 3.2.58cbee2e
chore(deps): update glimmer to v0.88.1 (#15991)45baee0
chore(deps): update dependency magic-string to v0.30.6 (#16022)9fb32a1
Minor refactor to property print (#15924)08f1940
Update install script for husky v9 (#16000)6d0b1d2
Update yarn to v4.1.0 (#16021)c8ba8db
chore(deps): update dependency@angular/compiler
to v17.1.2 (#16018)e2250ec
chore(deps): update typescript-eslint to v6.20.0 (#16015)02865f6
chore(deps): update dependency npm-run-all2 to v6.1.2 (#16017)014ee5d
chore(deps): update dependency hermes-parser to v0.19.0 (#16014)Updates
prettier-eslint
from 16.2.0 to 16.3.0Release notes
Sourced from prettier-eslint's releases.
Changelog
Sourced from prettier-eslint's changelog.
Commits
39a7744
chore: release prettier-eslint (#951)8418438
feat: support handling.svelte
files (#950)Maintainer changes
This version was pushed to npm by jounqin, a new releaser for prettier-eslint since your current version.
Updates
sinon
from 17.0.1 to 18.0.0Changelog
Sourced from sinon's changelog.
... (truncated)
Commits
adea6a1
18.0.06324be4
Use Nise 6 with legacyRoutes flag enabled4cbd712
Bump nokogiri from 1.16.2 to 1.16.5 (#2598)c618edc
fix #2594: remove needless sandbox creation16a25ae
17.0.2f6dca0b
upgrade packages (#2595)5025d00
Avoid return and callArg* clearing each other's state (#2593)ed068a8
Bump ip from 1.1.8 to 1.1.9 (#2587)ec4d592
fix #2589: avoid invoking getter as side-effect (#2592)9972e1e
Fix typo in mocks documentation (#2591)Updates
typescript
from 5.3.3 to 5.4.5Release notes
Sourced from typescript's releases.