This is an automated email from the ASF dual-hosted git repository. github-merge-queue[bot] pushed a commit to branch gh-readonly-queue/main/pr-8127-2db7db0c1e5ddf168cd89ef5875d2f91b84600a2 in repository https://gitbox.apache.org/repos/asf/texera.git
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"
