This is an automated email from the ASF dual-hosted git repository.
github-merge-queue[bot] pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/texera.git
The following commit(s) were added to refs/heads/main by this push:
new 08c1ee9c44 fix(deps, frontend): deduplicate Angular toolchain under
@angular-builders/custom-webpack (#8127)
08c1ee9c44 is described below
commit 08c1ee9c44fa40c35d931552a6ea078c20819fbf
Author: Ghulam Mustafa <[email protected]>
AuthorDate: Thu Sep 17 00:54:12 2026 +0000
fix(deps, frontend): deduplicate Angular toolchain under
@angular-builders/custom-webpack (#8127)
### What changes were proposed in this PR?
Adds three Yarn `resolutions` entries to `frontend/package.json` to
force
`@angular-builders/custom-webpack`'s transitive dependencies to the same
versions
already pinned in `devDependencies`:
- `@angular-devkit/build-angular` → `21.2.19`
- `@angular/build` → `21.2.19`
- `@ngtools/webpack` → `21.2.19`
`@angular-builders/[email protected]` declares a loose dep on
`@angular-devkit/build-angular: ^21.0.0`, which Yarn was resolving to
`21.2.18`.
This created a nested copy of the toolchain under the builder's own
`node_modules/`
while the pinned `21.2.19` sat unused at the workspace root. Because
`angular.json`
routes both `build` and `serve` through
`@angular-builders/custom-webpack`, the
older toolchain (`21.2.18`) was the one actually compiling the app and
running the
dev server — silently, with CI staying green. The same split affected
`@angular/build`
and `@ngtools/webpack`.
The `resolutions` field was already in use in `frontend/package.json`
for
`monaco-editor`, `webpack`, and `jschardet`; this PR follows the same
pattern.
Result: 276 lines removed from `yarn.lock`; all three packages now have
a single
lockfile entry at `21.2.19`; the nested
`@angular-builders/custom-webpack/node_modules/@angular-devkit/` copy is
gone.
No production source code files were modified.
### Any related issues, documentation, discussions?
Closes #8052
### How was this PR tested?
Verified the lockfile and installed tree after running `yarn install`
inside `frontend/`:
```bash
# 1. Single lockfile entry per package — no more split at 21.2.18:
grep -n
'^"@angular-devkit/build-angular@\|^"@angular/build@\|^"@ngtools/webpack@' \
frontend/yarn.lock
# 298:"@angular-devkit/build-angular@npm:21.2.19":
# 571:"@angular/build@npm:21.2.19":
# 4294:"@ngtools/webpack@npm:21.2.19":
# 2. No nested @angular-devkit copy under the builder:
ls frontend/node_modules/@angular-builders/custom-webpack/node_modules/
# only `source-map` remains — no @angular-devkit
# 3. Installed version matches the pin:
node -e
"console.log(require('./frontend/node_modules/@angular-devkit/build-angular/package.json').version)"
# 21.2.19
```
### Was this PR authored or co-authored using generative AI tooling?
No
Co-authored-by: Xinyuan Lin <[email protected]>
---
frontend/package.json | 5 +-
frontend/yarn.lock | 276 +++-----------------------------------------------
2 files changed, 18 insertions(+), 263 deletions(-)
diff --git a/frontend/package.json b/frontend/package.json
index 442f1a8620..311c3c6495 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -81,7 +81,10 @@
"resolutions": {
"monaco-editor": "npm:@codingame/[email protected]",
"webpack": "5.104.1",
- "jschardet": "portal:./tools/jschardet-stub"
+ "jschardet": "portal:./tools/jschardet-stub",
+ "@angular-devkit/build-angular": "21.2.19",
+ "@angular/build": "21.2.19",
+ "@ngtools/webpack": "21.2.19"
},
"devDependencies": {
"@angular-builders/custom-webpack": "21.1.0",
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index 90a7341cdc..bb74aa7654 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -271,18 +271,6 @@ __metadata:
languageName: node
linkType: hard
-"@angular-devkit/architect@npm:0.2102.18":
- version: 0.2102.18
- resolution: "@angular-devkit/architect@npm:0.2102.18"
- dependencies:
- "@angular-devkit/core": "npm:21.2.18"
- rxjs: "npm:7.8.2"
- bin:
- architect: bin/cli.js
- checksum:
10c0/7d454da369c9f3b6d31e143ff1dd1b677875d7b3c5e652fcbb84064c40ee7a9e9480b63c9918ca230ea3629b0b2155c2b9286a5e22908d1ac150ba83c43116e9
- languageName: node
- linkType: hard
-
"@angular-devkit/architect@npm:0.2102.19":
version: 0.2102.19
resolution: "@angular-devkit/architect@npm:0.2102.19"
@@ -419,131 +407,6 @@ __metadata:
languageName: node
linkType: hard
-"@angular-devkit/build-angular@npm:^21.0.0":
- version: 21.2.18
- resolution: "@angular-devkit/build-angular@npm:21.2.18"
- dependencies:
- "@ampproject/remapping": "npm:2.3.0"
- "@angular-devkit/architect": "npm:0.2102.18"
- "@angular-devkit/build-webpack": "npm:0.2102.18"
- "@angular-devkit/core": "npm:21.2.18"
- "@angular/build": "npm:21.2.18"
- "@babel/core": "npm:7.29.7"
- "@babel/generator": "npm:7.29.1"
- "@babel/helper-annotate-as-pure": "npm:7.27.3"
- "@babel/helper-split-export-declaration": "npm:7.24.7"
- "@babel/plugin-transform-async-generator-functions": "npm:7.29.0"
- "@babel/plugin-transform-async-to-generator": "npm:7.28.6"
- "@babel/plugin-transform-runtime": "npm:7.29.0"
- "@babel/preset-env": "npm:7.29.2"
- "@babel/runtime": "npm:7.29.2"
- "@discoveryjs/json-ext": "npm:0.6.3"
- "@ngtools/webpack": "npm:21.2.18"
- ansi-colors: "npm:4.1.3"
- autoprefixer: "npm:10.4.27"
- babel-loader: "npm:10.0.0"
- browserslist: "npm:^4.26.0"
- copy-webpack-plugin: "npm:14.0.0"
- css-loader: "npm:7.1.3"
- esbuild: "npm:0.28.1"
- esbuild-wasm: "npm:0.28.1"
- http-proxy-middleware: "npm:3.0.5"
- istanbul-lib-instrument: "npm:6.0.3"
- jsonc-parser: "npm:3.3.1"
- karma-source-map-support: "npm:1.4.0"
- less: "npm:4.4.2"
- less-loader: "npm:12.3.1"
- license-webpack-plugin: "npm:4.0.2"
- loader-utils: "npm:3.3.1"
- mini-css-extract-plugin: "npm:2.10.0"
- open: "npm:11.0.0"
- ora: "npm:9.3.0"
- picomatch: "npm:4.0.4"
- piscina: "npm:5.2.0"
- postcss: "npm:8.5.12"
- postcss-loader: "npm:8.2.0"
- resolve-url-loader: "npm:5.0.0"
- rxjs: "npm:7.8.2"
- sass: "npm:1.97.3"
- sass-loader: "npm:16.0.7"
- semver: "npm:7.7.4"
- source-map-loader: "npm:5.0.0"
- source-map-support: "npm:0.5.21"
- terser: "npm:5.46.0"
- tinyglobby: "npm:0.2.15"
- tree-kill: "npm:1.2.2"
- tslib: "npm:2.8.1"
- webpack: "npm:5.105.2"
- webpack-dev-middleware: "npm:7.4.5"
- webpack-dev-server: "npm:5.2.5"
- webpack-merge: "npm:6.0.1"
- webpack-subresource-integrity: "npm:5.1.0"
- peerDependencies:
- "@angular/compiler-cli": ^21.0.0
- "@angular/core": ^21.0.0
- "@angular/localize": ^21.0.0
- "@angular/platform-browser": ^21.0.0
- "@angular/platform-server": ^21.0.0
- "@angular/service-worker": ^21.0.0
- "@angular/ssr": ^21.2.18
- "@web/test-runner": ^0.20.0
- browser-sync: ^3.0.2
- jest: ^30.2.0
- jest-environment-jsdom: ^30.2.0
- karma: ^6.3.0
- ng-packagr: ^21.0.0
- protractor: ^7.0.0
- tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0
- typescript: ">=5.9 <6.0"
- dependenciesMeta:
- esbuild:
- optional: true
- peerDependenciesMeta:
- "@angular/core":
- optional: true
- "@angular/localize":
- optional: true
- "@angular/platform-browser":
- optional: true
- "@angular/platform-server":
- optional: true
- "@angular/service-worker":
- optional: true
- "@angular/ssr":
- optional: true
- "@web/test-runner":
- optional: true
- browser-sync:
- optional: true
- jest:
- optional: true
- jest-environment-jsdom:
- optional: true
- karma:
- optional: true
- ng-packagr:
- optional: true
- protractor:
- optional: true
- tailwindcss:
- optional: true
- checksum:
10c0/5e67d7aa65c89f092c721a4f569d55bff693fdd449e7f3ab8180f7fd56db9c2967d90ed57a890da7a5c786b6b74226de999c81d0c0eadf6bb155c9efa5139d45
- languageName: node
- linkType: hard
-
-"@angular-devkit/build-webpack@npm:0.2102.18":
- version: 0.2102.18
- resolution: "@angular-devkit/build-webpack@npm:0.2102.18"
- dependencies:
- "@angular-devkit/architect": "npm:0.2102.18"
- rxjs: "npm:7.8.2"
- peerDependencies:
- webpack: ^5.30.0
- webpack-dev-server: ^5.0.2
- checksum:
10c0/52408c6155e795a142e6c922153354c3fe88bb53d1da50fc5a5bc35732939582765360c8ad61ed84ef6b9b871608139a88dcd29bc6d254eea9d1842dca331f29
- languageName: node
- linkType: hard
-
"@angular-devkit/build-webpack@npm:0.2102.19":
version: 0.2102.19
resolution: "@angular-devkit/build-webpack@npm:0.2102.19"
@@ -557,25 +420,6 @@ __metadata:
languageName: node
linkType: hard
-"@angular-devkit/core@npm:21.2.18":
- version: 21.2.18
- resolution: "@angular-devkit/core@npm:21.2.18"
- dependencies:
- ajv: "npm:8.18.0"
- ajv-formats: "npm:3.0.1"
- jsonc-parser: "npm:3.3.1"
- picomatch: "npm:4.0.4"
- rxjs: "npm:7.8.2"
- source-map: "npm:0.7.6"
- peerDependencies:
- chokidar: ^5.0.0
- peerDependenciesMeta:
- chokidar:
- optional: true
- checksum:
10c0/71fc8b2f7e79b05d41415f0e75f226fe6ba8fa248f37659f19af4d566082ea91591434ea945bb6c806b65d1bf39cbc6670eb3b4970b20162b4728ee82a2debcf
- languageName: node
- linkType: hard
-
"@angular-devkit/core@npm:21.2.19":
version: 21.2.19
resolution: "@angular-devkit/core@npm:21.2.19"
@@ -724,87 +568,6 @@ __metadata:
languageName: node
linkType: hard
-"@angular/build@npm:21.2.18, @angular/build@npm:^21.0.0":
- version: 21.2.18
- resolution: "@angular/build@npm:21.2.18"
- dependencies:
- "@ampproject/remapping": "npm:2.3.0"
- "@angular-devkit/architect": "npm:0.2102.18"
- "@babel/core": "npm:7.29.7"
- "@babel/helper-annotate-as-pure": "npm:7.27.3"
- "@babel/helper-split-export-declaration": "npm:7.24.7"
- "@inquirer/confirm": "npm:5.1.21"
- "@vitejs/plugin-basic-ssl": "npm:2.1.4"
- beasties: "npm:0.4.1"
- browserslist: "npm:^4.26.0"
- esbuild: "npm:0.28.1"
- https-proxy-agent: "npm:7.0.6"
- istanbul-lib-instrument: "npm:6.0.3"
- jsonc-parser: "npm:3.3.1"
- listr2: "npm:9.0.5"
- lmdb: "npm:3.5.1"
- magic-string: "npm:0.30.21"
- mrmime: "npm:2.0.1"
- parse5-html-rewriting-stream: "npm:8.0.0"
- picomatch: "npm:4.0.4"
- piscina: "npm:5.2.0"
- rolldown: "npm:1.0.0-rc.4"
- sass: "npm:1.97.3"
- semver: "npm:7.7.4"
- source-map-support: "npm:0.5.21"
- tinyglobby: "npm:0.2.15"
- undici: "npm:7.28.0"
- vite: "npm:7.3.6"
- watchpack: "npm:2.5.1"
- peerDependencies:
- "@angular/compiler": ^21.0.0
- "@angular/compiler-cli": ^21.0.0
- "@angular/core": ^21.0.0
- "@angular/localize": ^21.0.0
- "@angular/platform-browser": ^21.0.0
- "@angular/platform-server": ^21.0.0
- "@angular/service-worker": ^21.0.0
- "@angular/ssr": ^21.2.18
- karma: ^6.4.0
- less: ^4.2.0
- ng-packagr: ^21.0.0
- postcss: ^8.4.0
- tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0
- tslib: ^2.3.0
- typescript: ">=5.9 <6.0"
- vitest: ^4.0.8
- dependenciesMeta:
- lmdb:
- optional: true
- peerDependenciesMeta:
- "@angular/core":
- optional: true
- "@angular/localize":
- optional: true
- "@angular/platform-browser":
- optional: true
- "@angular/platform-server":
- optional: true
- "@angular/service-worker":
- optional: true
- "@angular/ssr":
- optional: true
- karma:
- optional: true
- less:
- optional: true
- ng-packagr:
- optional: true
- postcss:
- optional: true
- tailwindcss:
- optional: true
- vitest:
- optional: true
- checksum:
10c0/90fffb37fc136263623e2d7a82c13c554e65555830f3d312c8c4ab4f136560cd16982fefe9fb37f36c9bf22d1fd8814aa0800ddd206309357c12faa141dd4671
- languageName: node
- linkType: hard
-
"@angular/build@npm:21.2.19":
version: 21.2.19
resolution: "@angular/build@npm:21.2.19"
@@ -4528,17 +4291,6 @@ __metadata:
languageName: node
linkType: hard
-"@ngtools/webpack@npm:21.2.18":
- version: 21.2.18
- resolution: "@ngtools/webpack@npm:21.2.18"
- peerDependencies:
- "@angular/compiler-cli": ^21.0.0
- typescript: ">=5.9 <6.0"
- webpack: ^5.54.0
- checksum:
10c0/15c0ea2924b85b71a7dcdd8ae0b684424eb4279ecd317e91c1265c818276325765de38245855f50e3b2021688a7b5fe4bf1a6061ab4afd9204bd91707061dd67
- languageName: node
- linkType: hard
-
"@ngtools/webpack@npm:21.2.19":
version: 21.2.19
resolution: "@ngtools/webpack@npm:21.2.19"
@@ -11260,20 +11012,6 @@ __metadata:
languageName: node
linkType: hard
-"http-proxy-middleware@npm:3.0.5, http-proxy-middleware@npm:^3.0.5":
- version: 3.0.5
- resolution: "http-proxy-middleware@npm:3.0.5"
- dependencies:
- "@types/http-proxy": "npm:^1.17.15"
- debug: "npm:^4.3.6"
- http-proxy: "npm:^1.18.1"
- is-glob: "npm:^4.0.3"
- is-plain-object: "npm:^5.0.0"
- micromatch: "npm:^4.0.8"
- checksum:
10c0/89ff3c8fe65b22b8042a6173ae1b8f77c5171f7eecf3c8b5d6dcffe3c9d688acae7bcf498cc08d1525f566dc0781efaec4e2ddc49224b1f16f020de7987a446b
- languageName: node
- linkType: hard
-
"http-proxy-middleware@npm:3.0.7":
version: 3.0.7
resolution: "http-proxy-middleware@npm:3.0.7"
@@ -11306,6 +11044,20 @@ __metadata:
languageName: node
linkType: hard
+"http-proxy-middleware@npm:^3.0.5":
+ version: 3.0.5
+ resolution: "http-proxy-middleware@npm:3.0.5"
+ dependencies:
+ "@types/http-proxy": "npm:^1.17.15"
+ debug: "npm:^4.3.6"
+ http-proxy: "npm:^1.18.1"
+ is-glob: "npm:^4.0.3"
+ is-plain-object: "npm:^5.0.0"
+ micromatch: "npm:^4.0.8"
+ checksum:
10c0/89ff3c8fe65b22b8042a6173ae1b8f77c5171f7eecf3c8b5d6dcffe3c9d688acae7bcf498cc08d1525f566dc0781efaec4e2ddc49224b1f16f020de7987a446b
+ languageName: node
+ linkType: hard
+
"http-proxy@npm:^1.18.1":
version: 1.18.1
resolution: "http-proxy@npm:1.18.1"