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 extension-dependencies group with 14 updates:
3.3.1
3.3.2
1.15.2
1.15.3
1.14.1
1.14.4
8.1.0
9.0.1
20.4.4
20.10.5
1.80.0
1.85.0
6.1.0
6.15.0
6.1.0
6.15.0
2.19.0
2.22.0
0.18.16
0.19.10
8.45.0
8.56.0
7.0.2
8.0.0
3.0.0
3.1.1
5.1.6
5.3.3
Updates
fast-glob
from 3.3.1 to 3.3.2Release notes
Sourced from fast-glob's releases.
Commits
e60a9f5
3.3.28638dc6
fix: escape square braces on Windows platform91dc88a
fix: keep escaping after brace expansionUpdates
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.4Commits
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.10.5Commits
Updates
@types/vscode
from 1.80.0 to 1.85.0Commits
Updates
@typescript-eslint/eslint-plugin
from 6.1.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 6.1.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/vsce
from 2.19.0 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)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)Updates
esbuild
from 0.18.16 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.45.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 tests to FlatRuleTester (#17819)Updates
patch-package
from 7.0.2 to 8.0.0Release notes
Sourced from patch-package's releases.