This release fixes a problem where bundling a TypeScript file containing a glob import could emit a call to a helper function that doesn't exist. The problem happened because esbuild's TypeScript transformation removes unused imports (which is required for correctness, as they may be type-only imports) and esbuild's glob import transformation wasn't correctly marking the imported helper function as used. This wasn't caught earlier because most of esbuild's glob import tests were written in JavaScript, not in TypeScript.
Fix require() glob imports with bundling disabled (#3546)
Previously require() calls containing glob imports were incorrectly transformed when bundling was disabled. All glob imports should only be transformed when bundling is enabled. This bug has been fixed.
Fix a panic when transforming optional chaining with define (#3551, #3554)
This release fixes a case where esbuild could crash with a panic, which was triggered by using define to replace an expression containing an optional chain. Here is an example:
Work around a bug in node's CommonJS export name detector (#3544)
The export names of a CommonJS module are dynamically-determined at run time because CommonJS exports are properties on a mutable object. But the export names of an ES module are statically-determined at module instantiation time by using import and export syntax and cannot be changed at run time.
When you import a CommonJS module into an ES module in node, node scans over the source code to attempt to detect the set of export names that the CommonJS module will end up using. That statically-determined set of names is used as the set of names that the ES module is allowed to import at module instantiation time. However, this scan appears to have bugs (or at least, can cause false positives) because it doesn't appear to do any scope analysis. Node will incorrectly consider the module to export something even if the assignment is done to a local variable instead of to the module-level exports object. For example:
// confuseNode.js
exports.confuseNode = function(exports) {
// If this local is called "exports", node incorrectly
// thinks this file has an export called "notAnExport".
exports.notAnExport = function() {
};
};
You can see that node incorrectly thinks the file confuseNode.js has an export called notAnExport when that file is loaded in an ES module context:
This release fixes a problem where bundling a TypeScript file containing a glob import could emit a call to a helper function that doesn't exist. The problem happened because esbuild's TypeScript transformation removes unused imports (which is required for correctness, as they may be type-only imports) and esbuild's glob import transformation wasn't correctly marking the imported helper function as used. This wasn't caught earlier because most of esbuild's glob import tests were written in JavaScript, not in TypeScript.
Fix require() glob imports with bundling disabled (#3546)
Previously require() calls containing glob imports were incorrectly transformed when bundling was disabled. All glob imports should only be transformed when bundling is enabled. This bug has been fixed.
Fix a panic when transforming optional chaining with define (#3551, #3554)
This release fixes a case where esbuild could crash with a panic, which was triggered by using define to replace an expression containing an optional chain. Here is an example:
Work around a bug in node's CommonJS export name detector (#3544)
The export names of a CommonJS module are dynamically-determined at run time because CommonJS exports are properties on a mutable object. But the export names of an ES module are statically-determined at module instantiation time by using import and export syntax and cannot be changed at run time.
When you import a CommonJS module into an ES module in node, node scans over the source code to attempt to detect the set of export names that the CommonJS module will end up using. That statically-determined set of names is used as the set of names that the ES module is allowed to import at module instantiation time. However, this scan appears to have bugs (or at least, can cause false positives) because it doesn't appear to do any scope analysis. Node will incorrectly consider the module to export something even if the assignment is done to a local variable instead of to the module-level exports object. For example:
// confuseNode.js
exports.confuseNode = function(exports) {
// If this local is called "exports", node incorrectly
// thinks this file has an export called "notAnExport".
exports.notAnExport = function() {
};
};
You can see that node incorrectly thinks the file confuseNode.js has an export called notAnExport when that file is loaded in an ES module context:
Bumps the dependencies group with 24 updates:
1.3.92
1.3.101
25.0.5
25.0.7
0.2.1
0.3.0
4.3.6
4.3.11
3.1.7
3.1.9
2.0.1
2.0.3
10.0.2
10.0.6
18.15.0
20.10.5
1.0.2
1.0.4
5.62.0
6.15.0
5.62.0
6.15.0
2.3.5
2.3.8
2.21.1
2.22.0
0.18.20
0.19.10
8.50.0
8.56.0
8.10.0
9.1.0
35.0.0
43.0.0
2.28.1
2.29.1
15.7.0
16.5.0
2.8.8
3.1.1
15.0.1
16.2.0
3.29.4
4.9.1
15.2.0
17.0.1
5.1.6
5.3.3
Updates
@swc/core
from 1.3.92 to 1.3.101Commits
2037f0d
chore: Publishv1.3.101
withswc_core
v0.87.2
(#8432)3550d0b
chore: Publish 1.3.101-nightly-20231218.1d6cd214
chore: Publish crates56992e3
fix(es/compat): Preserve comment for arrow body (#8427)45f62f7
chore: Publish crates7566ddf
fix(es/codegen): Fix codegen of ts specific syntax in class props (#8426)4bd1590
chore: Publish crates8d47b9a
chore(ci): Fix prepublish script by upgrading NAPI-RS cli (#8430)38b417b
chore: Publish 1.3.101-nightly-20231217.180e2c23
chore: Publish 1.3.101-nightly-20231216.1Updates
@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
@rollup/plugin-swc
from 0.2.1 to 0.3.0Changelog
Sourced from
@rollup/plugin-swc
's changelog.Commits
2c58b01
chore(release): swc v0.3.0a4c7679
feat(swc): allow passingenv
property as option (#1624)dcd8da5
chore(repo): use@dot/versioner
for releases (#1612)Updates
@types/chai
from 4.3.6 to 4.3.11Commits
Updates
@types/debounce-promise
from 3.1.7 to 3.1.9Commits
Updates
@types/json-parse-safe
from 2.0.1 to 2.0.3Commits
Updates
@types/mocha
from 10.0.2 to 10.0.6Commits
Updates
@types/node
from 18.15.0 to 20.10.5Commits
Updates
@types/readline-transform
from 1.0.2 to 1.0.4Commits
Updates
@typescript-eslint/eslint-plugin
from 5.62.0 to 6.15.0Release notes
Sourced from
@typescript-eslint/eslint-plugin
's releases.... (truncated)
Changelog
Sourced from
@typescript-eslint/eslint-plugin
's changelog.... (truncated)
Commits
6128a02
chore: publish v6.15.0f5e712b
docs(eslint-plugin): [require-array-sort-compare] generalize sort method name...e6d49e4
docs(eslint-plugin): [require-array-sort-compare] sync rule description (#8061)ff75785
feat(eslint-plugin): [no-useless-template-literals] add new rule (#7957)c9661c8
feat: require-array-sort-compare + toSorted (#8052)7ec3022
test(eslint-plugin): includedisable-type-checked.ts
config in configs test...3175843
docs(eslint-plugin): simplify a sentence in no-misused-promises.md (#8050)c7d702f
chore: publish v6.14.0431cd15
fix(eslint-plugin): add no-unsafe-unary-minus, prefer-destructuring to disabl...705370a
fix(eslint-plugin): correct message forno-unsafe-unary-minus
(#7998)Updates
@typescript-eslint/parser
from 5.62.0 to 6.15.0Release notes
Sourced from
@typescript-eslint/parser
's releases.... (truncated)
Changelog
Sourced from
@typescript-eslint/parser
's changelog.... (truncated)
Commits
6128a02
chore: publish v6.15.0c7d702f
chore: publish v6.14.0cc2c6d3
chore: publish v6.13.24dae083
chore: prefix all nx package scripts with npx (#7988)14f3ff0
chore: publish v6.13.139c437a
chore: publish v6.13.09093e95
chore: publish v6.12.02e535b8
chore(deps): update dependency prettier to v3.1.0 (#7938)06496e2
chore: publish v6.11.075c1288
chore: publish v6.10.0Updates
@vscode/test-electron
from 2.3.5 to 2.3.8Changelog
Sourced from
@vscode/test-electron
's changelog.Commits
Updates
@vscode/vsce
from 2.21.1 to 2.22.0Commits
10309ba
remove win32-ia32 (#908)a001296
docs: fix grammatical error in engine mismatch message (#907)955a554
missing comma added for README.md (#903)Updates
esbuild
from 0.18.20 to 0.19.10Release notes
Sourced from esbuild's releases.
... (truncated)
Changelog
Sourced from esbuild's changelog.
... (truncated)
Commits
55e1127
publish 0.19.10 to npmd968af2
fix #3511:@__NO_SIDE_EFFECTS__
with templates00c4ebe
fix #3546: don't transformrequire
glob importse1b7050
fix #3319: missing symbol usage in glob transform461ca73
add the@esbuild/aix-ppc64
package for ibm aix (#3550)190ca99
truncate a long url in a comment6c41900
add Safari compat data for arbitrary module namespace names (#3520)f38cbe6
fix #3552: callingstop()
now clears go timeouts7a225ff
make a few code edits from some random github botaa46b2c
fix some build script commentsUpdates
eslint
from 8.50.0 to 8.56.0Release notes
Sourced from eslint's releases.
... (truncated)
Changelog
Sourced from eslint's changelog.
... (truncated)
Commits
8e8e9f8
8.56.0085978b
Build: changelog update for 8.56.0ba6af85
chore: upgrade@eslint/js
@8
.56.0 (#17864)60a531a
chore: package.json update for@eslint/js
release0dd9704
feat: Support custom severity when reporting unused disable directives (#17212)31a7e3f
feat: fix no-restricted-properties false negatives with unknown objects (#17818)ba87a06
chore: update dependency markdownlint to ^0.32.0 (#17783)7d5e5f6
fix:TypeError: fs.exists is not a function
on read-only file system (#17846)9271d10
chore: add GitHub issue template for docs issues (#17845)70a686b
chore: Convert rule ... _Description has been truncated_