diff --git a/WORKSPACE b/WORKSPACE index eb724044df63..dfa542aa053e 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -5,11 +5,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") # Add NodeJS rules (explicitly used for sass bundle rules) http_archive( name = "build_bazel_rules_nodejs", - sha256 = "3356c6b767403392bab018ce91625f6d15ff8f11c6d772dc84bc9cada01c669a", - # Note that we cannot update to rules_nodejs#0.36.2 as it contains a bug where - # node output binaries cannot be launched on windows. We can update once the - # fix is released: https://github.com/bazelbuild/rules_nodejs/pull/1104. - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/0.36.1/rules_nodejs-0.36.1.tar.gz"], + sha256 = "da217044d24abd16667324626a33581f3eaccabf80985b2688d6a08ed2f864be", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/0.37.1/rules_nodejs-0.37.1.tar.gz"], ) # Add sass rules @@ -76,9 +73,12 @@ load("@io_bazel_rules_webtesting//web:repositories.bzl", "web_test_repositories" web_test_repositories() -load("@npm_bazel_karma//:browser_repositories.bzl", "browser_repositories") +load("@io_bazel_rules_webtesting//web/versioned:browsers-0.3.2.bzl", "browser_repositories") -browser_repositories() +browser_repositories( + chromium = True, + firefox = True, +) # Fetch transitive dependencies which are needed to use the Sass rules. load("@io_bazel_rules_sass//:package.bzl", "rules_sass_dependencies") diff --git a/package.json b/package.json index c98c05b36aec..ac4738c8a0b1 100644 --- a/package.json +++ b/package.json @@ -40,13 +40,13 @@ "requiredAngularVersion": "^8.0.0 || ^9.0.0-0", "requiredMDCVersion": "^4.0.0-alpha.0", "dependencies": { - "@angular/animations": "^8.2.2", - "@angular/common": "^8.2.2", - "@angular/compiler": "^8.2.2", - "@angular/core": "^8.2.2", - "@angular/elements": "^8.2.2", - "@angular/forms": "^8.2.2", - "@angular/platform-browser": "^8.2.2", + "@angular/animations": "^9.0.0-next.7", + "@angular/common": "^9.0.0-next.7", + "@angular/compiler": "^9.0.0-next.7", + "@angular/core": "^9.0.0-next.7", + "@angular/elements": "^9.0.0-next.7", + "@angular/forms": "^9.0.0-next.7", + "@angular/platform-browser": "^9.0.0-next.7", "@types/googlemaps": "^3.37.0", "@types/youtube": "^0.0.38", "@webcomponents/custom-elements": "^1.1.0", @@ -56,27 +56,27 @@ "systemjs": "0.19.43", "tsickle": "^0.35.0", "tslib": "^1.9.3", - "zone.js": "~0.9.1" + "zone.js": "~0.10.2" }, "devDependencies": { - "@angular-devkit/core": "^8.2.1", - "@angular-devkit/schematics": "^8.2.1", - "@angular/bazel": "^8.2.2", - "@angular/compiler-cli": "^8.2.2", - "@angular/platform-browser-dynamic": "^8.2.2", - "@angular/platform-server": "^8.2.2", - "@angular/router": "^8.2.2", - "@angular/upgrade": "^8.2.2", + "@angular-devkit/core": "^9.0.0-next.5", + "@angular-devkit/schematics": "^9.0.0-next.5", + "@angular/bazel": "^9.0.0-next.7", + "@angular/compiler-cli": "^9.0.0-next.7", + "@angular/platform-browser-dynamic": "^9.0.0-next.7", + "@angular/platform-server": "^9.0.0-next.7", + "@angular/router": "^9.0.0-next.7", + "@angular/upgrade": "^9.0.0-next.7", "@bazel/bazel": "^0.29.0", "@bazel/buildifier": "^0.28.0", "@bazel/ibazel": "^0.10.3", - "@bazel/jasmine": "0.36.1", - "@bazel/karma": "0.36.1", - "@bazel/typescript": "0.36.1", - "@bazel/protractor": "0.36.1", + "@bazel/jasmine": "^0.37.1", + "@bazel/karma": "^0.37.1", + "@bazel/typescript": "^0.37.1", + "@bazel/protractor": "^0.37.1", "@firebase/app-types": "^0.3.2", "@octokit/rest": "^16.28.7", - "@schematics/angular": "^8.2.1", + "@schematics/angular": "^9.0.0-next.5", "@types/browser-sync": "^2.26.1", "@types/chalk": "^0.4.31", "@types/fs-extra": "^4.0.3", @@ -99,7 +99,7 @@ "browser-sync": "^2.26.7", "chalk": "^1.1.3", "clang-format": "^1.2.4", - "codelyzer": "^5.1.0", + "codelyzer": "^5.1.1", "conventional-changelog": "^3.0.5", "dgeni": "^0.4.11", "dgeni-packages": "^0.27.1", diff --git a/src/cdk-experimental/tsconfig-build.json b/src/cdk-experimental/tsconfig-build.json index b89a874f3ad7..8c52576b7474 100644 --- a/src/cdk-experimental/tsconfig-build.json +++ b/src/cdk-experimental/tsconfig-build.json @@ -22,6 +22,7 @@ "typings.d.ts" ], "angularCompilerOptions": { + "enableIvy": false, "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", diff --git a/src/cdk/schematics/testing/test-case-setup.ts b/src/cdk/schematics/testing/test-case-setup.ts index 2db9a08c99ac..e4940e08c7c1 100644 --- a/src/cdk/schematics/testing/test-case-setup.ts +++ b/src/cdk/schematics/testing/test-case-setup.ts @@ -81,6 +81,15 @@ export async function createTestCaseSetup(migrationName: string, collectionPath: writeFile(relativePath, inputContent); }); + const testAppTsconfigPath = 'projects/cdk-testing/tsconfig.app.json'; + const testAppTsconfig = JSON.parse(appTree.readContent(testAppTsconfigPath)); + + // include all TypeScript files in the project. Otherwise all test input + // files won't be part of the program and cannot be migrated. + testAppTsconfig.include.push('src/**/*.ts'); + + writeFile(testAppTsconfigPath, JSON.stringify(testAppTsconfig, null, 2)); + const runFixers = async function() { // Switch to the new temporary directory to simulate that "ng update" is ran // from within the project. diff --git a/src/cdk/tsconfig-build.json b/src/cdk/tsconfig-build.json index 63a2c49fb795..0c28e64877cd 100644 --- a/src/cdk/tsconfig-build.json +++ b/src/cdk/tsconfig-build.json @@ -21,6 +21,7 @@ "typings.d.ts" ], "angularCompilerOptions": { + "enableIvy": false, "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", diff --git a/src/google-maps/tsconfig-build.json b/src/google-maps/tsconfig-build.json index df3b99e4eef7..f51f09247bff 100644 --- a/src/google-maps/tsconfig-build.json +++ b/src/google-maps/tsconfig-build.json @@ -21,6 +21,7 @@ "typings.d.ts" ], "angularCompilerOptions": { + "enableIvy": false, "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", diff --git a/src/material-examples/tsconfig-build.json b/src/material-examples/tsconfig-build.json index 881d6939becb..857915ffd14c 100644 --- a/src/material-examples/tsconfig-build.json +++ b/src/material-examples/tsconfig-build.json @@ -38,6 +38,7 @@ "public-api.ts" ], "angularCompilerOptions": { + "enableIvy": false, "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", diff --git a/src/material-experimental/tsconfig-build.json b/src/material-experimental/tsconfig-build.json index b1cdf0046e27..2286112cdb75 100644 --- a/src/material-experimental/tsconfig-build.json +++ b/src/material-experimental/tsconfig-build.json @@ -24,6 +24,7 @@ "typings.d.ts" ], "angularCompilerOptions": { + "enableIvy": false, "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", diff --git a/src/material-moment-adapter/tsconfig-build.json b/src/material-moment-adapter/tsconfig-build.json index b37d32e42d58..587c480dccaa 100644 --- a/src/material-moment-adapter/tsconfig-build.json +++ b/src/material-moment-adapter/tsconfig-build.json @@ -36,6 +36,7 @@ "public-api.ts" ], "angularCompilerOptions": { + "enableIvy": false, "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", diff --git a/src/material/button/testing/shared.spec.ts b/src/material/button/testing/shared.spec.ts index d18cff30a0f0..2019e6e50662 100644 --- a/src/material/button/testing/shared.spec.ts +++ b/src/material/button/testing/shared.spec.ts @@ -83,9 +83,11 @@ export function runHarnessTests( it('should not click a disabled button', async () => { // Older versions of Edge have a bug where `disabled` buttons are still clickable if - // they contain child elements. We skip this check on Edge. - // See https://stackoverflow.com/questions/32377026/disabled-button-is-clickable-on-edge-browser - if (platform.EDGE) { + // they contain child elements. Also new versions of Firefox (starting v65) do not + // cancel dispatched click events on disabled buttons. We skip this check on Edge and Firefox. + // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1582570 and: + // https://stackoverflow.com/questions/32377026/disabled-button-is-clickable-on-edge-browser + if (platform.EDGE || platform.FIREFOX) { return; } diff --git a/src/material/checkbox/testing/BUILD.bazel b/src/material/checkbox/testing/BUILD.bazel index 4e45ca9fd03d..1be57295a047 100644 --- a/src/material/checkbox/testing/BUILD.bazel +++ b/src/material/checkbox/testing/BUILD.bazel @@ -20,6 +20,7 @@ ng_test_library( srcs = ["shared.spec.ts"], deps = [ ":testing", + "//src/cdk/platform", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/checkbox", diff --git a/src/material/checkbox/testing/shared.spec.ts b/src/material/checkbox/testing/shared.spec.ts index 246529c5c63c..2dc92eb05353 100644 --- a/src/material/checkbox/testing/shared.spec.ts +++ b/src/material/checkbox/testing/shared.spec.ts @@ -1,3 +1,4 @@ +import {Platform} from '@angular/cdk/platform'; import {HarnessLoader} from '@angular/cdk/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {Component} from '@angular/core'; @@ -12,6 +13,7 @@ import {MatCheckboxHarness} from '@angular/material/checkbox/testing/checkbox-ha */ export function runHarnessTests( checkboxModule: typeof MatCheckboxModule, checkboxHarness: typeof MatCheckboxHarness) { + const platform = new Platform(); let fixture: ComponentFixture; let loader: HarnessLoader; @@ -152,6 +154,11 @@ export function runHarnessTests( }); it('should not toggle disabled checkbox', async () => { + if (platform.FIREFOX) { + // do run this test on firefox as click events on the label of a disabled checkbox + // cause the value to be changed. https://bugzilla.mozilla.org/show_bug.cgi?id=1540995 + return; + } const disabledCheckbox = await loader.getHarness(checkboxHarness.with({label: 'Second'})); expect(await disabledCheckbox.isChecked()).toBe(false); await disabledCheckbox.toggle(); diff --git a/src/material/radio/testing/BUILD.bazel b/src/material/radio/testing/BUILD.bazel index 6dff40f93d7d..8f5fc79e058b 100644 --- a/src/material/radio/testing/BUILD.bazel +++ b/src/material/radio/testing/BUILD.bazel @@ -20,6 +20,7 @@ ng_test_library( srcs = ["shared.spec.ts"], deps = [ ":testing", + "//src/cdk/platform", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/radio", diff --git a/src/material/radio/testing/shared.spec.ts b/src/material/radio/testing/shared.spec.ts index 00fa850f2a4e..605603af5858 100644 --- a/src/material/radio/testing/shared.spec.ts +++ b/src/material/radio/testing/shared.spec.ts @@ -1,3 +1,4 @@ +import {Platform} from '@angular/cdk/platform'; import {HarnessLoader} from '@angular/cdk/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {Component} from '@angular/core'; @@ -10,6 +11,7 @@ import {MatRadioButtonHarness, MatRadioGroupHarness} from './radio-harness'; export function runHarnessTests(radioModule: typeof MatRadioModule, radioGroupHarness: typeof MatRadioGroupHarness, radioButtonHarness: typeof MatRadioButtonHarness) { + const platform = new Platform(); let fixture: ComponentFixture; let loader: HarnessLoader; @@ -225,6 +227,13 @@ export function runHarnessTests(radioModule: typeof MatRadioModule, }); it('should not be able to check disabled radio-button', async () => { + if (platform.FIREFOX) { + // do run this test on firefox as click events on the label of the underlying + // input checkbox cause the value to be changed. Read more in the bug report: + // https://bugzilla.mozilla.org/show_bug.cgi?id=1540995 + return; + } + fixture.componentInstance.disableAll = true; fixture.detectChanges(); diff --git a/src/material/slide-toggle/testing/BUILD.bazel b/src/material/slide-toggle/testing/BUILD.bazel index 496b16078f3f..4e699099157b 100644 --- a/src/material/slide-toggle/testing/BUILD.bazel +++ b/src/material/slide-toggle/testing/BUILD.bazel @@ -20,6 +20,7 @@ ng_test_library( srcs = ["shared.spec.ts"], deps = [ ":testing", + "//src/cdk/platform", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/slide-toggle", diff --git a/src/material/slide-toggle/testing/shared.spec.ts b/src/material/slide-toggle/testing/shared.spec.ts index 10133daffa8e..7cfc583c3a7a 100644 --- a/src/material/slide-toggle/testing/shared.spec.ts +++ b/src/material/slide-toggle/testing/shared.spec.ts @@ -1,3 +1,4 @@ +import {Platform} from '@angular/cdk/platform'; import {HarnessLoader} from '@angular/cdk/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {Component} from '@angular/core'; @@ -10,6 +11,7 @@ import {MatSlideToggleHarness} from '@angular/material/slide-toggle/testing/slid export function runHarnessTests( slideToggleModule: typeof MatSlideToggleModule, slideToggleHarness: typeof MatSlideToggleHarness) { + const platform = new Platform(); let fixture: ComponentFixture; let loader: HarnessLoader; @@ -133,6 +135,13 @@ export function runHarnessTests( }); it('should not toggle disabled slide-toggle', async () => { + if (platform.FIREFOX) { + // do run this test on firefox as click events on the label of the underlying + // input checkbox cause the value to be changed. Read more in the bug report: + // https://bugzilla.mozilla.org/show_bug.cgi?id=1540995 + return; + } + const disabledToggle = await loader.getHarness(slideToggleHarness.with({label: 'Second'})); expect(await disabledToggle.isChecked()).toBe(false); await disabledToggle.toggle(); diff --git a/src/material/tsconfig-build.json b/src/material/tsconfig-build.json index 47d6a4ad415a..d18c645eec06 100644 --- a/src/material/tsconfig-build.json +++ b/src/material/tsconfig-build.json @@ -23,6 +23,7 @@ "typings.d.ts" ], "angularCompilerOptions": { + "enableIvy": false, "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", diff --git a/src/youtube-player/tsconfig-build.json b/src/youtube-player/tsconfig-build.json index df2408a71a8b..af1ba9047ce0 100644 --- a/src/youtube-player/tsconfig-build.json +++ b/src/youtube-player/tsconfig-build.json @@ -19,6 +19,7 @@ "typings.d.ts" ], "angularCompilerOptions": { + "enableIvy": false, "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", diff --git a/tools/bazel/postinstall-patches.js b/tools/bazel/postinstall-patches.js index 28f4331fb67d..77be6dbf9ac2 100644 --- a/tools/bazel/postinstall-patches.js +++ b/tools/bazel/postinstall-patches.js @@ -6,9 +6,13 @@ const shelljs = require('shelljs'); const path = require('path'); +const fs = require('fs'); + +/** Path to the project directory. */ +const projectDir = path.join(__dirname, '../..'); shelljs.set('-e'); -shelljs.cd(path.join(__dirname, '../..')); +shelljs.cd(projectDir); // Do not apply postinstall patches when running "postinstall" outside. The // "generate_build_file.js" file indicates that we run in Bazel managed node modules. @@ -22,68 +26,91 @@ shelljs.exec('ngc -p angular-tsconfig.json'); // Workaround for https://github.com/angular/angular/issues/30586. It's not possible to // enable tsickle decorator processing without enabling import rewriting to closure. // This replacement allows us to enable decorator processing without rewriting imports. -shelljs.sed( - '-i', /(this\.transformTypesToClosure) = bazelOpts\.tsickle;/, '$1 = false;', +searchAndReplace( + /(this\.transformTypesToClosure) = bazelOpts\.tsickle;/, '$1 = false;', 'node_modules/@bazel/typescript/internal/tsc_wrapped/compiler_host.js'); -shelljs.sed( - '-i', 'bazelOpts\.tsickleExternsPath', 'null', +searchAndReplace( + 'bazelOpts\.tsickleExternsPath', 'null', 'node_modules/@bazel/typescript/internal/tsc_wrapped/tsc_wrapped.js'); // Workaround for https://github.com/angular/angular/issues/32389. We need to ensure // that tsickle is available for esm5 output re-compilations. -shelljs.sed( - '-i', '@npm//@bazel/typescript/bin:tsc_wrapped', +searchAndReplace( + '@npm//@bazel/typescript/bin:tsc_wrapped', '@angular_material//tools/bazel:tsc_wrapped_with_tsickle', 'node_modules/@angular/bazel/src/esm5.bzl'); // Workaround for: https://github.com/angular/angular/issues/32651. We just do not // generate re-exports for secondary entry-points. Similar to what "ng-packagr" does. -shelljs.sed('-i', /(?!function\s+)createMetadataReexportFile\([^)]+\);/, - '', 'node_modules/@angular/bazel/src/ng_package/packager.js'); -shelljs.sed('-i', /(?!function\s+)createTypingsReexportFile\([^)]+\);/, - '', 'node_modules/@angular/bazel/src/ng_package/packager.js'); +searchAndReplace( + /(?!function\s+)createMetadataReexportFile\([^)]+\);/, '', + 'node_modules/@angular/bazel/src/ng_package/packager.js'); +searchAndReplace( + /(?!function\s+)createTypingsReexportFile\([^)]+\);/, '', + 'node_modules/@angular/bazel/src/ng_package/packager.js'); // Workaround for: https://github.com/angular/angular/pull/32650 -shelljs.sed('-i', 'var indexFile;', ` +searchAndReplace( + 'var indexFile;', ` var publicApiFile = files.find(f => f.endsWith('/public-api.ts')); var moduleFile = files.find(f => f.endsWith('/module.ts')); var indexFile = publicApiFile || moduleFile; -`, 'node_modules/@angular/compiler-cli/src/metadata/bundle_index_host.js'); -shelljs.sed('-i', 'var resolvedEntryPoint = null;', ` +`, + 'node_modules/@angular/compiler-cli/src/metadata/bundle_index_host.js'); +searchAndReplace( + 'var resolvedEntryPoint = null;', ` var publicApiFile = tsFiles.find(f => f.endsWith('/public-api.ts')); var moduleFile = tsFiles.find(f => f.endsWith('/module.ts')); var resolvedEntryPoint = publicApiFile || moduleFile || null; -`, 'node_modules/@angular/compiler-cli/src/ngtsc/entry_point/src/logic.js'); +`, + 'node_modules/@angular/compiler-cli/src/ngtsc/entry_point/src/logic.js'); -// Workaround for https://github.com/angular/angular/issues/32603. Note that we don't -// want to apply the patch if it has been applied already. -if (!shelljs.test('-f', 'node_modules/@angular/bazel/src/ng_package/rollup_bin.js')) { - shelljs.cat(path.join(__dirname, './rollup_windows_arguments.patch')).exec('patch -p0'); -} +// Workaround for https://github.com/angular/angular/issues/32603. +shelljs.cat(path.join(__dirname, './rollup_windows_arguments.patch')).exec('patch -p0'); // Workaround for: https://hackmd.io/MlqFp-yrSx-0mw4rD7dnQQ?both. We only want to discard // the metadata of files in the bazel managed node modules. That way we keep the default // behavior of ngc-wrapped except for dependencies between sources of the library. This makes // the "generateCodeForLibraries" flag more accurate in the Bazel environment where previous // compilations should not be treated as external libraries. Read more about this in the document. -shelljs.sed('-i', /if \((this\.options\.generateCodeForLibraries === false)/, ` +searchAndReplace( + /if \((this\.options\.generateCodeForLibraries === false)/, ` const fs = require('fs'); const hasFlatModuleBundle = fs.existsSync(filePath.replace('.d.ts', '.metadata.json')); if ((filePath.includes('node_modules/') || !hasFlatModuleBundle) && $1`, - 'node_modules/@angular/compiler-cli/src/transformers/compiler_host.js'); + 'node_modules/@angular/compiler-cli/src/transformers/compiler_host.js'); shelljs.cat(path.join(__dirname, './flat_module_factory_resolution.patch')).exec('patch -p0'); // The three replacements below ensure that metadata files can be read by NGC and // that metadata files are collected as Bazel action inputs. -shelljs.sed('-i', /(const NGC_ASSETS = \/[^(]+\()([^)]*)(\).*\/;)/, '$1$2|metadata.json$3', - 'node_modules/@angular/bazel/src/ngc-wrapped/index.js'); -shelljs.sed('-i', /^((\s*)results = depset\(dep.angular.summaries, transitive = \[results]\))$/, - `$1#\n$2results = depset(dep.angular.metadata, transitive = [results])`, - 'node_modules/@angular/bazel/src/ng_module.bzl'); -shelljs.sed('-i', - /^((\s*)results = depset\(target.angular.summaries if hasattr\(target, "angular"\) else \[]\))$/, - `$1#\n$2results = depset(target.angular.metadata if hasattr(target, "angular") else [], transitive = [results])`, - 'node_modules/@angular/bazel/src/ng_module.bzl'); +searchAndReplace( + /(const NGC_ASSETS = \/[^(]+\()([^)]*)(\).*\/;)/, '$1$2|metadata.json$3', + 'node_modules/@angular/bazel/src/ngc-wrapped/index.js'); +searchAndReplace( + /^((\s*)results = depset\(dep.angular.summaries, transitive = \[results]\))$/m, + `$1#\n$2results = depset(dep.angular.metadata, transitive = [results])`, + 'node_modules/@angular/bazel/src/ng_module.bzl'); +searchAndReplace( + /^((\s*)results = depset\(target.angular.summaries if hasattr\(target, "angular"\) else \[]\))$/m, + `$1#\n$2results = depset(target.angular.metadata if hasattr(target, "angular") else [], transitive = [results])`, + 'node_modules/@angular/bazel/src/ng_module.bzl'); // Ensure that "metadata" of transitive dependencies can be collected. -shelljs.sed('-i', /("metadata": outs.metadata),/, - `$1 + [m for dep in ctx.attr.deps if hasattr(dep, "angular") for m in dep.angular.metadata],`, - 'node_modules/@angular/bazel/src/ng_module.bzl'); +searchAndReplace( + /("metadata": outs.metadata),/, + `$1 + [m for dep in ctx.attr.deps if hasattr(dep, "angular") for m in dep.angular.metadata],`, + 'node_modules/@angular/bazel/src/ng_module.bzl'); + +/** + * Reads the specified file and replaces matches of the search expression + * with the given replacement. Throws if no changes were made. + */ +function searchAndReplace(search, replacement, relativeFilePath) { + const filePath = path.join(projectDir, relativeFilePath); + const originalContent = fs.readFileSync(filePath, 'utf8'); + const newFileContent = originalContent.replace(search, replacement); + + if (originalContent === newFileContent) { + throw Error(`Could not perform replacement in: ${filePath}.`); + } + + fs.writeFileSync(filePath, newFileContent, 'utf8'); +} diff --git a/yarn.lock b/yarn.lock index 3f2494cac948..6129bd227c3d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -21,10 +21,10 @@ rxjs "6.4.0" source-map "0.7.3" -"@angular-devkit/core@8.2.1", "@angular-devkit/core@^8.2.1": - version "8.2.1" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-8.2.1.tgz#f389365e57e93ede2452eaf97aa48999afffe0ef" - integrity sha512-d/PNSZYtJ10tY/TILe3TiB9wLjuxMja/oR0PhdrfuadTF/blZ6Qjg8aVzImkwnvsm+0TgDkIXwcMKnoNa2LDxQ== +"@angular-devkit/core@9.0.0-next.5", "@angular-devkit/core@^9.0.0-next.5": + version "9.0.0-next.5" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-9.0.0-next.5.tgz#776da1ca8e510376405cbcf56de9e87fb60ac12f" + integrity sha512-DLFrLkf1YmjXRpH57wR/SH5Y7OmtqfPMoW0qxRV3HC+oNSmjCqv5W7EVWB55jfQ4SdJ5GQCt6x8MHiHL7gK4kg== dependencies: ajv "6.10.2" fast-json-stable-stringify "2.0.0" @@ -40,47 +40,47 @@ "@angular-devkit/core" "8.0.0-rc.0" rxjs "6.4.0" -"@angular-devkit/schematics@8.2.1", "@angular-devkit/schematics@^8.2.1": - version "8.2.1" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-8.2.1.tgz#7d8ebbb11024c4c1d25e80483929c31bb8c38f1b" - integrity sha512-tyXp1Fl0ZjLjjbnP+4lf3xW1KvBwSjZFGVTEyfTgXXo1zJhZsL+xE5Th588R6t0tdhNkdrCMi0CVzf7PBKQyHg== +"@angular-devkit/schematics@9.0.0-next.5", "@angular-devkit/schematics@^9.0.0-next.5": + version "9.0.0-next.5" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-9.0.0-next.5.tgz#66f639fede709a35e813b198fa8185c8f3198e93" + integrity sha512-oJ74ryqKjFRxsqNR2Xu7ja0in2PyqILVehMLgTBXgBw01QcWIDLEF0+80A0CQnFhdrCHbsroQMz4LvEQ61jhxw== dependencies: - "@angular-devkit/core" "8.2.1" + "@angular-devkit/core" "9.0.0-next.5" rxjs "6.4.0" -"@angular/animations@^8.2.2": - version "8.2.2" - resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-8.2.2.tgz#9e4162d242302f9b480cd967c7dccf4b07cdf435" - integrity sha512-vOfZGMDnP5/n4MIxZqT49nVc305EYpRK+bz68hJmZd2QkTxQA+8j84xr4jfIC6zUWdyQqZhwWEF5Lqqy7G155g== +"@angular/animations@^9.0.0-next.7": + version "9.0.0-next.7" + resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-9.0.0-next.7.tgz#62809382b39ba7cc6c9b96af500f49149669c820" + integrity sha512-6cz5KqiGPgiN82xtvXxrEIM2vhKlJdXmSSb1qBfsLIIbAXxvgBW3kCzJkZsKFCREL8QHqVKuAQFdQ2c3HBlA9A== dependencies: tslib "^1.9.0" -"@angular/bazel@^8.2.2": - version "8.2.2" - resolved "https://registry.yarnpkg.com/@angular/bazel/-/bazel-8.2.2.tgz#f0ad5c6dd2650f714725268d06ec21cc2423d332" - integrity sha512-0ytl3N5dKdMvpinvzodcV/7Tr36H/z/dTwpxxi0IUWLOJWIxxsS7XJvI1G6uS7C9Xhv6T+YmL/iM1jVzrP0DUA== +"@angular/bazel@^9.0.0-next.7": + version "9.0.0-next.7" + resolved "https://registry.yarnpkg.com/@angular/bazel/-/bazel-9.0.0-next.7.tgz#abc118c2f993819c8ac80d314df66be824f1a6fa" + integrity sha512-X1nUo/KzQNqUUw6sw2In/2iC9IFdiWRZQ3zb4p35YmMUTzBSC12TbqLMq6/FHkQ/uqoEKR1YUoC7++3xbv8Wgw== dependencies: "@angular-devkit/architect" "^0.800.0-beta.15" "@angular-devkit/core" "^8.0.0-beta.15" "@angular-devkit/schematics" "^8.0.0-beta.15" - "@microsoft/api-extractor" "^7.0.21" + "@microsoft/api-extractor" "^7.3.9" "@schematics/angular" "^8.0.0-beta.15" "@types/node" "6.0.84" semver "^5.6.0" shelljs "0.8.2" tsickle "^0.35.0" -"@angular/common@^8.2.2": - version "8.2.2" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-8.2.2.tgz#367d5d80fec3f37be3e1bcd1fc22091d79cb4a6f" - integrity sha512-PLV2+gj4pSe4MC5fwpEpI0JyWSKkNVvA65CCZvG2XXJTp4eS+ppkCZpEvbXqf7IewpKMAeFkuLi16r92pLG5Vw== +"@angular/common@^9.0.0-next.7": + version "9.0.0-next.7" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-9.0.0-next.7.tgz#5ae5a848e6d359a13347bc932aabdeb205dcdcd5" + integrity sha512-1WzfbX1eF5xJM9mKlj7LMYY8MVOTF0rxL52P6OUBXYBq9e4Wg1d0QoTmpTVrO4bVxkGbuRpgGQqYN5g+QL3M8g== dependencies: tslib "^1.9.0" -"@angular/compiler-cli@^8.2.2": - version "8.2.2" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-8.2.2.tgz#0b66157233ca2581e6b478a42150bea992230c8b" - integrity sha512-lEfWykViorBom4iWeZusoH4yAFkalyys/k9sI2qiTSVaH6TyowXbnfTMGfFQXKFydxI9sE86cCPoaRcR6fQcKQ== +"@angular/compiler-cli@^9.0.0-next.7": + version "9.0.0-next.7" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-9.0.0-next.7.tgz#add5b605dd5458ad2a560b8dcbea0e0e05c722fc" + integrity sha512-3paTm6AhiuN4uQTe0zyKI9xek7QK8cWaxR08u5YWx7Zyb4nwvYIOUZ6bVNKynoHVeRyS5PoTIvoG5wOHzuuYyQ== dependencies: canonical-path "1.0.0" chokidar "^2.1.1" @@ -93,68 +93,68 @@ tslib "^1.9.0" yargs "13.1.0" -"@angular/compiler@^8.2.2": - version "8.2.2" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-8.2.2.tgz#382a0ef9abcbc02ca1426945754d263ce9b49073" - integrity sha512-UMhOQehvi9u1r4u48Ymwm5JkdOKoH057ImCo26WqRqJBUgA44xwmUsKLFAmSg1JqzWCO5pBDyA3RaNBscD8ZzQ== +"@angular/compiler@^9.0.0-next.7": + version "9.0.0-next.7" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-9.0.0-next.7.tgz#06298ba65442dee294d6a887f2ec5e47768ca5f3" + integrity sha512-FfUCtkEABG+Wqa/HVIIN3t/1GRsgFNDS1p/3DgdNwUm79gE/Q6uYdyUP7vi+TaX3iXKilTyTxFd0z21dC4iAqQ== dependencies: tslib "^1.9.0" -"@angular/core@^8.2.2": - version "8.2.2" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-8.2.2.tgz#f99a21461fbd6506f73493d5ae8d7027f5a0751a" - integrity sha512-glQLJ3aeRWHMsN9QeJYis5FVdCg0lBU2s9aFX9i6WvVLscYmGoBk+TKsgO+uJjLnUUgsCPLRLzde02IJEQzCGw== +"@angular/core@^9.0.0-next.7": + version "9.0.0-next.7" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-9.0.0-next.7.tgz#a501fb483433042346fbeb435fbde0f5f8e58320" + integrity sha512-Lz487EWTLwWWbkSA/stiYDXd7f0myGYjJU3AqkorriFmY0QJ6nZZupODNjcf4gpLX09IOTvneK9sEK5OGi4sOQ== dependencies: tslib "^1.9.0" -"@angular/elements@^8.2.2": - version "8.2.2" - resolved "https://registry.yarnpkg.com/@angular/elements/-/elements-8.2.2.tgz#694c8b803eda4334c902d3fc0817825a8097153e" - integrity sha512-JrfZZVFo1uRkeU9xFsXeS3I59R8+rfjJ5y08PIVGjF6RloDS1mCZr7VeqffNorIrNQ9GD3abGy+u6gGsvWZ/wg== +"@angular/elements@^9.0.0-next.7": + version "9.0.0-next.7" + resolved "https://registry.yarnpkg.com/@angular/elements/-/elements-9.0.0-next.7.tgz#3ba5fa612c6b3e120235403f142a17ac7a7d61b5" + integrity sha512-CxfXNkrGMtQpztwyr34x/oIGLHSlv8XXY7j5PoZsWhVFLqVpGOXRfbE4983VBgFvjFgTvw3qeUo33W0uC5U1gg== dependencies: tslib "^1.9.0" -"@angular/forms@^8.2.2": - version "8.2.2" - resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-8.2.2.tgz#8e06255942615b6d4b550f645d5e647d600f84c1" - integrity sha512-2PTTKWP+GoHRLf3S3HKzn5QJtCMMRaMmcTrbR10hgUmDPdMeULGNZG3OacV8rRbRv4TDtXoqbKp0NRFQ7xsofQ== +"@angular/forms@^9.0.0-next.7": + version "9.0.0-next.7" + resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-9.0.0-next.7.tgz#a68b44979ad2002ab0e240a7dda00192b113997b" + integrity sha512-UWcx7U22aa/K73rOrUtYxe66/CUxULopdzmOdl3tuitZDHs55L1MXTYlw0xrSFUtB7dUfbLXO/k3rdmIvHSkQQ== dependencies: tslib "^1.9.0" -"@angular/platform-browser-dynamic@^8.2.2": - version "8.2.2" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-8.2.2.tgz#2d4e348dc204a57757f44d78e09174955890ad3c" - integrity sha512-c34GNNe9iDX6OUw7PJua4BbkUVTeX+SYmv5Iv5+pNENp9n6Y/kousbpoaDjLx37/8ujE8c9U378OeopZoasE4Q== +"@angular/platform-browser-dynamic@^9.0.0-next.7": + version "9.0.0-next.7" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-9.0.0-next.7.tgz#e8e9fae2dc772094ec644ffb06437808f79c45f6" + integrity sha512-R1XLmzw4ZIDcYvKg1x9cQG0PSDHsjAjt/ZoVhLTB/AC/V1E95AAkCnmcvTCH4UGDQREG7wc3OBN7KRLJDabbuA== dependencies: tslib "^1.9.0" -"@angular/platform-browser@^8.2.2": - version "8.2.2" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-8.2.2.tgz#e2781b6b3e3079efebf3089d544624bd6a702894" - integrity sha512-8PivPsi4Lrtl3vkC/a/s4QUSlv2nXjtea4h+t7zEpj6o9TeONA5iNe1LHSruG66IfOCW/U8l1THHJAsTj/8OAw== +"@angular/platform-browser@^9.0.0-next.7": + version "9.0.0-next.7" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-9.0.0-next.7.tgz#b25e031e2af0a72919743000dc62597f260563c0" + integrity sha512-c90plfSkD5glZET7E5qxHo1F/lRINwM1JaEWHOBEj8jqgVPLrMuRKq3t5ZDEWiGCG2qg4LVtGjJNEXnacOZXxQ== dependencies: tslib "^1.9.0" -"@angular/platform-server@^8.2.2": - version "8.2.2" - resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-8.2.2.tgz#fabcbc2a0d169c79b43560518cc23bda949f603e" - integrity sha512-LSi+CL7uApdSMuCf5IYqO2UbvPzDbvTvpFrpFZgcqweeKhpcaNjfm3M51hrec8eTlpd06ONd93SwKC2gqkmr7A== +"@angular/platform-server@^9.0.0-next.7": + version "9.0.0-next.7" + resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-9.0.0-next.7.tgz#8f7d7afeb08354d8ede44de3e11b195e73ed104d" + integrity sha512-mbMI84S6iN3aVAj/QO1RYTompnB5ZpsKDykxkZuaTsvb6jTXreeZiPYEK+jU1xO61k4nZGkuDV4vUsEuMIF/Lw== dependencies: domino "^2.1.2" tslib "^1.9.0" xhr2 "^0.1.4" -"@angular/router@^8.2.2": - version "8.2.2" - resolved "https://registry.yarnpkg.com/@angular/router/-/router-8.2.2.tgz#a56dd088553521754e493ba5e9e47c674bdd49f2" - integrity sha512-aoIuSiVYBFh53dS4a79ZK23YjQ363x+8hakorDdAdrC3WwGST9YYDpVuNoa/gahkWIWCWN4Q0nl16cjQ6XI6BA== +"@angular/router@^9.0.0-next.7": + version "9.0.0-next.7" + resolved "https://registry.yarnpkg.com/@angular/router/-/router-9.0.0-next.7.tgz#64347051e135844dccaadc7351a294163a699ac0" + integrity sha512-kCkBJZ7s1p/mpp6wffx0X7+LO5v/PzAcBnEDnzmunF+74L6GIv2uB7dLnRSSkdC7Q5A6/CrGPvfSIThIs0UKlQ== dependencies: tslib "^1.9.0" -"@angular/upgrade@^8.2.2": - version "8.2.2" - resolved "https://registry.yarnpkg.com/@angular/upgrade/-/upgrade-8.2.2.tgz#2cad0754ed775d4b029ca36dddd41f5cce8b9d09" - integrity sha512-ED5F/cPfFGi72yDaB2FutUgPPIZBsc62HTkpcFNt9m6JX2z4J7XxGKcQFUN/9cMzdbbPjpOJ5LFga046Nv47bQ== +"@angular/upgrade@^9.0.0-next.7": + version "9.0.0-next.7" + resolved "https://registry.yarnpkg.com/@angular/upgrade/-/upgrade-9.0.0-next.7.tgz#be5ee966944e693762a72ccfbbab79b4b88d58f4" + integrity sha512-ZNGddFz4pZi7xlh672/3TjAtbcLIjRWQh3QDxXwks4lQN4UWAFEl+vivtdSQ1cFI5OmrOLsaIBLTsSKcJp5kMA== dependencies: tslib "^1.9.0" @@ -340,19 +340,19 @@ resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.10.3.tgz#2e2b8a1d3e885946eac41db2b1aa6801fb319887" integrity sha512-v1nXbMTHVlMM4z4uWp6XiRoHAyUlYggF1SOboLLWRp0+D22kWixqArWqnozLw2mOtnxr97BdLjluWiho6A8Hjg== -"@bazel/jasmine@0.36.1": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-0.36.1.tgz#2069f8deb52a6ee206926936dbfd6829228962c2" - integrity sha512-gXCOeiHWNZzClMmYbKvdhS1ZC62inM2e+/w/Z0kOKDFSoSE9GnC6NuIK4vFlDOPjx0vGy2+ZCb/tezrgpqhp2A== +"@bazel/jasmine@^0.37.1": + version "0.37.1" + resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-0.37.1.tgz#e5111f4f913b542cbfad767e0f903be026246c5a" + integrity sha512-EQJ2bbmF3w+BeoCMEDY8mKd5lrVuZ4tEc1wqth4Jl2UIYwyEepDAKVMiEeM+seXxmzqle38ksdsf7uSUWMjthA== dependencies: jasmine "~3.4.0" jasmine-core "~3.4.0" v8-coverage "1.0.9" -"@bazel/karma@0.36.1": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@bazel/karma/-/karma-0.36.1.tgz#3d6e5e8772d2d2799d0b301020c1483ed3fe5de1" - integrity sha512-2zSW12BBJEqV1QYhPiwfTmObKCeyq3Gdox1b+2eYbyNw2HBlCHhWJs0FquGo63LLBn9XZhhk2H2IQmwhUOhx+w== +"@bazel/karma@^0.37.1": + version "0.37.1" + resolved "https://registry.yarnpkg.com/@bazel/karma/-/karma-0.37.1.tgz#1c2ba937f8a2a442a629d4edd5219c3623192b12" + integrity sha512-LwcvQkZJvlSWf7jvZY48GG1PJFINDrKHp59hupK8tTWN726sAAoQzQUp8ZO0e/pHKGcl4X6AvqWw3+MvXsGS7Q== dependencies: jasmine-core "2.8.0" karma "^4.0.0" @@ -366,17 +366,17 @@ semver "5.6.0" tmp "0.0.33" -"@bazel/protractor@0.36.1": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-0.36.1.tgz#7d6dc95deeeb1e79daff3450815cce86067dc067" - integrity sha512-mlsKTTChaUKdqkeNTZ5Ny3PDFI7aul7j6IGYozQUaAopY7qoCMEiOUnwYNYYaf/iKJlcIhQLf7HQwGAq36NTsQ== +"@bazel/protractor@^0.37.1": + version "0.37.1" + resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-0.37.1.tgz#932aaac40a4fc87a62e3ee52f9d748accf339032" + integrity sha512-kJNVOlPXhTIuZ7Hfjy4+QPSnj0lifvgw/mFUvP1C+XSlZGV9Jg2FfxX6t7gwl0AI6NXFb5JWOG/igL7W3dJ+hA== dependencies: protractor "^5.4.2" -"@bazel/typescript@0.36.1": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-0.36.1.tgz#de7994ed8eec90e0593525f62060a302fcf49ef1" - integrity sha512-TvItSk/aGakCmbrxTnbydKxq7bfYzMKqk9tNwHCzC8KqtTTyNuGTHisjqixw8G6jeSrms6vIkfH9YpYw9OHzRQ== +"@bazel/typescript@^0.37.1": + version "0.37.1" + resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-0.37.1.tgz#e740f311597dc0ed9d479ae7a88ea35cb2411e34" + integrity sha512-RrZ6rYZTQz0tSwGIGoKykNkhpu8xY3IOAzLA3cmtpNa0pCGEb+PpFBlh//wjcnP8jLg5vK2Qa6jh3SZ2pcYZbg== dependencies: protobufjs "6.8.8" semver "5.6.0" @@ -986,34 +986,34 @@ dependencies: "@material/feature-targeting" "^4.0.0-canary.e851d4f40.0" -"@microsoft/api-extractor-model@7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@microsoft/api-extractor-model/-/api-extractor-model-7.1.0.tgz#57e9805ba0f2322dd12945bb0588eeda522519cd" - integrity sha512-DvaJ1fEpwega9TVMR4xR0jeNV/9JHNMxN/t8TuBftZHSLZzTczh8HyqyFxKo2IwDDCoZy5FmXZsq/vo5JQvRMQ== +"@microsoft/api-extractor-model@7.4.1": + version "7.4.1" + resolved "https://registry.yarnpkg.com/@microsoft/api-extractor-model/-/api-extractor-model-7.4.1.tgz#3376f72570d336960c9b7b0dd44c8a0dbbe34604" + integrity sha512-rBO/QbrOMCdL8e9qwhIu1aH4C5sKOnUO1YhEh3+kVieFzTjiRnync7ghyQOtCaCVl2VXtp4LuOIv02e82oRqUg== dependencies: - "@microsoft/node-core-library" "3.13.0" - "@microsoft/tsdoc" "0.12.9" + "@microsoft/node-core-library" "3.14.2" + "@microsoft/tsdoc" "0.12.14" "@types/node" "8.5.8" -"@microsoft/api-extractor@^7.0.21": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.1.0.tgz#5def019a10d9ffa689ce72b1da22894b7d454177" - integrity sha512-hWxDowI0eO33OAROt2Uchej8skajNsjAs3xn0c99EoZ1I9sD3QTicPADvCuxEb584jxkyxuBPHcIF3KXLmgs6Q== +"@microsoft/api-extractor@^7.3.9": + version "7.4.2" + resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.4.2.tgz#440023cf05c69840e054cdb5f85cab9680227a40" + integrity sha512-O8OEaFvsvWEuwkOcVyWegIAFDY6TBZBvSIoOKLsSQYiQZtryGf13e2ym83iewhbUN7RmuOJtyQUKlBvcJbpgQA== dependencies: - "@microsoft/api-extractor-model" "7.1.0" - "@microsoft/node-core-library" "3.13.0" - "@microsoft/ts-command-line" "4.2.3" - "@microsoft/tsdoc" "0.12.9" + "@microsoft/api-extractor-model" "7.4.1" + "@microsoft/node-core-library" "3.14.2" + "@microsoft/ts-command-line" "4.2.8" + "@microsoft/tsdoc" "0.12.14" colors "~1.2.1" - lodash "~4.17.5" + lodash "~4.17.15" resolve "1.8.1" source-map "~0.6.1" - typescript "~3.4.3" + typescript "~3.5.3" -"@microsoft/node-core-library@3.13.0": - version "3.13.0" - resolved "https://registry.yarnpkg.com/@microsoft/node-core-library/-/node-core-library-3.13.0.tgz#ba24e16182149dc817bf52a886d22aced5cd8070" - integrity sha512-mnsL/1ikVWHl8sPNssavaAgtUaIM3hkQ8zeySuApU5dNmsMPzovJPfx9m5JGiMvs1v5QNAIVeiS9jnWwe/7anw== +"@microsoft/node-core-library@3.14.2": + version "3.14.2" + resolved "https://registry.yarnpkg.com/@microsoft/node-core-library/-/node-core-library-3.14.2.tgz#255d421963f2d447a19f935e3c8eb3053e8e381b" + integrity sha512-bd8XhqhIvXsWg/SSNsZJdJxkN8Ucj7XKQkRe4cdYiKqpVdAREvW/shw8AoZIdgvjLI53029I/MO2Wn/AjGD3Jw== dependencies: "@types/fs-extra" "5.0.4" "@types/jju" "~1.4.0" @@ -1024,20 +1024,20 @@ jju "~1.4.0" z-schema "~3.18.3" -"@microsoft/ts-command-line@4.2.3": - version "4.2.3" - resolved "https://registry.yarnpkg.com/@microsoft/ts-command-line/-/ts-command-line-4.2.3.tgz#20d6a1684148b9fc0df25ee7335c3bb227d47d4f" - integrity sha512-SIs4q7RcG7efBbh5Ffrf6V4jVLxWihD4NDRY3+gPiOG8CYawBzE22tTEloZ1yj/FBvBZQkQ0GYwXoPhn6ElYXA== +"@microsoft/ts-command-line@4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@microsoft/ts-command-line/-/ts-command-line-4.2.8.tgz#92f4c85d0a4b893090fe6605f255e272b270495e" + integrity sha512-K4sc8/OJ/y5uQPWJFACMExS2UIqF+t3vdQ2A9Mhl9tMsp70CXf0sp6Y9ENYju1K7XWwR5Clh8dkP2jO1Ntlg1g== dependencies: "@types/argparse" "1.0.33" "@types/node" "8.5.8" argparse "~1.0.9" colors "~1.2.1" -"@microsoft/tsdoc@0.12.9": - version "0.12.9" - resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.12.9.tgz#f92538bebf649b1b9d00bdd34a9c9971aef17d01" - integrity sha512-sDhulvuVk65eMppYOE6fr6mMI6RUqs53KUg9deYzNCBpP+2FhR0OFB5innEfdtSedk0LK+1Ppu6MxkfiNjS/Cw== +"@microsoft/tsdoc@0.12.14": + version "0.12.14" + resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.12.14.tgz#0e0810a0a174e50e22dfe8edb30599840712f22d" + integrity sha512-518yewjSga1jLdiLrcmpMFlaba5P+50b0TWNFUpC+SL9Yzf0kMi57qw+bMl+rQ08cGqH1vLx4eg9YFUbZXgZ0Q== "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" @@ -1163,13 +1163,13 @@ "@angular-devkit/core" "8.0.0-rc.0" "@angular-devkit/schematics" "8.0.0-rc.0" -"@schematics/angular@^8.2.1": - version "8.2.1" - resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-8.2.1.tgz#e795542451891405e0b28971d4bddad0bf96abb3" - integrity sha512-5B8FBsfFdm+FbzzhLox9Mmq083ftSCgOwA7WIpqJqwIag9ocnhBK/k5tdZ85g3DaNITcCno1acIsM9k5C0PpDQ== +"@schematics/angular@^9.0.0-next.5": + version "9.0.0-next.5" + resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-9.0.0-next.5.tgz#ceabc18ad16899a4ae53ed93080896b809531f7f" + integrity sha512-T9wwTuNVvp7vcrsIaoI51d+OedTEkfaT7krGYoXCW/HitGcCq2znJiX6888IOcZe0uQFnuJ7ts5C7Q111b447g== dependencies: - "@angular-devkit/core" "8.2.1" - "@angular-devkit/schematics" "8.2.1" + "@angular-devkit/core" "9.0.0-next.5" + "@angular-devkit/schematics" "9.0.0-next.5" "@sindresorhus/is@^0.7.0": version "0.7.0" @@ -3062,10 +3062,10 @@ code-point-at@^1.0.0: resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= -codelyzer@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/codelyzer/-/codelyzer-5.1.0.tgz#a0eb89497622679ea4c53b6974aa45598f06a4b5" - integrity sha512-QiyY2/oDQnYx4mAVEDqr+z9MwrOto18tQFjExiuRChXCy0yvngS5fQpWIxvAGpbOmZFiR1PRTRLbEI71u10maA== +codelyzer@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/codelyzer/-/codelyzer-5.1.1.tgz#a599fa8c2a5847f553a792b934e493d1506a4a62" + integrity sha512-t8ZLSZBUjVFOJVk4jASLgmTdKWK/0ZsQCnPXy6PXw1LWOOormQOVnyy4OYoiZ6rAWTrz60Obx+zA2t8xY53QzQ== dependencies: app-root-path "^2.2.1" aria-query "^3.0.0" @@ -7707,7 +7707,7 @@ lodash@^3.10.1: resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y= -lodash@^4.0.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.16.6, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.5.0, lodash@^4.8.0, lodash@~4.17.10, lodash@~4.17.5: +lodash@^4.0.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.16.6, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.5.0, lodash@^4.8.0, lodash@~4.17.10: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== @@ -7717,6 +7717,11 @@ lodash@~1.0.1: resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551" integrity sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE= +lodash@~4.17.15: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + log-driver@1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8" @@ -11936,16 +11941,11 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@3.5.3, typescript@^3.0.3, typescript@^3.2.2, typescript@^3.4.5: +typescript@3.5.3, typescript@^3.0.3, typescript@^3.2.2, typescript@^3.4.5, typescript@~3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977" integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g== -typescript@~3.4.3: - version "3.4.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.4.5.tgz#2d2618d10bb566572b8d7aad5180d84257d70a99" - integrity sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw== - ua-parser-js@0.7.17: version "0.7.17" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac" @@ -12950,7 +12950,7 @@ zip-stream@^1.2.0: lodash "^4.8.0" readable-stream "^2.0.0" -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== +zone.js@~0.10.2: + version "0.10.2" + resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.10.2.tgz#67ca084b3116fc33fc40435e0d5ea40a207e392e" + integrity sha512-UAYfiuvxLN4oyuqhJwd21Uxb4CNawrq6fPS/05Su5L4G+1TN+HVDJMUHNMobVQDFJRir2cLAODXwluaOKB7HFg==