angular/package.json
Paul Gschwendtner 42619bd670 build: remove puppeteer, remaining usages of webdriver-manager and migrate AIO production test to Bazel (#49025)
This commit does three things that all related and required to get
rid of `webdriver-manager`:

* Our puppeteer protractor setup in AIO relies on webdriver-manager
because we install a corresponding chromedriver based on the puppeteer
chromium version. We would like to get rid of this brittle setup.

* We don't use `puppeteer` in many places because we manage chromium and
the driver through Bazel. This commit removes the remaining puppeteer
usage and replaces it with the Bazel-managed canonical browser

* We need to migrate the AIO production URL tests to Bazel. These
weren't part of Aspect's migration. This is needed so that we can drop
puppeteer and use the Bazel browser setup.

* Migrates some at-runtime TS `ts-node` test setup to proper idiomatic
Bazel code. Needed because it depends on code that also had to be
migrated to Bazel given the production e2e test Bazel migration (above
points).

Note: The xregexp dependency had to be added to the root project because
`ts_library` does not support compilation deps from `@aio_npm`. This is
something we will fix anyway when we have a more modern toolchain!

PR Close #49025
2023-02-10 19:22:18 +00:00

221 lines
9.5 KiB
JSON

{
"name": "angular-srcs",
"version": "15.2.0-next.4",
"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-comment": "Keep this in sync with /aio/package.json and /aio/tools/examples/shared/package.json",
"engines": {
"node": "^14.20.0 || ^16.13.0 || >=18.10.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",
"prepare": "husky install",
"ng-dev": "cross-env TS_NODE_PROJECT=$PWD/.ng-dev/tsconfig.json TS_NODE_TRANSPILE_ONLY=1 node --no-warnings --loader ts-node/esm node_modules/@angular/ng-dev/bundles/cli.mjs",
"build": "ts-node --esm --project scripts/tsconfig.json scripts/build/build-packages-dist.mts",
"test": "bazelisk test",
"test:ci": "bazelisk test -- //... -//devtools/... -//aio/...",
"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",
"ts-circular-deps:approve": "yarn -s ng-dev ts-circular-deps approve --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:build:chrome": "bazelisk build --config snapshot-build --//devtools/projects/shell-browser/src:flag_browser=chrome -- devtools/projects/shell-browser/src:prodapp",
"devtools:build:firefox": "bazelisk build --config snapshot-build --//devtools/projects/shell-browser/src:flag_browser=firefox -- devtools/projects/shell-browser/src:prodapp",
"devtools:test": "bazelisk test --config snapshot-build --//devtools/projects/shell-browser/src:flag_browser=chrome -- //devtools/..."
},
"// 1": "dependencies are used locally and by bazel",
"dependencies": {
"@angular-devkit/build-angular": "15.2.0-next.4",
"@angular-devkit/core": "15.2.0-next.4",
"@angular-devkit/schematics": "15.2.0-next.4",
"@angular/animations-12": "npm:@angular/animations@12.2.13",
"@angular/cdk": "15.2.0-next.4",
"@angular/cli": "15.2.0-next.4",
"@angular/common-12": "npm:@angular/common@12.2.13",
"@angular/core-12": "npm:@angular/core@12.2.13",
"@angular/forms-12": "npm:@angular/forms@12.2.13",
"@angular/material": "15.2.0-next.4",
"@angular/platform-browser-12": "npm:@angular/platform-browser@12.2.13",
"@angular/platform-browser-dynamic-12": "npm:@angular/platform-browser-dynamic@12.2.13",
"@angular/platform-server-12": "npm:@angular/platform-server@12.2.13",
"@angular/router-12": "npm:@angular/router@12.2.13",
"@babel/cli": "7.19.3",
"@babel/core": "7.19.3",
"@babel/generator": "7.19.5",
"@babel/parser": "7.19.4",
"@babel/preset-env": "7.19.4",
"@babel/template": "7.18.10",
"@babel/traverse": "7.19.4",
"@babel/types": "7.19.4",
"@bazel/concatjs": "5.7.1",
"@bazel/esbuild": "5.7.1",
"@bazel/jasmine": "5.7.1",
"@bazel/protractor": "5.7.1",
"@bazel/rollup": "5.7.1",
"@bazel/runfiles": "5.7.1",
"@bazel/terser": "5.7.1",
"@bazel/worker": "5.7.1",
"@jridgewell/sourcemap-codec": "^1.4.14",
"@microsoft/api-extractor": "^7.24.2",
"@rollup/plugin-babel": "^6.0.0",
"@rollup/plugin-commonjs": "^24.0.0",
"@rollup/plugin-node-resolve": "^13.0.4",
"@schematics/angular": "15.2.0-next.4",
"@types/angular": "^1.6.47",
"@types/babel__core": "7.1.20",
"@types/babel__generator": "7.6.4",
"@types/babel__template": "7.4.1",
"@types/babel__traverse": "7.18.3",
"@types/base64-js": "1.3.0",
"@types/bluebird": "^3.5.27",
"@types/chrome": "^0.0.208",
"@types/convert-source-map": "^1.5.1",
"@types/diff": "^5.0.0",
"@types/filesystem": "^0.0.32",
"@types/hammerjs": "2.0.41",
"@types/jasmine": "^4.0.0",
"@types/jasmine-ajax": "^3.3.1",
"@types/jasminewd2": "^2.0.8",
"@types/multimatch": "^4.0.0",
"@types/node": "^16.11.7",
"@types/resize-observer-browser": "^0.1.5",
"@types/selenium-webdriver": "3.0.7",
"@types/semver": "^7.3.4",
"@types/shelljs": "^0.8.6",
"@types/systemjs": "0.19.32",
"@types/uuid": "^9.0.0",
"@types/yargs": "^17.0.3",
"@webcomponents/custom-elements": "^1.1.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",
"base64-js": "1.5.1",
"bluebird": "^3.7.2",
"brotli": "^1.3.2",
"canonical-path": "1.0.0",
"chalk": "^4.1.0",
"chokidar": "^3.5.1",
"convert-source-map": "^1.5.1",
"core-js-bundle": "^3.10.2",
"d3": "^7.0.0",
"dependency-graph": "^0.11.0",
"diff": "^5.0.0",
"document-register-element": "^1.7.2",
"domino": "~2.1.6",
"google-closure-compiler": "20221102.0.1",
"graceful-fs": "4.2.10",
"hammerjs": "~2.0.8",
"http-server": "^14.0.0",
"incremental-dom": "0.7.0",
"jasmine": "^4.0.0",
"jasmine-ajax": "^4.0.0",
"jasmine-core": "^4.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.3.7",
"magic-string": "0.27.0",
"materialize-css": "1.0.0",
"memo-decorator": "^2.0.1",
"ngx-flamegraph": "0.0.11",
"nodejs-websocket": "^1.7.2",
"protractor": "^7.0.0",
"reflect-metadata": "^0.1.3",
"requirejs": "^2.3.6",
"rollup": "~2.79.0",
"rollup-plugin-preserve-shebang": "^1.0.1",
"rollup-plugin-sourcemaps": "^0.6.3",
"rxjs": "^6.6.7",
"selenium-webdriver": "3.5.0",
"semver-dsl": "^1.0.1",
"shelljs": "^0.8.5",
"source-map": "0.7.4",
"source-map-support": "0.5.21",
"start-server-and-test": "^1.10.11",
"systemjs": "0.18.10",
"terser": "^5.8.0",
"tmp": "0.2.1",
"todomvc-app-css": "^2.3.0",
"todomvc-common": "^1.0.5",
"tsickle": "0.46.3",
"tslib": "^2.3.0",
"tslint": "6.1.3",
"typescript": "~4.9.3",
"webtreemap": "^2.0.1",
"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": {
"@angular/build-tooling": "https://github.com/angular/dev-infra-private-build-tooling-builds.git#f7d26a0b0d6bd2043f2d32c2a99db903539d0c07",
"@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#8aa60413b3e14daf2f33a29fe9d09faa3e5bcb75",
"@bazel/bazelisk": "^1.7.5",
"@bazel/buildifier": "^5.0.0",
"@bazel/ibazel": "^0.16.0",
"@octokit/graphql": "^5.0.0",
"@types/cldrjs": "^0.4.22",
"@types/cli-progress": "^3.4.2",
"@types/xregexp": "^4.4.0",
"@yarnpkg/lockfile": "^1.1.0",
"check-side-effects": "0.0.23",
"cldr": "7.3.0",
"cldrjs": "0.5.5",
"conventional-changelog": "^3.1.24",
"cross-env": "^7.0.3",
"firebase-tools": "^11.0.0",
"glob": "8.1.0",
"gulp": "^4.0.2",
"gulp-conventional-changelog": "^2.0.35",
"husky": "8.0.3",
"karma-sauce-launcher": "^4.3.6",
"madge": "^6.0.0",
"multimatch": "^6.0.0",
"patch-package": "^6.5.0",
"prettier": "^2.5.1",
"sauce-connect": "https://saucelabs.com/downloads/sc-4.8.1-linux.tar.gz",
"semver": "^7.3.5",
"ts-node": "^10.8.1",
"tsec": "0.2.6",
"tslint-eslint-rules": "5.4.0",
"tslint-no-toplevel-property-access": "0.0.2",
"typed-graphqlify": "^3.1.1",
"vlq": "2.0.4",
"vrsource-tslint-rules": "6.0.0",
"xregexp": "^5.1.1"
},
"// 4": "Overwrite graceful-fs to a version that does not rely on the 'natives' package. This fixes gulp for >= 10.13, more information: #28213",
"// 5": "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.",
"// 6": "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": {
"**/graceful-fs": "4.2.10",
"**/https-proxy-agent": "5.0.1",
"**/saucelabs": "7.2.0"
}
}