diff --git a/.ng-dev/commit-message.mts b/.ng-dev/commit-message.mts index dd64a13a2..4586f1a23 100644 --- a/.ng-dev/commit-message.mts +++ b/.ng-dev/commit-message.mts @@ -12,7 +12,6 @@ export const commitMessage: CommitMessageConfig = { ...buildScopesFor('bazel', [ 'api-golden', 'app-bundling', - 'benchmark', 'browsers', 'constraints', 'esbuild', diff --git a/bazel/BUILD.bazel b/bazel/BUILD.bazel index 397b86a3e..360ac920f 100644 --- a/bazel/BUILD.bazel +++ b/bazel/BUILD.bazel @@ -20,7 +20,6 @@ filegroup( "filter_outputs.bzl", "//bazel/api-golden:files", "//bazel/app-bundling:files", - "//bazel/benchmark:files", "//bazel/browsers:files", "//bazel/constraints:files", "//bazel/esbuild:files", diff --git a/bazel/benchmark/BUILD.bazel b/bazel/benchmark/BUILD.bazel deleted file mode 100644 index 86076e369..000000000 --- a/bazel/benchmark/BUILD.bazel +++ /dev/null @@ -1,10 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -# Make source files available for distribution via pkg_npm -filegroup( - name = "files", - srcs = glob(["*"]) + [ - "//bazel/benchmark/component_benchmark:files", - "//bazel/benchmark/driver-utilities:files", - ], -) diff --git a/bazel/benchmark/component_benchmark/BUILD.bazel b/bazel/benchmark/component_benchmark/BUILD.bazel deleted file mode 100644 index ee88283d8..000000000 --- a/bazel/benchmark/component_benchmark/BUILD.bazel +++ /dev/null @@ -1,12 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -exports_files([ - "protractor-perf.conf.js", - "start-server.js", -]) - -# Make source files available for distribution via pkg_npm -filegroup( - name = "files", - srcs = glob(["*"]) + ["//bazel/benchmark/component_benchmark/defaults:files"], -) diff --git a/bazel/benchmark/component_benchmark/benchmark_test.bzl b/bazel/benchmark/component_benchmark/benchmark_test.bzl deleted file mode 100644 index cad25ce8f..000000000 --- a/bazel/benchmark/component_benchmark/benchmark_test.bzl +++ /dev/null @@ -1,28 +0,0 @@ -load("@npm//@bazel/protractor:index.bzl", "protractor_web_test_suite") - -""" - Macro that can be used to define a benchmark test. This differentiates from - a normal Protractor test suite because we specify a custom "perf" configuration - that sets up "@angular/benchpress". Benchmark test targets will not run on CI - unless explicitly requested. -""" - -def benchmark_test(name, server, tags = [], **kwargs): - protractor_web_test_suite( - name = name, - browsers = ["//bazel/browsers/chromium:chromium"], - configuration = "//bazel/benchmark/component_benchmark:protractor-perf.conf.js", - on_prepare = "//bazel/benchmark/component_benchmark:start-server.js", - server = server, - # Benchmark targets should not run on CI by default. - tags = tags + [ - "benchmark-test", - "manual", - "no-remote-exec", - ], - test_suite_tags = [ - "manual", - "no-remote-exec", - ], - **kwargs - ) diff --git a/bazel/benchmark/component_benchmark/component_benchmark.bzl b/bazel/benchmark/component_benchmark/component_benchmark.bzl deleted file mode 100644 index 841aef4f5..000000000 --- a/bazel/benchmark/component_benchmark/component_benchmark.bzl +++ /dev/null @@ -1,163 +0,0 @@ -load("//bazel/app-bundling:index.bzl", "app_bundle") -load("//bazel/http-server:index.bzl", "http_server") -load("//bazel:expand_template.bzl", "expand_template") -load("@npm//@angular/bazel:index.bzl", "ng_module") -load("//bazel:defaults.bzl", "ts_library") -load(":benchmark_test.bzl", "benchmark_test") - -def copy_default_index_html(output_name, bundle_target_name): - """Copies the default `index.html` file to the current package.""" - - expand_template( - name = "copy_default_index_html_%s" % output_name, - output_name = output_name, - template = "//bazel/benchmark/component_benchmark/defaults:index-template.html", - substitutions = {"{bundle_target_name}": bundle_target_name}, - ) - -def copy_default_file(origin, destination): - """ - Copies a file from ./defaults to the destination. - - Args: - origin: The name of a file in ./defaults to be copied. - destination: Where the original file will be clopied to. - """ - native.genrule( - name = "copy_default_" + origin + "_file_genrule", - srcs = ["//bazel/benchmark/component_benchmark/defaults:" + origin], - outs = [destination], - cmd = "cat $(SRCS) >> $@", - ) - -def component_benchmark( - name, - prefix, - driver, - driver_deps, - ng_srcs, - ng_deps = [ - "@npm//@angular/core", - "@npm//@angular/platform-browser", - ], - ng_assets = [], - assets = None, - styles = None, - entry_point = None): - """ - Runs a benchmark test against the given angular app using the given driver. - - This rule was created with the intention of reducing the amount of - duplicate/boilderplate code, while also allowing you to be as verbose with - your app as you'd like. The goal being that if you just want to test a - simple component, the only thing you'd need to provide are the component - (via ng_srcs) and driver. - - ** USAGE NOTES ** - - (assets/styles): The default index.html imports a stylesheet named - "styles.css". This allows the use of the default index.html with a custom - stylesheet through the styles arg by providing either a styles.css in the - prefix directory or by providing a css binary named styles.css. - - (assets): The default index.html expects that the root selector for - the benchmark app is "app-root". - - (entry_point): The default entry_point expects a file named "app.module" to - export the root NgModule for the benchmark application. It also expects that the - root NgModule is named "AppModule" and has a bootstrap component declared with - the selector `app-root`. - - TIP: The server is named `name + "_server"` so that you can view/debug the - app. - - Args: - name: The name of the benchmark_test to be run - prefix: The relative path to the root directory of the benchmark app - driver: The ts driver for running the benchmark - driver_deps: Driver's dependencies - ng_srcs: All of the ts srcs for the angular app - ng_deps: Dependencies for the angular app - ng_assets: The static assets for the angular app - assets: Static files - styles: Stylesheets - entry_point: Main entry point for the angular app. If specified, must - be part of the `ng_srcs` - """ - app_lib = name + "_app_lib" - app_main = name + "_app_main" - benchmark_driver = name + "_driver" - server = name + "_server" - ng_bundle_deps = [":%s" % app_lib] - - # If the user doesn't provide assets, entry_point, or styles, we use a - # default version. - # Note that we copy the default files to the same directory as what is used - # by the app for three reasons: - # 1. To avoid having the entry point be defined in a different package from - # where this macro is called. - # 2. So that we can use relative paths for imports in entry point. - # 3. To make using default static files as seamless as possible. - - if not entry_point: - entry_point = prefix + "default_index.ts" - ng_srcs.append(entry_point) - copy_default_file("index.ts", entry_point) - - # Note: In the default entry-point index, `zone.js` is imported in a way that is not - # checked by TypeScript. We add the dependency only for bundling to reduce the compilation - # scope and to make it easier to replace this dependency inside the `angular/angular` - # repository with its corresponding source target that does not come with any typings. - ng_bundle_deps.append("@npm//zone.js") - - if not assets: - html = prefix + "index.html" - assets = [html] - - copy_default_index_html(html, app_main) - - if not styles: - css = prefix + "styles.css" - styles = [css] - copy_default_file("styles.css", css) - - # Bootstraps the application and creates - # additional files to be imported by the entry_point file. - ng_module( - name = app_lib, - srcs = ng_srcs, - assets = ng_assets, - deps = ng_deps, - tsconfig = "//bazel/benchmark/component_benchmark:tsconfig-e2e.json", - ) - - # Bundle the application (needed for the http server). - app_bundle( - name = app_main, - entry_point = entry_point, - deps = ng_bundle_deps, - ) - - # The ts_library for the driver that runs tests against the benchmark app. - ts_library( - name = benchmark_driver, - tsconfig = "//bazel/benchmark/component_benchmark:tsconfig-e2e.json", - testonly = True, - srcs = [driver], - deps = driver_deps, - ) - - # The server for our application. - http_server( - name = server, - srcs = assets + styles, - deps = [":%s.min.js" % app_main], - additional_root_paths = ["//bazel/benchmark/component_benchmark/defaults"], - ) - - # Runs a protractor test that's set up to use @angular/benchpress. - benchmark_test( - name = name, - server = ":" + server, - deps = [":" + benchmark_driver], - ) diff --git a/bazel/benchmark/component_benchmark/defaults/BUILD.bazel b/bazel/benchmark/component_benchmark/defaults/BUILD.bazel deleted file mode 100644 index 1110582fa..000000000 --- a/bazel/benchmark/component_benchmark/defaults/BUILD.bazel +++ /dev/null @@ -1,13 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -# Make source files available for distribution via pkg_npm -filegroup( - name = "files", - srcs = glob(["*"]), -) - -exports_files([ - "index-template.html", - "index.ts", - "styles.css", -]) diff --git a/bazel/benchmark/component_benchmark/defaults/index-template.html b/bazel/benchmark/component_benchmark/defaults/index-template.html deleted file mode 100644 index deeac0817..000000000 --- a/bazel/benchmark/component_benchmark/defaults/index-template.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - Benchmark Test - - - - - - Loading... - - - diff --git a/bazel/benchmark/component_benchmark/defaults/index.ts b/bazel/benchmark/component_benchmark/defaults/index.ts deleted file mode 100644 index d671404ca..000000000 --- a/bazel/benchmark/component_benchmark/defaults/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * @license - * Copyright Google LLC - * - * 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 - */ - -import 'zone.js'; - -import {enableProdMode} from '@angular/core'; -import {platformBrowser} from '@angular/platform-browser'; - -// @ts-ignore This file will be provided by the consumer. -import {AppModule} from './app.module'; - -enableProdMode(); -platformBrowser().bootstrapModule(AppModule); diff --git a/bazel/benchmark/component_benchmark/defaults/styles.css b/bazel/benchmark/component_benchmark/defaults/styles.css deleted file mode 100644 index 04bd77b44..000000000 --- a/bazel/benchmark/component_benchmark/defaults/styles.css +++ /dev/null @@ -1,7 +0,0 @@ -/* - * This file exists so that if the default index.html is used a 404 will not - * throw. - * - * We leave an import for "styles.css" in the default index.html for the case - * where someone wants to use index.html and provide their own styles. - */ diff --git a/bazel/benchmark/component_benchmark/protractor-perf.conf.js b/bazel/benchmark/component_benchmark/protractor-perf.conf.js deleted file mode 100644 index 38a7b626f..000000000 --- a/bazel/benchmark/component_benchmark/protractor-perf.conf.js +++ /dev/null @@ -1,43 +0,0 @@ -/** - * @license - * Copyright Google LLC - * - * 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 - */ - -const CHROME_OPTIONS = { - 'args': ['--js-flags=--expose-gc', '--no-sandbox', '--headless', '--disable-dev-shm-usage'], - 'perfLoggingPrefs': { - 'traceCategories': - 'v8,blink.console,devtools.timeline,disabled-by-default-devtools.timeline,blink.user_timing', - }, -}; - -exports.config = { - onPrepare: function () { - beforeEach(function () { - browser.ignoreSynchronization = false; - }); - }, - restartBrowserBetweenTests: true, - allScriptsTimeout: 11000, - capabilities: { - 'browserName': 'chrome', - chromeOptions: CHROME_OPTIONS, - loggingPrefs: { - performance: 'ALL', - browser: 'ALL', - }, - }, - directConnect: true, - framework: 'jasmine2', - jasmineNodeOpts: { - showColors: true, - defaultTimeoutInterval: 90000, - print: function (msg) { - console.info(msg); - }, - }, - useAllAngular2AppRoots: true, -}; diff --git a/bazel/benchmark/component_benchmark/start-server.js b/bazel/benchmark/component_benchmark/start-server.js deleted file mode 100644 index d8577d636..000000000 --- a/bazel/benchmark/component_benchmark/start-server.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * @license - * Copyright Google LLC - * - * 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 - */ - -const protractorUtils = require('@bazel/protractor/protractor-utils.js'); -const protractor = require('protractor'); - -module.exports = async function (config) { - const {port} = await protractorUtils.runServer(config.workspace, config.server, '--port', []); - const processedConfig = await protractor.browser.getProcessedConfig(); - const serverUrl = `http://localhost:${port}`; - - return (processedConfig.baseUrl = protractor.browser.baseUrl = serverUrl); -}; diff --git a/bazel/benchmark/component_benchmark/test/BUILD.bazel b/bazel/benchmark/component_benchmark/test/BUILD.bazel deleted file mode 100644 index f204a8cbd..000000000 --- a/bazel/benchmark/component_benchmark/test/BUILD.bazel +++ /dev/null @@ -1,18 +0,0 @@ -load("//bazel/benchmark/component_benchmark:component_benchmark.bzl", "component_benchmark") - -component_benchmark( - name = "test", - driver = "app.perf.spec.ts", - driver_deps = [ - "//bazel/benchmark/driver-utilities", - "@npm//protractor", - "@npm//@types/jasmine", - "@npm//@types/node", - ], - ng_deps = [ - "@npm//@angular/core", - "@npm//@angular/platform-browser", - ], - ng_srcs = ["app.module.ts"], - prefix = "", -) diff --git a/bazel/benchmark/component_benchmark/test/app.module.ts b/bazel/benchmark/component_benchmark/test/app.module.ts deleted file mode 100644 index 1518d793b..000000000 --- a/bazel/benchmark/component_benchmark/test/app.module.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * @license - * Copyright Google LLC - * - * 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 - */ - -import {Component, NgModule} from '@angular/core'; -import {BrowserModule} from '@angular/platform-browser'; - -@Component({ - selector: 'app-root', - template: ``, - standalone: false, -}) -class AppComponent { - text = 'Hello'; - - updateText() { - this.text = 'New'; - } -} - -@NgModule({ - imports: [BrowserModule], - bootstrap: [AppComponent], -}) -export class AppModule {} diff --git a/bazel/benchmark/component_benchmark/test/app.perf.spec.ts b/bazel/benchmark/component_benchmark/test/app.perf.spec.ts deleted file mode 100644 index 6f9fa92d4..000000000 --- a/bazel/benchmark/component_benchmark/test/app.perf.spec.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * @license - * Copyright Google LLC - * - * 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 - */ - -import {element, By, browser} from 'protractor'; -import {runBenchmark} from '../../driver-utilities/index'; - -describe('app performance', () => { - it('should change text when pressing the button', async () => { - await browser.get('/'); - - const button = element(By.css('button')); - expect(await button.getText()).toBe('Hello'); - - await button.click(); - expect(await button.getText()).toBe('New'); - }); - - it('should measure pressing on the button', async () => { - await runBenchmark({ - id: 'button-press', - work: () => element(By.css('button')).click(), - }); - }); -}); diff --git a/bazel/benchmark/component_benchmark/tsconfig-e2e.json b/bazel/benchmark/component_benchmark/tsconfig-e2e.json deleted file mode 100644 index 2edbee968..000000000 --- a/bazel/benchmark/component_benchmark/tsconfig-e2e.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "compilerOptions": { - "lib": ["es2020", "dom"], - "types": ["node", "jasmine"] - } -} diff --git a/bazel/benchmark/driver-utilities/BUILD.bazel b/bazel/benchmark/driver-utilities/BUILD.bazel deleted file mode 100644 index e8d4e0933..000000000 --- a/bazel/benchmark/driver-utilities/BUILD.bazel +++ /dev/null @@ -1,24 +0,0 @@ -load("//bazel:defaults.bzl", "ts_library") - -package(default_visibility = ["//visibility:public"]) - -ts_library( - name = "driver-utilities", - package_name = "@angular/build-tooling/bazel/benchmark/driver-utilities", - srcs = glob(["*.ts"]), - module_name = "@angular/build-tooling/bazel/benchmark/driver-utilities", - tsconfig = "//bazel/benchmark/component_benchmark:tsconfig-e2e.json", - deps = [ - "@npm//@angular/benchpress", - "@npm//@types/node", - "@npm//@types/selenium-webdriver", - "@npm//protractor", - "@npm//selenium-webdriver", - ], -) - -# Make source files available for distribution via pkg_npm -filegroup( - name = "files", - srcs = glob(["*"]), -) diff --git a/bazel/benchmark/driver-utilities/e2e_util.ts b/bazel/benchmark/driver-utilities/e2e_util.ts deleted file mode 100644 index d134a9907..000000000 --- a/bazel/benchmark/driver-utilities/e2e_util.ts +++ /dev/null @@ -1,54 +0,0 @@ -/** - * @license - * Copyright Google LLC - * - * 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 - */ - -/* tslint:disable:no-console */ -import {browser} from 'protractor'; -import * as webdriver from 'selenium-webdriver'; - -declare var expect: any; - -export function openBrowser(config: { - url?: string; - params?: {name: string; value: any}[]; - ignoreBrowserSynchronization?: boolean; -}) { - if (config.ignoreBrowserSynchronization) { - browser.ignoreSynchronization = true; - } - const urlParams: string[] = []; - if (config.params) { - config.params.forEach((param) => urlParams.push(param.name + '=' + param.value)); - } - const url = encodeURI(config.url + '?' + urlParams.join('&')); - browser.get(url); - if (config.ignoreBrowserSynchronization) { - browser.sleep(2000); - } -} - -/** - * @experimental This API will be moved to Protractor. - */ -export function verifyNoBrowserErrors() { - // TODO(tbosch): Bug in ChromeDriver: Need to execute at least one command - // so that the browser logs can be read out! - browser.executeScript('1+1'); - browser - .manage() - .logs() - .get('browser') - .then(function (browserLog: any) { - const filteredLog = browserLog.filter(function (logEntry: any) { - if (logEntry.level.value >= webdriver.logging.Level.INFO.value) { - console.log('>> ' + logEntry.message); - } - return logEntry.level.value > webdriver.logging.Level.WARNING.value; - }); - expect(filteredLog).toEqual([]); - }); -} diff --git a/bazel/benchmark/driver-utilities/index.ts b/bazel/benchmark/driver-utilities/index.ts deleted file mode 100644 index 82e472542..000000000 --- a/bazel/benchmark/driver-utilities/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** - * @license - * Copyright Google LLC - * - * 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 - */ -export {openBrowser, verifyNoBrowserErrors} from './e2e_util'; -export {runBenchmark} from './perf_util'; diff --git a/bazel/benchmark/driver-utilities/perf_util.ts b/bazel/benchmark/driver-utilities/perf_util.ts deleted file mode 100644 index a32579af7..000000000 --- a/bazel/benchmark/driver-utilities/perf_util.ts +++ /dev/null @@ -1,129 +0,0 @@ -/** - * @license - * Copyright Google LLC - * - * 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 - */ - -import {randomUUID} from 'node:crypto'; -export {verifyNoBrowserErrors} from './e2e_util'; - -import type * as benchpress from '@angular/benchpress'; -import {openBrowser} from './e2e_util'; - -// Note: Keep the `modules/benchmarks/README.md` file in sync with the supported options. -const globalOptions = { - sampleSize: process.env.PERF_SAMPLE_SIZE || 20, - forceGc: process.env.PERF_FORCE_GC === 'true', - dryRun: process.env.PERF_DRYRUN === 'true', -}; - -type BenchpressSetup = { - runner: benchpress.Runner; - module: typeof benchpress; -}; - -let _cachedBenchpressSetup: Promise | null = null; - -export async function runBenchmark({ - id, - url = '', - params = [], - ignoreBrowserSynchronization = true, - microMetrics, - work, - prepare, - setup, -}: { - id: string; - url?: string; - params?: {name: string; value: any}[]; - ignoreBrowserSynchronization?: boolean; - microMetrics?: {[key: string]: string}; - work?: (() => void) | (() => Promise); - prepare?: (() => void) | (() => Promise); - setup?: (() => void) | (() => Promise); -}): Promise { - if (_cachedBenchpressSetup === null) { - _cachedBenchpressSetup = _prepareBenchpressSetup(); - } - - // Wait for the benchpress setup to complete initialization. - // The benchpress setup is loaded asynchronously due to it relying on ESM. - // TODO: This can be removed when benchmark tests/e2e tests can run with ESM. - const {module, runner} = await _cachedBenchpressSetup; - - openBrowser({url, params, ignoreBrowserSynchronization}); - if (setup) { - await setup(); - } - return runner.sample({ - id, - execute: work, - prepare, - microMetrics, - providers: [{provide: module.Options.SAMPLE_DESCRIPTION, useValue: {}}], - }); -} - -async function _prepareBenchpressSetup(): Promise { - const module = await loadBenchpressModule(); - const { - SeleniumWebDriverAdapter, - Options, - JsonFileReporter, - RegressionSlopeValidator, - Validator, - MultiReporter, - ConsoleReporter, - SizeValidator, - MultiMetric, - Runner, - } = module; - - let runId = randomUUID(); - if (process.env.GIT_SHA) { - runId = process.env.GIT_SHA + ' ' + runId; - } - - const testOutputDirectory = process.env.TEST_UNDECLARED_OUTPUTS_DIR; - - if (testOutputDirectory === undefined) { - throw new Error( - 'Unexpected execution outside of a Bazel test. ' + - 'Missing `TEST_UNDECLARED_OUTPUTS_DIR` environment variable.', - ); - } - - const providers: benchpress.StaticProvider[] = [ - SeleniumWebDriverAdapter.PROTRACTOR_PROVIDERS, - {provide: Options.FORCE_GC, useValue: globalOptions.forceGc}, - {provide: Options.DEFAULT_DESCRIPTION, useValue: {'runId': runId}}, - JsonFileReporter.PROVIDERS, - {provide: JsonFileReporter.PATH, useValue: testOutputDirectory}, - ]; - if (!globalOptions.dryRun) { - providers.push({provide: Validator, useExisting: RegressionSlopeValidator}); - providers.push({ - provide: RegressionSlopeValidator.SAMPLE_SIZE, - useValue: globalOptions.sampleSize, - }); - providers.push(MultiReporter.provideWith([ConsoleReporter, JsonFileReporter])); - } else { - providers.push({provide: Validator, useExisting: SizeValidator}); - providers.push({provide: SizeValidator.SAMPLE_SIZE, useValue: 1}); - providers.push(MultiReporter.provideWith([])); - providers.push(MultiMetric.provideWith([])); - } - - return { - runner: new Runner(providers), - module, - }; -} - -/** Loads the benchpress module through a CJS/ESM interop. */ -async function loadBenchpressModule(): Promise { - return await new Function(`return import('@angular/benchpress');`)(); -} diff --git a/bazel/package.json b/bazel/package.json index 67ad9bf87..312630df6 100644 --- a/bazel/package.json +++ b/bazel/package.json @@ -10,12 +10,13 @@ "@types/yargs": "17.0.33", "browser-sync": "3.0.4", "piscina": "^5.0.0", - "selenium-webdriver": "^4.31.0", "send": "1.2.0", "true-case-path": "2.2.1", "typescript": "5.8.3", "wait-on": "^8.0.3", - "yargs": "18.0.0" + "yargs": "18.0.0", + "protractor": "7.0.0", + "selenium-webdriver": "4.33.0" }, "pnpm": { "onlyBuiltDependencies": [] diff --git a/bazel/pnpm-lock.yaml b/bazel/pnpm-lock.yaml index 846b55df2..5760b36f5 100644 --- a/bazel/pnpm-lock.yaml +++ b/bazel/pnpm-lock.yaml @@ -35,8 +35,11 @@ importers: piscina: specifier: ^5.0.0 version: 5.1.1 + protractor: + specifier: 7.0.0 + version: 7.0.0 selenium-webdriver: - specifier: ^4.31.0 + specifier: 4.33.0 version: 4.33.0 send: specifier: 1.2.0 @@ -236,6 +239,12 @@ packages: '@types/parse-glob@3.0.32': resolution: {integrity: sha512-n4xmml2WKR12XeQprN8L/sfiVPa8FHS3k+fxp4kSr/PA2GsGUgFND+bvISJxM0y5QdvzNEGjEVU3eIrcKks/pA==} + '@types/q@0.0.32': + resolution: {integrity: sha512-qYi3YV9inU/REEfxwVcGZzbS3KG/Xs90lv0Pr+lDtuVjBPGd1A+eciXzVSaRvLify132BfcvhvEjeVahrUl0Ug==} + + '@types/selenium-webdriver@3.0.26': + resolution: {integrity: sha512-dyIGFKXfUFiwkMfNGn1+F6b80ZjR3uSYv1j6xVJSDlft5waZ2cwkHW4e7zNzvq7hiEackcgvBpmnXZrI1GltPg==} + '@types/selenium-webdriver@4.1.28': resolution: {integrity: sha512-Au7CXegiS7oapbB16zxPToY4Cjzi9UQQMf3W2ZZM8PigMLTGR3iUAHjPUTddyE5g1SBjT/qpmvlsAQLBfNAdKg==} @@ -261,6 +270,14 @@ packages: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} + adm-zip@0.5.16: + resolution: {integrity: sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==} + engines: {node: '>=12.0'} + + agent-base@4.3.0: + resolution: {integrity: sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==} + engines: {node: '>= 4.0.0'} + ajv-draft-04@1.0.0: resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} peerDependencies: @@ -277,12 +294,19 @@ packages: ajv: optional: true + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} ajv@8.13.0: resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} + ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -291,6 +315,10 @@ packages: resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} + ansi-styles@2.2.1: + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} + engines: {node: '>=0.10.0'} + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -306,6 +334,25 @@ packages: argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + array-union@1.0.2: + resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} + engines: {node: '>=0.10.0'} + + array-uniq@1.0.3: + resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} + engines: {node: '>=0.10.0'} + + arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + + asn1@0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + + assert-plus@1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} + async-each-series@0.1.1: resolution: {integrity: sha512-p4jj6Fws4Iy2m0iCmI2am2ZNZCgbdgE+P8F/8csmn2vx7ixXrO2zGcuNsD46X5uZSVecmkEy/M06X2vG8KD6dQ==} engines: {node: '>=0.8.0'} @@ -316,6 +363,12 @@ packages: asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + aws-sign2@0.7.0: + resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} + + aws4@1.13.2: + resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} + axios@1.10.0: resolution: {integrity: sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==} @@ -329,10 +382,18 @@ packages: batch@0.6.1: resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + bcrypt-pbkdf@1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} + blocking-proxy@1.0.1: + resolution: {integrity: sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==} + engines: {node: '>=6.9.x'} + hasBin: true + brace-expansion@1.1.12: resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} @@ -352,6 +413,9 @@ packages: engines: {node: '>= 8.0.0'} hasBin: true + browserstack@1.6.1: + resolution: {integrity: sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==} + bs-recipes@1.3.4: resolution: {integrity: sha512-BXvDkqhDNxXEjeGM8LFkSbR+jzmP/CYpCiVKYn+soB1dDldeU15EBNDkwVXndKuX35wnNUaPd0qSoQEAkmQtMw==} @@ -363,6 +427,17 @@ packages: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + caseless@0.12.0: + resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + + chalk@1.1.3: + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} + engines: {node: '>=0.10.0'} + chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -371,6 +446,9 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -408,6 +486,9 @@ packages: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} + core-util-is@1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -415,6 +496,10 @@ packages: resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} engines: {node: '>= 0.10'} + dashdash@1.14.1: + resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} + engines: {node: '>=0.10'} + debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -423,6 +508,14 @@ packages: supports-color: optional: true + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + debug@4.3.7: resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} @@ -441,6 +534,14 @@ packages: supports-color: optional: true + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + del@2.2.2: + resolution: {integrity: sha512-Z4fzpbIRjOu7lO5jCETSWoqUDVe0IPOlfugBsF6suen2LKDlVb4QZpKEM9P+buNJ4KI1eN7I083w/pbKUpsrWQ==} + engines: {node: '>=0.10.0'} + delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -474,6 +575,9 @@ packages: resolution: {integrity: sha512-+mn7lRm+Zf1UT/YaH8WXtpU6PIV2iOjzP6jgKoiaq/VNrjYKp+OHZGe2znaLgDeFkw8cL9ffuaUm+nNnzcYyGw==} engines: {node: '>= 0.8.0'} + ecc-jsbn@0.1.2: + resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} + ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -518,6 +622,12 @@ packages: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} + es6-promise@4.2.8: + resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} + + es6-promisify@5.0.0: + resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==} + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -525,6 +635,10 @@ packages: escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + etag@1.8.1: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} @@ -532,9 +646,23 @@ packages: eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + extsprintf@1.3.0: + resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} + engines: {'0': node >=0.6.0} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -543,6 +671,10 @@ packages: resolution: {integrity: sha512-ejnvM9ZXYzp6PUPUyQBMBf0Co5VX2gr5H2VQe2Ui2jWXNlxv+PYZo8wpAymJNJdLsG1R4p+M4aynF8KuoUEwRw==} engines: {node: '>= 0.8'} + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + follow-redirects@1.15.9: resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} engines: {node: '>=4.0'} @@ -552,6 +684,13 @@ packages: debug: optional: true + forever-agent@0.6.1: + resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} + + form-data@2.3.3: + resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} + engines: {node: '>= 0.12'} + form-data@4.0.3: resolution: {integrity: sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==} engines: {node: '>= 6'} @@ -571,6 +710,9 @@ packages: fs-extra@3.0.1: resolution: {integrity: sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg==} + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -595,10 +737,21 @@ packages: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} + getpass@0.1.7: + resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + globby@5.0.0: + resolution: {integrity: sha512-HJRTIH2EeH44ka+LWig+EqT2ONSYpVlNfx6pyd592/VF1TbfljJ7elwie7oSwcViLGqOdWocSdu2txwBF9bjmQ==} + engines: {node: '>=0.10.0'} + gopd@1.2.0: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} @@ -606,6 +759,19 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + har-schema@2.0.0: + resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} + engines: {node: '>=4'} + + har-validator@5.1.5: + resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} + engines: {node: '>=6'} + deprecated: this library is no longer supported + + has-ansi@2.0.0: + resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} + engines: {node: '>=0.10.0'} + has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} @@ -634,6 +800,14 @@ packages: resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} engines: {node: '>=8.0.0'} + http-signature@1.2.0: + resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} + engines: {node: '>=0.8', npm: '>=1.3.7'} + + https-proxy-agent@2.2.4: + resolution: {integrity: sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==} + engines: {node: '>= 4.5.0'} + iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -649,12 +823,19 @@ packages: resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} engines: {node: '>=8'} + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + inherits@2.0.3: resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} @@ -682,6 +863,21 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + is-path-cwd@1.0.0: + resolution: {integrity: sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==} + engines: {node: '>=0.10.0'} + + is-path-in-cwd@1.0.1: + resolution: {integrity: sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==} + engines: {node: '>=0.10.0'} + + is-path-inside@1.0.1: + resolution: {integrity: sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==} + engines: {node: '>=0.10.0'} + + is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + is-wsl@1.1.0: resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==} engines: {node: '>=4'} @@ -689,21 +885,51 @@ packages: isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + isstream@0.1.2: + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} + + jasmine-core@2.8.0: + resolution: {integrity: sha512-SNkOkS+/jMZvLhuSx1fjhcNWUC/KG6oVyFUGkSBEr9n1axSNduWU8GlI7suaHXr4yxjet6KjrUZxUTE5WzzWwQ==} + + jasmine@2.8.0: + resolution: {integrity: sha512-KbdGQTf5jbZgltoHs31XGiChAPumMSY64OZMWLNYnEnMfG5uwGBhffePwuskexjT+/Jea/gU3qAU8344hNohSw==} + hasBin: true + + jasminewd2@2.2.0: + resolution: {integrity: sha512-Rn0nZe4rfDhzA63Al3ZGh0E+JTmM6ESZYXJGKuqKGZObsAB9fwXPD03GjtIEvJBDOhN94T5MzbwZSqzFHSQPzg==} + engines: {node: '>= 6.9.x'} + jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} joi@17.13.3: resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} + jsbn@0.1.1: + resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + jsonfile@3.0.1: resolution: {integrity: sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==} jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + jsprim@1.4.2: + resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} + engines: {node: '>=0.6.0'} + jszip@3.10.1: resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} @@ -713,6 +939,10 @@ packages: limiter@1.1.5: resolution: {integrity: sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==} + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + lodash.isfinite@3.3.2: resolution: {integrity: sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==} @@ -778,6 +1008,9 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} + oauth-sign@0.9.0: + resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -790,10 +1023,29 @@ packages: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + opn@5.3.0: resolution: {integrity: sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==} engines: {node: '>=4'} + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + pako@1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} @@ -801,13 +1053,39 @@ packages: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-is-inside@1.0.2: + resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} + path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + performance-now@2.1.0: + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pinkie-promise@2.0.1: + resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} + engines: {node: '>=0.10.0'} + + pinkie@2.0.4: + resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} + engines: {node: '>=0.10.0'} + piscina@5.1.1: resolution: {integrity: sha512-9rPDIPsCwOivatEZGM8+apgM7AiTDLSnpwMmLaSmdm2PeND8bFJzZLZZxyrJjLH8Xx/MpKoVaKf+vZOWALNHbw==} engines: {node: '>=20.x'} @@ -819,13 +1097,34 @@ packages: process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + protractor@7.0.0: + resolution: {integrity: sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==} + engines: {node: '>=10.13.x'} + deprecated: We have news to share - Protractor is deprecated and will reach end-of-life by Summer 2023. To learn more and find out about other options please refer to this post on the Angular blog. Thank you for using and contributing to Protractor. https://goo.gle/state-of-e2e-in-angular + hasBin: true + proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + psl@1.15.0: + resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + q@1.4.1: + resolution: {integrity: sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==} + engines: {node: '>=0.6.0', teleport: '>=0.2.0'} + deprecated: |- + You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other. + + (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) + + qs@6.5.3: + resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} + engines: {node: '>=0.6'} + range-parser@1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} @@ -841,6 +1140,11 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + request@2.88.2: + resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} + engines: {node: '>= 6'} + deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 + require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -849,6 +1153,9 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} @@ -861,6 +1168,11 @@ packages: resolution: {integrity: sha512-U1+0kWC/+4ncRFYqQWTx/3qkfE6a4B/h3XXgmXypfa0SPZ3t7cbbaFk297PjQS/yov24R18h6OZe6iZwj3NSLw==} engines: {node: '>= 0.8.0'} + rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + rx@4.1.0: resolution: {integrity: sha512-CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug==} @@ -873,10 +1185,24 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + saucelabs@1.5.0: + resolution: {integrity: sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==} + + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + + selenium-webdriver@3.6.0: + resolution: {integrity: sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==} + engines: {node: '>= 6.9.0'} + selenium-webdriver@4.33.0: resolution: {integrity: sha512-5vRhk4iI0B9nYbEitfnCjPDXBfG6o9DNhj5DG2355eQo8idETknhj1tigqqlkHsGephSZwLZqEm/d+3e1stGUA==} engines: {node: '>= 18.20.5'} + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + semver@7.5.4: resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} @@ -905,6 +1231,9 @@ packages: server-destroy@1.0.1: resolution: {integrity: sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==} + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} @@ -929,6 +1258,13 @@ packages: resolution: {integrity: sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==} engines: {node: '>=10.2.0'} + source-map-support@0.4.18: + resolution: {integrity: sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==} + + source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} @@ -936,6 +1272,11 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + sshpk@1.18.0: + resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} + engines: {node: '>=0.10.0'} + hasBin: true + statuses@1.3.1: resolution: {integrity: sha512-wuTCPGlJONk/a1kqZ4fQM2+908lC7fa7nPYpTC1EhnvqLX/IICbeP1OZGDtA374trpSq68YubKUMo8oRhN46yg==} engines: {node: '>= 0.6'} @@ -972,6 +1313,10 @@ packages: string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} + strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -984,6 +1329,10 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + supports-color@2.0.0: + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} + engines: {node: '>=0.8.0'} + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -996,6 +1345,10 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + tmp@0.0.30: + resolution: {integrity: sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==} + engines: {node: '>=0.4.0'} + tmp@0.2.3: resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} engines: {node: '>=14.14'} @@ -1008,12 +1361,22 @@ packages: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} + tough-cookie@2.5.0: + resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} + engines: {node: '>=0.8'} + true-case-path@2.2.1: resolution: {integrity: sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==} tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + + tweetnacl@0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + typescript@5.8.2: resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} engines: {node: '>=14.17'} @@ -1053,15 +1416,40 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} + uuid@3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} + verror@1.10.0: + resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} + engines: {'0': node >=0.6.0} + wait-on@8.0.3: resolution: {integrity: sha512-nQFqAFzZDeRxsu7S3C7LbuxslHhk+gnJZHyethuGKAn2IVleIbTB9I3vJSQiSR+DifUqmdzfPMoMPJfLqMF2vw==} engines: {node: '>=12.0.0'} hasBin: true + webdriver-js-extender@2.1.0: + resolution: {integrity: sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==} + engines: {node: '>=6.9.x'} + + webdriver-manager@12.1.9: + resolution: {integrity: sha512-Yl113uKm8z4m/KMUVWHq1Sjtla2uxEBtx2Ue3AmIlnlPAKloDn/Lvmy6pqWCUersVISpdMeVpAaGbNnvMuT2LQ==} + engines: {node: '>=6.9.x'} + hasBin: true + + which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -1070,6 +1458,9 @@ packages: resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} engines: {node: '>=18'} + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + ws@8.17.1: resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} engines: {node: '>=10.0.0'} @@ -1094,10 +1485,21 @@ packages: utf-8-validate: optional: true + xml2js@0.4.23: + resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==} + engines: {node: '>=4.0.0'} + + xmlbuilder@11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + xmlhttprequest-ssl@2.1.2: resolution: {integrity: sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==} engines: {node: '>=0.4.0'} + y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -1105,6 +1507,10 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -1113,6 +1519,10 @@ packages: resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==} engines: {node: ^20.19.0 || ^22.12.0 || >=23} + yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} @@ -1305,6 +1715,10 @@ snapshots: '@types/parse-glob@3.0.32': {} + '@types/q@0.0.32': {} + + '@types/selenium-webdriver@3.0.26': {} + '@types/selenium-webdriver@4.1.28': dependencies: '@types/node': 22.15.33 @@ -1340,6 +1754,12 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 + adm-zip@0.5.16: {} + + agent-base@4.3.0: + dependencies: + es6-promisify: 5.0.0 + ajv-draft-04@1.0.0(ajv@8.13.0): optionalDependencies: ajv: 8.13.0 @@ -1348,6 +1768,13 @@ snapshots: optionalDependencies: ajv: 8.13.0 + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + ajv@8.12.0: dependencies: fast-deep-equal: 3.1.3 @@ -1362,10 +1789,14 @@ snapshots: require-from-string: 2.0.2 uri-js: 4.4.1 + ansi-regex@2.1.1: {} + ansi-regex@5.0.1: {} ansi-regex@6.1.0: {} + ansi-styles@2.2.1: {} + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 @@ -1381,6 +1812,20 @@ snapshots: dependencies: sprintf-js: 1.0.3 + array-union@1.0.2: + dependencies: + array-uniq: 1.0.3 + + array-uniq@1.0.3: {} + + arrify@1.0.1: {} + + asn1@0.2.6: + dependencies: + safer-buffer: 2.1.2 + + assert-plus@1.0.0: {} + async-each-series@0.1.1: {} async@2.6.4: @@ -1389,6 +1834,10 @@ snapshots: asynckit@0.4.0: {} + aws-sign2@0.7.0: {} + + aws4@1.13.2: {} + axios@1.10.0: dependencies: follow-redirects: 1.15.9 @@ -1403,8 +1852,16 @@ snapshots: batch@0.6.1: {} + bcrypt-pbkdf@1.0.2: + dependencies: + tweetnacl: 0.14.5 + binary-extensions@2.3.0: {} + blocking-proxy@1.0.1: + dependencies: + minimist: 1.2.8 + brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 @@ -1470,6 +1927,12 @@ snapshots: - supports-color - utf-8-validate + browserstack@1.6.1: + dependencies: + https-proxy-agent: 2.2.4 + transitivePeerDependencies: + - supports-color + bs-recipes@1.3.4: {} bytes@3.1.2: {} @@ -1479,6 +1942,18 @@ snapshots: es-errors: 1.3.0 function-bind: 1.1.2 + camelcase@5.3.1: {} + + caseless@0.12.0: {} + + chalk@1.1.3: + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 @@ -1496,6 +1971,12 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + cliui@6.0.0: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -1535,6 +2016,8 @@ snapshots: cookie@0.7.2: {} + core-util-is@1.0.2: {} + core-util-is@1.0.3: {} cors@2.8.5: @@ -1542,10 +2025,18 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 + dashdash@1.14.1: + dependencies: + assert-plus: 1.0.0 + debug@2.6.9: dependencies: ms: 2.0.0 + debug@3.2.7: + dependencies: + ms: 2.1.3 + debug@4.3.7: dependencies: ms: 2.1.3 @@ -1554,6 +2045,18 @@ snapshots: dependencies: ms: 2.1.3 + decamelize@1.2.0: {} + + del@2.2.2: + dependencies: + globby: 5.0.0 + is-path-cwd: 1.0.0 + is-path-in-cwd: 1.0.1 + object-assign: 4.1.1 + pify: 2.3.0 + pinkie-promise: 2.0.1 + rimraf: 2.7.1 + delayed-stream@1.0.0: {} depd@1.1.2: {} @@ -1578,6 +2081,11 @@ snapshots: dependencies: chalk: 4.1.2 + ecc-jsbn@0.1.2: + dependencies: + jsbn: 0.1.1 + safer-buffer: 2.1.2 + ee-first@1.1.1: {} emoji-regex@10.4.0: {} @@ -1633,16 +2141,32 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 + es6-promise@4.2.8: {} + + es6-promisify@5.0.0: + dependencies: + es6-promise: 4.2.8 + escalade@3.2.0: {} escape-html@1.0.3: {} + escape-string-regexp@1.0.5: {} + etag@1.8.1: {} eventemitter3@4.0.7: {} + exit@0.1.2: {} + + extend@3.0.2: {} + + extsprintf@1.3.0: {} + fast-deep-equal@3.1.3: {} + fast-json-stable-stringify@2.1.0: {} + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -1659,8 +2183,21 @@ snapshots: transitivePeerDependencies: - supports-color + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + follow-redirects@1.15.9: {} + forever-agent@0.6.1: {} + + form-data@2.3.3: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + form-data@4.0.3: dependencies: asynckit: 0.4.0 @@ -1685,6 +2222,8 @@ snapshots: jsonfile: 3.0.1 universalify: 0.1.2 + fs.realpath@1.0.0: {} + fsevents@2.3.3: optional: true @@ -1712,14 +2251,47 @@ snapshots: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 + getpass@0.1.7: + dependencies: + assert-plus: 1.0.0 + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + globby@5.0.0: + dependencies: + array-union: 1.0.2 + arrify: 1.0.1 + glob: 7.2.3 + object-assign: 4.1.1 + pify: 2.3.0 + pinkie-promise: 2.0.1 + gopd@1.2.0: {} graceful-fs@4.2.11: {} + har-schema@2.0.0: {} + + har-validator@5.1.5: + dependencies: + ajv: 6.12.6 + har-schema: 2.0.0 + + has-ansi@2.0.0: + dependencies: + ansi-regex: 2.1.1 + has-flag@4.0.0: {} has-symbols@1.1.0: {} @@ -1755,6 +2327,19 @@ snapshots: transitivePeerDependencies: - debug + http-signature@1.2.0: + dependencies: + assert-plus: 1.0.0 + jsprim: 1.4.2 + sshpk: 1.18.0 + + https-proxy-agent@2.2.4: + dependencies: + agent-base: 4.3.0 + debug: 3.2.7 + transitivePeerDependencies: + - supports-color + iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 @@ -1765,10 +2350,17 @@ snapshots: import-lazy@4.0.0: {} + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + inherits@2.0.3: {} inherits@2.0.4: {} + ini@1.3.8: {} + is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 @@ -1791,10 +2383,34 @@ snapshots: is-number@7.0.0: {} + is-path-cwd@1.0.0: {} + + is-path-in-cwd@1.0.1: + dependencies: + is-path-inside: 1.0.1 + + is-path-inside@1.0.1: + dependencies: + path-is-inside: 1.0.2 + + is-typedarray@1.0.0: {} + is-wsl@1.1.0: {} isarray@1.0.0: {} + isstream@0.1.2: {} + + jasmine-core@2.8.0: {} + + jasmine@2.8.0: + dependencies: + exit: 0.1.2 + glob: 7.2.3 + jasmine-core: 2.8.0 + + jasminewd2@2.2.0: {} + jju@1.4.0: {} joi@17.13.3: @@ -1805,8 +2421,16 @@ snapshots: '@sideway/formula': 3.0.1 '@sideway/pinpoint': 2.0.0 + jsbn@0.1.1: {} + + json-schema-traverse@0.4.1: {} + json-schema-traverse@1.0.0: {} + json-schema@0.4.0: {} + + json-stringify-safe@5.0.1: {} + jsonfile@3.0.1: optionalDependencies: graceful-fs: 4.2.11 @@ -1817,6 +2441,13 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 + jsprim@1.4.2: + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + jszip@3.10.1: dependencies: lie: 3.3.0 @@ -1830,6 +2461,10 @@ snapshots: limiter@1.1.5: {} + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + lodash.isfinite@3.3.2: {} lodash@4.17.21: {} @@ -1879,6 +2514,8 @@ snapshots: normalize-path@3.0.0: {} + oauth-sign@0.9.0: {} + object-assign@4.1.1: {} on-finished@2.3.0: @@ -1889,18 +2526,50 @@ snapshots: dependencies: ee-first: 1.1.1 + once@1.4.0: + dependencies: + wrappy: 1.0.2 + opn@5.3.0: dependencies: is-wsl: 1.1.0 + os-tmpdir@1.0.2: {} + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-try@2.2.0: {} + pako@1.0.11: {} parseurl@1.3.3: {} + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-is-inside@1.0.2: {} + path-parse@1.0.7: {} + performance-now@2.1.0: {} + picomatch@2.3.1: {} + pify@2.3.0: {} + + pinkie-promise@2.0.1: + dependencies: + pinkie: 2.0.4 + + pinkie@2.0.4: {} + piscina@5.1.1: optionalDependencies: '@napi-rs/nice': 1.0.1 @@ -1912,10 +2581,38 @@ snapshots: process-nextick-args@2.0.1: {} + protractor@7.0.0: + dependencies: + '@types/q': 0.0.32 + '@types/selenium-webdriver': 3.0.26 + blocking-proxy: 1.0.1 + browserstack: 1.6.1 + chalk: 1.1.3 + glob: 7.2.3 + jasmine: 2.8.0 + jasminewd2: 2.2.0 + q: 1.4.1 + saucelabs: 1.5.0 + selenium-webdriver: 3.6.0 + source-map-support: 0.4.18 + webdriver-js-extender: 2.1.0 + webdriver-manager: 12.1.9 + yargs: 15.4.1 + transitivePeerDependencies: + - supports-color + proxy-from-env@1.1.0: {} + psl@1.15.0: + dependencies: + punycode: 2.3.1 + punycode@2.3.1: {} + q@1.4.1: {} + + qs@6.5.3: {} + range-parser@1.2.1: {} raw-body@2.5.2: @@ -1939,10 +2636,35 @@ snapshots: dependencies: picomatch: 2.3.1 + request@2.88.2: + dependencies: + aws-sign2: 0.7.0 + aws4: 1.13.2 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + har-validator: 5.1.5 + http-signature: 1.2.0 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.35 + oauth-sign: 0.9.0 + performance-now: 2.1.0 + qs: 6.5.3 + safe-buffer: 5.1.2 + tough-cookie: 2.5.0 + tunnel-agent: 0.6.0 + uuid: 3.4.0 + require-directory@2.1.1: {} require-from-string@2.0.2: {} + require-main-filename@2.0.0: {} + requires-port@1.0.0: {} resolve@1.22.10: @@ -1958,6 +2680,10 @@ snapshots: transitivePeerDependencies: - supports-color + rimraf@2.7.1: + dependencies: + glob: 7.2.3 + rx@4.1.0: {} rxjs@7.8.2: @@ -1968,6 +2694,21 @@ snapshots: safer-buffer@2.1.2: {} + saucelabs@1.5.0: + dependencies: + https-proxy-agent: 2.2.4 + transitivePeerDependencies: + - supports-color + + sax@1.4.1: {} + + selenium-webdriver@3.6.0: + dependencies: + jszip: 3.10.1 + rimraf: 2.7.1 + tmp: 0.0.30 + xml2js: 0.4.23 + selenium-webdriver@4.33.0: dependencies: '@bazel/runfiles': 6.3.1 @@ -1978,6 +2719,8 @@ snapshots: - bufferutil - utf-8-validate + semver@5.7.2: {} + semver@7.5.4: dependencies: lru-cache: 6.0.0 @@ -2057,6 +2800,8 @@ snapshots: server-destroy@1.0.1: {} + set-blocking@2.0.0: {} + setimmediate@1.0.5: {} setprototypeof@1.1.0: {} @@ -2104,10 +2849,28 @@ snapshots: - supports-color - utf-8-validate + source-map-support@0.4.18: + dependencies: + source-map: 0.5.7 + + source-map@0.5.7: {} + source-map@0.6.1: {} sprintf-js@1.0.3: {} + sshpk@1.18.0: + dependencies: + asn1: 0.2.6 + assert-plus: 1.0.0 + bcrypt-pbkdf: 1.0.2 + dashdash: 1.14.1 + ecc-jsbn: 0.1.2 + getpass: 0.1.7 + jsbn: 0.1.1 + safer-buffer: 2.1.2 + tweetnacl: 0.14.5 + statuses@1.3.1: {} statuses@1.5.0: {} @@ -2139,6 +2902,10 @@ snapshots: dependencies: safe-buffer: 5.1.2 + strip-ansi@3.0.1: + dependencies: + ansi-regex: 2.1.1 + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -2149,6 +2916,8 @@ snapshots: strip-json-comments@3.1.1: {} + supports-color@2.0.0: {} + supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -2159,6 +2928,10 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} + tmp@0.0.30: + dependencies: + os-tmpdir: 1.0.2 + tmp@0.2.3: {} to-regex-range@5.0.1: @@ -2167,10 +2940,21 @@ snapshots: toidentifier@1.0.1: {} + tough-cookie@2.5.0: + dependencies: + psl: 1.15.0 + punycode: 2.3.1 + true-case-path@2.2.1: {} tslib@2.8.1: {} + tunnel-agent@0.6.0: + dependencies: + safe-buffer: 5.1.2 + + tweetnacl@0.14.5: {} + typescript@5.8.2: {} typescript@5.8.3: {} @@ -2193,8 +2977,16 @@ snapshots: utils-merge@1.0.1: {} + uuid@3.4.0: {} + vary@1.1.2: {} + verror@1.10.0: + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.3.0 + wait-on@8.0.3: dependencies: axios: 1.10.0 @@ -2205,6 +2997,33 @@ snapshots: transitivePeerDependencies: - debug + webdriver-js-extender@2.1.0: + dependencies: + '@types/selenium-webdriver': 3.0.26 + selenium-webdriver: 3.6.0 + + webdriver-manager@12.1.9: + dependencies: + adm-zip: 0.5.16 + chalk: 1.1.3 + del: 2.2.2 + glob: 7.2.3 + ini: 1.3.8 + minimist: 1.2.8 + q: 1.4.1 + request: 2.88.2 + rimraf: 2.7.1 + semver: 5.7.2 + xml2js: 0.4.23 + + which-module@2.0.1: {} + + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -2217,20 +3036,50 @@ snapshots: string-width: 7.2.0 strip-ansi: 7.1.0 + wrappy@1.0.2: {} + ws@8.17.1: {} ws@8.18.2: {} + xml2js@0.4.23: + dependencies: + sax: 1.4.1 + xmlbuilder: 11.0.1 + + xmlbuilder@11.0.1: {} + xmlhttprequest-ssl@2.1.2: {} + y18n@4.0.3: {} + y18n@5.0.8: {} yallist@4.0.0: {} + yargs-parser@18.1.3: + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + yargs-parser@21.1.1: {} yargs-parser@22.0.0: {} + yargs@15.4.1: + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + yargs@17.7.2: dependencies: cliui: 8.0.1 diff --git a/package.json b/package.json index b5c8b0e35..882a85941 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,6 @@ }, "packageManager": "yarn@4.9.1", "dependencies": { - "@angular/benchpress": "0.3.0", "@angular/build": "20.0.0", "@babel/core": "^7.16.0", "@babel/plugin-transform-async-generator-functions": "^7.26.8", @@ -158,8 +157,5 @@ "re2": { "built": false } - }, - "resolutions": { - "@angular/benchpress/@angular/core": "20.0.0" } } diff --git a/tsconfig.json b/tsconfig.json index 52f03f63d..e35999094 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -18,8 +18,6 @@ ".yarn/**", ".angular/**", "apps/**", - "bazel/benchmark/component_benchmark/**", - "bazel/benchmark/driver-utilities/**", "bazel/integration/tests/**", "bazel-out/**", "dist/**", diff --git a/yarn.lock b/yarn.lock index 19adafb97..5a28cc6e0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -212,16 +212,6 @@ __metadata: languageName: node linkType: hard -"@angular/benchpress@npm:0.3.0": - version: 0.3.0 - resolution: "@angular/benchpress@npm:0.3.0" - dependencies: - "@angular/core": "npm:^13.0.0 || ^14.0.0-0" - reflect-metadata: "npm:^0.1.13" - checksum: 10c0/a18dc93aa79a776a691b66127f961b65e268e443844c48eaf4c0f71fc2407779881459a893fb5a0a6a22bda5ec432ebf711817ca6eed5d67f343ae5509a9438a - languageName: node - linkType: hard - "@angular/build-tooling@workspace:.": version: 0.0.0-use.local resolution: "@angular/build-tooling@workspace:." @@ -230,7 +220,6 @@ __metadata: "@actions/github": "npm:^6.0.0" "@angular/animations": "npm:20.0.0" "@angular/bazel": "patch:@angular/bazel@npm:14.1.0-next.2#.yarn/patches/@angular-bazel-npm.patch" - "@angular/benchpress": "npm:0.3.0" "@angular/build": "npm:20.0.0" "@angular/cdk": "npm:20.0.0" "@angular/cli": "npm:20.0.0" @@ -12823,13 +12812,6 @@ __metadata: languageName: node linkType: hard -"reflect-metadata@npm:^0.1.13": - version: 0.1.14 - resolution: "reflect-metadata@npm:0.1.14" - checksum: 10c0/3a6190c7f6cb224f26a012d11f9e329360c01c1945e2cbefea23976a8bacf9db6b794aeb5bf18adcb673c448a234fbc06fc41853c00a6c206b30f0777ecf019e - languageName: node - linkType: hard - "reflect-metadata@npm:^0.2.0": version: 0.2.2 resolution: "reflect-metadata@npm:0.2.2"