Skip to content

fix: CXSPA-12985 bump Angular to 21.2.9 to address platform-server SSRF vulnerability#21392

Draft
pawelfras wants to merge 4 commits intodevelopfrom
fix/CXSPA-12985
Draft

fix: CXSPA-12985 bump Angular to 21.2.9 to address platform-server SSRF vulnerability#21392
pawelfras wants to merge 4 commits intodevelopfrom
fix/CXSPA-12985

Conversation

@pawelfras
Copy link
Copy Markdown
Contributor

Bump all @angular/* packages from 21.2.4 to 21.2.9 to fix GHSA-45q2-gjvg-7973 (SSRF in @angular/platform-server during SSR).

Angular 21.2.9 changed setDomTypes() in platform-server to import domino's bundled ESM module (bundled-domino.mjs) and access domino.impl. Jest's CJS transform does not properly unwrap the ESM default export for .mjs files, causing domino.impl to be undefined and all 21 setup test suites to fail.

Fix: add a moduleNameMapper entry (similar to the existing beasties workaround) that redirects bundled-domino.mjs to a CJS wrapper which reads the original file, replaces the ESM export with module.exports, and compiles it so the default export is correctly resolved.

closes CXSPA-12985

…RF vulnerability

Bump all @angular/* packages from 21.2.4 to 21.2.9 to fix
GHSA-45q2-gjvg-7973 (SSRF in @angular/platform-server during SSR).

Angular 21.2.9 changed `setDomTypes()` in platform-server to import
domino's bundled ESM module (`bundled-domino.mjs`) and access
`domino.impl`. Jest's CJS transform does not properly unwrap the ESM
default export for `.mjs` files, causing `domino.impl` to be undefined
and all 21 setup test suites to fail.

Fix: add a `moduleNameMapper` entry (similar to the existing beasties
workaround) that redirects `bundled-domino.mjs` to a CJS wrapper which
reads the original file, replaces the ESM export with `module.exports`,
and compiles it so the default export is correctly resolved.
@pawelfras pawelfras requested review from a team as code owners April 23, 2026 10:14
@github-actions github-actions Bot marked this pull request as draft April 23, 2026 10:14
@github-actions
Copy link
Copy Markdown
Contributor

🚨 PeerDependencies Change Detected 🚨

Your pull request includes modifications to peerDependencies in the following file(s):

❌ Invalid peerDependencies change in core-libs/setup/package.json
-    "@angular/core": "^21.2.4",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/asm/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/cart/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/checkout/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/customer-ticketing/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/estimated-delivery-date/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/order/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/organization/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/pdf-invoices/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/pickup-in-store/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/product-configurator/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/product-multi-dimensional/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/product/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/qualtrics/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/quote/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/requested-delivery-date/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/smartedit/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/storefinder/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/subscription-billing/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/tracking/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/user/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/cdc/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/cdp/package.json
-    "@angular/core": "^21.2.4",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/cds/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/cpq-quote/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/digital-payments/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/epd-visualization/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/omf/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/opf/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/platform-browser": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/platform-browser": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/opps/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/punchout/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/s4-service/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/s4om/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/segment-refs/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in projects/core/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/platform-browser": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/platform-browser": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in projects/schematics/package.json
-    "@angular/compiler": "^21.2.4",
+    "@angular/compiler": "^21.2.9",

❌ Invalid peerDependencies change in projects/storefrontlib/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/platform-browser": "^21.2.4",
-    "@angular/router": "^21.2.4",
-    "@angular/service-worker": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/platform-browser": "^21.2.9",
+    "@angular/router": "^21.2.9",
+    "@angular/service-worker": "^21.2.9",

Please note: Changes to peerDependencies are restricted and only permitted during framework update releases, as they may introduce breaking changes for customer's applications.
If you believe this change is necessary, please reach out to the Asterix team for further assistance.

@pawelfras pawelfras marked this pull request as ready for review April 23, 2026 10:19
@github-actions
Copy link
Copy Markdown
Contributor

🚨 PeerDependencies Change Detected 🚨

Your pull request includes modifications to peerDependencies in the following file(s):

❌ Invalid peerDependencies change in core-libs/setup/package.json
-    "@angular/core": "^21.2.4",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/asm/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/cart/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/checkout/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/customer-ticketing/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/estimated-delivery-date/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/order/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/organization/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/pdf-invoices/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/pickup-in-store/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/product-configurator/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/product-multi-dimensional/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/product/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/qualtrics/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/quote/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/requested-delivery-date/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/smartedit/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/storefinder/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/subscription-billing/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/tracking/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/user/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/cdc/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/cdp/package.json
-    "@angular/core": "^21.2.4",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/cds/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/cpq-quote/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/digital-payments/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/epd-visualization/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/omf/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/opf/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/platform-browser": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/platform-browser": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/opps/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/punchout/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/s4-service/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/s4om/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/segment-refs/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in projects/core/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/platform-browser": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/platform-browser": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in projects/schematics/package.json
-    "@angular/compiler": "^21.2.4",
+    "@angular/compiler": "^21.2.9",

❌ Invalid peerDependencies change in projects/storefrontlib/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/platform-browser": "^21.2.4",
-    "@angular/router": "^21.2.4",
-    "@angular/service-worker": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/platform-browser": "^21.2.9",
+    "@angular/router": "^21.2.9",
+    "@angular/service-worker": "^21.2.9",

Please note: Changes to peerDependencies are restricted and only permitted during framework update releases, as they may introduce breaking changes for customer's applications.
If you believe this change is necessary, please reach out to the Asterix team for further assistance.

@github-actions
Copy link
Copy Markdown
Contributor

Merge Checks Failed

Please push a commit to re-trigger the build.
To push an empty commit you can use `git commit --allow-empty -m "Trigger Build"`

@cypress
Copy link
Copy Markdown

cypress Bot commented Apr 23, 2026

spartacus    Run #52841

Run Properties:  status check failed Failed #52841  •  git commit c4b5b02cbf ℹ️: Merge bbd7a3ed736f113cfdc06d0dc5714346803d9284 into 8c1d0fcd08e490d7732a9d72c6d5...
Project spartacus
Branch Review fix/CXSPA-12985
Run status status check failed Failed #52841
Run duration 06m 09s
Commit git commit c4b5b02cbf ℹ️: Merge bbd7a3ed736f113cfdc06d0dc5714346803d9284 into 8c1d0fcd08e490d7732a9d72c6d5...
Committer Paweł Fraś
View all properties for this run ↗︎

Test results
Tests that failed  Failures 3
Tests that were flaky  Flaky 0
Tests that did not run due to a developer annotating a test with .skip  Pending 0
Tests that did not run due to a failure in a mocha hook  Skipped 0
Tests that passed  Passing 98
View all changes introduced in this branch ↗︎

Tests for review

Failed  cypress/e2e/ssr/pages.core-e2e.cy.ts • 3 failed tests • SSR

View Output Video

Test Artifacts
SSR > should render homepage Test Replay Video
SSR > should render PLP Test Replay Video
SSR > should render PDP Test Replay Video

Angular 21.2.9's SSRF fix (e0b5078cf2) changed `parseUrl()` in
`ServerPlatformLocation` from `new URL(urlStr, origin)` (two-arg) to a
conditional that only prepends origin when the URL starts with `/`.
URLs without a leading `/` are now assumed to be absolute and passed
directly to `new URL()`, which throws `TypeError: Invalid URL`.

In Spartacus, `SiteContextUrlSerializer.serialize()` produced URLs like
`electronics-spa/en/USD/` (no leading `/`). Combined with
`APP_BASE_HREF` being empty string (from `req.baseUrl` on root-mounted
Express apps), `joinWithSlash('', ...)` passed the URL through without
adding a `/` prefix. This caused `ServerPlatformLocation.replaceState()`
to throw, preventing the app from stabilizing during SSR and falling
back to the CSR shell — breaking all SSR-rendered content including
SEO meta tags.

The fix ensures `urlIncludeContextParameters()` always returns a
leading-slash URL when context parameters are present, which aligns
with Angular's `DefaultUrlSerializer.serialize()` contract.
@github-actions github-actions Bot marked this pull request as draft April 23, 2026 13:04
@github-actions
Copy link
Copy Markdown
Contributor

🚨 PeerDependencies Change Detected 🚨

Your pull request includes modifications to peerDependencies in the following file(s):

❌ Invalid peerDependencies change in core-libs/setup/package.json
-    "@angular/core": "^21.2.4",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/asm/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/cart/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/checkout/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/customer-ticketing/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/estimated-delivery-date/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/order/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/organization/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/pdf-invoices/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/pickup-in-store/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/product-configurator/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/product-multi-dimensional/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/product/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/qualtrics/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/quote/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/requested-delivery-date/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/smartedit/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/storefinder/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/subscription-billing/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/tracking/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in feature-libs/user/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/cdc/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/cdp/package.json
-    "@angular/core": "^21.2.4",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/cds/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/cpq-quote/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/digital-payments/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/epd-visualization/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/omf/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/opf/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/platform-browser": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/platform-browser": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/opps/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/punchout/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/s4-service/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/s4om/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in integration-libs/segment-refs/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",

❌ Invalid peerDependencies change in projects/core/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/platform-browser": "^21.2.4",
-    "@angular/router": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/platform-browser": "^21.2.9",
+    "@angular/router": "^21.2.9",

❌ Invalid peerDependencies change in projects/schematics/package.json
-    "@angular/compiler": "^21.2.4",
+    "@angular/compiler": "^21.2.9",

❌ Invalid peerDependencies change in projects/storefrontlib/package.json
-    "@angular/common": "^21.2.4",
-    "@angular/core": "^21.2.4",
-    "@angular/forms": "^21.2.4",
-    "@angular/platform-browser": "^21.2.4",
-    "@angular/router": "^21.2.4",
-    "@angular/service-worker": "^21.2.4",
+    "@angular/common": "^21.2.9",
+    "@angular/core": "^21.2.9",
+    "@angular/forms": "^21.2.9",
+    "@angular/platform-browser": "^21.2.9",
+    "@angular/router": "^21.2.9",
+    "@angular/service-worker": "^21.2.9",

Please note: Changes to peerDependencies are restricted and only permitted during framework update releases, as they may introduce breaking changes for customer's applications.
If you believe this change is necessary, please reach out to the Asterix team for further assistance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant