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"

Reply via email to