angular/package.json
Paul Gschwendtner 4fa5d18e5a feat(bazel): support bundling .d.ts with code splitting (#60321)
Instead of relying on Microsoft's API extractor for `d.ts` bundling,
we are switching to Rollup-based `.d.ts` bundling.

This allows us to support code spliting, even for `.d.ts` files,
allowing for relative imports to be used between entry-points, without
ending up duplicating `.d.ts` definitions in two files. This would otherwise cause
problems with assignability of types.

It also nicely integrates into our existing rollup configuration, and
overall simplifies the `ng_package` rule even further!

Notably `tsup` also uses this rollup plugin, and it seems to work well.
Keep in mind that Microsoft's API extractor is pretty hard to integrate,
caused many problems in the past, and isn't capable of code splitting.
This aligns our d.ts bundling with the .mjs bundling (great alignment).

PR Close #60321
2025-03-11 13:03:08 -07:00

238 lines
9.8 KiB
JSON

{
"name": "angular-srcs",
"version": "20.0.0-next.1",
"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 -- //... -//adev/... -//devtools/... -//modules/ssr-benchmarks/...",
"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": "19.2.0",
"@angular-devkit/core": "19.2.0",
"@angular-devkit/schematics": "19.2.0",
"@angular/build": "19.2.0",
"@angular/cdk": "19.2.0",
"@angular/cli": "19.2.0",
"@angular/material": "19.2.0",
"@angular/ssr": "19.2.0",
"@babel/cli": "7.26.4",
"@babel/core": "7.26.9",
"@babel/generator": "7.26.9",
"@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": "19.2.0",
"@stackblitz/sdk": "^1.11.0",
"@types/angular": "^1.6.47",
"@types/babel__core": "7.20.5",
"@types/babel__generator": "7.6.8",
"@types/bluebird": "^3.5.27",
"@types/chrome": "^0.0.307",
"@types/convert-source-map": "^2.0.0",
"@types/diff": "^7.0.0",
"@types/dom-view-transitions": "^1.0.1",
"@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.1",
"@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.29.0",
"semver-dsl": "^1.0.1",
"shelljs": "^0.8.5",
"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.1902.0",
"@angular/build-tooling": "https://github.com/angular/dev-infra-private-build-tooling-builds.git#ce04ec6cf7604014191821a637e60964a1a3bb4a",
"@angular/core": "^19.2.0",
"@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#252589f7bc8fe6ca13b31e02d506ec52e826cdd2",
"@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.7.0",
"cldrjs": "0.5.5",
"conventional-changelog": "^6.0.0",
"emoji-regex": "^10.3.0",
"fflate": "^0.8.2",
"firebase-tools": "^13.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"
}
}