Fix printing of JavaScript decorators in tricky cases (#3396)
This release fixes some bugs where esbuild's pretty-printing of JavaScript decorators could incorrectly produced code with a syntax error. The problem happened because esbuild sometimes substitutes identifiers for other expressions in the pretty-printer itself, but the decision about whether to wrap the expression or not didn't account for this. Here are some examples:
// Original code
import { constant } from './constants.js'
import { imported } from 'external'
import { undef } from './empty.js'
class Foo {
@constant()
@imported()
@undef()
foo
}
// Old output (with --bundle --format=cjs --packages=external --minify-syntax)
var import_external = require("external");
var Foo = class {
@123()
@(0, import_external.imported)()
@(void 0)()
foo;
};
// New output (with --bundle --format=cjs --packages=external --minify-syntax)
var import_external = require("external");
var Foo = class {
@(123())
@((0, import_external.imported)())
@((void 0)())
foo;
};
Allow pre-release versions to be passed to target (#3388)
People want to be able to pass version numbers for unreleased versions of node (which have extra stuff after the version numbers) to esbuild's target setting and have esbuild do something reasonable with them. These version strings are of course not present in esbuild's internal feature compatibility table because an unreleased version has not been released yet (by definition). With this release, esbuild will now attempt to accept these version strings passed to target and do something reasonable with them.
v0.19.3
Fix list-style-type with the local-css loader (#3325)
The local-css loader incorrectly treated all identifiers provided to list-style-type as a custom local identifier. That included identifiers such as none which have special meaning in CSS, and which should not be treated as custom local identifiers. This release fixes this bug:
Fix printing of JavaScript decorators in tricky cases (#3396)
This release fixes some bugs where esbuild's pretty-printing of JavaScript decorators could incorrectly produced code with a syntax error. The problem happened because esbuild sometimes substitutes identifiers for other expressions in the pretty-printer itself, but the decision about whether to wrap the expression or not didn't account for this. Here are some examples:
// Original code
import { constant } from './constants.js'
import { imported } from 'external'
import { undef } from './empty.js'
class Foo {
@constant()
@imported()
@undef()
foo
}
// Old output (with --bundle --format=cjs --packages=external --minify-syntax)
var import_external = require("external");
var Foo = class {
@123()
@(0, import_external.imported)()
@(void 0)()
foo;
};
// New output (with --bundle --format=cjs --packages=external --minify-syntax)
var import_external = require("external");
var Foo = class {
@(123())
@((0, import_external.imported)())
@((void 0)())
foo;
};
Allow pre-release versions to be passed to target (#3388)
People want to be able to pass version numbers for unreleased versions of node (which have extra stuff after the version numbers) to esbuild's target setting and have esbuild do something reasonable with them. These version strings are of course not present in esbuild's internal feature compatibility table because an unreleased version has not been released yet (by definition). With this release, esbuild will now attempt to accept these version strings passed to target and do something reasonable with them.
0.19.3
Fix list-style-type with the local-css loader (#3325)
The local-css loader incorrectly treated all identifiers provided to list-style-type as a custom local identifier. That included identifiers such as none which have special meaning in CSS, and which should not be treated as custom local identifiers. This release fixes this bug:
Bumps the extension-dependencies group with 13 updates:
1.15.2
1.15.3
1.14.1
1.14.2
8.1.0
9.0.1
20.4.4
20.8.6
1.80.0
1.83.0
6.1.0
6.7.5
6.1.0
6.7.5
2.19.0
2.21.1
0.18.16
0.19.4
8.45.0
8.51.0
7.0.2
8.0.0
3.0.0
3.0.3
5.1.6
5.2.2
Updates
follow-redirects
from 1.15.2 to 1.15.3Commits
192dbe7
Release version 1.15.3 of the npm package.bd8c81e
Fix resource leak on destroy.9c728c3
Split linting and testing.d388fe2
build: harden ci.yml permissionsUpdates
@types/follow-redirects
from 1.14.1 to 1.14.2Commits
Updates
vscode-languageclient
from 8.1.0 to 9.0.1Commits
4f782ce
New release 3.17.58c81fc8
Update lock files (#1323)300fac4
Prepare new release (#1322)dfdb85d
Fix folding range tests (#1320)4e057d5
Add the workspace/foldingRange/refresh method (#1309)b6e99d8
AddMessageType.Debug
(#1264)c6817d3
Fixes #1313: Capture the exit code of a server process and print it to the lo...c880c61
Move to vscode version 1.82 (#1312)864c8c5
Dbaeumer/frail-salamander-amber (#1311)fb0a3d4
Move to lock file version 3 (#1304)Updates
@types/node
from 20.4.4 to 20.8.6Commits
Updates
@types/vscode
from 1.80.0 to 1.83.0Commits
Updates
@typescript-eslint/eslint-plugin
from 6.1.0 to 6.7.5Release notes
Sourced from
@typescript-eslint/eslint-plugin
's releases.... (truncated)
Changelog
Sourced from
@typescript-eslint/eslint-plugin
's changelog.... (truncated)
Commits
36aecb6
chore: publish v6.7.5db40a0a
fix(eslint-plugin): [prefer-string-starts-ends-with] only report slice/substr...8f4d939
docs: fix prefer-optional-chain example for the unsafe fixes option (#7711)d948dc4
chore: publish v6.7.491a3e0c
chore: publish v6.7.3dec6cbe
docs(eslint-plugin): replaced the Out-of-date TS error codes in eslint-recomm...ddb8589
chore: publish v6.7.2aefb268
chore: publish v6.7.19cf757a
chore(eslint-plugin): refactor getTypeFromNode to parserServices.getTypeAtLoc...e0cb751
docs(eslint-plugin): add warning about superfluous rules with typescript (#7372)Updates
@typescript-eslint/parser
from 6.1.0 to 6.7.5Release notes
Sourced from
@typescript-eslint/parser
's releases.... (truncated)
Changelog
Sourced from
@typescript-eslint/parser
's changelog.... (truncated)
Commits
36aecb6
chore: publish v6.7.5d948dc4
chore: publish v6.7.491a3e0c
chore: publish v6.7.3ddb8589
chore: publish v6.7.2aefb268
chore: publish v6.7.1ad46b12
chore(deps): update jest to v29.7.0 (#7651)79ffff0
chore: publish v6.7.0a3a3932
chore: publish v6.6.0337525b
chore(deps): update dependency jest to v29.6.4 (#7575)4f34d0b
chore: publish v6.5.0Updates
@vscode/vsce
from 2.19.0 to 2.21.1Commits
2e474b4
use execFile instead of exec (#898)70b844e
clean commit message (#897)11223c3
support manual release version (#895)e0857ea
feat: add support for packaging and publishing without license file (#887)986df2b
feat: add user-friendly info to --help (#884)a4f0bf3
rephrase error message for mismatched pricing values in manifest (#890)eb0b8b9
Add CodeQL suppression comment (#894)446c1de
add a pack alias for package (#892)a6187b3
Merge pull request #886 from microsoft/roblou/fixPlatCheckaa2113d
Version bumpUpdates
esbuild
from 0.18.16 to 0.19.4Release notes
Sourced from esbuild's releases.
... (truncated)
Changelog
Sourced from esbuild's changelog.
... (truncated)
Commits
a75b16e
publish 0.19.4 to npm65a4439
fix #3396: js decorator pretty-printing bugs6ad177c
add some js decorator printing tests0e1696f
ignoreTP
in data from caniuse-litee7bf735
fix #3390: allowusing
disposable functions (#3391)24bea0e
updatecompat-table
(note: regexp unicode 15.1)ea9c644
fix #3388: do something with pre-release versions673ad10
publish 0.19.3 to npm6402f11
basic support for parsing import attributes7ece556
fix #3322: avoid temporaries before"use strict"
Updates
eslint
from 8.45.0 to 8.51.0Release notes
Sourced from eslint's releases.
... (truncated)
Changelog
Sourced from eslint's changelog.
... (truncated)
Commits
f079382
8.51.0e8235e5
Build: changelog update for 8.51.01ef39ea
chore: upgrade@eslint/js
@8
.51.0 (#17624)f8c7403
chore: package.json update for@eslint/js
releasef976b2f
fix: make rule severity case-sensitive in flat config (#17619)0edfe36
fix: Ensure crash error messages are not duplicated (#17584)ee5be81
docs: default tosourceType: "module"
in rule examples (#17615)dd79abc
fix:eslint-disable
to be able to parse quoted rule names (#17612)d2f6801
fix: Ensure correct code path for && followed by ?? (#17618)2665552
test: fix flat config linter tests to use Linter in flat config mode (#17616)Updates
patch-package
from 7.0.2 to 8.0.0Release notes
Sourced from patch-package's releases.
Changelog
Sourced from patch-package's changelog.
Commits
Updates
prettier
from 3.0.0 to 3.0.3Release notes
Sourced from prettier's releases.
Changelog
Sourced from prettier's changelog.
... (truncated)
Commits
d5f3171
Release 3.0.3a35008f
Support shared config that forbidsrequire()
(#15233)1ce97d1
Support TypeScript 5.2using
/await using
declaration (#15321)a73cfa0
Fix build script--report
option (#15323)941c6b3
Minor refactor togetSupportedFilesGlob
(#15319)f6c9e9b
Assert uniqueness in language properties (#15320)288ea7e
chore(deps): update dependency webpack to v5.88.2 (#15147)6654451
chore(deps): update dependency webpack to v5.88.2 (#15148)d059644
chore(deps): update dependency fast-glob to v3.3.1 (#15001)423011d
Minor refactor toexpandPatterns
(#15317)Updates
typescript
from 5.1.6 to 5.2.2Release notes
Sourced from typescript's releases.