build: update dependency esbuild-wasm to v0.28.1 (22.0.x)#33385
Conversation
There was a problem hiding this comment.
Code Review
This pull request updates the esbuild-wasm dependency to version 0.28.1 in both the root package.json and packages/angular_devkit/build_angular/package.json. However, the reviewer noted that esbuild was not updated to match, creating a version mismatch. This mismatch can lead to inconsistent build behaviors or leave security vulnerabilities (such as GHSA-g7r4-m6w7-qqqr) unpatched depending on the platform runner used. It is recommended to update esbuild to 0.28.1 in both files to maintain consistency.
| "buffer": "6.0.3", | ||
| "esbuild": "0.28.0", | ||
| "esbuild-wasm": "0.28.0", | ||
| "esbuild-wasm": "0.28.1", |
There was a problem hiding this comment.
Updating esbuild-wasm to 0.28.1 without updating esbuild to 0.28.1 introduces a version mismatch. Since the build system dynamically selects between the native esbuild binary and the WASM fallback (esbuild-wasm) depending on platform support, this mismatch can lead to inconsistent build behavior or unpatched security vulnerabilities (such as the Windows path traversal vulnerability GHSA-g7r4-m6w7-qqqr) depending on which runner is executed. Please update esbuild to 0.28.1 as well.
| "copy-webpack-plugin": "14.0.0", | ||
| "css-loader": "7.1.4", | ||
| "esbuild-wasm": "0.28.0", | ||
| "esbuild-wasm": "0.28.1", |
There was a problem hiding this comment.
Updating esbuild-wasm to 0.28.1 without updating the optional dependency esbuild to 0.28.1 introduces a version mismatch. To prevent inconsistent build behavior or security vulnerabilities depending on whether the native or WASM runner is executed, please update optionalDependencies.esbuild to 0.28.1 as well.
See associated pull request for more information.
f76b6f5 to
d7c9d77
Compare
|
This PR was merged into the repository. The changes were merged into the following branches:
|
This PR contains the following updates:
0.28.0→0.28.1Release Notes
evanw/esbuild (esbuild-wasm)
v0.28.1Compare Source
Disallow
\in local development server HTTP requests (GHSA-g7r4-m6w7-qqqr)This release fixes a security issue where HTTP requests to esbuild's local development server could traverse outside of the serve directory on Windows using a
\backslash character. It happened due to the use of Go'spath.Clean()function, which only handles Unix-style/characters. HTTP requests with paths containing\are no longer allowed.Thanks to @dellalibera for reporting this issue.
Add integrity checks to the Deno API (GHSA-gv7w-rqvm-qjhr)
The previous release of esbuild added integrity checks to esbuild's npm install script. This release also adds integrity checks to esbuild's Deno install script. Now esbuild's Deno API will also fail with an error if the downloaded esbuild binary contains something other than the expected content.
Note that esbuild's Deno API installs from
registry.npmjs.orgby default, but allows theNPM_CONFIG_REGISTRYenvironment variable to override this with a custom package registry. This change means that the esbuild executable served byNPM_CONFIG_REGISTRYmust now match the expected content.Thanks to @sondt99 for reporting this issue.
Avoid inlining
usingandawait usingdeclarations (#4482)Previously esbuild's minifier sometimes incorrectly inlined
usingandawait usingdeclarations into subsequent uses of that declaration, which then fails to dispose of the resource correctly. This bug happened because inlining was done forletandconstdeclarations by avoiding doing it forvardeclarations, which no longer worked when more declaration types were added. Here's an example:Fix module evaluation when an error is thrown (#4461, #4467)
If an error is thrown during module evaluation, esbuild previously didn't preserve the state of the module for subsequent module references. This was observable if
import()orrequire()is used to import a module multiple times. The thrown error is supposed to be thrown by every call toimport()orrequire(), not just the first. With this release, esbuild will now throw the same error every time you callimport()orrequire()on a module that throws during its evaluation.Fix some edge cases around the
newoperator (#4477)Previously esbuild incorrectly printed certain edge cases involving complex expressions inside the target of a
newexpression (specifically an optional chain and/or a tagged template literal). The generated code for thenewtarget was not correctly wrapped with parentheses, and either contained a syntax error or had different semantics. These edge cases have been fixed so that they now correctly wrap thenewtarget in parentheses. Here is an example of some affected code:Fix renaming of nested
vardeclarations (#4471)This release fixes a bug where
vardeclarations in nested scopes that are hoisted up to module scope were not correctly being renamed during bundling. That could previously lead to name collisions when minification was disabled, which could potentially cause a behavior change. The bug has been fixed so that these hoisted declarations are now considered to be module-level symbols during the name collision avoidance pass.Emit
varinstead ofconstfor certain TypeScript-only constructs for ES5 (#4448)While esbuild doesn't generally support converting
consttovarfor ES5 due to nested scoping rules (which is currently a build-time error), esbuild previously incorrectly converted TypeScript-onlyimportassignment constructs into aconstdeclaration even when targeting ES5. With this release, esbuild will now usevarfor this case instead: