From 42619bd670b210d34ee8bbbef319dbeab67ac7d0 Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Fri, 10 Feb 2023 15:09:58 +0000 Subject: [PATCH] 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 --- WORKSPACE | 1 - aio/package.json | 1 + aio/scripts/test-production.sh | 3 +- aio/tests/deployment/e2e/BUILD.bazel | 32 +++ aio/tests/deployment/e2e/on-prepare.js | 35 ++++ aio/tests/deployment/e2e/protractor.conf.js | 65 ------ aio/tests/deployment/shared/BUILD.bazel | 16 +- aio/tests/deployment/shared/helpers.ts | 50 ++--- aio/tests/deployment/unit/BUILD.bazel | 33 ++- aio/tests/deployment/unit/test.js | 28 --- .../unit/testServiceWorkerRoutes.spec.ts | 2 +- aio/tools/examples/shared/package.json | 1 - aio/tools/examples/shared/yarn.lock | 188 ++---------------- aio/tools/firebase-test-utils/BUILD.bazel | 43 ++-- .../firebase-test-utils/FirebaseRedirect.ts | 27 +-- .../FirebaseRedirectSource.ts | 4 +- aio/tools/firebase-test-utils/test.js | 28 --- aio/tools/firebase-test-utils/tsconfig.json | 7 +- package.json | 6 +- renovate.json | 5 +- scripts/puppeteer-chromedriver-versions.js | 18 -- tools/defaults.bzl | 2 - yarn.lock | 86 ++++---- 23 files changed, 223 insertions(+), 458 deletions(-) create mode 100644 aio/tests/deployment/e2e/BUILD.bazel create mode 100644 aio/tests/deployment/e2e/on-prepare.js delete mode 100644 aio/tests/deployment/e2e/protractor.conf.js delete mode 100644 aio/tests/deployment/unit/test.js delete mode 100644 aio/tools/firebase-test-utils/test.js delete mode 100644 scripts/puppeteer-chromedriver-versions.js diff --git a/WORKSPACE b/WORKSPACE index e3e0a4d374d..2c409ee5eb0 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -76,7 +76,6 @@ yarn_install( data = [ YARN_LABEL, "//:.yarnrc", - "//:scripts/puppeteer-chromedriver-versions.js", "//tools:postinstall-patches.js", "//tools/esm-interop:patches/npm/@angular+build-tooling+0.0.0-246cebbf2a78566ff1fe9b88fdde2459606568dc.patch", "//tools/esm-interop:patches/npm/@bazel+concatjs+5.7.1.patch", diff --git a/aio/package.json b/aio/package.json index 44565f76877..c41059d8940 100644 --- a/aio/package.json +++ b/aio/package.json @@ -26,6 +26,7 @@ "test-a11y-score-localhost": "bazel test //aio:test-a11y-score-localhost", "test-pwa-score": "sh -c 'bazel run //aio/scripts:audit-web-app ${0} all:0,pwa:${1}'", "test-pwa-score-localhost": "bazel test //aio:test-pwa-score-localhost", + "test-production-url": "bazel test //aio/tests/deployment/e2e", "example-e2e": "node --experimental-import-meta-resolve tools/examples/run-filtered-example-e2es.mjs", "example-list-overrides": "bazel run //aio/tools/examples:example-boilerplate list-overrides", "example-lint": "eslint content/examples", diff --git a/aio/scripts/test-production.sh b/aio/scripts/test-production.sh index bd5b5346807..4de1f5427c0 100755 --- a/aio/scripts/test-production.sh +++ b/aio/scripts/test-production.sh @@ -14,13 +14,12 @@ set +x -eu -o pipefail # Install dependencies. echo -e "\nInstalling dependencies in '$aioDir'...\n-----" yarn install --frozen-lockfile --non-interactive - yarn update-webdriver # Run checks for target URL. echo -e "\nChecking '$targetUrl'...\n-----" # Run basic e2e and deployment config tests. - yarn protractor "$protractorConf" --baseUrl "$targetUrl" + yarn test-production-url --test_env=TARGET_URL="$targetUrl" # Run PWA-score tests. yarn test-pwa-score "$targetUrl" "$minPwaScore" diff --git a/aio/tests/deployment/e2e/BUILD.bazel b/aio/tests/deployment/e2e/BUILD.bazel new file mode 100644 index 00000000000..7fec704ca54 --- /dev/null +++ b/aio/tests/deployment/e2e/BUILD.bazel @@ -0,0 +1,32 @@ +load("//tools:defaults.bzl", "protractor_web_test_suite", "ts_library") + +ts_library( + name = "e2e_lib", + testonly = True, + srcs = glob(["*.ts"]), + deps = ["@npm//protractor"], +) + +TEST_TAGS = [ + # Test is run manually in `test-production.sh`, + "manual", + # Cannot run remotely because `protractor_web_test_suite` does not support `exec_properties`. + "no-remote-exec", + # This test requires an external host. If running in sandbox, allow network access. + "requires-network", +] + +protractor_web_test_suite( + name = "e2e", + data = [ + "//aio/tests/deployment/shared", + "@aio_npm//cjson", + ], + on_prepare = "on-prepare.js", + tags = TEST_TAGS, + test_suite_tags = TEST_TAGS, + wrapped_test_tags = TEST_TAGS, + deps = [ + ":e2e_lib", + ], +) diff --git a/aio/tests/deployment/e2e/on-prepare.js b/aio/tests/deployment/e2e/on-prepare.js new file mode 100644 index 00000000000..b2739a70afb --- /dev/null +++ b/aio/tests/deployment/e2e/on-prepare.js @@ -0,0 +1,35 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +module.exports = async function () { + const targetUrl = process.env.TARGET_URL; + if (!targetUrl) { + throw new Error('No target URL via `TARGET_URL` environment variable set.'); + } + + protractor.browser.baseUrl = targetUrl; + + const {loadLegacyUrls, loadRemoteSitemapUrls} = await import('../shared/helpers.mjs'); + const [sitemapUrls, legacyUrls] = await Promise.all([ + loadRemoteSitemapUrls(browser.baseUrl), + loadLegacyUrls(), + ]); + + console.info('Determined testing URLs', {sitemapUrls, legacyUrls}); + + if (sitemapUrls.length <= 100) { + throw new Error(`Too few sitemap URLs. (Expected: >100 | Found: ${sitemapUrls.length})`); + } else if (legacyUrls.length <= 100) { + throw new Error(`Too few legacy URLs. (Expected: >100 | Found: ${legacyUrls.length})`); + } + + protractor.browser.params = { + sitemapUrls: sitemapUrls, + legacyUrls: legacyUrls, + }; +}; diff --git a/aio/tests/deployment/e2e/protractor.conf.js b/aio/tests/deployment/e2e/protractor.conf.js deleted file mode 100644 index 82a9399af7a..00000000000 --- a/aio/tests/deployment/e2e/protractor.conf.js +++ /dev/null @@ -1,65 +0,0 @@ -// @ts-check -// Protractor configuration file, see link for more information -// https://github.com/angular/protractor/blob/master/lib/config.ts - -/** - * @type { import("protractor").Config } - */ -exports.config = { - allScriptsTimeout: 11000, - suites: { - full: './*.e2e-spec.ts', - smoke: './smoke-tests.e2e-spec.ts', - }, - suite: 'full', - capabilities: { - browserName: 'chrome', - chromeOptions: { - binary: require('puppeteer').executablePath(), - // See /integration/README.md#browser-tests for more info on these args - args: ['--no-sandbox', '--headless', '--disable-gpu', '--disable-dev-shm-usage', '--hide-scrollbars', '--mute-audio'], - }, - }, - directConnect: true, - SELENIUM_PROMISE_MANAGER: false, - framework: 'jasmine', - jasmineNodeOpts: { - showColors: true, - defaultTimeoutInterval: 30000, - print: function() {} - }, - params: { - sitemapUrls: [], - legacyUrls: [], - }, - beforeLaunch() { - const {join} = require('path'); - const {register} = require('ts-node'); - - register({project: join(__dirname, './tsconfig.json')}); - }, - onPrepare() { - const {SpecReporter, StacktraceOption} = require('jasmine-spec-reporter'); - const {browser} = require('protractor'); - const {loadLegacyUrls, loadRemoteSitemapUrls} = require('../shared/helpers'); - - return Promise.all([ - browser.getProcessedConfig(), - loadRemoteSitemapUrls(browser.baseUrl), - loadLegacyUrls(), - ]).then(([config, sitemapUrls, legacyUrls]) => { - if (sitemapUrls.length <= 100) { - throw new Error(`Too few sitemap URLs. (Expected: >100 | Found: ${sitemapUrls.length})`); - } else if (legacyUrls.length <= 100) { - throw new Error(`Too few legacy URLs. (Expected: >100 | Found: ${legacyUrls.length})`); - } - - Object.assign(config.params, {sitemapUrls, legacyUrls}); - jasmine.getEnv().addReporter(new SpecReporter({ - spec: { - displayStacktrace: StacktraceOption.PRETTY, - }, - })); - }); - } -}; diff --git a/aio/tests/deployment/shared/BUILD.bazel b/aio/tests/deployment/shared/BUILD.bazel index a679a06e4db..cc10ad4f317 100644 --- a/aio/tests/deployment/shared/BUILD.bazel +++ b/aio/tests/deployment/shared/BUILD.bazel @@ -1,10 +1,18 @@ +load("//tools:defaults.bzl", "ts_library") + package(default_visibility = ["//aio/tests/deployment:__subpackages__"]) -filegroup( +ts_library( name = "shared", - srcs = [ + testonly = True, + srcs = glob(["*.ts"]), + data = [ "URLS_TO_REDIRECT.txt", - "cjson.d.ts", - "helpers.ts", + "@aio_npm//cjson", + ], + deps = [ + "//aio/tools/firebase-test-utils", + "//packages/service-worker/config", + "@npm//canonical-path", ], ) diff --git a/aio/tests/deployment/shared/helpers.ts b/aio/tests/deployment/shared/helpers.ts index d9033f7fb04..05ea1ec4c84 100644 --- a/aio/tests/deployment/shared/helpers.ts +++ b/aio/tests/deployment/shared/helpers.ts @@ -1,18 +1,21 @@ // tslint:disable-next-line: no-reference /// -import { resolve as resolvePath } from 'canonical-path'; -import { load as loadJson } from 'cjson'; -import { readFileSync } from 'fs'; -import { get as httpGet } from 'http'; -import { get as httpsGet } from 'https'; +import canonicalPath from 'canonical-path'; +import {load as loadJson} from 'cjson'; +import {readFileSync} from 'fs'; +import {get as httpGet} from 'http'; +import {get as httpsGet} from 'https'; +import {fileURLToPath} from 'url'; -import { processNavigationUrls } from '../../../../packages/service-worker/config/src/generator'; -import { FirebaseRedirector, FirebaseRedirectConfig } from '../../../tools/firebase-test-utils/FirebaseRedirector'; +import {processNavigationUrls} from '../../../../packages/service-worker/config/src/generator'; +import {FirebaseRedirectConfig, FirebaseRedirector} from '../../../tools/firebase-test-utils/FirebaseRedirector'; -const AIO_DIR = resolvePath('aio'); -export const PATH_TO_LEGACY_URLS = resolvePath(__dirname, 'URLS_TO_REDIRECT.txt'); +const AIO_DIR = canonicalPath.resolve('aio'); +const containingDir = canonicalPath.dirname(fileURLToPath(import.meta.url)); + +export const PATH_TO_LEGACY_URLS = canonicalPath.resolve(containingDir, 'URLS_TO_REDIRECT.txt'); export function getRedirector() { return new FirebaseRedirector(loadRedirects()); @@ -22,16 +25,13 @@ export function getSwNavigationUrlChecker() { const config = loadJson(`${AIO_DIR}/src/generated/ngsw-config.json`); const navigationUrlSpecs = processNavigationUrls('', config.navigationUrls); - const includePatterns = navigationUrlSpecs - .filter(spec => spec.positive) - .map(spec => new RegExp(spec.regex)); - const excludePatterns = navigationUrlSpecs - .filter(spec => !spec.positive) - .map(spec => new RegExp(spec.regex)); + const includePatterns = + navigationUrlSpecs.filter(spec => spec.positive).map(spec => new RegExp(spec.regex)); + const excludePatterns = + navigationUrlSpecs.filter(spec => !spec.positive).map(spec => new RegExp(spec.regex)); - return (url: string) => - includePatterns.some(regex => regex.test(url)) - && !excludePatterns.some(regex => regex.test(url)); + return (url: string) => includePatterns.some(regex => regex.test(url)) && + !excludePatterns.some(regex => regex.test(url)); } export function loadRedirects(): FirebaseRedirectConfig[] { @@ -42,9 +42,9 @@ export function loadRedirects(): FirebaseRedirectConfig[] { export function loadLegacyUrls() { const urls = readFileSync(PATH_TO_LEGACY_URLS, 'utf8') - .split('\n') - .filter(line => line.trim() !== '') - .map(line => line.split(/\s*-->\s*/)); + .split('\n') + .filter(line => line.trim() !== '') + .map(line => line.split(/\s*-->\s*/)); return urls; } @@ -61,10 +61,10 @@ export async function loadRemoteSitemapUrls(host: string) { const xml = await new Promise((resolve, reject) => { let responseText = ''; - get(urlToSiteMap, res => res - .on('data', chunk => responseText += chunk) - .on('end', () => resolve(responseText)) - .on('error', reject)); + get(urlToSiteMap, + res => res.on('data', chunk => responseText += chunk) + .on('end', () => resolve(responseText)) + .on('error', reject)); }); return extractSitemapUrls(xml); diff --git a/aio/tests/deployment/unit/BUILD.bazel b/aio/tests/deployment/unit/BUILD.bazel index 127823ec29d..992e2ef5dc5 100644 --- a/aio/tests/deployment/unit/BUILD.bazel +++ b/aio/tests/deployment/unit/BUILD.bazel @@ -1,27 +1,22 @@ -load("//tools:defaults.bzl", "nodejs_test") +load("//tools:defaults.bzl", "jasmine_node_test", "ts_library") -nodejs_test( +package(default_visibility = ["//aio/tests/deployment:__subpackages__"]) + +ts_library( + name = "unit_lib", + testonly = True, + srcs = glob(["*.ts"]), + deps = [ + "//aio/tests/deployment/shared", + ], +) + +jasmine_node_test( name = "test", data = [ - "testFirebaseRedirection.spec.ts", - "testServiceWorkerRoutes.spec.ts", - "tsconfig.json", "//aio:dgeni", "//aio:firebase.json", - "//aio:tsconfig.json", "//aio/src/generated:ngsw-config", - "//aio/tests/deployment/shared", - "//aio/tools/firebase-test-utils:sources", - "//packages/service-worker/config:sources", - "@aio_npm//@types/jasmine", - "@aio_npm//canonical-path", - "@aio_npm//cjson", - "@aio_npm//jasmine", - "@aio_npm//ts-node", - "@aio_npm//xregexp", ], - # This test script runs ts-node which seems to bypass rules_nodejs require - # patching and cannot find deps. Enable the linker for this target. - enable_linker = True, - entry_point = "test.js", + deps = [":unit_lib"], ) diff --git a/aio/tests/deployment/unit/test.js b/aio/tests/deployment/unit/test.js deleted file mode 100644 index 2745b96cc7b..00000000000 --- a/aio/tests/deployment/unit/test.js +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Use this script to run the tests for redirects. - * - * We cannot use `jasmine-ts`, because it does not support passing a glob pattern any more (see - * https://github.com/svi3c/jasmine-ts/issues/33#issuecomment-511374288) and thus requires a - * `jasmine.json` config file, which does not allow us to set the `projectBaseDir`. This in turn - * means that you have to run the command from a specific directory (so that the spec paths are - * resolved correctly). - * - * Using a file like this gives us full control. - */ - -const Jasmine = require('jasmine'); -const {join} = require('path'); -const {register} = require('ts-node'); - -const runfilesRoot = process.cwd(); -const dirname = join(runfilesRoot, 'aio', 'tests', 'deployment', 'unit'); - -register({project: join(dirname, 'tsconfig.json')}); - -const runner = new Jasmine({projectBaseDir: dirname}); -runner.loadConfig({spec_files: ['**/*.spec.ts']}); -runner.execute().catch((error) => { - // Something broke so non-zero exit to prevent the process from succeeding. - console.error(error); - process.exit(1); -}); diff --git a/aio/tests/deployment/unit/testServiceWorkerRoutes.spec.ts b/aio/tests/deployment/unit/testServiceWorkerRoutes.spec.ts index a56db2ea09f..5ff6373cb90 100644 --- a/aio/tests/deployment/unit/testServiceWorkerRoutes.spec.ts +++ b/aio/tests/deployment/unit/testServiceWorkerRoutes.spec.ts @@ -1,4 +1,4 @@ -import { getSwNavigationUrlChecker, loadLegacyUrls, loadLocalSitemapUrls } from '../shared/helpers'; +import {getSwNavigationUrlChecker, loadLegacyUrls, loadLocalSitemapUrls} from '../shared/helpers'; describe('ServiceWorker navigation URLs', () => { const isNavigationUrl = getSwNavigationUrlChecker(); diff --git a/aio/tools/examples/shared/package.json b/aio/tools/examples/shared/package.json index 4ae4f327dee..7997a02313a 100644 --- a/aio/tools/examples/shared/package.json +++ b/aio/tools/examples/shared/package.json @@ -76,7 +76,6 @@ "lite-server": "^2.6.1", "lodash": "^4.16.2", "protractor": "~7.0.0", - "puppeteer": "10.2.0", "rimraf": "^4.0.0", "rollup": "^2.70.1", "rollup-plugin-terser": "^7.0.2", diff --git a/aio/tools/examples/shared/yarn.lock b/aio/tools/examples/shared/yarn.lock index 4b14295e28c..bca6c7aeafc 100644 --- a/aio/tools/examples/shared/yarn.lock +++ b/aio/tools/examples/shared/yarn.lock @@ -2049,13 +2049,6 @@ dependencies: "@types/node" "*" -"@types/yauzl@^2.9.1": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599" - integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw== - dependencies: - "@types/node" "*" - "@webassemblyjs/ast@1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" @@ -2636,7 +2629,7 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bl@^4.0.3, bl@^4.1.0: +bl@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== @@ -2841,17 +2834,12 @@ btoa@^1.2.1: resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73" integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g== -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== - buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer@^5.2.1, buffer@^5.5.0: +buffer@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -3016,11 +3004,6 @@ chokidar@3.5.3, "chokidar@>=3.0.0 <4.0.0", chokidar@^3.0.0, chokidar@^3.5.1, cho optionalDependencies: fsevents "~2.3.2" -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - chownr@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" @@ -3486,13 +3469,6 @@ debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, d dependencies: ms "2.1.2" -debug@4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - debug@4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" @@ -3617,11 +3593,6 @@ dev-ip@^1.0.1: resolved "https://registry.yarnpkg.com/dev-ip/-/dev-ip-1.0.1.tgz#a76a3ed1855be7a012bb8ac16cb80f3c00dc28f0" integrity sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A== -devtools-protocol@0.0.901419: - version "0.0.901419" - resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.901419.tgz#79b5459c48fe7e1c5563c02bd72f8fec3e0cebcd" - integrity sha512-4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ== - di@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" @@ -3791,13 +3762,6 @@ encoding@^0.1.13: dependencies: iconv-lite "^0.6.2" -end-of-stream@^1.1.0, end-of-stream@^1.4.1: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - engine.io-client@~6.2.1: version "6.2.2" resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.2.2.tgz#c6c5243167f5943dcd9c4abee1bfc634aa2cbdd0" @@ -4227,17 +4191,6 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" -extract-zip@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" - integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== - dependencies: - debug "^4.1.1" - get-stream "^5.1.0" - yauzl "^2.10.0" - optionalDependencies: - "@types/yauzl" "^2.9.1" - extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -4288,13 +4241,6 @@ faye-websocket@^0.11.3: dependencies: websocket-driver ">=0.5.1" -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== - dependencies: - pend "~1.2.0" - figures@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" @@ -4429,11 +4375,6 @@ fresh@0.5.2, fresh@^0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - fs-extra@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291" @@ -4517,13 +4458,6 @@ get-package-type@^0.1.0: resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== -get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - get-stream@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" @@ -4853,14 +4787,6 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -https-proxy-agent@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== - dependencies: - agent-base "6" - debug "4" - https-proxy-agent@5.0.1, https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" @@ -6106,11 +6032,6 @@ node-addon-api@^3.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== -node-fetch@2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" - integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== - node-forge@^1: version "1.3.1" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" @@ -6339,7 +6260,7 @@ on-headers@~1.0.2: resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== @@ -6577,11 +6498,6 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== - performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" @@ -6630,7 +6546,7 @@ piscina@3.2.0, piscina@~3.2.0: optionalDependencies: nice-napi "^1.0.2" -pkg-dir@4.2.0, pkg-dir@^4.1.0: +pkg-dir@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== @@ -6747,11 +6663,6 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -progress@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.1.tgz#c9242169342b1c29d275889c95734621b1952e31" - integrity sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg== - promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" @@ -6794,11 +6705,6 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" -proxy-from-env@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" @@ -6809,37 +6715,11 @@ psl@^1.1.28, psl@^1.1.33: resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -puppeteer@10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-10.2.0.tgz#7d8d7fda91e19a7cfd56986e0275448e6351849e" - integrity sha512-OR2CCHRashF+f30+LBOtAjK6sNtz2HEyTr5FqAvhf8lR/qB3uBRoIZOwQKgwoyZnMBsxX7ZdazlyBgGjpnkiMw== - dependencies: - debug "4.3.1" - devtools-protocol "0.0.901419" - extract-zip "2.0.1" - https-proxy-agent "5.0.0" - node-fetch "2.6.1" - pkg-dir "4.2.0" - progress "2.0.1" - proxy-from-env "1.1.0" - rimraf "3.0.2" - tar-fs "2.0.0" - unbzip2-stream "1.3.3" - ws "7.4.6" - q@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" @@ -6942,7 +6822,7 @@ readable-stream@^2.0.1, readable-stream@~2.3.6: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: +readable-stream@^3.0.6, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -7143,13 +7023,6 @@ rfdc@^1.3.0: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== -rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -7157,6 +7030,13 @@ rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4: dependencies: glob "^7.1.3" +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + rimraf@^4.0.0: version "4.0.4" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.0.4.tgz#8d0a91709fdc294d40f59c773f63c44e8dc878f1" @@ -7898,27 +7778,6 @@ tapable@^2.1.1, tapable@^2.2.0: resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -tar-fs@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.0.tgz#677700fc0c8b337a78bee3623fdc235f21d7afad" - integrity sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA== - dependencies: - chownr "^1.1.1" - mkdirp "^0.5.1" - pump "^3.0.0" - tar-stream "^2.0.0" - -tar-stream@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" - integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== - dependencies: - bl "^4.0.3" - end-of-stream "^1.4.1" - fs-constants "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.1.1" - tar@^6.1.11, tar@^6.1.2: version "6.1.11" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" @@ -8000,7 +7859,7 @@ through2@^2.0.1: readable-stream "~2.3.6" xtend "~4.0.1" -through@^2.3.6, through@^2.3.8: +through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== @@ -8180,14 +8039,6 @@ ua-parser-js@^0.7.30: resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.31.tgz#649a656b191dffab4f21d5e053e27ca17cbff5c6" integrity sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ== -unbzip2-stream@1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz#d156d205e670d8d8c393e1c02ebd506422873f6a" - integrity sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg== - dependencies: - buffer "^5.2.1" - through "^2.3.8" - unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" @@ -8679,11 +8530,6 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -ws@7.4.6: - version "7.4.6" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" - integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== - ws@^7.4.6: version "7.5.8" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.8.tgz#ac2729881ab9e7cbaf8787fe3469a48c5c7f636a" @@ -8854,14 +8700,6 @@ yargs@^17.2.1, yargs@^17.3.1: y18n "^5.0.5" yargs-parser "^21.0.0" -yauzl@^2.10.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" - yn@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" diff --git a/aio/tools/firebase-test-utils/BUILD.bazel b/aio/tools/firebase-test-utils/BUILD.bazel index 5256a9373b6..87c88c3c01e 100644 --- a/aio/tools/firebase-test-utils/BUILD.bazel +++ b/aio/tools/firebase-test-utils/BUILD.bazel @@ -1,4 +1,29 @@ -load("//tools:defaults.bzl", "nodejs_test") +load("//tools:defaults.bzl", "jasmine_node_test", "ts_library") + +package(default_visibility = ["//aio/tests/deployment:__subpackages__"]) + +ts_library( + name = "firebase-test-utils", + srcs = glob( + ["*.ts"], + exclude = ["*.spec.ts"], + ), + deps = [ + "@npm//@types/xregexp", + "@npm//xregexp", + ], +) + +ts_library( + name = "test_lib", + testonly = True, + srcs = glob( + ["*.spec.ts"], + ), + deps = [ + ":firebase-test-utils", + ], +) filegroup( name = "sources", @@ -6,19 +31,9 @@ filegroup( visibility = ["//aio/tests/deployment/unit:__pkg__"], ) -nodejs_test( +jasmine_node_test( name = "test", - data = [ - "tsconfig.json", - ":sources", - "//aio:tsconfig.json", - "@aio_npm//@types/jasmine", - "@aio_npm//jasmine", - "@aio_npm//ts-node", - "@aio_npm//xregexp", + deps = [ + ":test_lib", ], - # This test script runs ts-node which seems to bypass rules_nodejs require - # patching and cannot find deps. Enable the linker for this target. - enable_linker = True, - entry_point = "test.js", ) diff --git a/aio/tools/firebase-test-utils/FirebaseRedirect.ts b/aio/tools/firebase-test-utils/FirebaseRedirect.ts index 71b5837bed3..8a468f36c59 100644 --- a/aio/tools/firebase-test-utils/FirebaseRedirect.ts +++ b/aio/tools/firebase-test-utils/FirebaseRedirect.ts @@ -1,6 +1,7 @@ -import * as XRegExp from 'xregexp'; -import { FirebaseRedirectConfig } from './FirebaseRedirector'; -import { FirebaseRedirectSource } from './FirebaseRedirectSource'; +import XRegExp from 'xregexp'; + +import {FirebaseRedirectConfig} from './FirebaseRedirector'; +import {FirebaseRedirectSource} from './FirebaseRedirectSource'; export class FirebaseRedirect { source: FirebaseRedirectSource; @@ -8,25 +9,27 @@ export class FirebaseRedirect { constructor(readonly rawConfig: FirebaseRedirectConfig) { this.source = (rawConfig.regex === undefined) ? - FirebaseRedirectSource.fromGlobPattern(rawConfig.source) : - FirebaseRedirectSource.fromRegexPattern(rawConfig.regex); + FirebaseRedirectSource.fromGlobPattern(rawConfig.source) : + FirebaseRedirectSource.fromRegexPattern(rawConfig.regex); this.destination = rawConfig.destination; } - replace(url: string): string | undefined { + replace(url: string): string|undefined { const match = this.source.match(url); if (!match) { return undefined; } - const namedReplacers = this.source.namedGroups.map<[RegExp, string]>((name) => [ - XRegExp(`:${name}`, 'g'), - match[name], + const namedReplacers = this.source.namedGroups.map<[RegExp, string]>( + (name) => + [XRegExp(`:${name}`, 'g'), + match[name], ]); - const restReplacers = this.source.restNamedGroups.map<[RegExp, string]>((name) => [ - XRegExp(`:${name}\\*`, 'g'), - match[name], + const restReplacers = this.source.restNamedGroups.map<[RegExp, string]>( + (name) => + [XRegExp(`:${name}\\*`, 'g'), + match[name], ]); return XRegExp.replaceEach(this.destination, [...namedReplacers, ...restReplacers]); } diff --git a/aio/tools/firebase-test-utils/FirebaseRedirectSource.ts b/aio/tools/firebase-test-utils/FirebaseRedirectSource.ts index 5a963535a0e..86bfd902468 100644 --- a/aio/tools/firebase-test-utils/FirebaseRedirectSource.ts +++ b/aio/tools/firebase-test-utils/FirebaseRedirectSource.ts @@ -1,4 +1,4 @@ -import * as XRegExp from 'xregexp'; +import XRegExp from 'xregexp'; // The `XRegExp` typings are not accurate. interface XRegExp extends RegExp { @@ -44,7 +44,7 @@ export class FirebaseRedirectSource { }) .replace(namedParam, '$1(?<$2>[^/]+)') .replace(doubleStar, '$1.🐷$2') // use the pig to avoid replacing ** in next rule - .replace(star, '[^/]*') // match a single segment + .replace(star, '[^/]*') // match a single segment .replace(possiblyEmptyInitialSegments, '(?:.*)') // deal with **/ special cases .replace(possiblyEmptySegments, '(?:/|/.*/)') // deal with /**/ special cases .replace(willBeStar, '*'); // other ** matches diff --git a/aio/tools/firebase-test-utils/test.js b/aio/tools/firebase-test-utils/test.js deleted file mode 100644 index 951b874af73..00000000000 --- a/aio/tools/firebase-test-utils/test.js +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Use this script to run the tests for Firebase test utils. - * - * We cannot use `jasmine-ts`, because it does not support passing a glob pattern any more (see - * https://github.com/svi3c/jasmine-ts/issues/33#issuecomment-511374288) and thus requires a - * `jasmine.json` config file, which does not allow us to set the `projectBaseDir`. This in turn - * means that you have to run the command from a specific directory (so that the spec paths are - * resolved correctly). - * - * Using a file like this gives us full control. - */ - -const Jasmine = require('jasmine'); -const {join} = require('path'); -const {register} = require('ts-node'); - -const runfilesRoot = process.cwd(); -const dirname = join(runfilesRoot, 'aio', 'tools', 'firebase-test-utils'); - -register({project: join(dirname, 'tsconfig.json')}); - -const runner = new Jasmine({projectBaseDir: dirname}); -runner.loadConfig({spec_files: ['**/*.spec.ts']}); -runner.execute().catch((error) => { - // Something broke so non-zero exit to prevent the process from succeeding. - console.error(error); - process.exit(1); -}); diff --git a/aio/tools/firebase-test-utils/tsconfig.json b/aio/tools/firebase-test-utils/tsconfig.json index cd8070eb689..a48b87610a5 100644 --- a/aio/tools/firebase-test-utils/tsconfig.json +++ b/aio/tools/firebase-test-utils/tsconfig.json @@ -1,9 +1,8 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "module": "commonjs" + "esModuleInterop": true, + "module": "ES2020" }, - "include": [ - "**/*.ts" - ] + "include": ["**/*.ts"] } diff --git a/package.json b/package.json index 6dc1865e22b..e2ddfc7b715 100644 --- a/package.json +++ b/package.json @@ -91,7 +91,6 @@ "@types/chrome": "^0.0.208", "@types/convert-source-map": "^1.5.1", "@types/diff": "^5.0.0", - "@types/events": "3.0.0", "@types/filesystem": "^0.0.32", "@types/hammerjs": "2.0.41", "@types/jasmine": "^4.0.0", @@ -148,7 +147,6 @@ "ngx-flamegraph": "0.0.11", "nodejs-websocket": "^1.7.2", "protractor": "^7.0.0", - "puppeteer": "18.0.5", "reflect-metadata": "^0.1.3", "requirejs": "^2.3.6", "rollup": "~2.79.0", @@ -184,6 +182,7 @@ "@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", @@ -208,7 +207,8 @@ "tslint-no-toplevel-property-access": "0.0.2", "typed-graphqlify": "^3.1.1", "vlq": "2.0.4", - "vrsource-tslint-rules": "6.0.0" + "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.", diff --git a/renovate.json b/renovate.json index 8c2c19d85f1..8dcef0ca272 100644 --- a/renovate.json +++ b/renovate.json @@ -15,9 +15,7 @@ "timezone": "America/Tijuana", "lockFileMaintenance": {"enabled": true}, "labels": ["target: patch", "area: build & ci", "action: review"], - "ignorePaths": [ - "aio/content/demos/first-app/package.json" - ], + "ignorePaths": ["aio/content/demos/first-app/package.json"], "ignoreDeps": [ "@angular/animations-12", "@angular/common-12", @@ -37,7 +35,6 @@ "angular-mocks-1.6", "angular-mocks-1.7", "angular-mocks-1.8", - "puppeteer", "remark", "remark-html", "selenium-webdriver", diff --git a/scripts/puppeteer-chromedriver-versions.js b/scripts/puppeteer-chromedriver-versions.js deleted file mode 100644 index 5f3ff29a2ed..00000000000 --- a/scripts/puppeteer-chromedriver-versions.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - -// Mapping of puppeteer releases to their default Chrome version -// derived from https://github.com/puppeteer/puppeteer/blob/master/docs/api.md. -// The puppeteer package.json file contains the compatible Chrome revision such as -// "chromium_revision": "722234" but this does not map easily to the Chrome version -// so we use this mapping here instead. -module.exports = { - '18.0.5' : '106.0.5249.21', - '10.2.0' : '93.0.4577.63', -}; diff --git a/tools/defaults.bzl b/tools/defaults.bzl index f48430ce288..edb9a80329f 100644 --- a/tools/defaults.bzl +++ b/tools/defaults.bzl @@ -110,7 +110,6 @@ def ts_library( # Match the types[] in //packages:tsconfig-test.json deps.append("@npm//@types/jasmine") deps.append("@npm//@types/node") - deps.append("@npm//@types/events") if not tsconfig and testonly: tsconfig = _DEFAULT_TSCONFIG_TEST @@ -154,7 +153,6 @@ def ng_module(name, tsconfig = None, entry_point = None, testonly = False, deps # Match the types[] in //packages:tsconfig-test.json deps.append("@npm//@types/jasmine") deps.append("@npm//@types/node") - deps.append("@npm//@types/events") if not tsconfig and testonly: tsconfig = _DEFAULT_TSCONFIG_TEST diff --git a/yarn.lock b/yarn.lock index 86a4c16e225..795d844136a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -236,7 +236,6 @@ "@angular/build-tooling@https://github.com/angular/dev-infra-private-build-tooling-builds.git#f7d26a0b0d6bd2043f2d32c2a99db903539d0c07": version "0.0.0-07b0f6423e0c5266b3792d8f4af43b8fd3f3d41b" - uid f7d26a0b0d6bd2043f2d32c2a99db903539d0c07 resolved "https://github.com/angular/dev-infra-private-build-tooling-builds.git#f7d26a0b0d6bd2043f2d32c2a99db903539d0c07" dependencies: "@angular-devkit/build-angular" "15.2.0-next.3" @@ -391,7 +390,6 @@ "@angular/ng-dev@https://github.com/angular/dev-infra-private-ng-dev-builds.git#8aa60413b3e14daf2f33a29fe9d09faa3e5bcb75": version "0.0.0-07b0f6423e0c5266b3792d8f4af43b8fd3f3d41b" - uid "8aa60413b3e14daf2f33a29fe9d09faa3e5bcb75" resolved "https://github.com/angular/dev-infra-private-ng-dev-builds.git#8aa60413b3e14daf2f33a29fe9d09faa3e5bcb75" dependencies: "@yarnpkg/lockfile" "^1.1.0" @@ -1908,6 +1906,14 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" +"@babel/runtime-corejs3@^7.16.5": + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.20.13.tgz#ad012857db412ab0b5ccf184b67be2cfcc2a1dcf" + integrity sha512-p39/6rmY9uvlzRiLZBIB3G9/EBr66LBMcYm7fIDeSBNdRjF2AGD3rFZucUyAgGHC2N+7DdLvVi33uTjSE44FIw== + dependencies: + core-js-pure "^3.25.1" + regenerator-runtime "^0.13.11" + "@babel/runtime@7.20.13": version "7.20.13" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.13.tgz#7055ab8a7cff2b8f6058bf6ae45ff84ad2aded4b" @@ -4097,11 +4103,6 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== -"@types/events@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" - integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== - "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": version "4.17.29" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz#2a1795ea8e9e9c91b4a4bbe475034b20c1ec711c" @@ -4445,6 +4446,13 @@ dependencies: "@types/node" "*" +"@types/xregexp@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@types/xregexp/-/xregexp-4.4.0.tgz#84ce998f45f1a651e0971b942b951ad1e5b7d4fc" + integrity sha512-RJJHNci1sRRq8nZjWxzCbQdLhJVq+JcDHpsdzoTtFAR9qdsMhAWqKQ1NHsNcenKDtLsOwCBe/kfSKM82yXtocg== + dependencies: + xregexp "*" + "@types/yargs-parser@*": version "21.0.0" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" @@ -6888,6 +6896,11 @@ core-js-compat@^3.25.1: dependencies: browserslist "^4.21.4" +core-js-pure@^3.25.1: + version "3.27.2" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.27.2.tgz#47e9cc96c639eefc910da03c3ece26c5067c7553" + integrity sha512-Cf2jqAbXgWH3VVzjyaaFkY1EBazxugUepGymDoeteyYr9ByX51kD2jdHZlsEF/xnJMyN3Prua7mQuzwMg6Zc9A== + core-js@^3.6.5: version "3.23.4" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.23.4.tgz#92d640faa7f48b90bbd5da239986602cfc402aa6" @@ -6971,13 +6984,6 @@ cross-env@^7.0.3: dependencies: cross-spawn "^7.0.1" -cross-fetch@3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" - integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== - dependencies: - node-fetch "2.6.7" - cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -7344,7 +7350,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: +debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -7784,11 +7790,6 @@ dev-ip@^1.0.1: resolved "https://registry.yarnpkg.com/dev-ip/-/dev-ip-1.0.1.tgz#a76a3ed1855be7a012bb8ac16cb80f3c00dc28f0" integrity sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A== -devtools-protocol@0.0.1036444: - version "0.0.1036444" - resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1036444.tgz#a570d3cdde61527c82f9b03919847b8ac7b1c2b9" - integrity sha512-0y4f/T8H9lsESV9kKP1HDUXgHxCdniFeJh6Erq+FbdOEvp/Ydp9t8kcAAM5gOd17pMrTDlFWntoHtzzeTUWKNw== - devtools-protocol@0.0.818844: version "0.0.818844" resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.818844.tgz#d1947278ec85b53e4c8ca598f607a28fa785ba9e" @@ -8614,7 +8615,7 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-zip@2.0.1, extract-zip@^2.0.0: +extract-zip@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== @@ -12569,7 +12570,7 @@ node-emoji@^1.11.0: dependencies: lodash "^4.17.21" -node-fetch@2.6.7, node-fetch@^2.6.1, node-fetch@^2.6.7: +node-fetch@^2.6.1, node-fetch@^2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== @@ -13739,7 +13740,7 @@ process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -progress@2.0.3, progress@^2.0.1, progress@^2.0.3: +progress@^2.0.1, progress@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== @@ -13850,7 +13851,7 @@ proxy-agent@^5.0.0: proxy-from-env "^1.0.0" socks-proxy-agent "^5.0.0" -proxy-from-env@1.1.0, proxy-from-env@^1.0.0: +proxy-from-env@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== @@ -13932,23 +13933,6 @@ puppeteer-core@^5.1.0: unbzip2-stream "^1.3.3" ws "^7.2.3" -puppeteer@18.0.5: - version "18.0.5" - resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-18.0.5.tgz#873223b17b92345182c5b5e8cfbd6f3117f1547d" - integrity sha512-s4erjxU0VtKojPvF+KvLKG6OHUPw7gO2YV1dtOsoryyCbhrs444fXb4QZqGWuTv3V/rgSCUzeixxu34g0ZkSMA== - dependencies: - cross-fetch "3.1.5" - debug "4.3.4" - devtools-protocol "0.0.1036444" - extract-zip "2.0.1" - https-proxy-agent "5.0.1" - progress "2.0.3" - proxy-from-env "1.1.0" - rimraf "3.0.2" - tar-fs "2.1.1" - unbzip2-stream "1.4.3" - ws "8.8.1" - q@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" @@ -14558,7 +14542,7 @@ rimraf@2, rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.3: dependencies: glob "^7.1.3" -rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: +rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== @@ -15816,7 +15800,7 @@ tapable@^2.1.1, tapable@^2.2.0: resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -tar-fs@2.1.1, tar-fs@^2.0.0: +tar-fs@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== @@ -16424,7 +16408,7 @@ uglify-js@^3.1.4: resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.16.2.tgz#0481e1dbeed343ad1c2ddf3c6d42e89b7a6d4def" integrity sha512-AaQNokTNgExWrkEYA24BTNMSjyqEXPSfhqoS0AxmHkCJ4U+Dyy5AvbGV/sqxuxficEfGGoX3zWw9R7QpLFfEsg== -unbzip2-stream@1.4.3, unbzip2-stream@^1.0.9, unbzip2-stream@^1.3.3: +unbzip2-stream@^1.0.9, unbzip2-stream@^1.3.3: version "1.4.3" resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== @@ -16946,7 +16930,7 @@ webdriver-js-extender@2.1.0: "@types/selenium-webdriver" "^3.0.0" selenium-webdriver "^3.0.1" -webdriver-manager@12.1.8, webdriver-manager@^12.1.7: +webdriver-manager@^12.1.7: version "12.1.8" resolved "https://registry.yarnpkg.com/webdriver-manager/-/webdriver-manager-12.1.8.tgz#5e70e73eaaf53a0767d5745270addafbc5905fd4" integrity sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg== @@ -17291,11 +17275,6 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -ws@8.8.1: - version "8.8.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" - integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== - ws@>=8.7.0, ws@^8.4.2: version "8.8.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.0.tgz#8e71c75e2f6348dbf8d78005107297056cb77769" @@ -17344,6 +17323,13 @@ xpath@^0.0.32: resolved "https://registry.yarnpkg.com/xpath/-/xpath-0.0.32.tgz#1b73d3351af736e17ec078d6da4b8175405c48af" integrity sha512-rxMJhSIoiO8vXcWvSifKqhvV96GjiD5wYb8/QHdoRyQvraTpp4IEv944nhGausZZ3u7dhQXteZuZbaqfpB7uYw== +xregexp@*, xregexp@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-5.1.1.tgz#6d3fe18819e3143aaf52f9284d34f49a59583ebb" + integrity sha512-fKXeVorD+CzWvFs7VBuKTYIW63YD1e1osxwQ8caZ6o1jg6pDAbABDG54LCIq0j5cy7PjRvGIq6sef9DYPXpncg== + dependencies: + "@babel/runtime-corejs3" "^7.16.5" + xregexp@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943"