Support TypeScript experimental decorators on abstract class fields (#3684)
With this release, you can now use TypeScript experimental decorators on abstract class fields. This was silently compiled incorrectly in esbuild 0.19.7 and below, and was an error from esbuild 0.19.8 to esbuild 0.20.1. Code such as the following should now work correctly:
// Original code
const log = (x: any, y: string) => console.log(y)
abstract class Foo { @log abstract foo: string }
new class extends Foo { foo = '' }
// Old output (with --loader=ts --tsconfig-raw={"compilerOptions":{"experimentalDecorators":true}})
const log = (x, y) => console.log(y);
class Foo {
}
new class extends Foo {
foo = "";
}();
// New output (with --loader=ts --tsconfig-raw={"compilerOptions":{"experimentalDecorators":true}})
const log = (x, y) => console.log(y);
class Foo {
}
__decorateClass([
log
], Foo.prototype, "foo", 2);
new class extends Foo {
foo = "";
}();
JSON loader now preserves __proto__ properties (#3700)
Copying JSON source code into a JavaScript file will change its meaning if a JSON object contains the __proto__ key. A literal __proto__ property in a JavaScript object literal sets the prototype of the object instead of adding a property named __proto__, while a literal __proto__ property in a JSON object literal just adds a property named __proto__. With this release, esbuild will now work around this problem by converting JSON to JavaScript with a computed property key in this case:
// Original code
import data from 'data:application/json,{"__proto__":{"fail":true}}'
if (Object.getPrototypeOf(data)?.fail) throw 'fail'
// Old output (with --bundle)
(() => {
// <data:application/json,{"proto":{"fail":true}}>
var json_proto_fail_true_default = { proto: { fail: true } };
// entry.js
if (Object.getPrototypeOf(json_proto_fail_true_default)?.fail)
throw "fail";
})();
Support TypeScript experimental decorators on abstract class fields (#3684)
With this release, you can now use TypeScript experimental decorators on abstract class fields. This was silently compiled incorrectly in esbuild 0.19.7 and below, and was an error from esbuild 0.19.8 to esbuild 0.20.1. Code such as the following should now work correctly:
// Original code
const log = (x: any, y: string) => console.log(y)
abstract class Foo { @log abstract foo: string }
new class extends Foo { foo = '' }
// Old output (with --loader=ts --tsconfig-raw={"compilerOptions":{"experimentalDecorators":true}})
const log = (x, y) => console.log(y);
class Foo {
}
new class extends Foo {
foo = "";
}();
// New output (with --loader=ts --tsconfig-raw={"compilerOptions":{"experimentalDecorators":true}})
const log = (x, y) => console.log(y);
class Foo {
}
__decorateClass([
log
], Foo.prototype, "foo", 2);
new class extends Foo {
foo = "";
}();
JSON loader now preserves __proto__ properties (#3700)
Copying JSON source code into a JavaScript file will change its meaning if a JSON object contains the __proto__ key. A literal __proto__ property in a JavaScript object literal sets the prototype of the object instead of adding a property named __proto__, while a literal __proto__ property in a JSON object literal just adds a property named __proto__. With this release, esbuild will now work around this problem by converting JSON to JavaScript with a computed property key in this case:
// Original code
import data from 'data:application/json,{"__proto__":{"fail":true}}'
if (Object.getPrototypeOf(data)?.fail) throw 'fail'
// Old output (with --bundle)
(() => {
// <data:application/json,{"proto":{"fail":true}}>
var json_proto_fail_true_default = { proto: { fail: true } };
// entry.js
if (Object.getPrototypeOf(json_proto_fail_true_default)?.fail)
throw "fail";
})();
This is a prerelease version to test our ability to release.
Other than removing or updating dependencies, it contains no intended user-facing changes.
Bumps the dependencies group with 16 updates:
20.10.6
20.12.2
1.85.0
1.87.0
2.3.8
2.3.9
2.22.0
2.24.0
5.0.0
5.1.0
0.19.11
0.20.2
8.56.0
8.57.0
43.0.0
43.0.1
16.6.0
16.6.2
10.3.10
10.3.12
10.2.0
10.4.0
2.0.1
2.0.2
3.1.1
3.2.5
16.2.0
16.3.0
5.3.3
5.4.3
3.10.0
3.11.0
Updates
@types/node
from 20.10.6 to 20.12.2Commits
Updates
@types/vscode
from 1.85.0 to 1.87.0Commits
Updates
@vscode/test-electron
from 2.3.8 to 2.3.9Changelog
Sourced from
@vscode/test-electron
's changelog.Commits
Updates
@vscode/vsce
from 2.22.0 to 2.24.0Commits
a080290
Revert "feat: Support for yarn workspaces (#493)" (#936)6e959ca
remove fixture files (#925)f37621d
fixes #322 (#924)3fc1a9a
publish pre-release on main ci (#923)1be75b2
feat: show targets in show command (#922)4df2693
show pre-release data in show command (#921)b18c620
rewrite video src links (#920)916fd91
feat: support --readme-path and --changelog-path (#919)302f02c
handle multi line images (#918)160d0e0
Filter data from other platforms (#912)Updates
chai
from 5.0.0 to 5.1.0Release notes
Sourced from chai's releases.
Commits
2cf92f5
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)e7f768e
Cleanup jsdoc comments (#1596)3290eb4
Remove useless guards and add parentheses to constuctors (#1593)44b81df
5.0.31a4dca1
5.0.257fef84
Fix 1564 (#1566)Updates
esbuild
from 0.19.11 to 0.20.2Release notes
Sourced from esbuild's releases.
... (truncated)
Changelog
Sourced from esbuild's changelog.
... (truncated)
Commits
617edda
publish 0.20.2 to npm4780075
fix #3700: json loader preserves__proto__
keys30bed2d
better errors for invalid js decorator syntax300eeb7
ts: allow non-null assertions in js decorators4d997d9
fix #3698: yarn pnp edge case withtsconfig.json
cf42954
resolver: improve some debug loggingb0765ae
fix some lintsdfa6206
fix some comments (closes #3683)ae5cc17
fix #3684:abstract
experimental decoratorsc809af0
fix #2388: allow consuming types without dom types (#3679)Updates
eslint
from 8.56.0 to 8.57.0Release notes
Sourced from eslint's releases.
Changelog
Sourced from eslint's changelog.
... (truncated)
Commits
abea3b6
8.57.01cd3f8c
Build: changelog update for 8.57.01813aec
chore: upgrade@eslint/js
@8
.57.0 (#18143)5c356bb
chore: package.json update for@eslint/js
release84922d0
docs: Show prerelease version in dropdown (#18139)1120b9b
feat: Add loadESLint() API method for v8 (#18098)5b8c363
docs: Switch to Ethical Ads (#18117)2196d97
fix: handle absolute file paths inFlatRuleTester
(#18064)f4a1fe2
test: add more tests for ignoring files and directories (#18068)69dd1d1
fix: Ensure config keys are printed for config errors (#18067)Updates
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
eslint-plugin-n
from 16.6.0 to 16.6.2Release notes
Sourced from eslint-plugin-n's releases.
Commits
ec5badb
Release 16.6.29ddd351
chore: update tests to use eslintrc options5fc2198
fix: no-callback-literal ignore unknown nodes (#163)c191101
chore: add non-rule-change issue template (#159)ad8f4f4
chore: move rule tests parserOptions to ruleTester (#157)bc6c538
Release 16.6.12419888
fix: eslint 7.0 support (#156)Updates
glob
from 10.3.10 to 10.3.12Commits
d5b6b5d
10.3.12e775a78
strip leading ./ from ignore patterns7e927b2
update changeloge667dcb
10.3.11b1d8105
document follow+nodirb5d0f64
drop node 16 from ciea7cf5f
Exclude symlinks to directories with follow+nodir97611cd
remove FUNDING.yml (coming from .github repo now)0862a79
docs(README): typo (eiher
=>either
).c1b4675
remove makework gh actionsUpdates
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.0.2Release notes
Sourced from pkgroll's releases.
Commits
9049b3e
docs: resize text129e052
docs: add logoc09f162
chore: upgrade dependencies1a60389
chore: upgrade dev deps92077f1
style: lint fix (Looks like these dependencies are updatable in another way, so this is no longer needed.