build: add job to run tests with ivy

Introduces two new CI jobs that run tests with Ivy.
Pull requests will now run tests against a pinned
Angular/Ivy version. Additionally there is a cronjob
that runs the component tests with Ivy every hour
against Ivy from `angular/angular#master`. This allows
us to detect regressions very quickly.
This commit is contained in:
Paul Gschwendtner
2019-05-14 11:56:45 +02:00
committed by Jeremy Elbourn
parent 92dc089433
commit 816a833f4e
5 changed files with 268 additions and 143 deletions
+65 -5
View File
@@ -346,6 +346,63 @@ jobs:
- run: node ./scripts/circleci/setup-angular-snapshots.js
- run: ./scripts/circleci/run-local-browser-tests.sh
# ----------------------------------------------------------------------------
# Job that runs all Bazel tests against Ivy with the current Angular version
# specified in the project dev dependencies.
# ----------------------------------------------------------------------------
ivy_test:
<<: *job_defaults
resource_class: xlarge
environment:
GCP_DECRYPT_TOKEN: *gcp_decrypt_token
steps:
- *checkout_code
- *restore_cache
- *copy_bazel_config
- *setup_bazel_remote_execution
- *yarn_install
# Setup Angular ivy snapshots built with ngtsc but locked to a specific tag. We
# cannot determine the tag automatically based on the Angular version specified in
# the "package.json" because the SHA is not known for the given release. Nor can
# we use ngcc to apply the ivy switches because ngcc currently does not handle the
# UMD format which is used by Bazel when running tests. UMD processing is in
# progress and tracked with FW-85.
- run: node ./scripts/circleci/setup-angular-snapshots.js --tag 8.0.0-rc.0-ivy-aot+bd37622
# Disable type checking when building with Ivy. This is necessary because
# type checking is not complete yet and can incorrectly break compilation.
# Issue is tracked with FW-1004.
- run: sed -i "s/\(_ENABLE_NG_TYPE_CHECKING = \)True/\1False/g" tools/defaults.bzl
# Run project tests with ngtsc and the Ivy Angular packages.
- run: bazel build src/... --build_tag_filters=-docs-package --define=compile=aot
- run: bazel test src/... --build_tag_filters=-docs-package --define=compile=aot
# ----------------------------------------------------------------------------
# Job that runs all Bazel tests against Ivy from angular/angular#master.
# ----------------------------------------------------------------------------
ivy_snapshot_test_cronjob:
<<: *job_defaults
resource_class: xlarge
environment:
GCP_DECRYPT_TOKEN: *gcp_decrypt_token
steps:
- *checkout_code
- *restore_cache
- *copy_bazel_config
- *setup_bazel_remote_execution
- *yarn_install
# Setup Angular ivy snapshots built with ngtsc.
- run: node ./scripts/circleci/setup-angular-snapshots.js --tag master-ivy-aot
# Disable type checking when building with Ivy. This is necessary because
# type checking is not complete yet and can incorrectly break compilation.
# Issue is tracked with FW-1004.
- run: sed -i "s/\(_ENABLE_NG_TYPE_CHECKING = \)True/\1False/g" tools/defaults.bzl
# Run project tests with ngtsc and the Ivy Angular packages.
- run: bazel build src/... --build_tag_filters=-docs-package --define=compile=aot
- run: bazel test src/... --build_tag_filters=-docs-package --define=compile=aot
# ----------------------------------------------------------------------------------------
# Workflow definitions. A workflow usually groups multiple jobs together. This is useful if
# one job depends on another.
@@ -360,6 +417,8 @@ workflows:
jobs:
- bazel_build_test:
filters: *ignore_presubmit_branch_filter
- ivy_test:
filters: *ignore_presubmit_branch_filter
- api_golden_checks:
filters: *ignore_presubmit_branch_filter
@@ -398,17 +457,18 @@ workflows:
- lint:
filters: *ignore_presubmit_branch_filter
# Snapshot tests workflow that is scheduled to run all specified jobs at midnight everyday.
# Snapshot tests workflow that is scheduled to run all specified jobs every hour.
# This workflow runs various jobs against the Angular snapshot builds from Github.
snapshot_tests:
jobs:
# Note that we need additional jobs for the nightly snapshot tests because there is no
# easy way to detect whether a job runs inside of a cronjob or specific workflow.
# See: https://circleci.com/ideas/?idea=CCI-I-295
# Note that we need additional jobs for the cronjob snapshot tests because there
# is no easy way to detect whether a job runs inside of a cronjob or specific
# workflow. See: https://circleci.com/ideas/?idea=CCI-I-295
- snapshot_tests_local_browsers
- ivy_snapshot_test_cronjob
triggers:
- schedule:
cron: "0 0 * * *"
cron: "0 * * * *"
filters:
branches:
only:
+16 -16
View File
@@ -32,13 +32,13 @@
"requiredAngularVersion": ">=8.0.0-rc.1",
"requiredMDCVersion": "^1.1.0",
"dependencies": {
"@angular/animations": "^8.0.0-rc.1",
"@angular/common": "^8.0.0-rc.1",
"@angular/compiler": "^8.0.0-rc.1",
"@angular/core": "^8.0.0-rc.1",
"@angular/elements": "^8.0.0-rc.1",
"@angular/forms": "^8.0.0-rc.1",
"@angular/platform-browser": "^8.0.0-rc.1",
"@angular/animations": "^8.0.0-rc.3",
"@angular/common": "^8.0.0-rc.3",
"@angular/compiler": "^8.0.0-rc.3",
"@angular/core": "^8.0.0-rc.3",
"@angular/elements": "^8.0.0-rc.3",
"@angular/forms": "^8.0.0-rc.3",
"@angular/platform-browser": "^8.0.0-rc.3",
"@webcomponents/custom-elements": "^1.1.0",
"core-js": "^2.6.1",
"material-components-web": "^1.1.0",
@@ -46,17 +46,17 @@
"systemjs": "0.19.43",
"tsickle": "^0.35.0",
"tslib": "^1.9.3",
"zone.js": "^0.9.0"
"zone.js": "~0.9.1"
},
"devDependencies": {
"@angular-devkit/core": "^8.0.0-rc.1",
"@angular-devkit/schematics": "^8.0.0-rc.1",
"@angular/bazel": "^8.0.0-rc.1",
"@angular/compiler-cli": "^8.0.0-rc.1",
"@angular/platform-browser-dynamic": "^8.0.0-rc.1",
"@angular/platform-server": "^8.0.0-rc.1",
"@angular/router": "^8.0.0-rc.1",
"@angular/upgrade": "^8.0.0-rc.1",
"@angular-devkit/core": "^8.0.0-rc.2",
"@angular-devkit/schematics": "^8.0.0-rc.2",
"@angular/bazel": "^8.0.0-rc.3",
"@angular/compiler-cli": "^8.0.0-rc.3",
"@angular/platform-browser-dynamic": "^8.0.0-rc.3",
"@angular/platform-server": "^8.0.0-rc.3",
"@angular/router": "^8.0.0-rc.3",
"@angular/upgrade": "^8.0.0-rc.3",
"@bazel/bazel": "^0.24.1",
"@bazel/ibazel": "^0.9.0",
"@bazel/jasmine": "0.27.8",
+5 -2
View File
@@ -19,6 +19,7 @@ const {writeFileSync} = require('fs');
const {join} = require('path');
const {execSync} = require('child_process');
const {tag} = require('minimist')(process.argv.slice(2), {string: ['tag']});
const projectDir = join(__dirname, '../../');
const packageJsonPath = join(projectDir, 'package.json');
const packageJson = require(packageJsonPath);
@@ -30,13 +31,15 @@ packageJson['resolutions'] = packageJson['resolutions'] || {};
// List that contains the names of all installed Angular packages (e.g. "@angular/core")
const angularPackages = Object.keys({...packageJson.dependencies, ...packageJson.devDependencies})
.filter(packageName => packageName.startsWith('@angular/'));
const packageSuffix = tag ? ` (${tag})` : '';
console.log(green('Setting up snapshot builds for:\n'));
console.log(yellow(` ${angularPackages.join('\n ')}\n`));
console.log(yellow(` ${angularPackages.map(n => `${n}${packageSuffix}`).join('\n ')}\n`));
// Setup the snapshot version for each Angular package specified in the "package.json" file.
angularPackages.forEach(packageName => {
const buildsUrl = `github:angular/${packageName.split('/')[1]}-builds`;
let buildsUrl = `github:angular/${packageName.split('/')[1]}-builds${tag ? `#${tag}` : ''}`;
// Add resolutions for each package in the format "**/{PACKAGE}" so that all
// nested versions of that specific Angular package will have the same version.
packageJson.resolutions[`**/${packageName}`] = buildsUrl;
+6
View File
@@ -11,6 +11,11 @@ _DEFAULT_TSCONFIG_BUILD = "//src:bazel-tsconfig-build.json"
_DEFAULT_TSCONFIG_TEST = "//src:bazel-tsconfig-test.json"
_DEFAULT_TS_TYPINGS = "@npm//typescript:typescript__typings"
# Whether Angular type checking should be enabled or not. Enabled by
# default but will be overwritten when running snapshots tests with Ivy
# since type-checking is not complete yet. See FW-1004.
_ENABLE_NG_TYPE_CHECKING = True
# Re-exports to simplify build file load statements
markdown_to_html = _markdown_to_html
@@ -55,6 +60,7 @@ def ng_module(deps = [], tsconfig = None, testonly = False, **kwargs):
local_deps = local_deps + [d]
_ng_module(
type_check = _ENABLE_NG_TYPE_CHECKING,
deps = local_deps,
tsconfig = tsconfig,
testonly = testonly,
+176 -120
View File
@@ -21,7 +21,7 @@
rxjs "6.4.0"
source-map "0.7.3"
"@angular-devkit/core@8.0.0-rc.1", "@angular-devkit/core@^8.0.0-rc.1":
"@angular-devkit/core@8.0.0-rc.1":
version "8.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-8.0.0-rc.1.tgz#25d744ea40eb292bb5fa23ee8246a5ad161c8533"
integrity sha512-kbB03aHCZMgzxditHynGTM7qa0+jPOXPhDn7Lntmaz4p5fkJyY+Y97fKAoTGmNZlpIqziHpAZFlVq2Qjgsktsw==
@@ -32,6 +32,17 @@
rxjs "6.4.0"
source-map "0.7.3"
"@angular-devkit/core@8.0.0-rc.3", "@angular-devkit/core@^8.0.0-rc.2":
version "8.0.0-rc.3"
resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-8.0.0-rc.3.tgz#a5e10e941d8a046abda9046e816d45694703c695"
integrity sha512-5PmX42/XOzPSqhIZBtXyozBN01Qpagj3YO0+ToKPDY+veGEUonPhz1jBiJ639NBldlGW1BBdQczpGZNg3uJj9A==
dependencies:
ajv "6.10.0"
fast-json-stable-stringify "2.0.0"
magic-string "0.25.2"
rxjs "6.4.0"
source-map "0.7.3"
"@angular-devkit/schematics@8.0.0-rc.0", "@angular-devkit/schematics@^8.0.0-beta.15":
version "8.0.0-rc.0"
resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-8.0.0-rc.0.tgz#c3cfdaf81bd1cf32f85527f9d831e3e8f3226d62"
@@ -40,7 +51,7 @@
"@angular-devkit/core" "8.0.0-rc.0"
rxjs "6.4.0"
"@angular-devkit/schematics@8.0.0-rc.1", "@angular-devkit/schematics@^8.0.0-rc.1":
"@angular-devkit/schematics@8.0.0-rc.1":
version "8.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-8.0.0-rc.1.tgz#c9bd70416ed9074f1566358db14cc311aba83ef8"
integrity sha512-tlAk4w9803+WDP4So6CvDyFvWkHbMxqdo80gvWL57z/XXcvGEgvI+NYliW2hOyqI5xNQ4P25Js5+Zgz9TATMoQ==
@@ -48,17 +59,25 @@
"@angular-devkit/core" "8.0.0-rc.1"
rxjs "6.4.0"
"@angular/animations@^8.0.0-rc.1":
version "8.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-8.0.0-rc.1.tgz#b613da3b474daa3d982dd08cbe744cbbce763e3f"
integrity sha512-Ue16jCa27+TyebCaPFPcTiI7pVe+qreLXCyxxRjumVCb64v2FOAxU3YYqs8AFhSBObYvMXasXwf/VjARyel8nw==
"@angular-devkit/schematics@^8.0.0-rc.2":
version "8.0.0-rc.3"
resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-8.0.0-rc.3.tgz#754db2735863393066a7dd88915b5b594ccde4b8"
integrity sha512-u08GNDCRbm4fYYilmnT27Pp6QW/FxD7W9bpUH8Kp4i6r0f4uBuYQiQT1x6celTwj8Bh1fQqCq/kM/lAG0dd5Zg==
dependencies:
"@angular-devkit/core" "8.0.0-rc.3"
rxjs "6.4.0"
"@angular/animations@^8.0.0-rc.3":
version "8.0.0-rc.3"
resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-8.0.0-rc.3.tgz#8c27c54fb965be921f1277cf20778b3fd42743f9"
integrity sha512-5OmvWRUljV2BrHZvYxhtXhbjGCKWAqjkbwiEUOdaW9XP6y9BKkAInn763pLo6p+FcpueDgFc8IE3vvO8xl2JmQ==
dependencies:
tslib "^1.9.0"
"@angular/bazel@^8.0.0-rc.1":
version "8.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@angular/bazel/-/bazel-8.0.0-rc.1.tgz#740e1595da6fcaebc06dc93a94e750a069e071c6"
integrity sha512-66PUDFpYbcQYBoTM07v3tVXW4D9Gq8ZazLtTKme4Tx2flpUDQAOv3UwXUbankvKRmZIebZlg0M/3hlMggNtL1w==
"@angular/bazel@^8.0.0-rc.3":
version "8.0.0-rc.3"
resolved "https://registry.yarnpkg.com/@angular/bazel/-/bazel-8.0.0-rc.3.tgz#dab138e08995363619439930c846afa913843922"
integrity sha512-+/uvwijzFYnrLVXqx4bhZCZb6dezTbqjtH2RoaWbYgfeV5Ll3G414VwaFNbo+FPuk8HJWEIqD9fBWWwEB6usxg==
dependencies:
"@angular-devkit/architect" "^0.800.0-beta.15"
"@angular-devkit/core" "^8.0.0-beta.15"
@@ -70,17 +89,17 @@
shelljs "0.8.2"
tsickle "^0.35.0"
"@angular/common@^8.0.0-rc.1":
version "8.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@angular/common/-/common-8.0.0-rc.1.tgz#530223cacccd9c266f922b8525f06617c78242d1"
integrity sha512-/eVx+8mAKibfhPPRm9vhM85YVx8ZSQ01FbwHW9nqKZYUNuJtdZcg6QL/eyraVCi29/GebLKO1LmlNYZWNxOrjA==
"@angular/common@^8.0.0-rc.3":
version "8.0.0-rc.3"
resolved "https://registry.yarnpkg.com/@angular/common/-/common-8.0.0-rc.3.tgz#d467781018ed2b91cf25e88a54d54c1504ef5c23"
integrity sha512-k9QPInh39o4MR/xCwrpdYDH42gmLG9RG2lhNX3BPaxD00d5my08rhR0Iqelk7XEEPoofELBd7lloXiKSyqFu5g==
dependencies:
tslib "^1.9.0"
"@angular/compiler-cli@^8.0.0-rc.1":
version "8.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-8.0.0-rc.1.tgz#0f38ded2ee5523ea68d193a780800c89b70b88b3"
integrity sha512-1VdS3tbGLG76ZqGiTBdFpoGY8CvMbEhrNBtzHzRGVgaUh3nBbup37pg4tsuJyXP3jWHD8TSvveP4f7yWDPyo4w==
"@angular/compiler-cli@^8.0.0-rc.3":
version "8.0.0-rc.3"
resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-8.0.0-rc.3.tgz#dae6d0dd1da30f02527ff3d06a426480305beb45"
integrity sha512-+LqU3X1tQwyQtVg5VdzanyaKwIl1r/3gAcpWG3AunhWjjbf5JN1QGWj14eRnJoSxNAknjRl6tVaOOnoK1L5P6A==
dependencies:
canonical-path "1.0.0"
chokidar "^2.1.1"
@@ -92,70 +111,70 @@
shelljs "^0.8.1"
source-map "^0.6.1"
tslib "^1.9.0"
yargs "9.0.1"
yargs "13.1.0"
"@angular/compiler@^8.0.0-rc.1":
version "8.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-8.0.0-rc.1.tgz#8059beebc3c649f5338c567e109bcae4f1ef100e"
integrity sha512-XqbR8KBIK6BBKiTI/lvgvEOIxpRiSIbDlXNixZF9dKqZLEw2u66ONC1avnXi6wUaN1laLavRA0dsQ0Vh34vitA==
"@angular/compiler@^8.0.0-rc.3":
version "8.0.0-rc.3"
resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-8.0.0-rc.3.tgz#487795bab3c02a15afc36396de28892e915db87d"
integrity sha512-nbOqxM+4gYHiVovnt2ZtL2O4NQzyXhOdjcQoxyZJHOSj1ZMPDBPPhXWZuz/Oavdulk4BLmJmgA+xyEFNPH/kAQ==
dependencies:
tslib "^1.9.0"
"@angular/core@^8.0.0-rc.1":
version "8.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@angular/core/-/core-8.0.0-rc.1.tgz#1e04709846dc8c13008adec8909c5f01ce044cea"
integrity sha512-sx5IMqfzE5OUqWNo1zbp/WzNogDOfBcLPPHCoCIjRArn8yYIql57ItbDkx0pTIQIpYDBP2GMhCnw3jkaqfZmhw==
"@angular/core@^8.0.0-rc.3":
version "8.0.0-rc.3"
resolved "https://registry.yarnpkg.com/@angular/core/-/core-8.0.0-rc.3.tgz#3ac4d6d46bfba6fb7020f631ef61a5903c8bb58e"
integrity sha512-yaYyC812II/D1Hj6dd+1/P6SLgwq8u1oBdGaN+sbeoU4OP8jk9wQRCssQwNZqXztjnTLvFj102GKum3QqV6kDg==
dependencies:
tslib "^1.9.0"
"@angular/elements@^8.0.0-rc.1":
version "8.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@angular/elements/-/elements-8.0.0-rc.1.tgz#404f59d03c03e7e21eedd4ae9975d4a9c7fb1fb9"
integrity sha512-LjHJJ5VX6aM3GDLnuuFx7IQfhBEQUPEd/BI3Wlnc+H8d+TnNsffatangIWNkkQoURPdU+j510WebDTUOqXS6DA==
"@angular/elements@^8.0.0-rc.3":
version "8.0.0-rc.3"
resolved "https://registry.yarnpkg.com/@angular/elements/-/elements-8.0.0-rc.3.tgz#756c56aa6582371ec5b81ee53264b026feb4489d"
integrity sha512-n0OoteoloaJ22le9K2WhYm1DsJjW2QVxgnmsyMbFTVbEIQGNmb7sdmGS0FL1JRRpQzaPdw58rBu2bwiqdl+mkQ==
dependencies:
tslib "^1.9.0"
"@angular/forms@^8.0.0-rc.1":
version "8.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-8.0.0-rc.1.tgz#1367d396803fc349d0ad3b9c531db718b15ac1a7"
integrity sha512-kwr/HAInBGC0bsK89Q1TgQrOkU82ZQWIXH7+xK/mzBAFABC4h+T6y4a35IXcuY8nD/YWjOqOreeJkPz5OD0A7g==
"@angular/forms@^8.0.0-rc.3":
version "8.0.0-rc.3"
resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-8.0.0-rc.3.tgz#7a3a48266149f1e37912423e596daf953c884fb5"
integrity sha512-cQnEdbFd0SGAjEb9uUaSB7s4Ko0SEVFA2J2fBJLQfLco9XvxjCZ9vSg0iphchhwbvn19do/sMk4WcqR9MpQzuQ==
dependencies:
tslib "^1.9.0"
"@angular/platform-browser-dynamic@^8.0.0-rc.1":
version "8.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-8.0.0-rc.1.tgz#0d0b8a469283be13a54a4f0973c3f8ea6644eb34"
integrity sha512-eplgio+52sEX2+UWsaodGTdT6R71NclMOpNW4Cxua8ZkQ05fQWkInx1peMdNbCeYvISOMxMIHlJ9PNxQtOJF0A==
"@angular/platform-browser-dynamic@^8.0.0-rc.3":
version "8.0.0-rc.3"
resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-8.0.0-rc.3.tgz#2ca02785f0d0058dcbe78dae4d6c796da60f4dc9"
integrity sha512-ziIjtu/o/Ocz18Hq83UwujDnitzCxuSA8eY2Z4wf6hSHHSEeSo8GWRhIE1KlPJNEOQvYGe2pv0pE9vja77DUzw==
dependencies:
tslib "^1.9.0"
"@angular/platform-browser@^8.0.0-rc.1":
version "8.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-8.0.0-rc.1.tgz#2711d83357f13f4d95831b3e0cca60720c00fabb"
integrity sha512-PIL3e6grfJspFpzMibEETfNEeeJS0aHTBjbrgQRjCVlHXw+VZ3nDM4Kw9PKZ9KMDNmKR13x32Jhwij9nl+xdQQ==
"@angular/platform-browser@^8.0.0-rc.3":
version "8.0.0-rc.3"
resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-8.0.0-rc.3.tgz#88120e49469c089b7988a8d38183e7f3b7f83937"
integrity sha512-/RRbgDyFk6RkAXNIkQebWkjHrV4i7IjSG3Sci+v19ORO/m3jBzRpMqp49e7d3LX6qItfeeaIWPqnec9W0jnFRQ==
dependencies:
tslib "^1.9.0"
"@angular/platform-server@^8.0.0-rc.1":
version "8.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-8.0.0-rc.1.tgz#4bd3d4fa21aff4eb0b3d837e2dece0f5489276cd"
integrity sha512-sz20inbCe9SFXoRiKjt8hrf910SnTlF9kf5iDkvBg8ovY0883Kz2BppjQoldMH4q4SKlL6DSutxTiU0FqgTCIQ==
"@angular/platform-server@^8.0.0-rc.3":
version "8.0.0-rc.3"
resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-8.0.0-rc.3.tgz#47cdd9437b06d3235426da8e416c3a56b839a71d"
integrity sha512-sIcVqKaXsqqUd0rX2tiGpb9O0SrEcf1TQAvsWHCTpT3TnHmDJm5fdYEmXdQwvHtQMbroyLRM8H/6vFJ+Ys//cA==
dependencies:
domino "^2.1.2"
tslib "^1.9.0"
xhr2 "^0.1.4"
"@angular/router@^8.0.0-rc.1":
version "8.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@angular/router/-/router-8.0.0-rc.1.tgz#9dd8b6d47a7ef1766faea6e7df747a8304b1a88d"
integrity sha512-UR6cI3eEh0XBkuAPdp9S+LHa+JN6hqokU5dCptiBhdAh+POpjqGzBiq85XyXc9q8P5BOku6kdcEYcIlodgzzCA==
"@angular/router@^8.0.0-rc.3":
version "8.0.0-rc.3"
resolved "https://registry.yarnpkg.com/@angular/router/-/router-8.0.0-rc.3.tgz#b36e43ee1e1d96c189a2587c4c25cd2d417195ec"
integrity sha512-tWk41qjzqSEnq7zjc6qJlFaj3bXvijJEvvMTzssrxN+MM4bj0IDGXzmiyU+vukMHkCzblkpLzfv53OeSLi7xEw==
dependencies:
tslib "^1.9.0"
"@angular/upgrade@^8.0.0-rc.1":
version "8.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@angular/upgrade/-/upgrade-8.0.0-rc.1.tgz#0c9480a36d4578a9d91a5b7b2313daab55d295d1"
integrity sha512-LCQRF7Rn5tUP+5DEu9+vkg8PzGDahA1zu7nZgPwKGsnw9rQ0PgEzpm9MjwfFs8fBbwDl5V1/ZYkY3RALhEiDjA==
"@angular/upgrade@^8.0.0-rc.3":
version "8.0.0-rc.3"
resolved "https://registry.yarnpkg.com/@angular/upgrade/-/upgrade-8.0.0-rc.3.tgz#3e7140c9a1e32bc8afec2cd4d22f10b27156b2a8"
integrity sha512-ljyPJaTF3Scg6ygaeQ+ZjggU7+VC40VtFe+QlHwg8tipqmtpSyTVsVtse8FjgY15OshtG0N9z7WV2ZlVxr8dxw==
dependencies:
tslib "^1.9.0"
@@ -2570,6 +2589,11 @@ camelcase@^4.0.0, camelcase@^4.1.0:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=
camelcase@^5.0.0:
version "5.3.1"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
version "1.0.30000914"
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000914.tgz#5df1edfb2407dd857bf33e7f346514316c7b9fa3"
@@ -3574,7 +3598,7 @@ decamelize-keys@^1.0.0:
decamelize "^1.1.0"
map-obj "^1.0.0"
decamelize@^1.0.0, decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2:
decamelize@^1.0.0, decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
@@ -4899,6 +4923,11 @@ get-caller-file@^1.0.1:
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
get-caller-file@^2.0.1:
version "2.0.5"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
get-pkg-repo@^1.0.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz#c73b489c06d80cc5536c2c853f9e05232056972d"
@@ -6026,6 +6055,11 @@ invert-kv@^1.0.0:
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY=
invert-kv@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==
ipaddr.js@1.8.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e"
@@ -6936,6 +6970,13 @@ lcid@^1.0.0:
dependencies:
invert-kv "^1.0.0"
lcid@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf"
integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==
dependencies:
invert-kv "^2.0.0"
leven@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580"
@@ -6991,16 +7032,6 @@ load-json-file@^1.0.0:
pinkie-promise "^2.0.0"
strip-bom "^2.0.0"
load-json-file@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=
dependencies:
graceful-fs "^4.1.2"
parse-json "^2.2.0"
pify "^2.0.0"
strip-bom "^3.0.0"
load-json-file@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
@@ -7495,6 +7526,13 @@ make-iterator@^1.0.0:
dependencies:
kind-of "^6.0.2"
map-age-cleaner@^0.1.1:
version "0.1.3"
resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a"
integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==
dependencies:
p-defer "^1.0.0"
map-cache@^0.2.0, map-cache@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
@@ -7624,6 +7662,15 @@ mem@^1.1.0:
dependencies:
mimic-fn "^1.0.0"
mem@^4.0.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178"
integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==
dependencies:
map-age-cleaner "^0.1.1"
mimic-fn "^2.0.0"
p-is-promise "^2.0.0"
memoizee@^0.4.14:
version "0.4.14"
resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.14.tgz#07a00f204699f9a95c2d9e77218271c7cd610d57"
@@ -7781,6 +7828,11 @@ mimic-fn@^1.0.0:
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
mimic-fn@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
mimic-response@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
@@ -8466,6 +8518,15 @@ os-locale@^2.0.0:
lcid "^1.0.0"
mem "^1.1.0"
os-locale@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a"
integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==
dependencies:
execa "^1.0.0"
lcid "^2.0.0"
mem "^4.0.0"
os-name@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.0.0.tgz#e1434dbfddb8e74b44c98b56797d951b7648a5d9"
@@ -8492,6 +8553,11 @@ p-cancelable@^0.4.0:
resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0"
integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==
p-defer@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"
integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=
p-finally@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
@@ -8502,6 +8568,11 @@ p-is-promise@^1.1.0:
resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e"
integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=
p-is-promise@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e"
integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==
p-limit@^1.1.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
@@ -8752,13 +8823,6 @@ path-type@^1.0.0:
pify "^2.0.0"
pinkie-promise "^2.0.0"
path-type@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=
dependencies:
pify "^2.0.0"
path-type@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
@@ -9234,14 +9298,6 @@ read-pkg-up@^1.0.1:
find-up "^1.0.0"
read-pkg "^1.0.0"
read-pkg-up@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=
dependencies:
find-up "^2.0.0"
read-pkg "^2.0.0"
read-pkg-up@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07"
@@ -9259,15 +9315,6 @@ read-pkg@^1.0.0:
normalize-package-data "^2.3.2"
path-type "^1.0.0"
read-pkg@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=
dependencies:
load-json-file "^2.0.0"
normalize-package-data "^2.3.2"
path-type "^2.0.0"
read-pkg@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
@@ -9602,6 +9649,11 @@ require-main-filename@^1.0.1:
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=
require-main-filename@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
requirejs@2.3.5:
version "2.3.5"
resolved "https://registry.yarnpkg.com/requirejs/-/requirejs-2.3.5.tgz#617b9acbbcb336540ef4914d790323a8d4b861b0"
@@ -12048,6 +12100,11 @@ y18n@^3.2.0, y18n@^3.2.1:
resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
integrity sha1-bRX7qITAhnnA136I53WegR4H+kE=
y18n@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
yallist@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
@@ -12065,6 +12122,14 @@ yargs-parser@^10.0.0:
dependencies:
camelcase "^4.1.0"
yargs-parser@^13.0.0:
version "13.1.0"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.0.tgz#7016b6dd03e28e1418a510e258be4bff5a31138f"
integrity sha512-Yq+32PrijHRri0vVKQEm+ys8mbqWjLiwQkMFNXEENutzLPP0bE4Lcd4iA3OQY5HF+GD3xXxf0MEHb8E4/SA3AA==
dependencies:
camelcase "^5.0.0"
decamelize "^1.2.0"
yargs-parser@^4.1.0, yargs-parser@^4.2.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c"
@@ -12079,13 +12144,6 @@ yargs-parser@^5.0.0:
dependencies:
camelcase "^3.0.0"
yargs-parser@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9"
integrity sha1-jQrELxbqVd69MyyvTEA4s+P139k=
dependencies:
camelcase "^4.1.0"
yargs-parser@^9.0.2:
version "9.0.2"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077"
@@ -12111,6 +12169,23 @@ yargs@11.0.0:
y18n "^3.2.1"
yargs-parser "^9.0.2"
yargs@13.1.0:
version "13.1.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.1.0.tgz#b2729ce4bfc0c584939719514099d8a916ad2301"
integrity sha512-1UhJbXfzHiPqkfXNHYhiz79qM/kZqjTE8yGlEjZa85Q+3+OwcV6NRkV7XOV1W2Eom2bzILeUn55pQYffjVOLAg==
dependencies:
cliui "^4.0.0"
find-up "^3.0.0"
get-caller-file "^2.0.1"
os-locale "^3.1.0"
require-directory "^2.1.1"
require-main-filename "^2.0.0"
set-blocking "^2.0.0"
string-width "^3.0.0"
which-module "^2.0.0"
y18n "^4.0.0"
yargs-parser "^13.0.0"
yargs@6.4.0:
version "6.4.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.4.0.tgz#816e1a866d5598ccf34e5596ddce22d92da490d4"
@@ -12150,25 +12225,6 @@ yargs@6.6.0:
y18n "^3.2.1"
yargs-parser "^4.2.0"
yargs@9.0.1:
version "9.0.1"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-9.0.1.tgz#52acc23feecac34042078ee78c0c007f5085db4c"
integrity sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=
dependencies:
camelcase "^4.1.0"
cliui "^3.2.0"
decamelize "^1.1.1"
get-caller-file "^1.0.1"
os-locale "^2.0.0"
read-pkg-up "^2.0.0"
require-directory "^2.1.1"
require-main-filename "^1.0.1"
set-blocking "^2.0.0"
string-width "^2.0.0"
which-module "^2.0.0"
y18n "^3.2.1"
yargs-parser "^7.0.0"
yargs@^11.0.0:
version "11.1.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77"
@@ -12260,7 +12316,7 @@ zip-stream@^1.2.0:
lodash "^4.8.0"
readable-stream "^2.0.0"
zone.js@^0.9.0:
version "0.9.0"
resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.9.0.tgz#f42319d657f7616724ed40c5907d4614b4c683fa"
integrity sha512-EfygvVnLxPSCMSgJ4h7SoY+XNr7ybdwvvwEQ70lvMFl9coNnciXSyWi8Kg6znK1ubyUSffkCKvleSQpLuUKw0Q==
zone.js@~0.9.1:
version "0.9.1"
resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.9.1.tgz#e37c6e5c54c13fae4de26b5ffe8d8e9212da6d9b"
integrity sha512-GkPiJL8jifSrKReKaTZ5jkhrMEgXbXYC+IPo1iquBjayRa0q86w3Dipjn8b415jpitMExe9lV8iTsv8tk3DGag==