diff --git a/.pnpmfile.cjs b/.pnpmfile.cjs new file mode 100644 index 000000000000..111350ae8f9a --- /dev/null +++ b/.pnpmfile.cjs @@ -0,0 +1,42 @@ +const localPackages = new Set([ + '@angular-devkit/build-angular', + '@angular-devkit/build-webpack', + '@ngtools/webpack', +]); + +const peerDependenciesToTransform = ['webpack', 'webpack-dev-server', 'browser-sync']; + +function readPackage(pkg, context) { + // TODO(devversion): This allows us to make the peer dependencies of (e.g. webpack) a production dependency. + // because `rules_js` doesn't otherwise include the dependency in the `npm_package_store`. + // See: https://github.com/aspect-build/rules_js/issues/2226 + if (!pkg.peerDependencies || !localPackages.has(pkg.name)) { + return pkg; + } + + for (const key of peerDependenciesToTransform) { + // Any package that has a peerDependency on these deps, should instead treat the peerDependency as a + // regular dependency. + if (!pkg.peerDependencies[key]) { + continue; + } + + if (!pkg.devDependencies?.[key]) { + throw new Error( + `${key} is listed as a peerDependency in ${pkg.name}, but it is not listed in devDependencies. This is required.`, + ); + } + + pkg.dependencies ??= {}; + pkg.dependencies[key] = pkg.devDependencies[key]; + pkg.devDependencies[key] = undefined; + } + + return pkg; +} + +module.exports = { + hooks: { + readPackage, + }, +}; diff --git a/MODULE.bazel b/MODULE.bazel index 8fc653eae954..40e47430283c 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -6,7 +6,7 @@ module( bazel_dep(name = "yq.bzl", version = "0.3.1") bazel_dep(name = "rules_nodejs", version = "6.6.0") -bazel_dep(name = "aspect_rules_js", version = "2.8.0") +bazel_dep(name = "aspect_rules_js", version = "2.8.1") bazel_dep(name = "aspect_rules_ts", version = "3.7.1") bazel_dep(name = "rules_pkg", version = "0.8.1") @@ -26,7 +26,7 @@ bazel_dep(name = "aspect_rules_jasmine", version = "2.0.0") bazel_dep(name = "rules_angular") git_override( module_name = "rules_angular", - commit = "f56849353ab74c3f5ede0efa7d0bf7266fddddcb", + commit = "74d8baec22a5ffd3a1a36bac252399fa125a6c4b", remote = "https://github.com/devversion/rules_angular.git", ) @@ -115,6 +115,7 @@ npm.npm_translate_lock( "webdriver-manager": "node ./bin/webdriver-manager update --standalone false --gecko false --versions.chrome 106.0.5249.21", }, data = [ + "//:.pnpmfile.cjs", "//:package.json", "//:pnpm-workspace.yaml", "//modules/testing/builder:package.json", diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index fdd0f14611d9..8912a460b5a5 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -15,6 +15,7 @@ "https://bcr.bazel.build/modules/aspect_bazel_lib/2.0.0/MODULE.bazel": "e118477db5c49419a88d78ebc7a2c2cea9d49600fe0f490c1903324a2c16ecd9", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.14.0/MODULE.bazel": "2b31ffcc9bdc8295b2167e07a757dbbc9ac8906e7028e5170a3708cecaac119f", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.16.0/MODULE.bazel": "852f9ebbda017572a7c113a2434592dd3b2f55cd9a0faea3d4be5a09a59e4900", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.17.1/MODULE.bazel": "9b027af55f619c7c444cead71061578fab6587e5e1303fa4ed61d49d2b1a7262", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.19.3/MODULE.bazel": "253d739ba126f62a5767d832765b12b59e9f8d2bc88cc1572f4a73e46eb298ca", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.21.2/MODULE.bazel": "276347663a25b0d5bd6cad869252bea3e160c4d980e764b15f3bae7f80b30624", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.21.2/source.json": "f42051fa42629f0e59b7ac2adf0a55749144b11f1efcd8c697f0ee247181e526", @@ -29,7 +30,8 @@ "https://bcr.bazel.build/modules/aspect_rules_js/2.4.2/MODULE.bazel": "0d01db38b96d25df7ed952a5e96eac4b3802723d146961974bf020f6dd07591d", "https://bcr.bazel.build/modules/aspect_rules_js/2.6.2/MODULE.bazel": "ed2a871f4ab8fbde0cab67c425745069d84ea64b64313fa1a2954017326511f5", "https://bcr.bazel.build/modules/aspect_rules_js/2.8.0/MODULE.bazel": "b2e0576866a3f1cca3286ad1efefa4099a6546a3239dffa802a551521e8fbf3d", - "https://bcr.bazel.build/modules/aspect_rules_js/2.8.0/source.json": "5e68a29bef5b3609a60f2b3f7be02023d6ad8224c3501cc1b51ba66791f2f332", + "https://bcr.bazel.build/modules/aspect_rules_js/2.8.1/MODULE.bazel": "edcde75a1357952d3acedb6f3622614c87f730927d753af77b36c604ff407f0d", + "https://bcr.bazel.build/modules/aspect_rules_js/2.8.1/source.json": "6da210e9e76eda699f9ca998a6f6c48980f78589f0f6d240842de6cef96543ce", "https://bcr.bazel.build/modules/aspect_rules_ts/3.6.3/MODULE.bazel": "d09db394970f076176ce7bab5b5fa7f0d560fd4f30b8432ea5e2c2570505b130", "https://bcr.bazel.build/modules/aspect_rules_ts/3.7.0/MODULE.bazel": "5aace216caf88638950ef061245d23c36f57c8359e56e97f02a36f70bb09c50f", "https://bcr.bazel.build/modules/aspect_rules_ts/3.7.1/MODULE.bazel": "cbed416847e2c46c4c0fe275e3a3c8e302d236d0fb04a094e9af82d14e7c5040", @@ -51,7 +53,8 @@ "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", "https://bcr.bazel.build/modules/bazel_lib/3.0.0-beta.1/MODULE.bazel": "407729e232f611c3270005b016b437005daa7b1505826798ea584169a476e878", - "https://bcr.bazel.build/modules/bazel_lib/3.0.0-beta.1/source.json": "72bfbe19a3936675719157798de64631e9ac54c2b41f13b544b821d094f4840a", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/MODULE.bazel": "22b70b80ac89ad3f3772526cd9feee2fa412c2b01933fea7ed13238a448d370d", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/source.json": "895f21909c6fba01d7c17914bb6c8e135982275a1b18cdaa4e62272217ef1751", "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", @@ -209,7 +212,7 @@ "moduleExtensions": { "@@aspect_rules_esbuild~//esbuild:extensions.bzl%esbuild": { "general": { - "bzlTransitiveDigest": "YvkJWukIM5Ev6xNW6ySjp6cE2bfSLKke99BALBMT8ro=", + "bzlTransitiveDigest": "PXvA3NOvgV+GXd72C+Zd7J5oEOKpEXHsGxKvRiqCb9U=", "usagesDigest": "w3kRc6iou9hC6M+vwECvdfk0P8nsVNjHSl4Ftru44zU=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, @@ -368,6 +371,11 @@ "aspect_tools_telemetry_report", "aspect_tools_telemetry~~telemetry~aspect_tools_telemetry_report" ], + [ + "aspect_rules_js~", + "bazel_lib", + "bazel_lib~" + ], [ "aspect_rules_js~", "bazel_skylib", @@ -378,6 +386,11 @@ "bazel_tools", "bazel_tools" ], + [ + "bazel_lib~", + "bazel_tools", + "bazel_tools" + ], [ "tar.bzl~", "aspect_bazel_lib", @@ -398,8 +411,8 @@ }, "@@aspect_rules_js~//npm:extensions.bzl%pnpm": { "general": { - "bzlTransitiveDigest": "mweOMQTBuXWZta9QVVcvPXd9OFG60cwYkTOTetZwtAA=", - "usagesDigest": "e5/bEO6uDxa5C/p576W7VqaXk+nzIKZvtUFWD9kTD9o=", + "bzlTransitiveDigest": "ZfvqwqI78+Qya3TZeBMFWtEQnzIDz8j9njbobQLxswI=", + "usagesDigest": "J526kdgX5AQ2bYrNGwe6lTrakPUSZPfyHG24PGMUG0s=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -409,11 +422,11 @@ "ruleClassName": "npm_import_rule", "attributes": { "package": "pnpm", - "version": "9.15.9", + "version": "8.15.9", "root_package": "", "link_workspace": "", "link_packages": {}, - "integrity": "sha512-aARhQYk8ZvrQHAeSMRKOmvuJ74fiaR1p5NQO7iKJiClf1GghgbrlW1hBjDolO95lpQXsfF+UA+zlzDzTfc8lMQ==", + "integrity": "sha512-SZQ0ydj90aJ5Tr9FUrOyXApjOrzuW7Fee13pDzL0e1E6ypjNXP0AHDHw20VLw4BO3M1XhQHkyik6aBYWa72fgQ==", "url": "", "commit": "", "patch_args": [ @@ -437,7 +450,7 @@ "ruleClassName": "npm_import_links", "attributes": { "package": "pnpm", - "version": "9.15.9", + "version": "8.15.9", "dev": false, "root_package": "", "link_packages": {}, @@ -494,6 +507,11 @@ "bazel_features", "bazel_features~" ], + [ + "aspect_rules_js~", + "bazel_lib", + "bazel_lib~" + ], [ "aspect_rules_js~", "bazel_skylib", @@ -514,6 +532,11 @@ "bazel_features_version", "bazel_features~~version_extension~bazel_features_version" ], + [ + "bazel_lib~", + "bazel_tools", + "bazel_tools" + ], [ "tar.bzl~", "aspect_bazel_lib", @@ -605,7 +628,7 @@ "@@aspect_tools_telemetry~//:extension.bzl%telemetry": { "general": { "bzlTransitiveDigest": "gA7tPEdJXhskzPIEUxjX9IdDrM6+WjfbgXJ8Ez47umk=", - "usagesDigest": "+m2xFcbJ0y2hkJstxlIUL8Om12UzrH7gt+Fl8h5I/IA=", + "usagesDigest": "SMpx40jPXDQGAklWybhmgSAy5HdV4ZEIYFMuHxifgT0=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -615,7 +638,7 @@ "ruleClassName": "tel_repository", "attributes": { "deps": { - "aspect_rules_js": "2.8.0", + "aspect_rules_js": "2.8.1", "aspect_rules_ts": "3.7.1", "aspect_rules_esbuild": "0.24.0", "aspect_tools_telemetry": "0.2.8" @@ -1119,7 +1142,7 @@ "@@rules_nodejs~//nodejs:extensions.bzl%node": { "general": { "bzlTransitiveDigest": "71PwVsMlLx+RWdt1SI9nSqRHX7DX/NstWwr7/XBxEMs=", - "usagesDigest": "88RybJXEODrqz353smguedoFgMg9se+FF59/WpviJM8=", + "usagesDigest": "vDvuJNQ53pdrjDK3KsRv93SOvSUPTnB/K25YVdsZiLo=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, diff --git a/package.json b/package.json index 4b635ec3d0bb..8786ff1ba2c0 100644 --- a/package.json +++ b/package.json @@ -169,7 +169,6 @@ } }, "resolutions": { - "typescript": "5.9.3", "undici-types": "^7.16.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 046e04558c75..f0ce09b11188 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,12 +5,13 @@ settings: excludeLinksFromLockfile: false overrides: - typescript: 5.9.3 undici-types: ^7.16.0 '@angular/build': workspace:* packageExtensionsChecksum: sha256-3L73Fw32UVtE6x5BJxJPBtQtH/mgsr31grNpdhHP1IY= +pnpmfileChecksum: sha256-uP8jbELX5QePWiOvv7dnhxXXQrLZ8/Qxn4a0akzOcCQ= + importers: .: @@ -654,6 +655,9 @@ importers: babel-loader: specifier: 10.0.0 version: 10.0.0(@babel/core@7.28.5)(webpack@5.102.1(esbuild@0.26.0)) + browser-sync: + specifier: 3.0.4 + version: 3.0.4(bufferutil@4.0.9) browserslist: specifier: ^4.26.0 version: 4.27.0 @@ -766,9 +770,6 @@ importers: '@web/test-runner': specifier: 0.20.2 version: 0.20.2(bufferutil@4.0.9) - browser-sync: - specifier: 3.0.4 - version: 3.0.4(bufferutil@4.0.9) ng-packagr: specifier: 21.0.0-rc.0 version: 21.0.0-rc.0(@angular/compiler-cli@21.0.0-rc.1(@angular/compiler@21.0.0-rc.1)(typescript@5.9.3))(tslib@2.8.1)(typescript@5.9.3) @@ -788,6 +789,12 @@ importers: rxjs: specifier: 7.8.2 version: 7.8.2 + webpack: + specifier: 5.102.1 + version: 5.102.1(esbuild@0.26.0) + webpack-dev-server: + specifier: 5.2.2 + version: 5.2.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)(webpack@5.102.1(esbuild@0.26.0)) devDependencies: '@angular-devkit/core': specifier: workspace:0.0.0-PLACEHOLDER @@ -795,12 +802,6 @@ importers: '@ngtools/webpack': specifier: workspace:0.0.0-PLACEHOLDER version: link:../../ngtools/webpack - webpack: - specifier: 5.102.1 - version: 5.102.1(esbuild@0.26.0) - webpack-dev-server: - specifier: 5.2.2 - version: 5.2.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)(webpack@5.102.1(esbuild@0.26.0)) packages/angular_devkit/core: dependencies: @@ -864,6 +865,10 @@ importers: version: 22.0.0 packages/ngtools/webpack: + dependencies: + webpack: + specifier: 5.102.1 + version: 5.102.1(esbuild@0.26.0) devDependencies: '@angular-devkit/core': specifier: workspace:0.0.0-PLACEHOLDER @@ -877,9 +882,6 @@ importers: typescript: specifier: 5.9.3 version: 5.9.3 - webpack: - specifier: 5.102.1 - version: 5.102.1(esbuild@0.26.0) packages/schematics/angular: dependencies: @@ -1008,7 +1010,7 @@ packages: hasBin: true peerDependencies: '@angular/compiler': 21.0.0-rc.1 - typescript: 5.9.3 + typescript: '>=5.9 <6.0' peerDependenciesMeta: typescript: optional: true @@ -3725,20 +3727,20 @@ packages: peerDependencies: '@typescript-eslint/parser': ^8.46.3 eslint: ^8.57.0 || ^9.0.0 - typescript: 5.9.3 + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/parser@8.46.3': resolution: {integrity: sha512-6m1I5RmHBGTnUGS113G04DMu3CpSdxCAU/UvtjNWL4Nuf3MW9tQhiJqRlHzChIkhy6kZSAQmc+I1bcGjE3yNKg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: 5.9.3 + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/project-service@8.46.3': resolution: {integrity: sha512-Fz8yFXsp2wDFeUElO88S9n4w1I4CWDTXDqDr9gYvZgUpwXQqmZBr9+NTTql5R3J7+hrJZPdpiWaB9VNhAKYLuQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: 5.9.3 + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/scope-manager@8.46.3': resolution: {integrity: sha512-FCi7Y1zgrmxp3DfWfr+3m9ansUUFoy8dkEdeQSgA9gbm8DaHYvZCdkFRQrtKiedFf3Ha6VmoqoAaP68+i+22kg==} @@ -3748,14 +3750,14 @@ packages: resolution: {integrity: sha512-GLupljMniHNIROP0zE7nCcybptolcH8QZfXOpCfhQDAdwJ/ZTlcaBOYebSOZotpti/3HrHSw7D3PZm75gYFsOA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: 5.9.3 + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/type-utils@8.46.3': resolution: {integrity: sha512-ZPCADbr+qfz3aiTTYNNkCbUt+cjNwI/5McyANNrFBpVxPt7GqpEYz5ZfdwuFyGUnJ9FdDXbGODUu6iRCI6XRXw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: 5.9.3 + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/types@8.46.3': resolution: {integrity: sha512-G7Ok9WN/ggW7e/tOf8TQYMaxgID3Iujn231hfi0Pc7ZheztIJVpO44ekY00b7akqc6nZcvregk0Jpah3kep6hA==} @@ -3765,14 +3767,14 @@ packages: resolution: {integrity: sha512-f/NvtRjOm80BtNM5OQtlaBdM5BRFUv7gf381j9wygDNL+qOYSNOgtQ/DCndiYi80iIOv76QqaTmp4fa9hwI0OA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: 5.9.3 + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/utils@8.46.3': resolution: {integrity: sha512-VXw7qmdkucEx9WkmR3ld/u6VhRyKeiF1uxWwCy/iuNfokjJ7VhsgLSOTjsol8BunSw190zABzpwdNsze2Kpo4g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: 5.9.3 + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/visitor-keys@8.46.3': resolution: {integrity: sha512-uk574k8IU0rOF/AjniX8qbLSGURJVUCeM5e4MIMKBFFi8weeiLrG1fyQejyLXQpRZbU/1BuQasleV/RfHC3hHg==} @@ -4789,7 +4791,7 @@ packages: resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} peerDependencies: - typescript: 5.9.3 + typescript: '>=4.9.5' peerDependenciesMeta: typescript: optional: true @@ -7028,7 +7030,7 @@ packages: '@angular/compiler-cli': ^21.0.0-next tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0 tslib: ^2.3.0 - typescript: 5.9.3 + typescript: '>=5.9 <6.0' peerDependenciesMeta: tailwindcss: optional: true @@ -7840,7 +7842,7 @@ packages: engines: {node: '>=16'} peerDependencies: rollup: ^3.29.4 || ^4 - typescript: 5.9.3 + typescript: ^4.5 || ^5.0 rollup-plugin-sourcemaps2@0.5.4: resolution: {integrity: sha512-XK6ITvEsKtUFN1GQbYKoqilwh1yKxTS9BLaFlVsm0IaYUYe3eVnhBWzKP4AHbkBO2BNOheGNlf407K7wCj6Rrw==} @@ -8495,7 +8497,7 @@ packages: resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} engines: {node: '>=18.12'} peerDependencies: - typescript: 5.9.3 + typescript: '>=4.8.4' ts-node@10.9.2: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} @@ -8504,7 +8506,7 @@ packages: '@swc/core': '>=1.2.50' '@swc/wasm': '>=1.2.50' '@types/node': '*' - typescript: 5.9.3 + typescript: '>=2.7' peerDependenciesMeta: '@swc/core': optional: true @@ -11933,7 +11935,7 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: - '@types/express-serve-static-core': 4.19.7 + '@types/express-serve-static-core': 5.1.0 '@types/node': 22.19.0 '@types/connect@3.4.38':