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:
Added: The CLI helper tool now works with eslint.config.js (flat config). Just like ESLint itself, the CLI tool automatically first tries eslint.config.js and then eslintrc, and you can force which one to use by setting the [ESLINT_USE_FLAT_CONFIG] environment variable. Note that the config of eslint-config-prettier has always been compatible with eslint.config.js (flat config) – it was just the CLI tool that needed updating. On top of that, the docs have been updated to mention how to use both eslint.config.js (flat config) and eslintrc, and the tests now test both config systems.
Changed: [unicode-bom] is no longer turned off. Prettier preserves the BOM if you have one, and does not add one if missing. It was wrong of eslint-config-prettier to disable that rule. If you get ESLint errors after upgrading, either add "unicode-bom": "off" to your config to disable it again, or run ESLint with --fix to fix all files according to the rule (add or remove BOM). Thanks to Nicolas Stepien (@nstepien)!
Bumps the dependencies group with 16 updates:
1.3.92
1.3.93
25.0.5
25.0.7
4.3.6
4.3.8
18.15.0
20.8.6
5.62.0
6.7.5
5.62.0
6.7.5
0.18.20
0.19.4
8.50.0
8.51.0
8.10.0
9.0.0
35.0.0
39.1.1
15.7.0
16.2.0
2.8.8
3.0.3
15.0.1
16.1.1
3.29.4
4.1.4
15.2.0
16.1.0
5.1.6
5.2.2
Updates
@swc/core
from 1.3.92 to 1.3.93Changelog
Sourced from
@swc/core
's changelog.... (truncated)
Commits
06b733d
chore: Publishv1.3.93
withswc_core
v0.85.7
(#8112)a1d7ea7
chore: Publish crates5d78227
chore: Update config forgit-cliff
(#8111)def2bb1
chore: Publish 1.3.93-nightly-20231013.1affb6fb
refactor(es/compat): Splitswc_ecma_transforms_compat
(#8110)ee21b4e
chore: Publish 1.3.93-nightly-20231012.2edf2004
chore: Renamescripts.prepare
toscripts.setup
04932ac
chore: Publish crates95eb147
refactor(es/preset-env): Rename parameter to avoid confusion (#8106)1bb2491
chore: Publish cratesUpdates
@rollup/plugin-commonjs
from 25.0.5 to 25.0.7Changelog
Sourced from
@rollup/plugin-commonjs
's changelog.Commits
ad406ba
chore(release): commonjs v25.0.78e2ed59
fix(commonjs,dynamic-import-vars,esm-shim,inject,replace,strip): bump magic-s...88687f0
chore(release): commonjs v25.0.6cb579c8
fix(commonjs): Keep the shebang at the top of the file content (#1610)Updates
@types/chai
from 4.3.6 to 4.3.8Commits
Updates
@types/node
from 18.15.0 to 20.8.6Commits
Updates
@typescript-eslint/eslint-plugin
from 5.62.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 5.62.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
esbuild
from 0.18.20 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.50.0 to 8.51.0Release notes
Sourced from eslint's releases.
Changelog
Sourced from eslint's changelog.
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
eslint-config-prettier
from 8.10.0 to 9.0.0Changelog
Sourced from eslint-config-prettier's changelog.
Commits
1982680
eslint-config-prettier v9.0.0f197969
Do not disable unicode-bom (#250)a8bc57e
Flat config: CLI, tests, docs (#261)Updates
eslint-config-standard-with-typescript
from 35.0.0 to 39.1.1Release notes
Sourced from eslint-config-standard-with-typescript's releases.
... (truncated)
Changelog
Sourced from eslint-config-standard-with-typescript's changelog.
... (truncated)
Commits
dff4053
chore(release): 39.1.1 [skip ci]0d30679
Merge pull request #1292 from standard/test-equivalentsed8f1d4
fix: turn off ESLint no-implied-eval9e0d772
Merge pull request #1290 from standard/renovate/node-20.xf1b3a89
chore(deps): update dependency@types/node
to v20.8.3c2b009b
Merge pull request #1289 from standard/renovate/eslint-8.x7af95c7
chore(deps): update dependency eslint to v8.51.05284be4
Merge pull request #1288 from standard/renovate/node-20.x38aebcb
chore(deps): update dependency@types/node
to v20.8.24ab66cb
Merge pull request #1287 from standard/renovate/@typescript-eslint-packages
Updates
eslint-plugin-n
from 15.7.0 to 16.2.0Release notes
Sourced from eslint-plugin-n's releases.
Commits
f9dbe21
Release 16.2.06d02512
feat: detect non-member expressions in n/no-sync (#127)2d43f48
fix: Normalisepackage.json#files
before checking ignores and whitelist (#1...5507f43
docs: fix repository URL:s, tweak badges + remove old non-workingcodecov
(...574df88
chore: Add a .editorconfig file (#126)98ea90e
chore: use maintainednpm-run-all
fork (#124)7f54d0c
ci:... _Description has been truncated_