angular/package.json
Paul Gschwendtner 7fc14d7f26 build: fix adev first party linking and re-enable tests (#60825)
This commit attempts to finally fix the long-standing first-party
package linking issue with the rather tricky `rules_nodejs` toolchain.

I've verified that no version of e.g. `@angular/core` ends up in the
Bazel sandbox. This is achieved by also filtering transitive Angular
deps for first-party linked packages. e.g. `@angular/docs`.

In addition, `@angular/docs` accidentally ended up bundling parts of
Angular core because it relied on an entry-point that was not part of
the "well known externals". As part of the ongoing `ng_package`
update/rewrite, we should look into disabling bundling of ANY external
dependency/module. This is possible because we use relative imports
inside APF packages as of recently!

This commit should allow us to develop and continue new compiler
features, without having to temporarily (or longer) disable all
`angular.dev` unit tests!

Fixes #54858.

PR Close #60825
2025-04-10 14:19:52 +00:00

238 lines
9.9 KiB
JSON

{
"name": "angular-srcs",
"version": "20.0.0-next.6",
"private": true,
"description": "Angular - a web framework for modern web apps",
"homepage": "https://github.com/angular/angular",
"bugs": "https://github.com/angular/angular/issues",
"license": "MIT",
"engines": {
"node": "^20.11.1 || ^22.11.0",
"yarn": ">=1.22.4 <2",
"npm": "Please use yarn instead of NPM to install dependencies"
},
"repository": {
"type": "git",
"url": "https://github.com/angular/angular.git"
},
"scripts": {
"/": "",
"// 1": "Many of our checks/scripts/tools have moved to our ng-dev tool",
"// 2": "Find the usage you are looking for with:",
"// 3": "yarn ng-dev --help",
"/ ": "",
"postinstall": "node --preserve-symlinks --preserve-symlinks-main ./tools/postinstall-patches.js && patch-package --patch-dir tools/esm-interop/patches/npm && patch-package --patch-dir tools/npm-patches",
"prepare": "husky",
"ng-dev": "tsx --tsconfig .ng-dev/tsconfig.json node_modules/@angular/ng-dev/bundles/cli.mjs",
"build": "tsx --tsconfig scripts/tsconfig.json scripts/build/build-packages-dist.mts",
"test": "bazelisk test",
"test:ci": "bazelisk test -- //... -//integration/... -//adev/... -//devtools/... -//modules/ssr-benchmarks/...",
"integration-tests:ci": "bazelisk test -- //integration/...",
"test-tsec": "bazelisk test //... --build_tag_filters=tsec --test_tag_filters=tsec",
"lint": "yarn -s tslint && yarn -s ng-dev format changed --check",
"tslint": "tslint -c tslint.json --project tsconfig-tslint.json",
"public-api:check": "node goldens/public-api/manage.js test",
"public-api:update": "node goldens/public-api/manage.js accept",
"symbol-extractor:check": "node tools/symbol-extractor/run_all_symbols_extractor_tests.js test",
"symbol-extractor:update": "node tools/symbol-extractor/run_all_symbols_extractor_tests.js accept",
"ts-circular-deps:check": "yarn -s ng-dev ts-circular-deps check --config ./packages/circular-deps-test.conf.js",
"check-tooling-setup": "yarn tsc --project .ng-dev/tsconfig.json && yarn tsc --project scripts/tsconfig.json",
"devtools:devserver": "ibazel run //devtools/src:devserver",
"devtools:devserver:demo-standalone": "ibazel run //devtools/projects/demo-standalone/src:devserver",
"devtools:build:chrome": "bazelisk build --//devtools/projects/shell-browser/src:flag_browser=chrome -- devtools/projects/shell-browser/src:prodapp",
"devtools:build:firefox": "bazelisk build --config snapshot-build-firefox --//devtools/projects/shell-browser/src:flag_browser=firefox -- devtools/projects/shell-browser/src:prodapp",
"devtools:test": "bazelisk test --//devtools/projects/shell-browser/src:flag_browser=chrome -- //devtools/...",
"docs": "[[ -n $CI ]] && echo 'Cannot run this yarn script on CI' && exit 1 || yarn ibazel run //adev:serve",
"docs:build": "[[ -n $CI ]] && echo 'Cannot run this yarn script on CI' && exit 1 || yarn bazel build //adev:build",
"benchmarks": "tsx --tsconfig=scripts/tsconfig.json scripts/benchmarks/index.mts"
},
"// 1": "dependencies are used locally and by bazel",
"dependencies": {
"@angular-devkit/build-angular": "20.0.0-next.4",
"@angular-devkit/core": "20.0.0-next.4",
"@angular-devkit/schematics": "20.0.0-next.4",
"@angular/build": "20.0.0-next.4",
"@angular/cdk": "20.0.0-next.5",
"@angular/cli": "20.0.0-next.4",
"@angular/material": "20.0.0-next.5",
"@angular/ssr": "20.0.0-next.4",
"@babel/cli": "7.27.0",
"@babel/core": "7.26.10",
"@babel/generator": "7.27.0",
"@bazel/concatjs": "5.8.1",
"@bazel/esbuild": "5.8.1",
"@bazel/jasmine": "5.8.1",
"@bazel/protractor": "5.8.1",
"@bazel/rollup": "5.8.1",
"@bazel/runfiles": "5.8.1",
"@bazel/terser": "5.8.1",
"@bazel/worker": "5.8.1",
"@jridgewell/sourcemap-codec": "^1.4.14",
"@microsoft/api-extractor": "^7.24.2",
"@rollup/plugin-babel": "^6.0.0",
"@rollup/plugin-commonjs": "^28.0.0",
"@rollup/plugin-node-resolve": "^13.0.4",
"@schematics/angular": "20.0.0-next.4",
"@stackblitz/sdk": "^1.11.0",
"@types/angular": "^1.6.47",
"@types/babel__core": "7.20.5",
"@types/babel__generator": "7.27.0",
"@types/bluebird": "^3.5.27",
"@types/chrome": "^0.0.313",
"@types/convert-source-map": "^2.0.0",
"@types/diff": "^7.0.0",
"@types/dom-navigation": "^1.0.5",
"@types/hammerjs": "2.0.46",
"@types/jasmine": "^5.0.0",
"@types/jasmine-ajax": "^3.3.1",
"@types/jasminewd2": "^2.0.8",
"@types/node": "^18.11.18",
"@types/selenium-webdriver": "3.0.7",
"@types/selenium-webdriver4": "npm:@types/selenium-webdriver@4.1.28",
"@types/semver": "^7.3.4",
"@types/shelljs": "^0.8.6",
"@types/systemjs": "6.15.3",
"@types/yargs": "^17.0.3",
"@xterm/addon-fit": "^0.10.0",
"@xterm/xterm": "^5.5.0",
"algoliasearch": "^5.0.0",
"angular-1.5": "npm:angular@1.5",
"angular-1.6": "npm:angular@1.6",
"angular-1.7": "npm:angular@1.7",
"angular-1.8": "npm:angular@1.8",
"angular-mocks-1.5": "npm:angular-mocks@1.5",
"angular-mocks-1.6": "npm:angular-mocks@1.6",
"angular-mocks-1.7": "npm:angular-mocks@1.7",
"angular-mocks-1.8": "npm:angular-mocks@1.8",
"bluebird": "^3.7.2",
"canonical-path": "1.0.0",
"chalk": "^5.4.1",
"chokidar": "^4.0.0",
"convert-source-map": "^1.5.1",
"d3": "^7.0.0",
"diff": "^7.0.0",
"domino": "https://github.com/angular/domino.git#8f228f8862540c6ccd14f76b5a1d9bb5458618af",
"hammerjs": "~2.0.8",
"http-server": "^14.0.0",
"jasmine": "~5.6.0",
"jasmine-ajax": "^4.0.0",
"jasmine-core": "^5.0.0",
"karma": "~6.4.0",
"karma-chrome-launcher": "^3.1.0",
"karma-firefox-launcher": "^2.1.0",
"karma-jasmine": "^5.0.0",
"karma-requirejs": "^1.1.0",
"karma-sourcemap-loader": "^0.4.0",
"magic-string": "^0.30.8",
"memo-decorator": "^2.0.1",
"ngx-flamegraph": "0.0.12",
"ngx-progressbar": "^14.0.0",
"open-in-idx": "^0.1.1",
"protractor": "^7.0.0",
"reflect-metadata": "^0.2.0",
"requirejs": "^2.3.6",
"rollup": "4.35.0",
"rollup-plugin-dts": "^6.1.1",
"rollup-plugin-preserve-shebang": "^1.0.1",
"rollup-plugin-sourcemaps": "^0.6.3",
"rxjs": "^7.0.0",
"selenium-webdriver": "3.5.0",
"selenium-webdriver4": "npm:selenium-webdriver@4.31.0",
"semver-dsl": "^1.0.1",
"shelljs": "^0.9.0",
"source-map": "0.7.4",
"source-map-support": "0.5.21",
"systemjs": "0.18.10",
"terser": "^5.8.0",
"tinyglobby": "^0.2.12",
"todomvc-app-css": "^2.3.0",
"todomvc-common": "^1.0.5",
"tslib": "^2.3.0",
"tslint": "6.1.3",
"tsx": "^4.7.2",
"typescript": "5.8.2",
"webtreemap": "^2.0.1",
"ws": "^8.15.0",
"xhr2": "0.2.1",
"yargs": "^17.2.1"
},
"// 2": "devDependencies are not used under Bazel. Many can be removed after test.sh is deleted.",
"devDependencies": {
"@actions/core": "^1.10.0",
"@actions/github": "^6.0.0",
"@angular-devkit/architect-cli": "0.2000.0-next.4",
"@angular/build-tooling": "https://github.com/angular/dev-infra-private-build-tooling-builds.git#ce04ec6cf7604014191821a637e60964a1a3bb4a",
"@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#71904c53ace2c540d3cf1cd6151ac08665f9179e",
"@babel/plugin-proposal-async-generator-functions": "7.20.7",
"@bazel/bazelisk": "^1.7.5",
"@bazel/buildifier": "^8.0.0",
"@bazel/ibazel": "0.16.2",
"@codemirror/autocomplete": "^6.11.1",
"@codemirror/commands": "^6.3.2",
"@codemirror/lang-angular": "^0.1.2",
"@codemirror/lang-css": "^6.2.1",
"@codemirror/lang-html": "^6.4.7",
"@codemirror/lang-javascript": "^6.2.1",
"@codemirror/lang-sass": "^6.0.2",
"@codemirror/language": "^6.9.3",
"@codemirror/lint": "^6.4.2",
"@codemirror/search": "^6.5.5",
"@codemirror/state": "^6.3.3",
"@codemirror/view": "^6.22.2",
"@inquirer/prompts": "^7.0.0",
"@lezer/common": "^1.1.2",
"@lezer/highlight": "^1.2.0",
"@lezer/javascript": "^1.4.10",
"@octokit/graphql": "^8.0.0",
"@types/adm-zip": "^0.5.0",
"@types/cldrjs": "^0.4.22",
"@types/d3": "^7.4.3",
"@types/jsdom": "^21.1.5",
"@types/live-server": "^1.2.3",
"@typescript/vfs": "^1.5.0",
"@webcontainer/api": "^1.3.0-internal.2",
"@yarnpkg/lockfile": "^1.1.0",
"adm-zip": "^0.5.10",
"angular-split": "^19.0.0",
"check-side-effects": "0.0.23",
"cldr": "7.9.0",
"cldrjs": "0.5.5",
"conventional-changelog": "^6.0.0",
"emoji-regex": "^10.3.0",
"fflate": "^0.8.2",
"firebase-tools": "^14.0.0",
"gulp": "^5.0.0",
"gulp-conventional-changelog": "^5.0.0",
"html-entities": "^2.5.2",
"husky": "9.1.7",
"jsdom": "^26.0.0",
"karma-coverage": "^2.2.1",
"karma-jasmine-html-reporter": "^2.1.0",
"karma-sauce-launcher": "^4.3.6",
"live-server": "^1.2.2",
"madge": "^8.0.0",
"marked": "^15.0.0",
"mermaid": "^11.0.0",
"patch-package": "^7.0.0",
"playwright-core": "^1.41.2",
"preact": "^10.17.1",
"preact-render-to-string": "^6.2.1",
"prettier": "^3.0.0",
"semver": "^7.3.5",
"shiki": "^3.0.0",
"tmp": "^0.2.3",
"ts-node": "^10.9.1",
"tsec": "0.2.8",
"tslint-eslint-rules": "5.4.0",
"tslint-no-toplevel-property-access": "0.0.2",
"typed-graphqlify": "^3.1.1",
"undici": "^6.15.0",
"vrsource-tslint-rules": "6.0.0"
},
"// 3": "Ensure that transitive dependencies on `https-proxy-agent` are at minimum v5 as older versions patch NodeJS directly, breaking tools like webdriver which is used by the karma-sauce-launcher as an example.",
"// 4": "Ensure that a single instance of the `saucelabs` package is used. Protractor and the Karma sauce launcher pull this package as dependency. A single instance allows for e.g. easier patching in the Karma config.",
"resolutions": {
"**/https-proxy-agent": "7.0.6",
"**/saucelabs": "9.0.2"
}
}