From c5b693c39fcecd4cb6d5be56933993cbefec636b Mon Sep 17 00:00:00 2001 From: Masquerade Circus Date: Mon, 27 Jun 2022 20:31:27 -0500 Subject: [PATCH] refactor: update dependencies and exports - Update dependencies. - Update exports. - Remove register file. - Drop the default export and now use named export Benchmark for the main class. BREAKING CHANGE: - Drop the default export and now use named export Benchmark for the main class. fix #2 --- README.md | 24 +- build.js | 174 +- {types/lib => dist}/index.d.ts | 167 +- dist/index.js | 401 +++++ dist/index.min.js | 2 +- dist/index.min.js.map | 2 +- dist/index.mjs | 387 +++++ index.js | 2 - lib/index.ts | 272 ++- package.json | 43 +- register.js | 82 - tests/index.cjs | 38 + tests/index.min.js | 38 + tests/index.mjs | 38 + {bench => tests}/index.ts | 32 +- tsconfig.json | 9 +- yarn.lock | 2993 ++++++++++++++++++++------------ 17 files changed, 3305 insertions(+), 1399 deletions(-) rename {types/lib => dist}/index.d.ts (84%) create mode 100644 dist/index.js create mode 100644 dist/index.mjs delete mode 100644 index.js delete mode 100644 register.js create mode 100644 tests/index.cjs create mode 100644 tests/index.min.js create mode 100644 tests/index.mjs rename {bench => tests}/index.ts (62%) diff --git a/README.md b/README.md index f9d472c..d1a3da9 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ So, BuffaloBench solves this problem by providing a way to create a benchmarks w ### Simple example ```js -const Benchmark = require('buffalo-bench'); +const { Benchmark } = require('buffalo-bench'); // Create a benchmark only with name and function const bench = new Benchmark("name", async () => {}); @@ -62,6 +62,8 @@ await bench.run(); ### Full example: ```js +const { Benchmark } = require('buffalo-bench'); + // Create a benchmark with all the options const bench = new Benchmark('myBenchmark', { maxTime: 5, // In seconds @@ -92,6 +94,8 @@ await bench.run(); ### Suite example: ```js +const { Benchmark } = require('buffalo-bench'); + let suite = new Benchmark.Suite("String comparison", { beforeEach(benchmark) { console.log(`${this.name}: ${benchmark.name}: Start`); @@ -201,7 +205,7 @@ The `Suite` instance has the following methods: * `getSortedBenchmarksBy(sortedBy: CompareBy)`: Get the benchmarks sorted by a given `CompareBy` metric. * `getFastest(sortedBy: CompareBy)`: Get the fastest benchmark in the suite sorting by the given `CompareBy` metric. * `getSlowest(sortedBy: CompareBy)`: Get the slowest benchmark in the suite sorting by the given `CompareBy` metric. -* `CompareFastestWithSlowest(compareBy: CompareBy)`: Compare the fastest benchmark with the slowest benchmark sorting by the given `CompareBy` metric. +* `compareFastestWithSlowest(compareBy: CompareBy)`: Compare the fastest benchmark with the slowest benchmark sorting by the given `CompareBy` metric. * `run`: Async method that runs the suite. * `toJSON`: Return a JSON representation of the suite. @@ -232,17 +236,17 @@ When converting to JSON, the `errorMessage` property will be a string containing ## Using typescript -If you want to write your benchmarks with typescript, you can use the library as it is by requiring in your project the `buffalo-bench/register` file. +If you want to write your benchmarks with typescript, you must install the `ts-node` library and require in your project the `ts-node/register` file. Example: ```js -require('buffalo-bench/register'); -require('./my-benchmark.ts');) +require('ts-node/register'); +require('./my-benchmark.ts'); ``` ```ts -import Benchmark from 'buffalo-bench'; +import { Benchmark } from 'buffalo-bench/lib'; const bench = new Benchmark('myBenchmark', () => {}); (async () => { @@ -251,15 +255,11 @@ const bench = new Benchmark('myBenchmark', () => {}); })(); ``` -This register file uses the `eslint` and `pirates` modules to transpile the typescript code to javascript on the fly. - -Take into account that this will not check the typescript code for errors. If you want to check your typescript code, you can must use the `tsc` package. - ## Development and Build -- Use `yarn dev` to watch and compile the library on every change to it running the benchmarks in the bench folder. +- Use `yarn dev` to watch and compile the library on every change to it running the index.ts benchmark in the tests folder. - Use `yarn build` to build the library. -- Use `yarn commit` to commit your changes. +- Use `yarn commit` to commit your changes. ## Contributing diff --git a/build.js b/build.js index 14b13fb..dbf466b 100644 --- a/build.js +++ b/build.js @@ -2,66 +2,148 @@ const esbuild = require("esbuild"); const terser = require("terser"); const tsc = require("tsc-prog"); const fs = require("fs"); +const zlib = require("zlib"); -(async () => { +function convertToUMD(text, globalName) { + // HACK: convert to UMD - only supports cjs and global var + const varName = "__EXPORTS__"; + let code = text; + code = code.replace(/export\s*\{([^{}]+)\}/, (_, inner) => { + const defaultExport = inner.match(/^(\w+) as default$/); + return defaultExport != null + ? `var ${varName}=${defaultExport[1]}` + : `var ${varName}={${inner.replace(/(\w+) as (\w+)/g, "$2:$1")}}`; + }); + code = `(()=>{${code};typeof module!=='undefined'?module.exports=${varName}:self.${globalName}=${varName}})()`; + return code; +} + +async function build({ + globalName, + entryPoint, + outfileName, + clean = false, + minify = true, + external = [] +}) { try { - let globalName = "Benchmark"; - let result = esbuild.buildSync({ - entryPoints: ["./lib/index.ts"], + let rootdir = entryPoint.split("/").slice(0, -1).join("/"); + let outdir = outfileName.split("/").slice(0, -1).join("/"); + + let tscProgOptions2 = { + basePath: __dirname, // always required, used for relative paths + configFilePath: "tsconfig.json", // config to inherit from (optional) + files: [entryPoint], + pretty: true, + copyOtherToOutDir: false, + clean: clean ? [outdir] : [], + skipLibCheck: true, + compilerOptions: { + rootDir: rootdir, + declaration: true, + outDir: outdir, + emitDeclarationOnly: true + }, + bundleDeclaration: { + entryPoint: "index.d.ts" // relative to the OUTPUT directory ('dist' here) + } + }; + + tsc.build(tscProgOptions2); + + let cjs = esbuild.buildSync({ + entryPoints: [entryPoint], bundle: true, sourcemap: "external", write: false, - minify: true, - outdir: "out", + minify: false, + outdir: outdir, target: "esnext", loader: { ".js": "jsx", ".ts": "tsx", ".mjs": "jsx" }, - format: "esm" + format: "cjs", + metafile: true, + external }); - // HACK: convert to UMD - only supports cjs and global var - const varName = "__EXPORTS__"; - let code = result.outputFiles[1].text; - code = code.replace(/export\s*\{([^{}]+)\}/, (_, inner) => { - const defaultExport = inner.match(/^(\w+) as default$/); - return defaultExport != null ? `var ${varName}=${defaultExport[1]}` : `var ${varName}={${inner.replace(/(\w+) as (\w+)/g, "$2:$1")}}`; - }); - code = `(()=>{${code};typeof module!=='undefined'?module.exports=${varName}:self.${globalName}=${varName}})()`; - - let result2 = await terser.minify(code, { - sourceMap: { - content: result.outputFiles[0].text.toString() - }, - compress: { - booleans_as_integers: false - }, - output: { - wrap_func_args: false - }, - ecma: 2020 + let esm = esbuild.buildSync({ + entryPoints: [entryPoint], + bundle: true, + sourcemap: "external", + write: false, + minify: false, + outdir: outdir, + target: "esnext", + loader: { ".js": "jsx", ".ts": "tsx", ".mjs": "jsx" }, + format: "esm", + metafile: true, + external }); - let mapBase64 = Buffer.from(result2.map.toString()).toString("base64"); - let map = `//# sourceMappingURL=data:application/json;charset=utf-8;base64,${mapBase64}`; - fs.writeFileSync("./dist/index.min.js", result2.code); - fs.writeFileSync("./dist/index.min.js.map", map); + let esmContent = esm.outputFiles[1].text; - let tscProgOptions = { - basePath: process.cwd(), // always required, used for relative paths - configFilePath: "tsconfig.json", // config to inherit from (optional) - files: ["./lib/index.ts"], - pretty: true, - copyOtherToOutDir: false, - clean: ["types"], - compilerOptions: { - rootDir: "./", - declaration: true, - declarationDir: "./types", - emitDeclarationOnly: true + // HACK: simulate __dirname and __filename for esm + if (esmContent.indexOf("__dirname") || esmContent.indexOf("__filename")) { + esmContent = + `import { fileURLToPath } from 'url';\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n` + + esmContent; + if (esmContent.indexOf("import path from") === -1) { + esmContent = `import path from 'path';\n` + esmContent; } - }; + } + + fs.writeFileSync(`${outfileName}.mjs`, esmContent); + fs.writeFileSync(`${outfileName}.js`, cjs.outputFiles[1].text); + + let text = await esbuild.analyzeMetafile(esm.metafile, { verbose: true }); + console.log(text); - tsc.build(tscProgOptions); + let result2; + if (minify) { + let code = convertToUMD(esm.outputFiles[1].text, globalName); + result2 = await terser.minify(code, { + sourceMap: { + content: esm.outputFiles[0].text.toString() + }, + compress: { + booleans_as_integers: false + }, + output: { + wrap_func_args: false + }, + ecma: 2020 + }); + + let mapBase64 = Buffer.from(result2.map.toString()).toString("base64"); + let map = `//# sourceMappingURL=data:application/json;charset=utf-8;base64,${mapBase64}`; + fs.writeFileSync(`${outfileName}.min.js`, result2.code); + fs.writeFileSync(`${outfileName}.min.js.map`, map); + } + + function formatBytesToKiloBytes(bytes) { + return (bytes / 1024).toFixed(2) + "kb"; + } + + let header = `/*** ${entryPoint} ***/`; + console.log(header); + console.log("Esm", formatBytesToKiloBytes(esm.outputFiles[1].text.length)); + if (minify) { + console.log("Minified:", formatBytesToKiloBytes(result2.code.length)); + // Get the size using gzip compression + const gzip = zlib.gzipSync(result2.code); + console.log("Gzip:", formatBytesToKiloBytes(gzip.length)); + // Get the size using brotli algorithm + const brotli = zlib.brotliCompressSync(result2.code); + console.log("Brotli:", formatBytesToKiloBytes(brotli.length)); + } + console.log(`/${Array(header.length).fill("*").join("")}/`); } catch (e) { console.error(e); } -})(); +} + +build({ + globalName: "Benchmark", + entryPoint: "./lib/index.ts", + outfileName: "./dist/index", + clean: true +}); diff --git a/types/lib/index.d.ts b/dist/index.d.ts similarity index 84% rename from types/lib/index.d.ts rename to dist/index.d.ts index 2d99a8c..45672a9 100644 --- a/types/lib/index.d.ts +++ b/dist/index.d.ts @@ -1,3 +1,15 @@ +export declare const enum CompareBy { + MeanTime = "meanTime", + MedianTime = "medianTime", + StandardDeviation = "standardDeviation", + MaxTime = "maxTime", + MinTime = "minTime", + Hz = "hz", + RunTime = "runTime", + Cycles = "cycles", + Percent = "percent" +} + declare abstract class BenchmarkError extends Error { private readonly code?; readonly message: string; @@ -6,17 +18,75 @@ declare abstract class BenchmarkError extends Error { [key: string]: any; constructor(message?: string, code?: string); } + +interface Suite { + readonly defaults: { + maxTime: number; + minSamples: number; + }; + name: string; + error?: BenchmarkError; + options: SuiteOptions; + stamp: number; + runTime: number; + totalTime: number; + benchmarks: Benchmark[]; + constructor: SuiteConstructor; + add(name: string, optionsOrFn: (Partial & { + fn: BenchmarkFunction; + }) | BenchmarkFunction, options: Partial): Benchmark; + toJSON(): JsonSuite; + run(): Promise; + getSortedBenchmarksBy(sortedBy: CompareBy): Benchmark[]; + getFastest(sortedBy: CompareBy): Benchmark; + getSlowest(sortedBy: CompareBy): Benchmark; + compareFastestWithSlowest(compareBy: CompareBy): { + fastest: Benchmark; + slowest: Benchmark; + by: number; + }; +} + +declare class Suite implements Suite { + static readonly defaults: { + maxTime: number; + minSamples: number; + }; + name: string; + error?: BenchmarkError; + options: SuiteOptions; + stamp: number; + runTime: number; + totalTime: number; + benchmarks: Benchmark[]; + constructor(name: string, options?: Partial); +} + +declare type SuiteOptions = { + maxTime: number; + minSamples: number; + beforeEach?: (this: Suite, benchmark: Benchmark, i: number) => Promise | void; + afterEach?: (this: Suite, benchmark: Benchmark, i: number) => Promise | void; + after?: (this: Suite) => Promise | void; + before?: (this: Suite) => Promise | void; + onError?: (this: Suite, error: BenchmarkError) => Promise | void; +}; + +declare type SuiteConstructor = (name: string, options?: Partial) => Suite; + declare type BenchmarkFunction = () => Promise | void | any; + declare type BenchmarkOptions = { maxTime: number; minSamples: number; - beforeEach?: () => Promise | void; - afterEach?: () => Promise | void; - after?: () => Promise | void; - before?: () => Promise | void; - onError?: (error: BenchmarkError) => Promise | void; + beforeEach?: (this: Benchmark) => Promise | void; + afterEach?: (this: Benchmark) => Promise | void; + after?: (this: Benchmark) => Promise | void; + before?: (this: Benchmark) => Promise | void; + onError?: (this: Benchmark, error: BenchmarkError) => Promise | void; fn: BenchmarkFunction; }; + interface JsonBenchmark { name: string; errorMessage?: string; @@ -31,21 +101,21 @@ interface JsonBenchmark { totalTime: number; samples: number; } -export declare const enum CompareBy { - MeanTime = "meanTime", - MedianTime = "medianTime", - StandardDeviation = "standardDeviation", - MaxTime = "maxTime", - MinTime = "minTime", - Hz = "hz", - RunTime = "runTime", - Cycles = "cycles", - Percent = "percent" + +interface JsonSuite { + name: string; + errorMessage?: string; + runTime: number; + totalTime: number; + passed: boolean; + benchmarks: JsonBenchmark[]; } + declare type BenchmarkConstructor = (name: string, optionsOrFn: (Partial & { fn: BenchmarkFunction; }) | BenchmarkFunction, options: Partial) => Benchmark; -interface Benchmark { + +export interface Benchmark { Suite: typeof Suite; readonly version: string; readonly defaults: { @@ -72,7 +142,8 @@ interface Benchmark { toJSON(): JsonBenchmark; compareWith(other: Benchmark, compareBy: CompareBy): number; } -declare class Benchmark implements Benchmark { + +export declare class Benchmark implements Benchmark { static Suite: typeof Suite; static readonly version: string; static readonly defaults: { @@ -99,63 +170,5 @@ declare class Benchmark implements Benchmark { }) | BenchmarkFunction, options?: Partial); runSample(): Promise; } -declare type SuiteOptions = { - maxTime: number; - minSamples: number; - beforeEach?: (benchmark: Benchmark, i: number) => Promise | void; - afterEach?: (benchmark: Benchmark, i: number) => Promise | void; - after?: () => Promise | void; - before?: () => Promise | void; - onError?: (error: BenchmarkError) => Promise | void; -}; -interface JsonSuite { - name: string; - errorMessage?: string; - runTime: number; - totalTime: number; - passed: boolean; - benchmarks: JsonBenchmark[]; -} -declare type SuiteConstructor = (name: string, options?: Partial) => Suite; -interface Suite { - readonly defaults: { - maxTime: number; - minSamples: number; - }; - name: string; - error?: BenchmarkError; - options: SuiteOptions; - stamp: number; - runTime: number; - totalTime: number; - benchmarks: Benchmark[]; - constructor: SuiteConstructor; - add(name: string, optionsOrFn: (Partial & { - fn: BenchmarkFunction; - }) | BenchmarkFunction, options: Partial): Benchmark; - toJSON(): JsonSuite; - run(): Promise; - getSortedBenchmarksBy(sortedBy: CompareBy): Benchmark[]; - getFastest(sortedBy: CompareBy): Benchmark; - getSlowest(sortedBy: CompareBy): Benchmark; - compareFastestWithSlowest(compareBy: CompareBy): { - fastest: Benchmark; - slowest: Benchmark; - by: number; - }; -} -declare class Suite implements Suite { - static readonly defaults: { - maxTime: number; - minSamples: number; - }; - name: string; - error?: BenchmarkError; - options: SuiteOptions; - stamp: number; - runTime: number; - totalTime: number; - benchmarks: Benchmark[]; - constructor(name: string, options?: Partial); -} -export default Benchmark; + +export {} diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 0000000..4572356 --- /dev/null +++ b/dist/index.js @@ -0,0 +1,401 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + +// lib/index.ts +var lib_exports = {}; +__export(lib_exports, { + Benchmark: () => Benchmark, + CompareBy: () => CompareBy +}); +module.exports = __toCommonJS(lib_exports); +var version = "1.0.3"; +var now = typeof performance === "undefined" ? () => Date.now() : () => performance.now(); +var BenchmarkError = class extends Error { + code; + message; + name; + statusCode = 0; + constructor(message = "Something went wrong", code) { + super(); + this.message = message; + this.code = code; + this.name = this.constructor.name; + } +}; +var BeforeEachError = class extends BenchmarkError { + statusCode = 1; + name = "BeforeEachError"; +}; +var AfterEachError = class extends BenchmarkError { + statusCode = 2; + name = "AfterEachError"; +}; +var RunError = class extends BenchmarkError { + statusCode = 3; + name = "RunError"; +}; +var AfterError = class extends BenchmarkError { + statusCode = 4; + name = "AfterError"; +}; +var BeforeError = class extends BenchmarkError { + statusCode = 5; + name = "BeforeError"; +}; +var FatalError = class extends BenchmarkError { + statusCode = 7; + name = "FatalError"; +}; +var Errors = { + BenchmarkError, + BeforeEachError, + AfterEachError, + RunError, + AfterError, + BeforeError, + FatalError +}; +var CompareBy = /* @__PURE__ */ ((CompareBy2) => { + CompareBy2["MeanTime"] = "meanTime"; + CompareBy2["MedianTime"] = "medianTime"; + CompareBy2["StandardDeviation"] = "standardDeviation"; + CompareBy2["MaxTime"] = "maxTime"; + CompareBy2["MinTime"] = "minTime"; + CompareBy2["Hz"] = "hz"; + CompareBy2["RunTime"] = "runTime"; + CompareBy2["Cycles"] = "cycles"; + CompareBy2["Percent"] = "percent"; + return CompareBy2; +})(CompareBy || {}); +function getError(error, message, type) { + let benchmarkError = new Errors[type](message); + benchmarkError.stack = error.stack; + for (let i in error) { + if (error.hasOwnProperty(i)) { + benchmarkError[i] = error[i]; + } + } + return benchmarkError; +} +function isAsync(fn) { + return fn.constructor.name === "AsyncFunction"; +} +async function runCallback(instance, errorTypeIfAny, callback, ...args) { + if (callback) { + try { + await callback.bind(instance)(...args); + } catch (error) { + return getError(error, `Benchmark \`${instance.name}\` failed to run \`${callback.name}\` callback: ${error.message}`, errorTypeIfAny); + } + } +} +var _Benchmark = class { + name; + error; + cycles = 0; + samples = 0; + hz = 0; + meanTime = 0; + medianTime = 0; + standardDeviation = 0; + maxTime = 0; + minTime = 0; + times = []; + options; + stamp; + runTime = 0; + totalTime = 0; + constructor(name, optionsOrFn, options = {}) { + this.name = name; + let opts = { + ..._Benchmark.defaults, + ...options + }; + if (typeof optionsOrFn === "function") { + opts.fn = optionsOrFn; + } else { + opts = { + ...opts, + ...optionsOrFn + }; + } + this.options = opts; + } + toJSON() { + const { + name, + error, + cycles, + hz, + runTime, + totalTime, + samples, + meanTime, + medianTime, + standardDeviation, + maxTime, + minTime + } = this; + return { + name, + errorMessage: error ? error.message : void 0, + cycles, + samples, + hz, + meanTime, + medianTime, + standardDeviation, + maxTime, + minTime, + runTime, + totalTime + }; + } + compareWith(other, compareBy = "percent" /* Percent */) { + const { + error, + cycles, + hz, + meanTime, + medianTime, + standardDeviation, + maxTime, + minTime, + runTime + } = this; + if (error) { + return -1; + } + if (other.error) { + return 1; + } + switch (compareBy) { + case "meanTime": + return other.meanTime - meanTime; + case "medianTime": + return other.medianTime - medianTime; + case "standardDeviation": + return standardDeviation - other.standardDeviation; + case "maxTime": + return maxTime - other.maxTime; + case "minTime": + return other.minTime - minTime; + case "hz": + return hz - other.hz; + case "runTime": + return runTime - other.runTime; + case "cycles": + return cycles - other.cycles; + case "percent": + return Math.trunc((100 / meanTime * other.meanTime - 100) * 100) / 100; + default: + throw new Error(`Unknown compare field: ${compareBy}`); + } + } + async runSample() { + const { beforeEach, afterEach, fn } = this.options; + let sampleMaxTime = 1e3; + let startTime = now(); + while (now() - startTime < sampleMaxTime) { + const startCycleTime = now(); + this.cycles++; + const BeforeEachError2 = await runCallback(this, "BeforeEachError", beforeEach); + if (BeforeEachError2) { + throw BeforeEachError2; + } + let time; + try { + if (isAsync(fn)) { + let start = now(); + await fn(); + time = now() - start; + } else { + let start = now(); + fn(); + time = now() - start; + } + } catch (error) { + throw getError(error, `Benchmark \`${this.name}\` failed to run \`fn\`: ${error.message}`, "RunError"); + } + this.times.push(time); + this.runTime += time; + const AfterEachError2 = await runCallback(this, "AfterEachError", afterEach); + if (AfterEachError2) { + throw AfterEachError2; + } + this.totalTime += now() - startCycleTime; + } + } + async run() { + this.stamp = now(); + const { maxTime, minSamples, after, before, onError } = this.options; + let maxTimeInMilliseconds = maxTime * 1e3; + try { + const beforeError = await runCallback(this, "BeforeError", before); + if (beforeError) { + throw beforeError; + } + while (this.samples < minSamples || this.totalTime < maxTimeInMilliseconds) { + this.samples++; + await this.runSample(); + } + this.hz = this.cycles / (this.runTime / 1e3); + this.meanTime = this.runTime / this.times.length; + this.medianTime = this.times.sort((a, b) => a - b)[Math.floor(this.times.length / 2)] || 0; + this.standardDeviation = Math.sqrt(this.times.map((t) => Math.pow(t - this.meanTime, 2)).reduce((a, b) => a + b, 0) / this.times.length); + this.maxTime = this.times.reduce((max, time) => Math.max(max, time), 0); + this.minTime = this.times.reduce((min, time) => Math.min(min, time), Infinity); + const afterError = await runCallback(this, "AfterError", after); + if (afterError) { + throw afterError; + } + } catch (error) { + this.error = error; + const onErrorError = await runCallback(this, "FatalError", onError, error); + if (onErrorError) { + throw onErrorError; + } + } + } +}; +var Benchmark = _Benchmark; +__publicField(Benchmark, "Suite"); +__publicField(Benchmark, "version", version); +__publicField(Benchmark, "defaults", { + maxTime: 5, + minSamples: 1 +}); +var _Suite = class { + name; + error; + options; + stamp; + runTime = 0; + totalTime = 0; + benchmarks = []; + constructor(name, options = {}) { + this.name = name; + this.options = { + ..._Suite.defaults, + ...options + }; + } + toJSON() { + const { error, name, runTime, totalTime } = this; + return { + name, + errorMessage: error ? error.message : void 0, + runTime, + totalTime, + passed: !error, + benchmarks: this.getSortedBenchmarksBy("meanTime" /* MeanTime */).map((benchmark) => benchmark.toJSON()) + }; + } + add(name, optionsOrFn, options = {}) { + let opts = { + ...{ + minSamples: this.options.minSamples, + maxTime: this.options.maxTime + }, + ...options + }; + if (typeof optionsOrFn === "function") { + opts.fn = optionsOrFn; + } else { + opts = { + ...opts, + ...optionsOrFn + }; + } + let benchmark = new Benchmark(name, opts); + this.benchmarks.push(benchmark); + return benchmark; + } + async run() { + this.stamp = now(); + const { beforeEach, afterEach, after, before, onError } = this.options; + try { + const beforeError = await runCallback(this, "BeforeError", before); + if (beforeError) { + throw beforeError; + } + for (let i = 0, l = this.benchmarks.length; i < l; i++) { + let benchmark = this.benchmarks[i]; + const beforeEachError = await runCallback(this, "BeforeEachError", beforeEach, benchmark, i); + if (beforeEachError) { + throw beforeEachError; + } + await benchmark.run(); + this.runTime += benchmark.runTime; + this.totalTime += benchmark.totalTime; + const afterEachError = await runCallback(this, "AfterEachError", afterEach, benchmark, i); + if (afterEachError) { + throw afterEachError; + } + } + const afterError = await runCallback(this, "AfterError", after); + if (afterError) { + throw afterError; + } + } catch (error) { + this.error = error; + const onErrorError = await runCallback(this, "FatalError", onError, error); + if (onErrorError) { + throw onErrorError; + } + } + } + getSortedBenchmarksBy(sortBy) { + const benchmarks = this.benchmarks.slice(); + const sortedBenchmarks = benchmarks.sort((a, b) => { + let result = b.compareWith(a, sortBy); + return result > 0 ? 1 : result < 0 ? -1 : 0; + }); + return sortedBenchmarks; + } + getFastest(sortBy) { + const sortedBenchmarks = this.getSortedBenchmarksBy(sortBy); + return sortedBenchmarks[0]; + } + getSlowest(sortBy) { + const sortedBenchmarks = this.getSortedBenchmarksBy(sortBy); + return sortedBenchmarks[sortedBenchmarks.length - 1]; + } + compareFastestWithSlowest(compareBy) { + let sortBy = compareBy === "percent" /* Percent */ ? "meanTime" /* MeanTime */ : compareBy; + const fastest = this.getFastest(sortBy); + const slowest = this.getSlowest(sortBy); + return { + fastest, + slowest, + by: fastest.compareWith(slowest, compareBy) + }; + } +}; +var Suite = _Suite; +__publicField(Suite, "defaults", { + maxTime: 5, + minSamples: 1 +}); +Benchmark.Suite = Suite; diff --git a/dist/index.min.js b/dist/index.min.js index 9200c7e..228eb84 100644 --- a/dist/index.min.js +++ b/dist/index.min.js @@ -1 +1 @@ -(()=>{var e,t,r=Object.defineProperty,a=(e,t,a)=>(((e,t,a)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a})(e,"symbol"!=typeof t?t+"":t,a),a),i="undefined"==typeof performance?()=>Date.now():()=>performance.now(),s=class extends Error{code;message;name;statusCode=0;constructor(e="Something went wrong",t){super(),this.message=e,this.code=t,this.name=this.constructor.name}},n={BenchmarkError:s,BeforeEachError:class extends s{statusCode=1;name="BeforeEachError"},AfterEachError:class extends s{statusCode=2;name="AfterEachError"},RunError:class extends s{statusCode=3;name="RunError"},AfterError:class extends s{statusCode=4;name="AfterError"},BeforeError:class extends s{statusCode=5;name="BeforeError"},FatalError:class extends s{statusCode=7;name="FatalError"}};function m(e,t,r){let a=new n[r](t);a.stack=e.stack;for(let t in e)e.hasOwnProperty(t)&&(a[t]=e[t]);return a}async function o(e,t,r,...a){if(r)try{await r.bind(e)(...a)}catch(a){return m(a,`Benchmark \`${e.name}\` failed to run \`${r.name}\` callback: ${a.message}`,t)}}(t=e||(e={})).MeanTime="meanTime",t.MedianTime="medianTime",t.StandardDeviation="standardDeviation",t.MaxTime="maxTime",t.MinTime="minTime",t.Hz="hz",t.RunTime="runTime",t.Cycles="cycles",t.Percent="percent";var h=class{name;error;cycles=0;samples=0;hz=0;meanTime=0;medianTime=0;standardDeviation=0;maxTime=0;minTime=0;times=[];options;stamp;runTime=0;totalTime=0;constructor(e,t,r={}){this.name=e;let a={...h.defaults,...r};"function"==typeof t?a.fn=t:a={...a,...t},this.options=a}toJSON(){let{name:e,error:t,cycles:r,hz:a,runTime:i,totalTime:s,samples:n,meanTime:m,medianTime:o,standardDeviation:h,maxTime:c,minTime:l}=this;return{name:e,errorMessage:t?t.message:void 0,cycles:r,samples:n,hz:a,meanTime:m,medianTime:o,standardDeviation:h,maxTime:c,minTime:l,runTime:i,totalTime:s}}compareWith(t,r=e.Percent){let{error:a,cycles:i,hz:s,meanTime:n,medianTime:m,standardDeviation:o,maxTime:h,minTime:c,runTime:l}=this;if(a)return-1;if(t.error)return 1;switch(r){case"meanTime":return t.meanTime-n;case"medianTime":return t.medianTime-m;case"standardDeviation":return o-t.standardDeviation;case"maxTime":return h-t.maxTime;case"minTime":return t.minTime-c;case"hz":return s-t.hz;case"runTime":return l-t.runTime;case"cycles":return i-t.cycles;case"percent":return Math.trunc(100*(100/n*t.meanTime-100))/100;default:throw new Error(`Unknown compare field: ${r}`)}}async runSample(){let{beforeEach:e,afterEach:t,fn:r}=this.options,a=i();for(;i()-a<1e3;){let a=i();this.cycles++;let s,n=await o(this,"BeforeEachError",e);if(n)throw n;try{if("AsyncFunction"===r.constructor.name){let e=i();await r(),s=i()-e}else{let e=i();r(),s=i()-e}}catch(e){throw m(e,`Benchmark \`${this.name}\` failed to run \`fn\`: ${e.message}`,"RunError")}this.times.push(s),this.runTime+=s;let h=await o(this,"AfterEachError",t);if(h)throw h;this.totalTime+=i()-a}}async run(){this.stamp=i();let{maxTime:e,minSamples:t,after:r,before:a,onError:s}=this.options,n=1e3*e;try{let e=await o(this,"BeforeError",a);if(e)throw e;for(;this.samplese-t)[Math.floor(this.times.length/2)]||0,this.standardDeviation=Math.sqrt(this.times.map(e=>Math.pow(e-this.meanTime,2)).reduce((e,t)=>e+t,0)/this.times.length),this.maxTime=this.times.reduce((e,t)=>Math.max(e,t),0),this.minTime=this.times.reduce((e,t)=>Math.min(e,t),1/0);let i=await o(this,"AfterError",r);if(i)throw i}catch(e){this.error=e;let t=await o(this,"FatalError",s,e);if(t)throw t}}},c=h;a(c,"Suite"),a(c,"version","1.0.1"),a(c,"defaults",{maxTime:5,minSamples:1});var l=class{name;error;options;stamp;runTime=0;totalTime=0;benchmarks=[];constructor(e,t={}){this.name=e,this.options={...l.defaults,...t}}toJSON(){let{error:t,name:r,runTime:a,totalTime:i}=this;return{name:r,errorMessage:t?t.message:void 0,runTime:a,totalTime:i,passed:!t,benchmarks:this.getSortedBenchmarksBy(e.MeanTime).map(e=>e.toJSON())}}add(e,t,r={}){let a={minSamples:this.options.minSamples,maxTime:this.options.maxTime,...r};"function"==typeof t?a.fn=t:a={...a,...t};let i=new c(e,a);return this.benchmarks.push(i),i}async run(){this.stamp=i();let{beforeEach:e,afterEach:t,after:r,before:a,onError:s}=this.options;try{let i=await o(this,"BeforeError",a);if(i)throw i;for(let r=0,a=this.benchmarks.length;r{let a=r.compareWith(t,e);return a>0?1:a<0?-1:0})}getFastest(e){return this.getSortedBenchmarksBy(e)[0]}getSlowest(e){let t=this.getSortedBenchmarksBy(e);return t[t.length-1]}compareFastestWithSlowest(t){let r=t===e.Percent?e.MeanTime:t,a=this.getFastest(r),i=this.getSlowest(r);return{fastest:a,slowest:i,by:a.compareWith(i,t)}}},u=l;a(u,"defaults",{maxTime:5,minSamples:1}),c.Suite=u;var f={CompareBy:e,default:c};"undefined"!=typeof module?module.exports=f:self.Benchmark=f})(); \ No newline at end of file +(()=>{"use strict";var e=Object.defineProperty,t=(t,r,a)=>(((t,r,a)=>{r in t?e(t,r,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[r]=a})(t,"symbol"!=typeof r?r+"":r,a),a),r="undefined"==typeof performance?()=>Date.now():()=>performance.now(),a=class extends Error{code;message;name;statusCode=0;constructor(e="Something went wrong",t){super(),this.message=e,this.code=t,this.name=this.constructor.name}},s={BenchmarkError:a,BeforeEachError:class extends a{statusCode=1;name="BeforeEachError"},AfterEachError:class extends a{statusCode=2;name="AfterEachError"},RunError:class extends a{statusCode=3;name="RunError"},AfterError:class extends a{statusCode=4;name="AfterError"},BeforeError:class extends a{statusCode=5;name="BeforeError"},FatalError:class extends a{statusCode=7;name="FatalError"}},i=(e=>(e.MeanTime="meanTime",e.MedianTime="medianTime",e.StandardDeviation="standardDeviation",e.MaxTime="maxTime",e.MinTime="minTime",e.Hz="hz",e.RunTime="runTime",e.Cycles="cycles",e.Percent="percent",e))(i||{});function n(e,t,r){let a=new s[r](t);a.stack=e.stack;for(let t in e)e.hasOwnProperty(t)&&(a[t]=e[t]);return a}function m(e){return"AsyncFunction"===e.constructor.name}async function o(e,t,r,...a){if(r)try{await r.bind(e)(...a)}catch(a){return n(a,`Benchmark \`${e.name}\` failed to run \`${r.name}\` callback: ${a.message}`,t)}}var c=class{name;error;cycles=0;samples=0;hz=0;meanTime=0;medianTime=0;standardDeviation=0;maxTime=0;minTime=0;times=[];options;stamp;runTime=0;totalTime=0;constructor(e,t,r={}){this.name=e;let a={...c.defaults,...r};"function"==typeof t?a.fn=t:a={...a,...t},this.options=a}toJSON(){const{name:e,error:t,cycles:r,hz:a,runTime:s,totalTime:i,samples:n,meanTime:m,medianTime:o,standardDeviation:c,maxTime:h,minTime:l}=this;return{name:e,errorMessage:t?t.message:void 0,cycles:r,samples:n,hz:a,meanTime:m,medianTime:o,standardDeviation:c,maxTime:h,minTime:l,runTime:s,totalTime:i}}compareWith(e,t="percent"){const{error:r,cycles:a,hz:s,meanTime:i,medianTime:n,standardDeviation:m,maxTime:o,minTime:c,runTime:h}=this;if(r)return-1;if(e.error)return 1;switch(t){case"meanTime":return e.meanTime-i;case"medianTime":return e.medianTime-n;case"standardDeviation":return m-e.standardDeviation;case"maxTime":return o-e.maxTime;case"minTime":return e.minTime-c;case"hz":return s-e.hz;case"runTime":return h-e.runTime;case"cycles":return a-e.cycles;case"percent":return Math.trunc(100*(100/i*e.meanTime-100))/100;default:throw new Error(`Unknown compare field: ${t}`)}}async runSample(){const{beforeEach:e,afterEach:t,fn:a}=this.options;let s=r();for(;r()-s<1e3;){const s=r();this.cycles++;const i=await o(this,"BeforeEachError",e);if(i)throw i;let c;try{if(m(a)){let e=r();await a(),c=r()-e}else{let e=r();a(),c=r()-e}}catch(e){throw n(e,`Benchmark \`${this.name}\` failed to run \`fn\`: ${e.message}`,"RunError")}this.times.push(c),this.runTime+=c;const h=await o(this,"AfterEachError",t);if(h)throw h;this.totalTime+=r()-s}}async run(){this.stamp=r();const{maxTime:e,minSamples:t,after:a,before:s,onError:i}=this.options;let n=1e3*e;try{const e=await o(this,"BeforeError",s);if(e)throw e;for(;this.samplese-t)[Math.floor(this.times.length/2)]||0,this.standardDeviation=Math.sqrt(this.times.map(e=>Math.pow(e-this.meanTime,2)).reduce((e,t)=>e+t,0)/this.times.length),this.maxTime=this.times.reduce((e,t)=>Math.max(e,t),0),this.minTime=this.times.reduce((e,t)=>Math.min(e,t),1/0);const r=await o(this,"AfterError",a);if(r)throw r}catch(e){this.error=e;const t=await o(this,"FatalError",i,e);if(t)throw t}}},h=c;t(h,"Suite"),t(h,"version","1.0.3"),t(h,"defaults",{maxTime:5,minSamples:1});var l=class{name;error;options;stamp;runTime=0;totalTime=0;benchmarks=[];constructor(e,t={}){this.name=e,this.options={...l.defaults,...t}}toJSON(){const{error:e,name:t,runTime:r,totalTime:a}=this;return{name:t,errorMessage:e?e.message:void 0,runTime:r,totalTime:a,passed:!e,benchmarks:this.getSortedBenchmarksBy("meanTime").map(e=>e.toJSON())}}add(e,t,r={}){let a={minSamples:this.options.minSamples,maxTime:this.options.maxTime,...r};"function"==typeof t?a.fn=t:a={...a,...t};let s=new h(e,a);return this.benchmarks.push(s),s}async run(){this.stamp=r();const{beforeEach:e,afterEach:t,after:a,before:s,onError:i}=this.options;try{const r=await o(this,"BeforeError",s);if(r)throw r;for(let r=0,a=this.benchmarks.length;r{let a=r.compareWith(t,e);return a>0?1:a<0?-1:0})}getFastest(e){return this.getSortedBenchmarksBy(e)[0]}getSlowest(e){const t=this.getSortedBenchmarksBy(e);return t[t.length-1]}compareFastestWithSlowest(e){let t="percent"===e?"meanTime":e;const r=this.getFastest(t),a=this.getSlowest(t);return{fastest:r,slowest:a,by:r.compareWith(a,e)}}},u=l;t(u,"defaults",{maxTime:5,minSamples:1}),h.Suite=u;var f={Benchmark:h,CompareBy:i};"undefined"!=typeof module?module.exports=f:self.Benchmark=f})(); \ No newline at end of file diff --git a/dist/index.min.js.map b/dist/index.min.js.map index 1cd5aa9..ad5a444 100644 --- a/dist/index.min.js.map +++ b/dist/index.min.js.map @@ -1 +1 @@ -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9pbmRleC50cyJdLCJuYW1lcyI6WyJiIiwidCIsInUiLCJwZXJmb3JtYW5jZSIsIkRhdGUiLCJub3ciLCJkIiwiRXJyb3IiLCJjb2RlIiwibWVzc2FnZSIsIm5hbWUiLCJzdGF0dXNDb2RlIiwiY29uc3RydWN0b3IiLCJlIiwiciIsInN1cGVyIiwidGhpcyIsIkQiLCJCZW5jaG1hcmtFcnJvciIsIkJlZm9yZUVhY2hFcnJvciIsIkFmdGVyRWFjaEVycm9yIiwiUnVuRXJyb3IiLCJBZnRlckVycm9yIiwiQmVmb3JlRXJyb3IiLCJGYXRhbEVycm9yIiwiRiIsImEiLCJpIiwic3RhY2siLCJuIiwiaGFzT3duUHJvcGVydHkiLCJhc3luYyIsImwiLCJiaW5kIiwiTWVhblRpbWUiLCJNZWRpYW5UaW1lIiwiU3RhbmRhcmREZXZpYXRpb24iLCJNYXhUaW1lIiwiTWluVGltZSIsIkh6IiwiUnVuVGltZSIsIkN5Y2xlcyIsIlBlcmNlbnQiLCJnIiwiZXJyb3IiLCJjeWNsZXMiLCJzYW1wbGVzIiwiaHoiLCJtZWFuVGltZSIsIm1lZGlhblRpbWUiLCJzdGFuZGFyZERldmlhdGlvbiIsIm1heFRpbWUiLCJtaW5UaW1lIiwidGltZXMiLCJvcHRpb25zIiwic3RhbXAiLCJydW5UaW1lIiwidG90YWxUaW1lIiwiZGVmYXVsdHMiLCJmbiIsInRvSlNPTiIsImgiLCJjIiwibSIsIm8iLCJzIiwiZiIsIlQiLCJlcnJvck1lc3NhZ2UiLCJjb21wYXJlV2l0aCIsIk1hdGgiLCJ0cnVuYyIsInJ1blNhbXBsZSIsImJlZm9yZUVhY2giLCJhZnRlckVhY2giLCJwdXNoIiwicnVuIiwibWluU2FtcGxlcyIsImFmdGVyIiwiYmVmb3JlIiwib25FcnJvciIsImxlbmd0aCIsInNvcnQiLCJmbG9vciIsInNxcnQiLCJtYXAiLCJwb3ciLCJyZWR1Y2UiLCJtYXgiLCJtaW4iLCJwIiwiayIsIkUiLCJiZW5jaG1hcmtzIiwicGFzc2VkIiwiZ2V0U29ydGVkQmVuY2htYXJrc0J5IiwiYWRkIiwic2xpY2UiLCJnZXRGYXN0ZXN0IiwiZ2V0U2xvd2VzdCIsImNvbXBhcmVGYXN0ZXN0V2l0aFNsb3dlc3QiLCJmYXN0ZXN0Iiwic2xvd2VzdCIsImJ5IiwieSIsIlN1aXRlIiwiX19FWFBPUlRTX18iLCJDb21wYXJlQnkiLCJkZWZhdWx0Il0sIm1hcHBpbmdzIjoiVUFrTk9BLEVBQ0xDLDhKQTNHUUMsRUFBdUIsb0JBQWhCQyxZQUFvQyxJQUFLQyxLQUFRQyxNQUFNLElBQUFGLFlBS3hFRSxNQUFBQyxFQUFBLGNBQ21CQyxNQUNSQyxLQUFBQyxRQUVUQyxLQUFBQyxXQUdBLEVBQUFDLFlBQXNCQyxFQUFBLHVCQUNwQkMsR0FBQUMsUUFDS0MsS0FBQVAsUUFDTEksRUFBS0csS0FBT1IsS0FDWk0sRUFBS0UsS0FBUU4sS0FBS00sS0FBQUosWUFBNENGLE9BeUNoRU8sRUFBQSxDQUFBQyxlQUNBWixFQUFBYSxnQkFyQ0YsY0FDRWIsRUFBQUssV0FDQSxFQUFPRCxLQUFBLG1CQW9DUFUsZUFoQ0YsY0FDRWQsRUFBQUssV0FDQSxFQUFPRCxLQUFBLGtCQStCUFcsU0EzQkYsY0FDRWYsRUFBQUssV0FDQSxFQUFPRCxLQUFBLFlBMEJQWSxXQXRCRixjQUNFaEIsRUFBQUssV0FDQSxFQUFPRCxLQUFBLGNBcUJQYSxZQWpCRixjQUNFakIsRUFBQUssV0FDQSxFQUFPRCxLQUFBLGVBZ0JQYyxXQVpGLGNBQ0VsQixFQUFBSyxXQUNBLEVBQU9ELEtBQUEsZUFvR1QsU0FBaURlLEVBQWlDQyxFQUNoRmIsRUFBSUMsR0FBaUIsSUFBSWEsRUFBTyxJQUFNVixFQUN0Q0gsR0FBZUQsR0FBQWMsRUFBUUMsTUFBTUYsRUFDN0JFLE1BQUEsSUFBUyxJQUFLQyxLQUNGSCxFQUFBQSxFQUFBSSxlQUNSRCxLQUFxQkYsRUFBY0UsR0FHdkNILEVBQUFHLElBQU8sT0FJVEYsRUFJQUksZUFHRUMsRUFBQU4sRUFBQWIsRUFDR0MsS0FFQ2EsR0FDRixHQUNFYixFQUFBLFVBQWVBLEVBQUttQixLQUFhUCxFQUFsQlosSUFBa0JhLEdBQzFCLE1BQ1BFLEdBQU8sT0FBZ0JKLEVBQUFJLEVBQUEsZUFBd0JILEVBQUFoQiwwQkFBbUNJLEVBQUFKLG9CQUEwQm1CLEVBQUFwQixVQU1sSEksS0E5RUVaLEVBRGdCRCxJQUFBQSxFQStDbEIsS0E5Q0VrQyxTQUFXLFdBQ1hqQyxFQUFBa0MsV0FBYSxhQUNibEMsRUFBQW1DLGtCQUFvQixvQkFDcEJuQyxFQUFBb0MsUUFBVSxVQUNWcEMsRUFBQXFDLFFBQVUsVUFDTHJDLEVBQUFzQyxHQUNMLEtBQUF0QyxFQUFBdUMsUUFBVSxVQUNWdkMsRUFBQXdDLE9BQVMsU0FDVHhDLEVBQUF5QyxRQUFVLFVBc0VaLElBQUFDLEVBV0UsTUFDQWpDLEtBQ0FrQyxNQUFBQyxPQUNBLEVBQUFDLFFBQ2EsRUFDYkMsR0FBQSxFQUFBQyxTQUNBLEVBQUFDLFdBQ0EsRUFBQUMsa0JBQ0EsRUFBQUMsUUFDQSxFQUFBQyxRQUNBLEVBQWtCQyxNQUNsQixHQUFBQyxRQUVBQyxNQUFBQyxRQUNBLEVBQUFDLFVBRUEsRUFBQTdDLFlBQXlKQyxFQUFBQyxFQUN2SmEsRUFBQSxJQUFLWCxLQUFPTixLQUNSRyxFQUFPLElBQ05nQixFQUFVLElBQUFjLEVBQUFlLFlBSVgvQixHQUF1QixtQkFBQWIsRUFDZmUsRUFFVjhCLEdBQU83QyxFQUNGZSxFQUFBLElBQ0FBLEtBSVBmLEdBQUtFLEtBQUFzQyxRQUdQekIsRUFBQStCLFNBQ1UsSUFBQWxELEtBQU1HLEVBQUErQixNQUFPOUIsRUFBQStCLE9BQVFsQixFQUFJb0IsR0FBQWxCLEVBQUEyQixRQUFTSyxFQUFBSixVQUFXSyxFQUFBaEIsUUFBU2lCLEVBQUFmLFNBQVVnQixFQUFBZixXQUFZaEQsRUFBQWlELGtCQUFtQmUsRUFBQWQsUUFBU2UsRUFBQWQsUUFBWWUsR0FFNUhuRCxLQUFPLE1BQ0wsQ0FBQU4sS0FDQUcsRUFBQXVELGFBQTRCdEQsRUFBQUEsRUFBQUwsYUFBVSxFQUN0Q29DLE9BQ0FsQixFQUFBbUIsUUFDQWlCLEVBQ0FoQixHQUFBbEIsRUFBQW1CLFNBQ0FnQixFQUFBZixXQUNBaEQsRUFBQWlELGtCQUNBZSxFQUFBZCxRQUNBZSxFQUFBZCxRQUNBZSxFQUFBWCxRQUNBSyxFQUFBSixVQUlKSyxHQUFBTyxZQUErRHhELEVBQUFDLEVBQUFkLEVBQUEwQyxTQUNyRCxJQUFBRSxNQUFPakIsRUFBQWtCLE9BQVFoQixFQUFJa0IsR0FBQWMsRUFBQWIsU0FBVWMsRUFBQWIsV0FBWWMsRUFBQWIsa0JBQW1CYyxFQUFBYixRQUFTbEQsRUFBQW1ELFFBQVNhLEVBQUFULFFBQVlVLEdBRWxHbEQsS0FDRSxHQUFBVyxFQUFPLE9BR0wsRUFBTSxHQUFBZCxFQUNSK0IsTUFBTyxPQUdULEVBQUEsT0FBUTlCLEdBQ0QsSUFBQSxXQUNJLE9BQU1ELEVBQUFtQyxTQUNWYyxFQUFBLElBQUEsYUFDSSxPQUFNakQsRUFBQW9DLFdBQ1ZjLEVBQUEsSUFBQSxvQkFDSSxPQUEwQkMsRUFBQW5ELEVBQUFxQyxrQkFDOUIsSUFBQSxVQUNJLE9BQWdCakQsRUFBQVksRUFBQXNDLFFBQ3BCLElBQUEsVUFDSSxPQUFNdEMsRUFBQXVDLFFBQ1ZhLEVBQUEsSUFDSCxLQUFPLE9BQVdKLEVBQUFoRCxFQUFBa0MsR0FDZixJQUFBLFVBQ0ksT0FBZ0JtQixFQUFBckQsRUFBQTJDLFFBQ3BCLElBQUEsU0FDSSxPQUFlM0IsRUFBQWhCLEVBQUFnQyxPQUNuQixJQUFBLFVBQ0ksT0FBS3lCLEtBQVFDLE1BQWlELEtBQS9CLElBQU1ULEVBQUFqRCxFQUFBbUMsU0FBa0IsTUFBTyxJQUFBLFFBRS9ELE1BQUksSUFBTXpDLE1BQUEsMEJBQTBCTyxNQUkxQzBELGtCQUNJLElBQUFDLFdBQVk1RCxFQUFBNkQsVUFBVzVELEVBQU82QyxHQUFBaEMsR0FBS1gsS0FBQXNDLFFBSTNDTyxFQUFBM0QsSUFBTyxLQUFvQkEsSUFDekIyRCxFQUhjLEtBR1IsQ0FBaUIsSUFDdkJDLEVBQUE1RCxJQUFLYyxLQUFBNkIsU0FDbUIsSUFPdEJtQixFQVBzQkQsUUFBa0IvQixFQUFNaEIsS0FBQSxrQkFDNUNILEdBQ0YsR0FBQWtELEVBQU0sTUFHSkEsRUFFRixJQUFZLEdBdElhLGtCQXVJdkJwQyxFQXZJRWYsWUFBWUYsS0F1SVYsQ0FBUSxJQUNadUQsRUFBQS9ELFVBQ095QixJQUFRcUMsRUFBQTlELElBQ1YrRCxNQUNELENBQVEsSUFDWkEsRUFBQS9ELElBQ095QixJQUFRcUMsRUFBQTlELElBQUErRCxHQUVWLE1BQ1BBLEdBQU0sTUFBZ0J4QyxFQUFBd0MsRUFBQSxlQUFvQmpELEtBQUFOLGdDQUFzQ3VELEVBQUF4RCxVQUFXLFlBR3hGTyxLQUFNcUMsTUFBS3NCLEtBQ2hCWCxHQUFLaEQsS0FBQXdDLFNBRUNRLEVBQWlCLElBQUEvRCxRQUFrQitCLEVBQU1oQixLQUFBLGlCQUMzQ0YsR0FDRixHQUFBYixFQUFNLE1BR1JBLEVBQUtlLEtBQUF5QyxXQUFxQnZELElBQUE0RCxHQUt4QmMsWUFDQzVELEtBQVF1QyxNQUNickQsSUFBUSxJQUFBaUQsUUFBU3RDLEVBQUFnRSxXQUFZL0QsRUFBQWdFLE1BQU9uRCxFQUFBb0QsT0FBUWxELEVBQUFtRCxRQUFZbkIsR0FBSzdDLEtBQUFzQyxRQUN2QlEsRUFFdEMsSUFBQWpELEVBQ0UsSUFBb0IsSUFBQWtELFFBQWtCL0IsRUFBTWhCLEtBQUEsY0FDeENhLEdBQ0YsR0FBQWtDLEVBQU0sTUFHUkEsRUFBTyxLQUFLL0MsS0FBQThCLFFBQXdCaEMsR0FBS0UsS0FBQXlDLFVBQ3ZDSyxHQUFLOUMsS0FBQThCLGdCQUNNOUIsS0FBQXdELFlBSVJ4RCxLQUFLK0IsR0FBSy9CLEtBQUE2QixRQUFlN0IsS0FBQXdDLFFBRzlCLEtBQUt4QyxLQUFBZ0MsU0FBZ0JoQyxLQUFBd0MsUUFBZXhDLEtBQU1xQyxNQUFBNEIsT0FDckNqRSxLQUFBaUMsV0FBa0JqQyxLQUFNcUMsTUFBTTZCLEtBQUcsQ0FBTWpGLEVBQUlnRSxJQUFHaEUsRUFBQWdFLEdBQUtLLEtBQU1hLE1BQUtuRSxLQUFNcUMsTUFBQTRCLE9BQWdCLEtBQ3pGLEVBQUtqRSxLQUFBa0Msa0JBQXlCb0IsS0FBS2MsS0FBS3BFLEtBQU1xQyxNQUFLZ0MsSUFBTXBGLEdBQUtxRSxLQUFRZ0IsSUFBQXJGLEVBQUtlLEtBQUFnQyxTQUFjLElBQUF1QyxPQUFXLENBQU10RixFQUFJZ0UsSUFBR2hFLEVBQUtnRSxFQUFBLEdBQUtqRCxLQUFNcUMsTUFBQTRCLFFBRzVIakUsS0FBQW1DLFFBQWVuQyxLQUFNcUMsTUFBQWtDLE9BQWEsQ0FBU3RGLEVBQUFnRSxJQUFLSyxLQUFTa0IsSUFBT3ZGLEVBQ3JFZ0UsR0FBQSxHQUFLakQsS0FBQW9DLFFBQWVwQyxLQUFNcUMsTUFBQWtDLE9BQWEsQ0FBU3RGLEVBQUFnRSxJQUFLSyxLQUFTbUIsSUFBT3hGLEVBQUFnRSxHQUVyRSxFQUFBLEdBQW1CLElBQUFELFFBQWtCaEMsRUFBTWhCLEtBQUEsYUFDdkNXLEdBQ0YsR0FBQXFDLEVBQU0sTUFBQUEsRUFFRCxNQUNQRCxHQUFLL0MsS0FBUTRCLE1BRVBtQixFQUFlLElBQUFDLFFBQWtCaEMsRUFBTWhCLEtBQUEsYUFDN0M2QyxFQUFJRSxHQUNGLEdBQUFDLEVBQU0sTUFsTGRBLEtBQUEwQixFQUNTL0MsRUFBQWdELEVBQUFELEVBQUEsU0FDU0MsRUFBQUQsRUFBQSxtQkFDQUMsRUFBQUQsRUFBQSxXQUlkLENBQUF2QyxRQUNBLEVBQUEwQixXQXNPSixJQUFBLElBQUFlLEVBTUUsTUFDQWxGLEtBQ0FrQyxNQUFBVSxRQUVBQyxNQUFBQyxRQUNBLEVBQUFDLFVBQ0EsRUFBQW9DLFdBRUEsR0FBQWpGLFlBQTJEQyxFQUN6REMsRUFBQSxJQUFLRSxLQUFPTixLQUNaRyxFQUFLRyxLQUFBc0MsUUFDTSxJQUFBc0MsRUFBQWxDLFlBS2I1QyxHQUFBOEMsU0FDVSxJQUFBaEIsTUFBTy9CLEVBQUFILEtBQU1JLEVBQUEwQyxRQUFTN0IsRUFBQThCLFVBQWM1QixHQUU1Q2IsS0FBTyxNQUNMLENBQUFOLEtBQ0FJLEVBQUFzRCxhQUE0QnZELEVBQUFBLEVBQUFKLGFBQVUsRUFDdEMrQyxRQUNBN0IsRUFBQThCLFVBQ0E1QixFQUFBaUUsUUFDQWpGLEVBQUFnRixXQUFpQjdFLEtBQUErRSxzQkFBZ0MvRixFQUFBa0MsVUFBZW1ELElBQXdCeEIsR0FBQUEsRUFBQUQsV0FNMUZvQyxJQUNxQ25GLEVBQUFDLEVBRXJDYSxFQUFBLElBQVcsSUFFUEUsRUFBQSxDQUFBZ0QsV0FBaUI3RCxLQUFBc0MsUUFBUXVCLFdBQ3pCMUIsUUFBY25DLEtBQUFzQyxRQUFRSCxXQUt0QnhCLEdBQXVCLG1CQUFBYixFQUNmZSxFQUVWOEIsR0FBTzdDLEVBQ0ZlLEVBQUEsSUFDQUEsS0FHSGYsR0FBWSxJQUFJK0MsRUFBVSxJQUFNNkIsRUFDcEM3RSxFQUFBZ0IsR0FBQSxPQUFLYixLQUFBNkUsV0FBZ0JsQixLQUNkZCxHQUFBQSxFQUdIZSxZQUNDNUQsS0FBUXVDLE1BQ2JyRCxJQUFRLElBQUF1RSxXQUFZNUQsRUFBQTZELFVBQVc1RCxFQUFBZ0UsTUFBT25ELEVBQUFvRCxPQUFRbEQsRUFBQW1ELFFBQVluQixHQUFLN0MsS0FBQXNDLFFBRzdELElBQW9CLElBQUFRLFFBQWtCOUIsRUFBTWhCLEtBQUEsY0FDeENhLEdBQ0YsR0FBQWlDLEVBQU0sTUFHUkEsRUFBQSxJQUFhLElBQU9FLEVBQUEsRUFBQS9ELEVBQUtlLEtBQUE2RSxXQUFXWixPQUFlakIsRUFBSy9ELEVBQ3REK0QsSUFBSSxDQUFZLElBQUFDLEVBQUtqRCxLQUFBNkUsV0FDRzdCLEdBQUFFLFFBQWtCbEMsRUFBTWhCLEtBQUEsa0JBQTBDSCxFQUMxRm9ELEVBQUlELEdBQ0YsR0FBQUUsRUFBTSxNQUdSQSxRQUFnQkQsRUFDaEJXLE1BQUs1RCxLQUFBd0MsU0FBcUJTLEVBQUFULFFBQ3JCeEMsS0FBQXlDLFdBQXVCUSxFQUFBUixVQUVMLElBQUFVLFFBQWtCbkMsRUFBTWhCLEtBQUEsaUJBQXdDRixFQUN2Rm1ELEVBQUlELEdBQ0YsR0FBQUcsRUFBTSxNQUlKQSxFQUFhLElBQUFKLFFBQWtCL0IsRUFBTWhCLEtBQUEsYUFDdkNXLEdBQ0YsR0FBQW9DLEVBQU0sTUFBQUEsRUFFRCxNQUNQRCxHQUFLOUMsS0FBUTRCLE1BRVBrQixFQUFlLElBQUFDLFFBQWtCL0IsRUFBTWhCLEtBQUEsYUFDN0M2QyxFQUFJQyxHQUNGLEdBQUFDLEVBQU0sTUFLWkEsR0FBQWdDLHNCQU9FbEYsR0FMeUIsT0FEREcsS0FBQTZFLFdBQVdJLFFBQ09mLEtBQUcsQ0FBTXJELEVBQ2pEZ0MsS0FBYSxJQUFFQyxFQUFBRCxFQUFBUSxZQUNmeEMsRUFBQWhCLEdBQU8sT0FBaUJpRCxFQUFTLEVBQUksRUFBQUEsRUFBSyxHQU05QyxFQUFBLElBQUFvQyxXQUVFckYsR0FBTyxPQUR1QkcsS0FBQStFLHNCQUloQ2xGLEdBQUEsR0FBQXNGLFdBQ1F0RixHQUFtQixJQUFBQyxFQUFLRSxLQUFBK0Usc0JBQzlCbEYsR0FBTyxPQUFrQ0MsRUFBQUEsRUFBQW1FLE9BRzNDLEdBQUFtQiwwQkFDTXZGLEdBQVMsSUFBY0MsRUFBVUQsSUFBQWIsRUFBQTBDLFFBQW9CMUMsRUFBQWtDLFNBQ3pDckIsRUFBQWMsRUFBS1gsS0FBQWtGLFdBQ0xwRixHQUFBZSxFQUFLYixLQUFBbUYsV0FFckJyRixHQUFPLE1BQ0wsQ0FBQXVGLFFBQ0ExRSxFQUFBMkUsUUFDSXpFLEVBQVEwRSxHQUFBNUUsRUFBQTBDLFlBQXFCeEMsRUFsSXZDaEIsTUFBQTJGLEVBQ2tCWixFQUFBRCxFQUFBYSxFQUFBLFdBQ2QsQ0FBQXJELFFBQ0EsRUFBQTBCLFdBb0lNLElBQUFhLEVBQVFlLE1BR1hELEVBQVEsSUFBQUUsRUFBQSxDQUFBQyxVQUFBM0csRUFBQTRHLFFBQUFsQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEEgYmVuY2htYXJraW5nIGxpYnJhcnkgdGhhdCBzdXBwb3J0cyBhc3luYyBob29rcyBhbmQgYmVuY2htYXJrcyBieSBkZWZhdWx0LlxuLy8gVGhpcyBsaWJyYXJ5IGNvbWVzIGJ5IHRoZSBwcm9ibGVtIG9mIGhhbmRsaW5nIGFzeW5jIGZ1bmN0aW9ucyBpbiBhIHdheSB0aGF0IGlzIGNvbXBhdGlibGUgd2l0aCBiZW5jaG1hcmtpbmcuXG4vLyBUaGUgcHJvYmxlbSBpcyB0aGF0IGFzeW5jIGhvb2sgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgQmVuY2htYXJrLmpzXG4vLyBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBjb2RlIHdpbGwgbm90IHdvcmsgYXMgZXhwZWN0ZWQ6XG5cbi8qXG4gIG5ldyBCZW5jaG1hcmsoJ3Rlc3QnLCBhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgZG9Tb21ldGhpbmcoKTtcbiAgfSwge1xuICAgIGFzeW5jOiB0cnVlLFxuICAgIGFzeW5jIGJlZm9yZSgpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKDEpO1xuICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDEwMDApKTtcbiAgICAgIGNvbnNvbGUubG9nKDIpO1xuICAgIH0sXG4gIH0pXG4qL1xuXG4vLyBUaGUgcHJldmlvdXMgY29kZSB3aWxsIGxvZyAxIGFuZCB0aGVuIHJ1biB0aGUgYmVuY2htYXJrIGFuZCB0aGUgbG9nIDIgY291bGQgYmUgbG9nZ2VkIGJlZm9yZSB0aGUgYmVuY2htYXJrIGlzIGZpbmlzaGVkIG9yIGNvdWxkJ3QgYmUgbG9nZ2VkIGF0IGFsbC5cbi8vIFRoaXMgcHJvYmxlbSBwcmV2ZW50IHVzIHRvIGNyZWF0ZSBhbiBhc3luYyBiZWZvcmUgYW5kL29yIGFmdGVyIGZvciBhIGJlbmNobWFyayBsaWtlIGFuIGFwaSBjYWxsIHRoYXQgY291bGQgcmVxdWlyZSBpdC5cblxuLy8gVGhpcyBsaWJyYXJ5IHNvbHZlcyB0aGlzIHByb2JsZW0gYnkgcHJvdmlkaW5nIGEgd2F5IHRvIGNyZWF0ZSBhIGJlbmNobWFyayB3aXRoIGFsbCB0aGUgaG9va3MgYW5kIGJlbmNobWFyayBoYW5kbGVkIGFzIGFzeW5jIGJ5IGRlZmF1bHQuXG5cbi8vIFNpbXBsZSBleGFtcGxlc1xuLy8gY29uc3QgYmVuY2ggPSBuZXcgQmVuY2htYXJrKFwibmFtZVwiLCBhc3luYyAoKSA9PiB7fSk7XG4vLyBjb25zdCBiZW5jaCA9IG5ldyBCZW5jaG1hcmsoXCJuYW1lXCIsIGFzeW5jICgpID0+IHt9LCBvcHRpb25zKTtcbi8vIGNvbnN0IGJlbmNoID0gbmV3IEJlbmNobWFyayhcIm5hbWVcIiwge2ZuOiBhc3luYyAoKSA9PiB7fSwgLi4ub3B0aW9uc30pO1xuLy8gYXdhaXQgYmVuY2gucnVuKCk7XG5cbi8vIEZ1bGwgZXhhbXBsZTpcbi8vIGNvbnN0IGJlbmNoID0gbmV3IEJlbmNobWFyaygnbXlCZW5jaG1hcmsnLCB7XG4vLyAgIG1heFRpbWU6IDUsIC8vIEluIHNlY29uZHNcbi8vICAgbWluU2FtcGxlczogMSxcbi8vICAgYmVmb3JlRWFjaDogYXN5bmMgKCkgPT4ge1xuLy8gICAgIGF3YWl0IGRvU29tZXRoaW5nKCk7XG4vLyAgIH0sXG4vLyAgIGFmdGVyRWFjaDogYXN5bmMgKCkgPT4ge1xuLy8gICAgIGF3YWl0IGRvU29tZXRoaW5nKCk7XG4vLyAgIH0sXG4vLyAgIGFmdGVyOiBhc3luYyAoKSA9PiB7XG4vLyAgICAgYXdhaXQgZG9Tb21ldGhpbmcoKTtcbi8vICAgfSxcbi8vICAgYmVmb3JlOiBhc3luYyAoKSA9PiB7XG4vLyAgICAgYXdhaXQgZG9Tb21ldGhpbmcoKTtcbi8vICAgfSxcbi8vICAgb25FcnJvcjogYXN5bmMgKGVycm9yKSA9PiB7XG4vLyAgICAgYXdhaXQgZG9Tb21ldGhpbmcoKTtcbi8vICAgfSxcbi8vICAgZm46IGFzeW5jICgpID0+IHtcbi8vICAgICBhd2FpdCBkb1NvbWV0aGluZygpO1xuLy8gICB9LFxuLy8gfSk7XG4vLyBhd2FpdCBiZW5jaC5ydW4oKTtcblxuLy8gVGhlIGBCZW5jaG1hcmtgIGNvbnN0cnVjdG9yIHRha2VzIGFuIGBvcHRpb25zYCBhcmd1bWVudC5cbi8vIFRoZSBgb3B0aW9uc2AgYXJndW1lbnQgaXMgYW4gb2JqZWN0IHdpdGggdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOlxuLy8gKiBgbWF4VGltZWA6IFRoZSBtYXhpbXVtIHRpbWUgaW4gc2Vjb25kcyB0aGF0IGEgYmVuY2htYXJrIGNhbiB0YWtlIGluY2x1ZGluZyBob29rcy5cbi8vICogYG1pblNhbXBsZXNgOiBUaGUgbWluaW11bSBudW1iZXIgb2Ygc2FtcGxlcyB0aGF0IG11c3QgYmUgdGFrZW4uXG4vLyAqIGBiZWZvcmVFYWNoYDogQSBmdW5jdGlvbiB0byBiZSBydW4gb25jZSBiZWZvcmUgZWFjaCBiZW5jaG1hcmsgbG9vcCwgZG9lcyBub3QgY291bnQgZm9yIHJ1biB0aW1lLlxuLy8gKiBgYWZ0ZXJFYWNoYDogQSBmdW5jdGlvbiB0byBiZSBydW4gb25jZSBhZnRlciBlYWNoIGJlbmNobWFyayBsb29wLCBkb2VzIG5vdCBjb3VudCBmb3IgcnVuIHRpbWUuXG4vLyAqIGBhZnRlcmA6IEEgZnVuY3Rpb24gdG8gYmUgcnVuIG9uY2UgYWZ0ZXIgdGhlIGJlbmNobWFyayBsb29wIGZpbmlzaGVzLCBkb2VzIG5vdCBjb3VudCBmb3IgcnVuIHRpbWUuXG4vLyAqIGBiZWZvcmVgOiBBIGZ1bmN0aW9uIHRvIGJlIHJ1biBvbmNlIGJlZm9yZSB0aGUgYmVuY2htYXJrIGxvb3Agc3RhcnRzLCBkb2VzIG5vdCBjb3VudCBmb3IgcnVuIHRpbWUuXG4vLyAqIGBvbkVycm9yYDogQSBmdW5jdGlvbiB0byBiZSBydW4gaWYgYW4gZXJyb3Igb2NjdXJzLlxuLy8gKiBgZm5gOiBUaGUgZnVuY3Rpb24gdG8gYmUgcnVuLlxuXG4vLyBUaGUgYEJlbmNobWFya2AgaW5zdGFuY2UgaGFzIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbi8vICogYG5hbWVgOiBUaGUgbmFtZSBvZiB0aGUgYmVuY2htYXJrLlxuLy8gKiBgZXJyb3JgOiBUaGUgZXJyb3Igb2JqZWN0IGlmIGFuIGVycm9yIG9jY3VycmVkLlxuLy8gKiBgY3ljbGVzYDogVGhlIG51bWJlciBvZiBjeWNsZXMgcGVyZm9ybWVkLlxuLy8gKiBgaHpgOiBUaGUgbnVtYmVyIG9mIGN5Y2xlcyBwZXIgc2Vjb25kLlxuLy8gKiBgbWVhblRpbWVgOiBUaGUgbWVhblRpbWUgdGltZSBwZXIgY3ljbGUuXG4vLyAqIGBtZWRpYW5UaW1lYDogVGhlIG1lZGlhblRpbWUgdGltZSBwZXIgY3ljbGUuXG4vLyAqIGBzdGFuZGFyZERldmlhdGlvbmA6IFRoZSBzdGFuZGFyZCBkZXZpYXRpb24uXG4vLyAqIGBtYXhUaW1lYDogVGhlIG1heGltdW0gdGltZS5cbi8vICogYG1pblRpbWVgOiBUaGUgbWluaW11bSB0aW1lLlxuLy8gKiBgdGltZXNgOiBBbiBhcnJheSBvZiB0aW1lcyBmb3IgZWFjaCBjeWNsZS5cbi8vICogYG9wdGlvbnNgOiBUaGUgb3B0aW9ucyBvYmplY3QgcGFzc2VkIHRvIHRoZSBjb25zdHJ1Y3Rvci5cbi8vICogYHN0YW1wYDogQSB0aW1lc3RhbXAgcmVwcmVzZW50aW5nIHdoZW4gdGhlIGJlbmNobWFyayB3YXMgY3JlYXRlZC5cbi8vICogYHJ1blRpbWVgOiBUaGUgdG90YWwgdGltZSB0YWtlbiB0byBydW4gdGhlIGJlbmNobWFyaywgdGhpcyBkb2VzIG5vdCBpbmNsdWRlIGJlZm9yZUVhY2gsIGFmdGVyRWFjaCwgb25TdHJhcnQgYW5kIGFmdGVyIGhvb2tzLlxuLy8gKiBgdG90YWxUaW1lYDogVGhlIHRvdGFsIHRpbWUgdGFrZW4gdG8gcnVuIHRoZSBiZW5jaG1hcmsgaW5jbHVkaW5nIGJlZm9yZUVhY2gsIGFmdGVyRWFjaCwgYmVmb3JlIGFuZCBhZnRlciBob29rcy5cblxuLy8gVGhlIGBCZW5jaG1hcmtgIGluc3RhbmNlIGhhcyB0aGUgZm9sbG93aW5nIG1ldGhvZHM6XG4vLyAqIGBydW5gOiBSdW4gdGhlIGJlbmNobWFyay5cbi8vICogYHRvSlNPTmA6IFJldHVybiBhIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGJlbmNobWFyay5cbi8vICogYGNvbXBhcmVXaXRoYDogQ29tcGFyZSB0aGlzIGJlbmNobWFyayB0byBhbm90aGVyLlxuXG4vLyBUaGUgYEJlbmNobWFya2AgY2xhc3MgaGFzIHRoZSBmb2xsb3dpbmcgc3RhdGljIHByb3BlcnRpZXM6XG4vLyAqIGB2ZXJzaW9uYDogQSBzdHJpbmcgY29udGFpbmluZyB0aGUgbGlicmFyeSB2ZXJzaW9uLlxuLy8gKiBgZGVmYXVsdHNgOiBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgZGVmYXVsdCBvcHRpb25zLlxuXG4vLyBJZiB0aGUgYGJlZm9yZUVhY2hgIGBhZnRlckVhY2hgIGBhZnRlcmAgYGJlZm9yZWAgYG9uRXJyb3JgIHJldHVybnMgYSBQcm9taXNlLCB0aGUgYmVuY2htYXJrIHdpbGwgd2FpdCBmb3IgdGhlIHByb21pc2UgdG8gcmVzb2x2ZSBiZWZvcmUgY29udGludWluZy5cblxuLy8gSWYgdGhlIGBiZWZvcmVFYWNoYCBmdW5jdGlvbiB0aHJvd3MgYW4gZXJyb3IsIHRoZSBiZW5jaG1hcmsgd2lsbCBzdG9wIGFuZCBlbWl0IGFuIGBCZWZvcmVFYWNoRXJyb3JgIGV2ZW50LlxuLy8gSWYgdGhlIGBhZnRlckVhY2hgIGZ1bmN0aW9uIHRocm93cyBhbiBlcnJvciwgdGhlIGJlbmNobWFyayB3aWxsIHN0b3AgYW5kIGVtaXQgYW4gYEFmdGVyRWFjaEVycm9yYCBldmVudC5cbi8vIElmIHRoZSBgZm5gIGZ1bmN0aW9uIHRocm93cyBhbiBlcnJvciwgdGhlIGJlbmNobWFyayB3aWxsIHN0b3AgYW5kIGVtaXQgYW4gYFJ1bkVycm9yYCBldmVudC5cbi8vIElmIHRoZSBgYWZ0ZXJgIGZ1bmN0aW9uIHRocm93cyBhbiBlcnJvciwgdGhlIGJlbmNobWFyayB3aWxsIHN0b3AgYW5kIGVtaXQgYW4gYEFmdGVyRXJyb3JgIGV2ZW50LlxuLy8gSWYgdGhlIGBiZWZvcmVgIGZ1bmN0aW9uIHRocm93cyBhbiBlcnJvciwgdGhlIGJlbmNobWFyayB3aWxsIHN0b3AgYW5kIGVtaXQgYW4gYEJlZm9yZUVycm9yYCBldmVudC5cbi8vIElmIHRoZSBgb25FcnJvcmAgZnVuY3Rpb24gdGhyb3dzIGFuIGVycm9yLCB0aGUgYmVuY2htYXJrIHdpbGwgc3RvcCBhbmQgZW1pdCBhbiBgRmF0YWxFcnJvcmAgZXZlbnQuXG5cbi8vIFRoaXMgZXJyb3JzIHdpbGwgYmUgZm91bmQgaW4gdGhlIGBlcnJvcmAgcHJvcGVydHkgb2YgdGhlIGJlbmNobWFyayBpbnN0YW5jZS5cbi8vIFdoZW4gY29udmVydGluZyB0byBKU09OLCB0aGUgYGVycm9yTWVzc2FnZWAgcHJvcGVydHkgd2lsbCBiZSBhIHN0cmluZyBjb250YWluaW5nIHRoZSBlcnJvciBtZXNzYWdlLlxuXG5pbXBvcnQgeyB2ZXJzaW9uIH0gZnJvbSBcIi4uL3BhY2thZ2UuanNvblwiO1xuXG5sZXQgbm93ID0gdHlwZW9mIHBlcmZvcm1hbmNlID09PSBcInVuZGVmaW5lZFwiID8gKCkgPT4gRGF0ZS5ub3coKSA6ICgpID0+IHBlcmZvcm1hbmNlLm5vdygpO1xuXG4vLyoqKiBFcnJvcnMgKioqLy9cblxuLy8gQmVuY2htYXJrRXJyb3I6IEFuIGVycm9yIG9jY3VycmVkIGR1cmluZyBiZW5jaG1hcmtpbmcuXG5hYnN0cmFjdCBjbGFzcyBCZW5jaG1hcmtFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjb2RlPzogc3RyaW5nO1xuICByZWFkb25seSBtZXNzYWdlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgc3RhdHVzQ29kZSA9IDA7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcblxuICBjb25zdHJ1Y3RvcihtZXNzYWdlID0gXCJTb21ldGhpbmcgd2VudCB3cm9uZ1wiLCBjb2RlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgIHRoaXMuY29kZSA9IGNvZGU7XG4gICAgdGhpcy5uYW1lID0gKHRoaXMuY29uc3RydWN0b3IgYXMgdW5rbm93biBhcyB7IG5hbWU6IHN0cmluZyB9KS5uYW1lO1xuICB9XG59XG5cbi8vICBCZWZvcmVFYWNoRXJyb3I6IFRoZSBgYmVmb3JlRWFjaGAgZnVuY3Rpb24gdGhyZXcgYW4gZXJyb3IuXG5jbGFzcyBCZWZvcmVFYWNoRXJyb3IgZXh0ZW5kcyBCZW5jaG1hcmtFcnJvciB7XG4gIHN0YXR1c0NvZGUgPSAxO1xuICBuYW1lID0gXCJCZWZvcmVFYWNoRXJyb3JcIjtcbn1cblxuLy8gIEFmdGVyRWFjaEVycm9yOiBUaGUgYGFmdGVyRWFjaGAgZnVuY3Rpb24gdGhyZXcgYW4gZXJyb3IuXG5jbGFzcyBBZnRlckVhY2hFcnJvciBleHRlbmRzIEJlbmNobWFya0Vycm9yIHtcbiAgc3RhdHVzQ29kZSA9IDI7XG4gIG5hbWUgPSBcIkFmdGVyRWFjaEVycm9yXCI7XG59XG5cbi8vICBSdW5FcnJvcjogVGhlIGBmbmAgZnVuY3Rpb24gdGhyZXcgYW4gZXJyb3IuXG5jbGFzcyBSdW5FcnJvciBleHRlbmRzIEJlbmNobWFya0Vycm9yIHtcbiAgc3RhdHVzQ29kZSA9IDM7XG4gIG5hbWUgPSBcIlJ1bkVycm9yXCI7XG59XG5cbi8vICBBZnRlckVycm9yOiBUaGUgYGFmdGVyYCBmdW5jdGlvbiB0aHJldyBhbiBlcnJvci5cbmNsYXNzIEFmdGVyRXJyb3IgZXh0ZW5kcyBCZW5jaG1hcmtFcnJvciB7XG4gIHN0YXR1c0NvZGUgPSA0O1xuICBuYW1lID0gXCJBZnRlckVycm9yXCI7XG59XG5cbi8vICBCZWZvcmVFcnJvcjogVGhlIGBiZWZvcmVgIGZ1bmN0aW9uIHRocmV3IGFuIGVycm9yLlxuY2xhc3MgQmVmb3JlRXJyb3IgZXh0ZW5kcyBCZW5jaG1hcmtFcnJvciB7XG4gIHN0YXR1c0NvZGUgPSA1O1xuICBuYW1lID0gXCJCZWZvcmVFcnJvclwiO1xufVxuXG4vLyAgRmF0YWxFcnJvcjogVGhlIGBvbkVycm9yYCBmdW5jdGlvbiB0aHJldyBhbiBlcnJvci5cbmNsYXNzIEZhdGFsRXJyb3IgZXh0ZW5kcyBCZW5jaG1hcmtFcnJvciB7XG4gIHN0YXR1c0NvZGUgPSA3O1xuICBuYW1lID0gXCJGYXRhbEVycm9yXCI7XG59XG5cbmNvbnN0IEVycm9ycyA9IHtcbiAgQmVuY2htYXJrRXJyb3IsXG4gIEJlZm9yZUVhY2hFcnJvcixcbiAgQWZ0ZXJFYWNoRXJyb3IsXG4gIFJ1bkVycm9yLFxuICBBZnRlckVycm9yLFxuICBCZWZvcmVFcnJvcixcbiAgRmF0YWxFcnJvclxufTtcblxudHlwZSBFcnJvclR5cGUgPSBcIkJlZm9yZUVhY2hFcnJvclwiIHwgXCJBZnRlckVhY2hFcnJvclwiIHwgXCJSdW5FcnJvclwiIHwgXCJBZnRlckVycm9yXCIgfCBcIkJlZm9yZUVycm9yXCIgfCBcIkZhdGFsRXJyb3JcIjtcblxuLy8gQmVuY2htYXJrRnVuY3Rpb24gYSBmdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIGFzIGEgYmVuY2htYXJrLlxudHlwZSBCZW5jaG1hcmtGdW5jdGlvbiA9ICgpID0+IFByb21pc2U8dm9pZCB8IGFueT4gfCB2b2lkIHwgYW55O1xuXG4vLyoqKiBCZW5jaG1hcmsgT3B0aW9ucyBUeXBlICoqKi8vXG50eXBlIEJlbmNobWFya09wdGlvbnMgPSB7XG4gIC8vIFRoZSBtYXhpbXVtIHRpbWUgaW4gc2Vjb25kcyB0aGF0IGEgYmVuY2htYXJrIGNhbiB0YWtlLlxuICBtYXhUaW1lOiBudW1iZXI7XG4gIC8vIFRoZSBtaW5pbXVtIG51bWJlciBvZiBzYW1wbGVzIHRoYXQgbXVzdCBiZSB0YWtlbi5cbiAgbWluU2FtcGxlczogbnVtYmVyO1xuICAvLyBBIGZ1bmN0aW9uIHRvIGJlIHJ1biBvbmNlIGJlZm9yZSBlYWNoIGJlbmNobWFyayBsb29wLCBkb2VzIG5vdCBjb3VudCBmb3IgcnVuIHRpbWUuXG4gIGJlZm9yZUVhY2g/OiAoKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZDtcbiAgLy8gQSBmdW5jdGlvbiB0byBiZSBydW4gb25jZSBhZnRlciBlYWNoIGJlbmNobWFyayBsb29wLCBkb2VzIG5vdCBjb3VudCBmb3IgcnVuIHRpbWUuXG4gIGFmdGVyRWFjaD86ICgpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkO1xuICAvLyBBIGZ1bmN0aW9uIHRvIGJlIHJ1biBvbmNlIGFmdGVyIHRoZSBiZW5jaG1hcmsgY29tcGxldGVzLCBkb2VzIG5vdCBjb3VudCBmb3IgcnVuIHRpbWUuXG4gIGFmdGVyPzogKCkgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWQ7XG4gIC8vIEEgZnVuY3Rpb24gdG8gYmUgcnVuIG9uY2UgYmVmb3JlIHRoZSBiZW5jaG1hcmsgc3RhcnRzLCBkb2VzIG5vdCBjb3VudCBmb3IgcnVuIHRpbWUuXG4gIGJlZm9yZT86ICgpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkO1xuICAvLyBBIGZ1bmN0aW9uIHRvIGJlIHJ1biBpZiBhbiBlcnJvciBvY2N1cnMuXG4gIG9uRXJyb3I/OiAoZXJyb3I6IEJlbmNobWFya0Vycm9yKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZDtcbiAgLy8gVGhlIGZ1bmN0aW9uIHRvIGJlIHJ1bi5cbiAgZm46IEJlbmNobWFya0Z1bmN0aW9uO1xufTtcblxuaW50ZXJmYWNlIEpzb25CZW5jaG1hcmsge1xuICBuYW1lOiBzdHJpbmc7XG4gIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgY3ljbGVzOiBudW1iZXI7XG4gIGh6OiBudW1iZXI7XG4gIG1lYW5UaW1lOiBudW1iZXI7XG4gIG1lZGlhblRpbWU6IG51bWJlcjtcbiAgc3RhbmRhcmREZXZpYXRpb246IG51bWJlcjtcbiAgbWF4VGltZTogbnVtYmVyO1xuICBtaW5UaW1lOiBudW1iZXI7XG4gIHJ1blRpbWU6IG51bWJlcjtcbiAgdG90YWxUaW1lOiBudW1iZXI7XG4gIHNhbXBsZXM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IGVudW0gQ29tcGFyZUJ5IHtcbiAgTWVhblRpbWUgPSBcIm1lYW5UaW1lXCIsXG4gIE1lZGlhblRpbWUgPSBcIm1lZGlhblRpbWVcIixcbiAgU3RhbmRhcmREZXZpYXRpb24gPSBcInN0YW5kYXJkRGV2aWF0aW9uXCIsXG4gIE1heFRpbWUgPSBcIm1heFRpbWVcIixcbiAgTWluVGltZSA9IFwibWluVGltZVwiLFxuICBIeiA9IFwiaHpcIixcbiAgUnVuVGltZSA9IFwicnVuVGltZVwiLFxuICBDeWNsZXMgPSBcImN5Y2xlc1wiLFxuICBQZXJjZW50ID0gXCJwZXJjZW50XCJcbn1cblxudHlwZSBCZW5jaG1hcmtDb25zdHJ1Y3RvciA9IChcbiAgbmFtZTogc3RyaW5nLFxuICBvcHRpb25zT3JGbjogKFBhcnRpYWw8QmVuY2htYXJrT3B0aW9ucz4gJiB7IGZuOiBCZW5jaG1hcmtGdW5jdGlvbiB9KSB8IEJlbmNobWFya0Z1bmN0aW9uLFxuICBvcHRpb25zOiBQYXJ0aWFsPEJlbmNobWFya09wdGlvbnM+XG4pID0+IEJlbmNobWFyaztcblxuaW50ZXJmYWNlIEJlbmNobWFyayB7XG4gIFN1aXRlOiB0eXBlb2YgU3VpdGU7XG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcbiAgcmVhZG9ubHkgZGVmYXVsdHM6IHtcbiAgICBtYXhUaW1lOiBudW1iZXI7XG4gICAgbWluU2FtcGxlczogbnVtYmVyO1xuICB9O1xuICBuYW1lOiBzdHJpbmc7XG4gIGVycm9yPzogQmVuY2htYXJrRXJyb3I7XG4gIGN5Y2xlczogbnVtYmVyO1xuICBzYW1wbGVzOiBudW1iZXI7XG4gIGh6OiBudW1iZXI7XG4gIG1lYW5UaW1lOiBudW1iZXI7XG4gIG1lZGlhblRpbWU6IG51bWJlcjtcbiAgc3RhbmRhcmREZXZpYXRpb246IG51bWJlcjtcbiAgbWF4VGltZTogbnVtYmVyO1xuICBtaW5UaW1lOiBudW1iZXI7XG4gIHRpbWVzOiBudW1iZXJbXTtcbiAgb3B0aW9uczogQmVuY2htYXJrT3B0aW9ucztcbiAgc3RhbXA6IG51bWJlcjtcbiAgcnVuVGltZTogbnVtYmVyO1xuICB0b3RhbFRpbWU6IG51bWJlcjtcbiAgY29uc3RydWN0b3I6IEJlbmNobWFya0NvbnN0cnVjdG9yO1xuICBydW4oKTogUHJvbWlzZTx2b2lkPjtcbiAgdG9KU09OKCk6IEpzb25CZW5jaG1hcms7XG4gIGNvbXBhcmVXaXRoKG90aGVyOiBCZW5jaG1hcmssIGNvbXBhcmVCeTogQ29tcGFyZUJ5KTogbnVtYmVyO1xufVxuXG4vLyBoZWxwZXIgdG8gZ2V0IHRoZSBjb3JyZWN0IGVycm9yIHR5cGUgZnJvbSBhIG5vcm1hbCBlcnJvclxuZnVuY3Rpb24gZ2V0RXJyb3IoZXJyb3I6IEVycm9yLCBtZXNzYWdlOiBzdHJpbmcsIHR5cGU6IEVycm9yVHlwZSk6IEJlbmNobWFya0Vycm9yIHtcbiAgbGV0IGJlbmNobWFya0Vycm9yID0gbmV3IEVycm9yc1t0eXBlXShtZXNzYWdlKTtcbiAgYmVuY2htYXJrRXJyb3Iuc3RhY2sgPSBlcnJvci5zdGFjaztcbiAgZm9yIChsZXQgaSBpbiBlcnJvcikge1xuICAgIGlmIChlcnJvci5oYXNPd25Qcm9wZXJ0eShpKSkge1xuICAgICAgYmVuY2htYXJrRXJyb3JbaV0gPSAoZXJyb3IgYXMgYW55KVtpXTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGJlbmNobWFya0Vycm9yO1xufVxuXG4vLyBoZWxwZXIgZnVuY3Rpb24gdG8ga25vdyBpZiBhIGZ1bmN0aW9uIGlzIGFzeW5jIG9yIG5vdFxuZnVuY3Rpb24gaXNBc3luYyhmbjogQmVuY2htYXJrRnVuY3Rpb24pOiBib29sZWFuIHtcbiAgcmV0dXJuIGZuLmNvbnN0cnVjdG9yLm5hbWUgPT09IFwiQXN5bmNGdW5jdGlvblwiO1xufVxuXG5hc3luYyBmdW5jdGlvbiBydW5DYWxsYmFjayhcbiAgaW5zdGFuY2U6IGFueSxcbiAgZXJyb3JUeXBlSWZBbnk6IEVycm9yVHlwZSxcbiAgY2FsbGJhY2s/OiAoLi4uYXJnczogYW55W10pID0+IFByb21pc2U8dm9pZD4gfCB2b2lkLFxuICAuLi5hcmdzOiBhbnlbXVxuKTogUHJvbWlzZTx2b2lkIHwgQmVuY2htYXJrRXJyb3I+IHtcbiAgaWYgKGNhbGxiYWNrKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGNhbGxiYWNrLmJpbmQoaW5zdGFuY2UpKC4uLmFyZ3MpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gZ2V0RXJyb3IoZXJyb3IsIGBCZW5jaG1hcmsgXFxgJHtpbnN0YW5jZS5uYW1lfVxcYCBmYWlsZWQgdG8gcnVuIFxcYCR7Y2FsbGJhY2submFtZX1cXGAgY2FsbGJhY2s6ICR7ZXJyb3IubWVzc2FnZX1gLCBlcnJvclR5cGVJZkFueSk7XG4gICAgfVxuICB9XG59XG5cbi8vIFRoZSBiZW5jaG1hcmsgY2xhc3NcbmNsYXNzIEJlbmNobWFyayBpbXBsZW1lbnRzIEJlbmNobWFyayB7XG4gIHN0YXRpYyBTdWl0ZTogdHlwZW9mIFN1aXRlO1xuICBzdGF0aWMgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nID0gdmVyc2lvbjtcbiAgc3RhdGljIHJlYWRvbmx5IGRlZmF1bHRzOiB7XG4gICAgbWF4VGltZTogbnVtYmVyO1xuICAgIG1pblNhbXBsZXM6IG51bWJlcjtcbiAgfSA9IHtcbiAgICBtYXhUaW1lOiA1LFxuICAgIG1pblNhbXBsZXM6IDFcbiAgfTtcblxuICBuYW1lOiBzdHJpbmc7XG4gIGVycm9yPzogQmVuY2htYXJrRXJyb3I7XG4gIGN5Y2xlczogbnVtYmVyID0gMDtcbiAgc2FtcGxlczogbnVtYmVyID0gMDtcbiAgaHo6IG51bWJlciA9IDA7XG4gIG1lYW5UaW1lOiBudW1iZXIgPSAwO1xuICBtZWRpYW5UaW1lOiBudW1iZXIgPSAwO1xuICBzdGFuZGFyZERldmlhdGlvbjogbnVtYmVyID0gMDtcbiAgbWF4VGltZTogbnVtYmVyID0gMDtcbiAgbWluVGltZTogbnVtYmVyID0gMDtcbiAgdGltZXM6IG51bWJlcltdID0gW107XG4gIG9wdGlvbnM6IEJlbmNobWFya09wdGlvbnM7XG4gIHN0YW1wITogbnVtYmVyO1xuICBydW5UaW1lOiBudW1iZXIgPSAwO1xuICB0b3RhbFRpbWU6IG51bWJlciA9IDA7XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBvcHRpb25zT3JGbjogKFBhcnRpYWw8QmVuY2htYXJrT3B0aW9ucz4gJiB7IGZuOiBCZW5jaG1hcmtGdW5jdGlvbiB9KSB8IEJlbmNobWFya0Z1bmN0aW9uLCBvcHRpb25zOiBQYXJ0aWFsPEJlbmNobWFya09wdGlvbnM+ID0ge30pIHtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIGxldCBvcHRzID0ge1xuICAgICAgLi4uQmVuY2htYXJrLmRlZmF1bHRzLFxuICAgICAgLi4ub3B0aW9uc1xuICAgIH0gYXMgQmVuY2htYXJrT3B0aW9ucztcblxuICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yRm4gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgb3B0cy5mbiA9IG9wdGlvbnNPckZuO1xuICAgIH0gZWxzZSB7XG4gICAgICBvcHRzID0ge1xuICAgICAgICAuLi5vcHRzLFxuICAgICAgICAuLi5vcHRpb25zT3JGblxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRzO1xuICB9XG5cbiAgdG9KU09OKCk6IEpzb25CZW5jaG1hcmsge1xuICAgIGNvbnN0IHsgbmFtZSwgZXJyb3IsIGN5Y2xlcywgaHosIHJ1blRpbWUsIHRvdGFsVGltZSwgc2FtcGxlcywgbWVhblRpbWUsIG1lZGlhblRpbWUsIHN0YW5kYXJkRGV2aWF0aW9uLCBtYXhUaW1lLCBtaW5UaW1lIH0gPSB0aGlzO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWUsXG4gICAgICBlcnJvck1lc3NhZ2U6IGVycm9yID8gZXJyb3IubWVzc2FnZSA6IHVuZGVmaW5lZCxcbiAgICAgIGN5Y2xlcyxcbiAgICAgIHNhbXBsZXMsXG4gICAgICBoeixcbiAgICAgIG1lYW5UaW1lLFxuICAgICAgbWVkaWFuVGltZSxcbiAgICAgIHN0YW5kYXJkRGV2aWF0aW9uLFxuICAgICAgbWF4VGltZSxcbiAgICAgIG1pblRpbWUsXG4gICAgICBydW5UaW1lLFxuICAgICAgdG90YWxUaW1lXG4gICAgfTtcbiAgfVxuXG4gIGNvbXBhcmVXaXRoKG90aGVyOiBCZW5jaG1hcmssIGNvbXBhcmVCeTogQ29tcGFyZUJ5ID0gQ29tcGFyZUJ5LlBlcmNlbnQpOiBudW1iZXIge1xuICAgIGNvbnN0IHsgZXJyb3IsIGN5Y2xlcywgaHosIG1lYW5UaW1lLCBtZWRpYW5UaW1lLCBzdGFuZGFyZERldmlhdGlvbiwgbWF4VGltZSwgbWluVGltZSwgcnVuVGltZSB9ID0gdGhpcztcblxuICAgIGlmIChlcnJvcikge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cblxuICAgIGlmIChvdGhlci5lcnJvcikge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgc3dpdGNoIChjb21wYXJlQnkpIHtcbiAgICAgIGNhc2UgXCJtZWFuVGltZVwiOlxuICAgICAgICByZXR1cm4gb3RoZXIubWVhblRpbWUgLSBtZWFuVGltZTtcbiAgICAgIGNhc2UgXCJtZWRpYW5UaW1lXCI6XG4gICAgICAgIHJldHVybiBvdGhlci5tZWRpYW5UaW1lIC0gbWVkaWFuVGltZTtcbiAgICAgIGNhc2UgXCJzdGFuZGFyZERldmlhdGlvblwiOlxuICAgICAgICByZXR1cm4gc3RhbmRhcmREZXZpYXRpb24gLSBvdGhlci5zdGFuZGFyZERldmlhdGlvbjtcbiAgICAgIGNhc2UgXCJtYXhUaW1lXCI6XG4gICAgICAgIHJldHVybiBtYXhUaW1lIC0gb3RoZXIubWF4VGltZTtcbiAgICAgIGNhc2UgXCJtaW5UaW1lXCI6XG4gICAgICAgIHJldHVybiBvdGhlci5taW5UaW1lIC0gbWluVGltZTtcbiAgICAgIGNhc2UgXCJoelwiOlxuICAgICAgICByZXR1cm4gaHogLSBvdGhlci5oejtcbiAgICAgIGNhc2UgXCJydW5UaW1lXCI6XG4gICAgICAgIHJldHVybiBydW5UaW1lIC0gb3RoZXIucnVuVGltZTtcbiAgICAgIGNhc2UgXCJjeWNsZXNcIjpcbiAgICAgICAgcmV0dXJuIGN5Y2xlcyAtIG90aGVyLmN5Y2xlcztcbiAgICAgIGNhc2UgXCJwZXJjZW50XCI6XG4gICAgICAgIHJldHVybiBNYXRoLnRydW5jKCgoMTAwIC8gbWVhblRpbWUpICogb3RoZXIubWVhblRpbWUgLSAxMDApICogMTAwKSAvIDEwMDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBjb21wYXJlIGZpZWxkOiAke2NvbXBhcmVCeX1gKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBydW5TYW1wbGUoKSB7XG4gICAgY29uc3QgeyBiZWZvcmVFYWNoLCBhZnRlckVhY2gsIGZuIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgbGV0IHNhbXBsZU1heFRpbWUgPSAxMDAwO1xuICAgIGxldCBzdGFydFRpbWUgPSBub3coKTtcblxuICAgIHdoaWxlIChub3coKSAtIHN0YXJ0VGltZSA8IHNhbXBsZU1heFRpbWUpIHtcbiAgICAgIGNvbnN0IHN0YXJ0Q3ljbGVUaW1lID0gbm93KCk7XG4gICAgICB0aGlzLmN5Y2xlcysrO1xuICAgICAgY29uc3QgQmVmb3JlRWFjaEVycm9yID0gYXdhaXQgcnVuQ2FsbGJhY2sodGhpcywgXCJCZWZvcmVFYWNoRXJyb3JcIiwgYmVmb3JlRWFjaCk7XG4gICAgICBpZiAoQmVmb3JlRWFjaEVycm9yKSB7XG4gICAgICAgIHRocm93IEJlZm9yZUVhY2hFcnJvcjtcbiAgICAgIH1cblxuICAgICAgbGV0IHRpbWU7XG4gICAgICB0cnkge1xuICAgICAgICBpZiAoaXNBc3luYyhmbikpIHtcbiAgICAgICAgICBsZXQgc3RhcnQgPSBub3coKTtcbiAgICAgICAgICBhd2FpdCBmbigpO1xuICAgICAgICAgIHRpbWUgPSBub3coKSAtIHN0YXJ0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxldCBzdGFydCA9IG5vdygpO1xuICAgICAgICAgIGZuKCk7XG4gICAgICAgICAgdGltZSA9IG5vdygpIC0gc3RhcnQ7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRocm93IGdldEVycm9yKGVycm9yLCBgQmVuY2htYXJrIFxcYCR7dGhpcy5uYW1lfVxcYCBmYWlsZWQgdG8gcnVuIFxcYGZuXFxgOiAke2Vycm9yLm1lc3NhZ2V9YCwgXCJSdW5FcnJvclwiKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy50aW1lcy5wdXNoKHRpbWUpO1xuICAgICAgdGhpcy5ydW5UaW1lICs9IHRpbWU7XG5cbiAgICAgIGNvbnN0IEFmdGVyRWFjaEVycm9yID0gYXdhaXQgcnVuQ2FsbGJhY2sodGhpcywgXCJBZnRlckVhY2hFcnJvclwiLCBhZnRlckVhY2gpO1xuICAgICAgaWYgKEFmdGVyRWFjaEVycm9yKSB7XG4gICAgICAgIHRocm93IEFmdGVyRWFjaEVycm9yO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnRvdGFsVGltZSArPSBub3coKSAtIHN0YXJ0Q3ljbGVUaW1lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJ1biB0aGUgYmVuY2htYXJrLlxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5zdGFtcCA9IG5vdygpO1xuICAgIGNvbnN0IHsgbWF4VGltZSwgbWluU2FtcGxlcywgYWZ0ZXIsIGJlZm9yZSwgb25FcnJvciB9ID0gdGhpcy5vcHRpb25zO1xuICAgIGxldCBtYXhUaW1lSW5NaWxsaXNlY29uZHMgPSBtYXhUaW1lICogMTAwMDtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBiZWZvcmVFcnJvciA9IGF3YWl0IHJ1bkNhbGxiYWNrKHRoaXMsIFwiQmVmb3JlRXJyb3JcIiwgYmVmb3JlKTtcbiAgICAgIGlmIChiZWZvcmVFcnJvcikge1xuICAgICAgICB0aHJvdyBiZWZvcmVFcnJvcjtcbiAgICAgIH1cblxuICAgICAgd2hpbGUgKHRoaXMuc2FtcGxlcyA8IG1pblNhbXBsZXMgfHwgdGhpcy50b3RhbFRpbWUgPCBtYXhUaW1lSW5NaWxsaXNlY29uZHMpIHtcbiAgICAgICAgdGhpcy5zYW1wbGVzKys7XG4gICAgICAgIGF3YWl0IHRoaXMucnVuU2FtcGxlKCk7XG4gICAgICB9XG5cbiAgICAgIC8vIENhbGN1bGF0ZSB0aGUgaHogYnkgc2Vjb25kXG4gICAgICB0aGlzLmh6ID0gdGhpcy5jeWNsZXMgLyAodGhpcy5ydW5UaW1lIC8gMTAwMCk7XG5cbiAgICAgIC8vIENhbGN1bGF0ZSB0aGUgbWVhbiwgbWVkaWFuLCBtYXJnaW4gb2YgZXJyb3IsIGFuZCBzdGFuZGFyZCBkZXZpYXRpb24uXG4gICAgICB0aGlzLm1lYW5UaW1lID0gdGhpcy5ydW5UaW1lIC8gdGhpcy50aW1lcy5sZW5ndGg7XG4gICAgICB0aGlzLm1lZGlhblRpbWUgPSB0aGlzLnRpbWVzLnNvcnQoKGEsIGIpID0+IGEgLSBiKVtNYXRoLmZsb29yKHRoaXMudGltZXMubGVuZ3RoIC8gMildIHx8IDA7XG4gICAgICB0aGlzLnN0YW5kYXJkRGV2aWF0aW9uID0gTWF0aC5zcXJ0KHRoaXMudGltZXMubWFwKCh0KSA9PiBNYXRoLnBvdyh0IC0gdGhpcy5tZWFuVGltZSwgMikpLnJlZHVjZSgoYSwgYikgPT4gYSArIGIsIDApIC8gdGhpcy50aW1lcy5sZW5ndGgpO1xuXG4gICAgICAvLyBDYWxjdWxhdGUgdGhlIG1heCwgbWluLCBhbmQgYXZlcmFnZSB0aW1lcy5cbiAgICAgIHRoaXMubWF4VGltZSA9IHRoaXMudGltZXMucmVkdWNlKChtYXgsIHRpbWUpID0+IE1hdGgubWF4KG1heCwgdGltZSksIDApO1xuICAgICAgdGhpcy5taW5UaW1lID0gdGhpcy50aW1lcy5yZWR1Y2UoKG1pbiwgdGltZSkgPT4gTWF0aC5taW4obWluLCB0aW1lKSwgSW5maW5pdHkpO1xuXG4gICAgICBjb25zdCBhZnRlckVycm9yID0gYXdhaXQgcnVuQ2FsbGJhY2sodGhpcywgXCJBZnRlckVycm9yXCIsIGFmdGVyKTtcbiAgICAgIGlmIChhZnRlckVycm9yKSB7XG4gICAgICAgIHRocm93IGFmdGVyRXJyb3I7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSBlcnJvcjtcblxuICAgICAgY29uc3Qgb25FcnJvckVycm9yID0gYXdhaXQgcnVuQ2FsbGJhY2sodGhpcywgXCJGYXRhbEVycm9yXCIsIG9uRXJyb3IsIGVycm9yKTtcbiAgICAgIGlmIChvbkVycm9yRXJyb3IpIHtcbiAgICAgICAgdGhyb3cgb25FcnJvckVycm9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyoqKiBDbGFzcyBTdWl0ZSAqKiovL1xudHlwZSBTdWl0ZU9wdGlvbnMgPSB7XG4gIC8vIFRoZSBtYXhpbXVtIHRpbWUgaW4gc2Vjb25kcyB0aGF0IGEgYmVuY2htYXJrIGNhbiB0YWtlLlxuICBtYXhUaW1lOiBudW1iZXI7XG4gIC8vIFRoZSBtaW5pbXVtIG51bWJlciBvZiBzYW1wbGVzIHRoYXQgbXVzdCBiZSB0YWtlbi5cbiAgbWluU2FtcGxlczogbnVtYmVyO1xuICAvLyBBIGZ1bmN0aW9uIHRvIGJlIHJ1biBvbmNlIGJlZm9yZSBlYWNoIGJlbmNobWFyayBydW5cbiAgYmVmb3JlRWFjaD86IChiZW5jaG1hcms6IEJlbmNobWFyaywgaTogbnVtYmVyKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZDtcbiAgLy8gQSBmdW5jdGlvbiB0byBiZSBydW4gb25jZSBhZnRlciBlYWNoIGJlbmNobWFyayBydW5cbiAgYWZ0ZXJFYWNoPzogKGJlbmNobWFyazogQmVuY2htYXJrLCBpOiBudW1iZXIpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkO1xuICAvLyBBIGZ1bmN0aW9uIHRvIGJlIHJ1biBvbmNlIGFmdGVyIHRoZSBzdWl0ZSBjb21wbGV0ZXNcbiAgYWZ0ZXI/OiAoKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZDtcbiAgLy8gQSBmdW5jdGlvbiB0byBiZSBydW4gb25jZSBiZWZvcmUgdGhlIHN1aXRlIHN0YXJ0c1xuICBiZWZvcmU/OiAoKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZDtcbiAgLy8gQSBmdW5jdGlvbiB0byBiZSBydW4gaWYgYW4gZXJyb3Igb2NjdXJzLlxuICBvbkVycm9yPzogKGVycm9yOiBCZW5jaG1hcmtFcnJvcikgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWQ7XG59O1xuXG5pbnRlcmZhY2UgSnNvblN1aXRlIHtcbiAgbmFtZTogc3RyaW5nO1xuICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gIHJ1blRpbWU6IG51bWJlcjtcbiAgdG90YWxUaW1lOiBudW1iZXI7XG4gIHBhc3NlZDogYm9vbGVhbjtcbiAgYmVuY2htYXJrczogSnNvbkJlbmNobWFya1tdO1xufVxuXG50eXBlIFN1aXRlQ29uc3RydWN0b3IgPSAobmFtZTogc3RyaW5nLCBvcHRpb25zPzogUGFydGlhbDxTdWl0ZU9wdGlvbnM+KSA9PiBTdWl0ZTtcblxuaW50ZXJmYWNlIFN1aXRlIHtcbiAgcmVhZG9ubHkgZGVmYXVsdHM6IHtcbiAgICBtYXhUaW1lOiBudW1iZXI7XG4gICAgbWluU2FtcGxlczogbnVtYmVyO1xuICB9O1xuXG4gIG5hbWU6IHN0cmluZztcbiAgZXJyb3I/OiBCZW5jaG1hcmtFcnJvcjtcbiAgb3B0aW9uczogU3VpdGVPcHRpb25zO1xuICBzdGFtcDogbnVtYmVyO1xuICBydW5UaW1lOiBudW1iZXI7XG4gIHRvdGFsVGltZTogbnVtYmVyO1xuICBiZW5jaG1hcmtzOiBCZW5jaG1hcmtbXTtcblxuICBjb25zdHJ1Y3RvcjogU3VpdGVDb25zdHJ1Y3RvcjtcbiAgYWRkKG5hbWU6IHN0cmluZywgb3B0aW9uc09yRm46IChQYXJ0aWFsPEJlbmNobWFya09wdGlvbnM+ICYgeyBmbjogQmVuY2htYXJrRnVuY3Rpb24gfSkgfCBCZW5jaG1hcmtGdW5jdGlvbiwgb3B0aW9uczogUGFydGlhbDxCZW5jaG1hcmtPcHRpb25zPik6IEJlbmNobWFyaztcbiAgdG9KU09OKCk6IEpzb25TdWl0ZTtcbiAgcnVuKCk6IFByb21pc2U8dm9pZD47XG5cbiAgZ2V0U29ydGVkQmVuY2htYXJrc0J5KHNvcnRlZEJ5OiBDb21wYXJlQnkpOiBCZW5jaG1hcmtbXTtcbiAgZ2V0RmFzdGVzdChzb3J0ZWRCeTogQ29tcGFyZUJ5KTogQmVuY2htYXJrO1xuICBnZXRTbG93ZXN0KHNvcnRlZEJ5OiBDb21wYXJlQnkpOiBCZW5jaG1hcms7XG4gIGNvbXBhcmVGYXN0ZXN0V2l0aFNsb3dlc3QoY29tcGFyZUJ5OiBDb21wYXJlQnkpOiB7IGZhc3Rlc3Q6IEJlbmNobWFyazsgc2xvd2VzdDogQmVuY2htYXJrOyBieTogbnVtYmVyIH07XG59XG5cbmNsYXNzIFN1aXRlIGltcGxlbWVudHMgU3VpdGUge1xuICBzdGF0aWMgcmVhZG9ubHkgZGVmYXVsdHMgPSB7XG4gICAgbWF4VGltZTogNSxcbiAgICBtaW5TYW1wbGVzOiAxXG4gIH07XG5cbiAgbmFtZTogc3RyaW5nO1xuICBlcnJvcj86IEJlbmNobWFya0Vycm9yO1xuICBvcHRpb25zOiBTdWl0ZU9wdGlvbnM7XG4gIHN0YW1wITogbnVtYmVyO1xuICBydW5UaW1lOiBudW1iZXIgPSAwO1xuICB0b3RhbFRpbWU6IG51bWJlciA9IDA7XG4gIGJlbmNobWFya3M6IEJlbmNobWFya1tdID0gW107XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBvcHRpb25zOiBQYXJ0aWFsPFN1aXRlT3B0aW9ucz4gPSB7fSkge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4uU3VpdGUuZGVmYXVsdHMsXG4gICAgICAuLi5vcHRpb25zXG4gICAgfTtcbiAgfVxuXG4gIHRvSlNPTigpOiBKc29uU3VpdGUge1xuICAgIGNvbnN0IHsgZXJyb3IsIG5hbWUsIHJ1blRpbWUsIHRvdGFsVGltZSB9ID0gdGhpcztcblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgZXJyb3JNZXNzYWdlOiBlcnJvciA/IGVycm9yLm1lc3NhZ2UgOiB1bmRlZmluZWQsXG4gICAgICBydW5UaW1lLFxuICAgICAgdG90YWxUaW1lLFxuICAgICAgcGFzc2VkOiAhZXJyb3IsXG4gICAgICBiZW5jaG1hcmtzOiB0aGlzLmdldFNvcnRlZEJlbmNobWFya3NCeShDb21wYXJlQnkuTWVhblRpbWUpLm1hcCgoYmVuY2htYXJrKSA9PiBiZW5jaG1hcmsudG9KU09OKCkpXG4gICAgfTtcbiAgfVxuXG4gIGFkZChcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgb3B0aW9uc09yRm46IChQYXJ0aWFsPEJlbmNobWFya09wdGlvbnM+ICYgeyBmbjogQmVuY2htYXJrRnVuY3Rpb24gfSkgfCBCZW5jaG1hcmtGdW5jdGlvbixcbiAgICBvcHRpb25zOiBQYXJ0aWFsPEJlbmNobWFya09wdGlvbnM+ID0ge31cbiAgKTogQmVuY2htYXJrIHtcbiAgICBsZXQgb3B0cyA9IHtcbiAgICAgIC4uLntcbiAgICAgICAgbWluU2FtcGxlczogdGhpcy5vcHRpb25zLm1pblNhbXBsZXMsXG4gICAgICAgIG1heFRpbWU6IHRoaXMub3B0aW9ucy5tYXhUaW1lXG4gICAgICB9LFxuICAgICAgLi4ub3B0aW9uc1xuICAgIH0gYXMgQmVuY2htYXJrT3B0aW9ucztcblxuICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yRm4gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgb3B0cy5mbiA9IG9wdGlvbnNPckZuO1xuICAgIH0gZWxzZSB7XG4gICAgICBvcHRzID0ge1xuICAgICAgICAuLi5vcHRzLFxuICAgICAgICAuLi5vcHRpb25zT3JGblxuICAgICAgfTtcbiAgICB9XG4gICAgbGV0IGJlbmNobWFyayA9IG5ldyBCZW5jaG1hcmsobmFtZSwgb3B0cyk7XG4gICAgdGhpcy5iZW5jaG1hcmtzLnB1c2goYmVuY2htYXJrKTtcbiAgICByZXR1cm4gYmVuY2htYXJrO1xuICB9XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuc3RhbXAgPSBub3coKTtcbiAgICBjb25zdCB7IGJlZm9yZUVhY2gsIGFmdGVyRWFjaCwgYWZ0ZXIsIGJlZm9yZSwgb25FcnJvciB9ID0gdGhpcy5vcHRpb25zO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGJlZm9yZUVycm9yID0gYXdhaXQgcnVuQ2FsbGJhY2sodGhpcywgXCJCZWZvcmVFcnJvclwiLCBiZWZvcmUpO1xuICAgICAgaWYgKGJlZm9yZUVycm9yKSB7XG4gICAgICAgIHRocm93IGJlZm9yZUVycm9yO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGxldCBpID0gMCwgbCA9IHRoaXMuYmVuY2htYXJrcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgbGV0IGJlbmNobWFyayA9IHRoaXMuYmVuY2htYXJrc1tpXTtcbiAgICAgICAgY29uc3QgYmVmb3JlRWFjaEVycm9yID0gYXdhaXQgcnVuQ2FsbGJhY2sodGhpcywgXCJCZWZvcmVFYWNoRXJyb3JcIiwgYmVmb3JlRWFjaCwgYmVuY2htYXJrLCBpKTtcbiAgICAgICAgaWYgKGJlZm9yZUVhY2hFcnJvcikge1xuICAgICAgICAgIHRocm93IGJlZm9yZUVhY2hFcnJvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IGJlbmNobWFyay5ydW4oKTtcbiAgICAgICAgdGhpcy5ydW5UaW1lICs9IGJlbmNobWFyay5ydW5UaW1lO1xuICAgICAgICB0aGlzLnRvdGFsVGltZSArPSBiZW5jaG1hcmsudG90YWxUaW1lO1xuXG4gICAgICAgIGNvbnN0IGFmdGVyRWFjaEVycm9yID0gYXdhaXQgcnVuQ2FsbGJhY2sodGhpcywgXCJBZnRlckVhY2hFcnJvclwiLCBhZnRlckVhY2gsIGJlbmNobWFyaywgaSk7XG4gICAgICAgIGlmIChhZnRlckVhY2hFcnJvcikge1xuICAgICAgICAgIHRocm93IGFmdGVyRWFjaEVycm9yO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGFmdGVyRXJyb3IgPSBhd2FpdCBydW5DYWxsYmFjayh0aGlzLCBcIkFmdGVyRXJyb3JcIiwgYWZ0ZXIpO1xuICAgICAgaWYgKGFmdGVyRXJyb3IpIHtcbiAgICAgICAgdGhyb3cgYWZ0ZXJFcnJvcjtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5lcnJvciA9IGVycm9yO1xuXG4gICAgICBjb25zdCBvbkVycm9yRXJyb3IgPSBhd2FpdCBydW5DYWxsYmFjayh0aGlzLCBcIkZhdGFsRXJyb3JcIiwgb25FcnJvciwgZXJyb3IpO1xuICAgICAgaWYgKG9uRXJyb3JFcnJvcikge1xuICAgICAgICB0aHJvdyBvbkVycm9yRXJyb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0U29ydGVkQmVuY2htYXJrc0J5KHNvcnRCeTogQ29tcGFyZUJ5KTogQmVuY2htYXJrW10ge1xuICAgIGNvbnN0IGJlbmNobWFya3MgPSB0aGlzLmJlbmNobWFya3Muc2xpY2UoKTtcbiAgICBjb25zdCBzb3J0ZWRCZW5jaG1hcmtzID0gYmVuY2htYXJrcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICBsZXQgcmVzdWx0ID0gYi5jb21wYXJlV2l0aChhLCBzb3J0QnkpO1xuICAgICAgcmV0dXJuIHJlc3VsdCA+IDAgPyAxIDogcmVzdWx0IDwgMCA/IC0xIDogMDtcbiAgICB9KTtcblxuICAgIHJldHVybiBzb3J0ZWRCZW5jaG1hcmtzO1xuICB9XG5cbiAgZ2V0RmFzdGVzdChzb3J0Qnk6IENvbXBhcmVCeSk6IEJlbmNobWFyayB7XG4gICAgY29uc3Qgc29ydGVkQmVuY2htYXJrcyA9IHRoaXMuZ2V0U29ydGVkQmVuY2htYXJrc0J5KHNvcnRCeSk7XG4gICAgcmV0dXJuIHNvcnRlZEJlbmNobWFya3NbMF07XG4gIH1cblxuICBnZXRTbG93ZXN0KHNvcnRCeTogQ29tcGFyZUJ5KTogQmVuY2htYXJrIHtcbiAgICBjb25zdCBzb3J0ZWRCZW5jaG1hcmtzID0gdGhpcy5nZXRTb3J0ZWRCZW5jaG1hcmtzQnkoc29ydEJ5KTtcbiAgICByZXR1cm4gc29ydGVkQmVuY2htYXJrc1tzb3J0ZWRCZW5jaG1hcmtzLmxlbmd0aCAtIDFdO1xuICB9XG5cbiAgY29tcGFyZUZhc3Rlc3RXaXRoU2xvd2VzdChjb21wYXJlQnk6IENvbXBhcmVCeSkge1xuICAgIGxldCBzb3J0QnkgPSBjb21wYXJlQnkgPT09IENvbXBhcmVCeS5QZXJjZW50ID8gQ29tcGFyZUJ5Lk1lYW5UaW1lIDogY29tcGFyZUJ5O1xuICAgIGNvbnN0IGZhc3Rlc3QgPSB0aGlzLmdldEZhc3Rlc3Qoc29ydEJ5KTtcbiAgICBjb25zdCBzbG93ZXN0ID0gdGhpcy5nZXRTbG93ZXN0KHNvcnRCeSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZmFzdGVzdCxcbiAgICAgIHNsb3dlc3QsXG4gICAgICBieTogZmFzdGVzdC5jb21wYXJlV2l0aChzbG93ZXN0LCBjb21wYXJlQnkpXG4gICAgfTtcbiAgfVxufVxuXG5CZW5jaG1hcmsuU3VpdGUgPSBTdWl0ZTtcblxuLy8gRXhwb3J0IHRoZSBCZW5jaG1hcmsgY2xhc3MuXG5leHBvcnQgZGVmYXVsdCBCZW5jaG1hcms7XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJub3ciLCJwZXJmb3JtYW5jZSIsIkRhdGUiLCJCZW5jaG1hcmtFcnJvciIsIkVycm9yIiwiY29kZSIsIm1lc3NhZ2UiLCJuYW1lIiwic3RhdHVzQ29kZSIsImNvbnN0cnVjdG9yIiwic3VwZXIiLCJ0aGlzIiwiRXJyb3JzIiwiQmVmb3JlRWFjaEVycm9yIiwiQWZ0ZXJFYWNoRXJyb3IiLCJSdW5FcnJvciIsIkFmdGVyRXJyb3IiLCJCZWZvcmVFcnJvciIsIkZhdGFsRXJyb3IiLCJDb21wYXJlQnkiLCJDb21wYXJlQnkyIiwiZ2V0RXJyb3IiLCJlcnJvciIsInR5cGUiLCJiZW5jaG1hcmtFcnJvciIsInN0YWNrIiwiaSIsImhhc093blByb3BlcnR5IiwiaXNBc3luYyIsImZuIiwiYXN5bmMiLCJydW5DYWxsYmFjayIsImluc3RhbmNlIiwiZXJyb3JUeXBlSWZBbnkiLCJjYWxsYmFjayIsImFyZ3MiLCJiaW5kIiwiX0JlbmNobWFyayIsImN5Y2xlcyIsInNhbXBsZXMiLCJoeiIsIm1lYW5UaW1lIiwibWVkaWFuVGltZSIsInN0YW5kYXJkRGV2aWF0aW9uIiwibWF4VGltZSIsIm1pblRpbWUiLCJ0aW1lcyIsIm9wdGlvbnMiLCJzdGFtcCIsInJ1blRpbWUiLCJ0b3RhbFRpbWUiLCJvcHRpb25zT3JGbiIsIm9wdHMiLCJkZWZhdWx0cyIsInRvSlNPTiIsImVycm9yTWVzc2FnZSIsImNvbXBhcmVXaXRoIiwib3RoZXIiLCJjb21wYXJlQnkiLCJNYXRoIiwidHJ1bmMiLCJiZWZvcmVFYWNoIiwiYWZ0ZXJFYWNoIiwic3RhcnRUaW1lIiwic3RhcnRDeWNsZVRpbWUiLCJCZWZvcmVFYWNoRXJyb3IyIiwidGltZSIsInN0YXJ0IiwicHVzaCIsIkFmdGVyRWFjaEVycm9yMiIsIm1pblNhbXBsZXMiLCJhZnRlciIsImJlZm9yZSIsIm9uRXJyb3IiLCJtYXhUaW1lSW5NaWxsaXNlY29uZHMiLCJiZWZvcmVFcnJvciIsInJ1blNhbXBsZSIsImxlbmd0aCIsInNvcnQiLCJhIiwiYiIsImZsb29yIiwic3FydCIsIm1hcCIsInQiLCJwb3ciLCJyZWR1Y2UiLCJtYXgiLCJtaW4iLCJJbmZpbml0eSIsImFmdGVyRXJyb3IiLCJvbkVycm9yRXJyb3IiLCJCZW5jaG1hcmsiLCJfX3B1YmxpY0ZpZWxkIiwiX1N1aXRlIiwiYmVuY2htYXJrcyIsInBhc3NlZCIsImdldFNvcnRlZEJlbmNobWFya3NCeSIsImJlbmNobWFyayIsImFkZCIsImwiLCJiZWZvcmVFYWNoRXJyb3IiLCJydW4iLCJhZnRlckVhY2hFcnJvciIsInNvcnRCeSIsInNsaWNlIiwicmVzdWx0IiwiZ2V0RmFzdGVzdCIsImdldFNsb3dlc3QiLCJzb3J0ZWRCZW5jaG1hcmtzIiwiY29tcGFyZUZhc3Rlc3RXaXRoU2xvd2VzdCIsImZhc3Rlc3QiLCJzbG93ZXN0IiwiYnkiLCJTdWl0ZSJdLCJzb3VyY2VzIjpbIi4uL2xpYi9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBIGJlbmNobWFya2luZyBsaWJyYXJ5IHRoYXQgc3VwcG9ydHMgYXN5bmMgaG9va3MgYW5kIGJlbmNobWFya3MgYnkgZGVmYXVsdC5cbi8vIFRoaXMgbGlicmFyeSBjb21lcyBieSB0aGUgcHJvYmxlbSBvZiBoYW5kbGluZyBhc3luYyBmdW5jdGlvbnMgaW4gYSB3YXkgdGhhdCBpcyBjb21wYXRpYmxlIHdpdGggYmVuY2htYXJraW5nLlxuLy8gVGhlIHByb2JsZW0gaXMgdGhhdCBhc3luYyBob29rIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IEJlbmNobWFyay5qc1xuLy8gRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgY29kZSB3aWxsIG5vdCB3b3JrIGFzIGV4cGVjdGVkOlxuXG4vKlxuICBuZXcgQmVuY2htYXJrKCd0ZXN0JywgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IGRvU29tZXRoaW5nKCk7XG4gIH0sIHtcbiAgICBhc3luYzogdHJ1ZSxcbiAgICBhc3luYyBiZWZvcmUoKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZygxKTtcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7XG4gICAgICBjb25zb2xlLmxvZygyKTtcbiAgICB9LFxuICB9KVxuKi9cblxuLy8gVGhlIHByZXZpb3VzIGNvZGUgd2lsbCBsb2cgMSBhbmQgdGhlbiBydW4gdGhlIGJlbmNobWFyayBhbmQgdGhlIGxvZyAyIGNvdWxkIGJlIGxvZ2dlZCBiZWZvcmUgdGhlIGJlbmNobWFyayBpcyBmaW5pc2hlZCBvciBjb3VsZCd0IGJlIGxvZ2dlZCBhdCBhbGwuXG4vLyBUaGlzIHByb2JsZW0gcHJldmVudCB1cyB0byBjcmVhdGUgYW4gYXN5bmMgYmVmb3JlIGFuZC9vciBhZnRlciBmb3IgYSBiZW5jaG1hcmsgbGlrZSBhbiBhcGkgY2FsbCB0aGF0IGNvdWxkIHJlcXVpcmUgaXQuXG5cbi8vIFRoaXMgbGlicmFyeSBzb2x2ZXMgdGhpcyBwcm9ibGVtIGJ5IHByb3ZpZGluZyBhIHdheSB0byBjcmVhdGUgYSBiZW5jaG1hcmsgd2l0aCBhbGwgdGhlIGhvb2tzIGFuZCBiZW5jaG1hcmsgaGFuZGxlZCBhcyBhc3luYyBieSBkZWZhdWx0LlxuXG4vLyBTaW1wbGUgZXhhbXBsZXNcbi8vIGNvbnN0IGJlbmNoID0gbmV3IEJlbmNobWFyayhcIm5hbWVcIiwgYXN5bmMgKCkgPT4ge30pO1xuLy8gY29uc3QgYmVuY2ggPSBuZXcgQmVuY2htYXJrKFwibmFtZVwiLCBhc3luYyAoKSA9PiB7fSwgb3B0aW9ucyk7XG4vLyBjb25zdCBiZW5jaCA9IG5ldyBCZW5jaG1hcmsoXCJuYW1lXCIsIHtmbjogYXN5bmMgKCkgPT4ge30sIC4uLm9wdGlvbnN9KTtcbi8vIGF3YWl0IGJlbmNoLnJ1bigpO1xuXG4vLyBGdWxsIGV4YW1wbGU6XG4vLyBjb25zdCBiZW5jaCA9IG5ldyBCZW5jaG1hcmsoJ215QmVuY2htYXJrJywge1xuLy8gICBtYXhUaW1lOiA1LCAvLyBJbiBzZWNvbmRzXG4vLyAgIG1pblNhbXBsZXM6IDEsXG4vLyAgIGJlZm9yZUVhY2g6IGFzeW5jICgpID0+IHtcbi8vICAgICBhd2FpdCBkb1NvbWV0aGluZygpO1xuLy8gICB9LFxuLy8gICBhZnRlckVhY2g6IGFzeW5jICgpID0+IHtcbi8vICAgICBhd2FpdCBkb1NvbWV0aGluZygpO1xuLy8gICB9LFxuLy8gICBhZnRlcjogYXN5bmMgKCkgPT4ge1xuLy8gICAgIGF3YWl0IGRvU29tZXRoaW5nKCk7XG4vLyAgIH0sXG4vLyAgIGJlZm9yZTogYXN5bmMgKCkgPT4ge1xuLy8gICAgIGF3YWl0IGRvU29tZXRoaW5nKCk7XG4vLyAgIH0sXG4vLyAgIG9uRXJyb3I6IGFzeW5jIChlcnJvcikgPT4ge1xuLy8gICAgIGF3YWl0IGRvU29tZXRoaW5nKCk7XG4vLyAgIH0sXG4vLyAgIGZuOiBhc3luYyAoKSA9PiB7XG4vLyAgICAgYXdhaXQgZG9Tb21ldGhpbmcoKTtcbi8vICAgfSxcbi8vIH0pO1xuLy8gYXdhaXQgYmVuY2gucnVuKCk7XG5cbi8vIFRoZSBgQmVuY2htYXJrYCBjb25zdHJ1Y3RvciB0YWtlcyBhbiBgb3B0aW9uc2AgYXJndW1lbnQuXG4vLyBUaGUgYG9wdGlvbnNgIGFyZ3VtZW50IGlzIGFuIG9iamVjdCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbi8vICogYG1heFRpbWVgOiBUaGUgbWF4aW11bSB0aW1lIGluIHNlY29uZHMgdGhhdCBhIGJlbmNobWFyayBjYW4gdGFrZSBpbmNsdWRpbmcgaG9va3MuXG4vLyAqIGBtaW5TYW1wbGVzYDogVGhlIG1pbmltdW0gbnVtYmVyIG9mIHNhbXBsZXMgdGhhdCBtdXN0IGJlIHRha2VuLlxuLy8gKiBgYmVmb3JlRWFjaGA6IEEgZnVuY3Rpb24gdG8gYmUgcnVuIG9uY2UgYmVmb3JlIGVhY2ggYmVuY2htYXJrIGxvb3AsIGRvZXMgbm90IGNvdW50IGZvciBydW4gdGltZS5cbi8vICogYGFmdGVyRWFjaGA6IEEgZnVuY3Rpb24gdG8gYmUgcnVuIG9uY2UgYWZ0ZXIgZWFjaCBiZW5jaG1hcmsgbG9vcCwgZG9lcyBub3QgY291bnQgZm9yIHJ1biB0aW1lLlxuLy8gKiBgYWZ0ZXJgOiBBIGZ1bmN0aW9uIHRvIGJlIHJ1biBvbmNlIGFmdGVyIHRoZSBiZW5jaG1hcmsgbG9vcCBmaW5pc2hlcywgZG9lcyBub3QgY291bnQgZm9yIHJ1biB0aW1lLlxuLy8gKiBgYmVmb3JlYDogQSBmdW5jdGlvbiB0byBiZSBydW4gb25jZSBiZWZvcmUgdGhlIGJlbmNobWFyayBsb29wIHN0YXJ0cywgZG9lcyBub3QgY291bnQgZm9yIHJ1biB0aW1lLlxuLy8gKiBgb25FcnJvcmA6IEEgZnVuY3Rpb24gdG8gYmUgcnVuIGlmIGFuIGVycm9yIG9jY3Vycy5cbi8vICogYGZuYDogVGhlIGZ1bmN0aW9uIHRvIGJlIHJ1bi5cblxuLy8gVGhlIGBCZW5jaG1hcmtgIGluc3RhbmNlIGhhcyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4vLyAqIGBuYW1lYDogVGhlIG5hbWUgb2YgdGhlIGJlbmNobWFyay5cbi8vICogYGVycm9yYDogVGhlIGVycm9yIG9iamVjdCBpZiBhbiBlcnJvciBvY2N1cnJlZC5cbi8vICogYGN5Y2xlc2A6IFRoZSBudW1iZXIgb2YgY3ljbGVzIHBlcmZvcm1lZC5cbi8vICogYGh6YDogVGhlIG51bWJlciBvZiBjeWNsZXMgcGVyIHNlY29uZC5cbi8vICogYG1lYW5UaW1lYDogVGhlIG1lYW5UaW1lIHRpbWUgcGVyIGN5Y2xlLlxuLy8gKiBgbWVkaWFuVGltZWA6IFRoZSBtZWRpYW5UaW1lIHRpbWUgcGVyIGN5Y2xlLlxuLy8gKiBgc3RhbmRhcmREZXZpYXRpb25gOiBUaGUgc3RhbmRhcmQgZGV2aWF0aW9uLlxuLy8gKiBgbWF4VGltZWA6IFRoZSBtYXhpbXVtIHRpbWUuXG4vLyAqIGBtaW5UaW1lYDogVGhlIG1pbmltdW0gdGltZS5cbi8vICogYHRpbWVzYDogQW4gYXJyYXkgb2YgdGltZXMgZm9yIGVhY2ggY3ljbGUuXG4vLyAqIGBvcHRpb25zYDogVGhlIG9wdGlvbnMgb2JqZWN0IHBhc3NlZCB0byB0aGUgY29uc3RydWN0b3IuXG4vLyAqIGBzdGFtcGA6IEEgdGltZXN0YW1wIHJlcHJlc2VudGluZyB3aGVuIHRoZSBiZW5jaG1hcmsgd2FzIGNyZWF0ZWQuXG4vLyAqIGBydW5UaW1lYDogVGhlIHRvdGFsIHRpbWUgdGFrZW4gdG8gcnVuIHRoZSBiZW5jaG1hcmssIHRoaXMgZG9lcyBub3QgaW5jbHVkZSBiZWZvcmVFYWNoLCBhZnRlckVhY2gsIG9uU3RyYXJ0IGFuZCBhZnRlciBob29rcy5cbi8vICogYHRvdGFsVGltZWA6IFRoZSB0b3RhbCB0aW1lIHRha2VuIHRvIHJ1biB0aGUgYmVuY2htYXJrIGluY2x1ZGluZyBiZWZvcmVFYWNoLCBhZnRlckVhY2gsIGJlZm9yZSBhbmQgYWZ0ZXIgaG9va3MuXG5cbi8vIFRoZSBgQmVuY2htYXJrYCBpbnN0YW5jZSBoYXMgdGhlIGZvbGxvd2luZyBtZXRob2RzOlxuLy8gKiBgcnVuYDogUnVuIHRoZSBiZW5jaG1hcmsuXG4vLyAqIGB0b0pTT05gOiBSZXR1cm4gYSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBiZW5jaG1hcmsuXG4vLyAqIGBjb21wYXJlV2l0aGA6IENvbXBhcmUgdGhpcyBiZW5jaG1hcmsgdG8gYW5vdGhlci5cblxuLy8gVGhlIGBCZW5jaG1hcmtgIGNsYXNzIGhhcyB0aGUgZm9sbG93aW5nIHN0YXRpYyBwcm9wZXJ0aWVzOlxuLy8gKiBgdmVyc2lvbmA6IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGxpYnJhcnkgdmVyc2lvbi5cbi8vICogYGRlZmF1bHRzYDogQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGRlZmF1bHQgb3B0aW9ucy5cblxuLy8gSWYgdGhlIGBiZWZvcmVFYWNoYCBgYWZ0ZXJFYWNoYCBgYWZ0ZXJgIGBiZWZvcmVgIGBvbkVycm9yYCByZXR1cm5zIGEgUHJvbWlzZSwgdGhlIGJlbmNobWFyayB3aWxsIHdhaXQgZm9yIHRoZSBwcm9taXNlIHRvIHJlc29sdmUgYmVmb3JlIGNvbnRpbnVpbmcuXG5cbi8vIElmIHRoZSBgYmVmb3JlRWFjaGAgZnVuY3Rpb24gdGhyb3dzIGFuIGVycm9yLCB0aGUgYmVuY2htYXJrIHdpbGwgc3RvcCBhbmQgZW1pdCBhbiBgQmVmb3JlRWFjaEVycm9yYCBldmVudC5cbi8vIElmIHRoZSBgYWZ0ZXJFYWNoYCBmdW5jdGlvbiB0aHJvd3MgYW4gZXJyb3IsIHRoZSBiZW5jaG1hcmsgd2lsbCBzdG9wIGFuZCBlbWl0IGFuIGBBZnRlckVhY2hFcnJvcmAgZXZlbnQuXG4vLyBJZiB0aGUgYGZuYCBmdW5jdGlvbiB0aHJvd3MgYW4gZXJyb3IsIHRoZSBiZW5jaG1hcmsgd2lsbCBzdG9wIGFuZCBlbWl0IGFuIGBSdW5FcnJvcmAgZXZlbnQuXG4vLyBJZiB0aGUgYGFmdGVyYCBmdW5jdGlvbiB0aHJvd3MgYW4gZXJyb3IsIHRoZSBiZW5jaG1hcmsgd2lsbCBzdG9wIGFuZCBlbWl0IGFuIGBBZnRlckVycm9yYCBldmVudC5cbi8vIElmIHRoZSBgYmVmb3JlYCBmdW5jdGlvbiB0aHJvd3MgYW4gZXJyb3IsIHRoZSBiZW5jaG1hcmsgd2lsbCBzdG9wIGFuZCBlbWl0IGFuIGBCZWZvcmVFcnJvcmAgZXZlbnQuXG4vLyBJZiB0aGUgYG9uRXJyb3JgIGZ1bmN0aW9uIHRocm93cyBhbiBlcnJvciwgdGhlIGJlbmNobWFyayB3aWxsIHN0b3AgYW5kIGVtaXQgYW4gYEZhdGFsRXJyb3JgIGV2ZW50LlxuXG4vLyBUaGlzIGVycm9ycyB3aWxsIGJlIGZvdW5kIGluIHRoZSBgZXJyb3JgIHByb3BlcnR5IG9mIHRoZSBiZW5jaG1hcmsgaW5zdGFuY2UuXG4vLyBXaGVuIGNvbnZlcnRpbmcgdG8gSlNPTiwgdGhlIGBlcnJvck1lc3NhZ2VgIHByb3BlcnR5IHdpbGwgYmUgYSBzdHJpbmcgY29udGFpbmluZyB0aGUgZXJyb3IgbWVzc2FnZS5cblxuY29uc3QgdmVyc2lvbiA9IFwiMS4wLjNcIjtcblxubGV0IG5vdyA9XG4gIHR5cGVvZiBwZXJmb3JtYW5jZSA9PT0gXCJ1bmRlZmluZWRcIlxuICAgID8gKCkgPT4gRGF0ZS5ub3coKVxuICAgIDogKCkgPT4gcGVyZm9ybWFuY2Uubm93KCk7XG5cbi8vKioqIEVycm9ycyAqKiovL1xuXG4vLyBCZW5jaG1hcmtFcnJvcjogQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIGJlbmNobWFya2luZy5cbmFic3RyYWN0IGNsYXNzIEJlbmNobWFya0Vycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBwcml2YXRlIHJlYWRvbmx5IGNvZGU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1lc3NhZ2U6IHN0cmluZztcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICBzdGF0dXNDb2RlID0gMDtcbiAgW2tleTogc3RyaW5nXTogYW55O1xuXG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2UgPSBcIlNvbWV0aGluZyB3ZW50IHdyb25nXCIsIGNvZGU/OiBzdHJpbmcpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgdGhpcy5jb2RlID0gY29kZTtcbiAgICB0aGlzLm5hbWUgPSAodGhpcy5jb25zdHJ1Y3RvciBhcyB1bmtub3duIGFzIHsgbmFtZTogc3RyaW5nIH0pLm5hbWU7XG4gIH1cbn1cblxuLy8gIEJlZm9yZUVhY2hFcnJvcjogVGhlIGBiZWZvcmVFYWNoYCBmdW5jdGlvbiB0aHJldyBhbiBlcnJvci5cbmNsYXNzIEJlZm9yZUVhY2hFcnJvciBleHRlbmRzIEJlbmNobWFya0Vycm9yIHtcbiAgc3RhdHVzQ29kZSA9IDE7XG4gIG5hbWUgPSBcIkJlZm9yZUVhY2hFcnJvclwiO1xufVxuXG4vLyAgQWZ0ZXJFYWNoRXJyb3I6IFRoZSBgYWZ0ZXJFYWNoYCBmdW5jdGlvbiB0aHJldyBhbiBlcnJvci5cbmNsYXNzIEFmdGVyRWFjaEVycm9yIGV4dGVuZHMgQmVuY2htYXJrRXJyb3Ige1xuICBzdGF0dXNDb2RlID0gMjtcbiAgbmFtZSA9IFwiQWZ0ZXJFYWNoRXJyb3JcIjtcbn1cblxuLy8gIFJ1bkVycm9yOiBUaGUgYGZuYCBmdW5jdGlvbiB0aHJldyBhbiBlcnJvci5cbmNsYXNzIFJ1bkVycm9yIGV4dGVuZHMgQmVuY2htYXJrRXJyb3Ige1xuICBzdGF0dXNDb2RlID0gMztcbiAgbmFtZSA9IFwiUnVuRXJyb3JcIjtcbn1cblxuLy8gIEFmdGVyRXJyb3I6IFRoZSBgYWZ0ZXJgIGZ1bmN0aW9uIHRocmV3IGFuIGVycm9yLlxuY2xhc3MgQWZ0ZXJFcnJvciBleHRlbmRzIEJlbmNobWFya0Vycm9yIHtcbiAgc3RhdHVzQ29kZSA9IDQ7XG4gIG5hbWUgPSBcIkFmdGVyRXJyb3JcIjtcbn1cblxuLy8gIEJlZm9yZUVycm9yOiBUaGUgYGJlZm9yZWAgZnVuY3Rpb24gdGhyZXcgYW4gZXJyb3IuXG5jbGFzcyBCZWZvcmVFcnJvciBleHRlbmRzIEJlbmNobWFya0Vycm9yIHtcbiAgc3RhdHVzQ29kZSA9IDU7XG4gIG5hbWUgPSBcIkJlZm9yZUVycm9yXCI7XG59XG5cbi8vICBGYXRhbEVycm9yOiBUaGUgYG9uRXJyb3JgIGZ1bmN0aW9uIHRocmV3IGFuIGVycm9yLlxuY2xhc3MgRmF0YWxFcnJvciBleHRlbmRzIEJlbmNobWFya0Vycm9yIHtcbiAgc3RhdHVzQ29kZSA9IDc7XG4gIG5hbWUgPSBcIkZhdGFsRXJyb3JcIjtcbn1cblxuY29uc3QgRXJyb3JzID0ge1xuICBCZW5jaG1hcmtFcnJvcixcbiAgQmVmb3JlRWFjaEVycm9yLFxuICBBZnRlckVhY2hFcnJvcixcbiAgUnVuRXJyb3IsXG4gIEFmdGVyRXJyb3IsXG4gIEJlZm9yZUVycm9yLFxuICBGYXRhbEVycm9yXG59O1xuXG50eXBlIEVycm9yVHlwZSA9XG4gIHwgXCJCZWZvcmVFYWNoRXJyb3JcIlxuICB8IFwiQWZ0ZXJFYWNoRXJyb3JcIlxuICB8IFwiUnVuRXJyb3JcIlxuICB8IFwiQWZ0ZXJFcnJvclwiXG4gIHwgXCJCZWZvcmVFcnJvclwiXG4gIHwgXCJGYXRhbEVycm9yXCI7XG5cbi8vIEJlbmNobWFya0Z1bmN0aW9uIGEgZnVuY3Rpb24gdGhhdCBjYW4gYmUgdXNlZCBhcyBhIGJlbmNobWFyay5cbnR5cGUgQmVuY2htYXJrRnVuY3Rpb24gPSAoKSA9PiBQcm9taXNlPHZvaWQgfCBhbnk+IHwgdm9pZCB8IGFueTtcblxuLy8qKiogQmVuY2htYXJrIE9wdGlvbnMgVHlwZSAqKiovL1xudHlwZSBCZW5jaG1hcmtPcHRpb25zID0ge1xuICAvLyBUaGUgbWF4aW11bSB0aW1lIGluIHNlY29uZHMgdGhhdCBhIGJlbmNobWFyayBjYW4gdGFrZS5cbiAgbWF4VGltZTogbnVtYmVyO1xuICAvLyBUaGUgbWluaW11bSBudW1iZXIgb2Ygc2FtcGxlcyB0aGF0IG11c3QgYmUgdGFrZW4uXG4gIG1pblNhbXBsZXM6IG51bWJlcjtcbiAgLy8gQSBmdW5jdGlvbiB0byBiZSBydW4gb25jZSBiZWZvcmUgZWFjaCBiZW5jaG1hcmsgbG9vcCwgZG9lcyBub3QgY291bnQgZm9yIHJ1biB0aW1lLlxuICBiZWZvcmVFYWNoPzogKHRoaXM6IEJlbmNobWFyaykgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWQ7XG4gIC8vIEEgZnVuY3Rpb24gdG8gYmUgcnVuIG9uY2UgYWZ0ZXIgZWFjaCBiZW5jaG1hcmsgbG9vcCwgZG9lcyBub3QgY291bnQgZm9yIHJ1biB0aW1lLlxuICBhZnRlckVhY2g/OiAodGhpczogQmVuY2htYXJrKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZDtcbiAgLy8gQSBmdW5jdGlvbiB0byBiZSBydW4gb25jZSBhZnRlciB0aGUgYmVuY2htYXJrIGNvbXBsZXRlcywgZG9lcyBub3QgY291bnQgZm9yIHJ1biB0aW1lLlxuICBhZnRlcj86ICh0aGlzOiBCZW5jaG1hcmspID0+IFByb21pc2U8dm9pZD4gfCB2b2lkO1xuICAvLyBBIGZ1bmN0aW9uIHRvIGJlIHJ1biBvbmNlIGJlZm9yZSB0aGUgYmVuY2htYXJrIHN0YXJ0cywgZG9lcyBub3QgY291bnQgZm9yIHJ1biB0aW1lLlxuICBiZWZvcmU/OiAodGhpczogQmVuY2htYXJrKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZDtcbiAgLy8gQSBmdW5jdGlvbiB0byBiZSBydW4gaWYgYW4gZXJyb3Igb2NjdXJzLlxuICBvbkVycm9yPzogKHRoaXM6IEJlbmNobWFyaywgZXJyb3I6IEJlbmNobWFya0Vycm9yKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZDtcbiAgLy8gVGhlIGZ1bmN0aW9uIHRvIGJlIHJ1bi5cbiAgZm46IEJlbmNobWFya0Z1bmN0aW9uO1xufTtcblxuaW50ZXJmYWNlIEpzb25CZW5jaG1hcmsge1xuICBuYW1lOiBzdHJpbmc7XG4gIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgY3ljbGVzOiBudW1iZXI7XG4gIGh6OiBudW1iZXI7XG4gIG1lYW5UaW1lOiBudW1iZXI7XG4gIG1lZGlhblRpbWU6IG51bWJlcjtcbiAgc3RhbmRhcmREZXZpYXRpb246IG51bWJlcjtcbiAgbWF4VGltZTogbnVtYmVyO1xuICBtaW5UaW1lOiBudW1iZXI7XG4gIHJ1blRpbWU6IG51bWJlcjtcbiAgdG90YWxUaW1lOiBudW1iZXI7XG4gIHNhbXBsZXM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IGVudW0gQ29tcGFyZUJ5IHtcbiAgTWVhblRpbWUgPSBcIm1lYW5UaW1lXCIsXG4gIE1lZGlhblRpbWUgPSBcIm1lZGlhblRpbWVcIixcbiAgU3RhbmRhcmREZXZpYXRpb24gPSBcInN0YW5kYXJkRGV2aWF0aW9uXCIsXG4gIE1heFRpbWUgPSBcIm1heFRpbWVcIixcbiAgTWluVGltZSA9IFwibWluVGltZVwiLFxuICBIeiA9IFwiaHpcIixcbiAgUnVuVGltZSA9IFwicnVuVGltZVwiLFxuICBDeWNsZXMgPSBcImN5Y2xlc1wiLFxuICBQZXJjZW50ID0gXCJwZXJjZW50XCJcbn1cblxudHlwZSBCZW5jaG1hcmtDb25zdHJ1Y3RvciA9IChcbiAgbmFtZTogc3RyaW5nLFxuICBvcHRpb25zT3JGbjpcbiAgICB8IChQYXJ0aWFsPEJlbmNobWFya09wdGlvbnM+ICYgeyBmbjogQmVuY2htYXJrRnVuY3Rpb24gfSlcbiAgICB8IEJlbmNobWFya0Z1bmN0aW9uLFxuICBvcHRpb25zOiBQYXJ0aWFsPEJlbmNobWFya09wdGlvbnM+XG4pID0+IEJlbmNobWFyaztcblxuZXhwb3J0IGludGVyZmFjZSBCZW5jaG1hcmsge1xuICBTdWl0ZTogdHlwZW9mIFN1aXRlO1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlZmF1bHRzOiB7XG4gICAgbWF4VGltZTogbnVtYmVyO1xuICAgIG1pblNhbXBsZXM6IG51bWJlcjtcbiAgfTtcbiAgbmFtZTogc3RyaW5nO1xuICBlcnJvcj86IEJlbmNobWFya0Vycm9yO1xuICBjeWNsZXM6IG51bWJlcjtcbiAgc2FtcGxlczogbnVtYmVyO1xuICBoejogbnVtYmVyO1xuICBtZWFuVGltZTogbnVtYmVyO1xuICBtZWRpYW5UaW1lOiBudW1iZXI7XG4gIHN0YW5kYXJkRGV2aWF0aW9uOiBudW1iZXI7XG4gIG1heFRpbWU6IG51bWJlcjtcbiAgbWluVGltZTogbnVtYmVyO1xuICB0aW1lczogbnVtYmVyW107XG4gIG9wdGlvbnM6IEJlbmNobWFya09wdGlvbnM7XG4gIHN0YW1wOiBudW1iZXI7XG4gIHJ1blRpbWU6IG51bWJlcjtcbiAgdG90YWxUaW1lOiBudW1iZXI7XG4gIGNvbnN0cnVjdG9yOiBCZW5jaG1hcmtDb25zdHJ1Y3RvcjtcbiAgcnVuKCk6IFByb21pc2U8dm9pZD47XG4gIHRvSlNPTigpOiBKc29uQmVuY2htYXJrO1xuICBjb21wYXJlV2l0aChvdGhlcjogQmVuY2htYXJrLCBjb21wYXJlQnk6IENvbXBhcmVCeSk6IG51bWJlcjtcbn1cblxuLy8gaGVscGVyIHRvIGdldCB0aGUgY29ycmVjdCBlcnJvciB0eXBlIGZyb20gYSBub3JtYWwgZXJyb3JcbmZ1bmN0aW9uIGdldEVycm9yKFxuICBlcnJvcjogRXJyb3IsXG4gIG1lc3NhZ2U6IHN0cmluZyxcbiAgdHlwZTogRXJyb3JUeXBlXG4pOiBCZW5jaG1hcmtFcnJvciB7XG4gIGxldCBiZW5jaG1hcmtFcnJvciA9IG5ldyBFcnJvcnNbdHlwZV0obWVzc2FnZSk7XG4gIGJlbmNobWFya0Vycm9yLnN0YWNrID0gZXJyb3Iuc3RhY2s7XG4gIGZvciAobGV0IGkgaW4gZXJyb3IpIHtcbiAgICBpZiAoZXJyb3IuaGFzT3duUHJvcGVydHkoaSkpIHtcbiAgICAgIGJlbmNobWFya0Vycm9yW2ldID0gKGVycm9yIGFzIGFueSlbaV07XG4gICAgfVxuICB9XG4gIHJldHVybiBiZW5jaG1hcmtFcnJvcjtcbn1cblxuLy8gaGVscGVyIGZ1bmN0aW9uIHRvIGtub3cgaWYgYSBmdW5jdGlvbiBpcyBhc3luYyBvciBub3RcbmZ1bmN0aW9uIGlzQXN5bmMoZm46IEJlbmNobWFya0Z1bmN0aW9uKTogYm9vbGVhbiB7XG4gIHJldHVybiBmbi5jb25zdHJ1Y3Rvci5uYW1lID09PSBcIkFzeW5jRnVuY3Rpb25cIjtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcnVuQ2FsbGJhY2soXG4gIGluc3RhbmNlOiBhbnksXG4gIGVycm9yVHlwZUlmQW55OiBFcnJvclR5cGUsXG4gIGNhbGxiYWNrPzogKC4uLmFyZ3M6IGFueVtdKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZCxcbiAgLi4uYXJnczogYW55W11cbik6IFByb21pc2U8dm9pZCB8IEJlbmNobWFya0Vycm9yPiB7XG4gIGlmIChjYWxsYmFjaykge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBjYWxsYmFjay5iaW5kKGluc3RhbmNlKSguLi5hcmdzKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIGdldEVycm9yKFxuICAgICAgICBlcnJvciBhcyBFcnJvcixcbiAgICAgICAgYEJlbmNobWFyayBcXGAke2luc3RhbmNlLm5hbWV9XFxgIGZhaWxlZCB0byBydW4gXFxgJHtcbiAgICAgICAgICBjYWxsYmFjay5uYW1lXG4gICAgICAgIH1cXGAgY2FsbGJhY2s6ICR7KGVycm9yIGFzIEVycm9yKS5tZXNzYWdlfWAsXG4gICAgICAgIGVycm9yVHlwZUlmQW55XG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG4vLyBUaGUgYmVuY2htYXJrIGNsYXNzXG5leHBvcnQgY2xhc3MgQmVuY2htYXJrIGltcGxlbWVudHMgQmVuY2htYXJrIHtcbiAgc3RhdGljIFN1aXRlOiB0eXBlb2YgU3VpdGU7XG4gIHN0YXRpYyByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmcgPSB2ZXJzaW9uO1xuICBzdGF0aWMgcmVhZG9ubHkgZGVmYXVsdHM6IHtcbiAgICBtYXhUaW1lOiBudW1iZXI7XG4gICAgbWluU2FtcGxlczogbnVtYmVyO1xuICB9ID0ge1xuICAgIG1heFRpbWU6IDUsXG4gICAgbWluU2FtcGxlczogMVxuICB9O1xuXG4gIG5hbWU6IHN0cmluZztcbiAgZXJyb3I/OiBCZW5jaG1hcmtFcnJvcjtcbiAgY3ljbGVzOiBudW1iZXIgPSAwO1xuICBzYW1wbGVzOiBudW1iZXIgPSAwO1xuICBoejogbnVtYmVyID0gMDtcbiAgbWVhblRpbWU6IG51bWJlciA9IDA7XG4gIG1lZGlhblRpbWU6IG51bWJlciA9IDA7XG4gIHN0YW5kYXJkRGV2aWF0aW9uOiBudW1iZXIgPSAwO1xuICBtYXhUaW1lOiBudW1iZXIgPSAwO1xuICBtaW5UaW1lOiBudW1iZXIgPSAwO1xuICB0aW1lczogbnVtYmVyW10gPSBbXTtcbiAgb3B0aW9uczogQmVuY2htYXJrT3B0aW9ucztcbiAgc3RhbXAhOiBudW1iZXI7XG4gIHJ1blRpbWU6IG51bWJlciA9IDA7XG4gIHRvdGFsVGltZTogbnVtYmVyID0gMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgb3B0aW9uc09yRm46XG4gICAgICB8IChQYXJ0aWFsPEJlbmNobWFya09wdGlvbnM+ICYgeyBmbjogQmVuY2htYXJrRnVuY3Rpb24gfSlcbiAgICAgIHwgQmVuY2htYXJrRnVuY3Rpb24sXG4gICAgb3B0aW9uczogUGFydGlhbDxCZW5jaG1hcmtPcHRpb25zPiA9IHt9XG4gICkge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgbGV0IG9wdHMgPSB7XG4gICAgICAuLi5CZW5jaG1hcmsuZGVmYXVsdHMsXG4gICAgICAuLi5vcHRpb25zXG4gICAgfSBhcyBCZW5jaG1hcmtPcHRpb25zO1xuXG4gICAgaWYgKHR5cGVvZiBvcHRpb25zT3JGbiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBvcHRzLmZuID0gb3B0aW9uc09yRm47XG4gICAgfSBlbHNlIHtcbiAgICAgIG9wdHMgPSB7XG4gICAgICAgIC4uLm9wdHMsXG4gICAgICAgIC4uLm9wdGlvbnNPckZuXG4gICAgICB9O1xuICAgIH1cblxuICAgIHRoaXMub3B0aW9ucyA9IG9wdHM7XG4gIH1cblxuICB0b0pTT04oKTogSnNvbkJlbmNobWFyayB7XG4gICAgY29uc3Qge1xuICAgICAgbmFtZSxcbiAgICAgIGVycm9yLFxuICAgICAgY3ljbGVzLFxuICAgICAgaHosXG4gICAgICBydW5UaW1lLFxuICAgICAgdG90YWxUaW1lLFxuICAgICAgc2FtcGxlcyxcbiAgICAgIG1lYW5UaW1lLFxuICAgICAgbWVkaWFuVGltZSxcbiAgICAgIHN0YW5kYXJkRGV2aWF0aW9uLFxuICAgICAgbWF4VGltZSxcbiAgICAgIG1pblRpbWVcbiAgICB9ID0gdGhpcztcblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgZXJyb3JNZXNzYWdlOiBlcnJvciA/IGVycm9yLm1lc3NhZ2UgOiB1bmRlZmluZWQsXG4gICAgICBjeWNsZXMsXG4gICAgICBzYW1wbGVzLFxuICAgICAgaHosXG4gICAgICBtZWFuVGltZSxcbiAgICAgIG1lZGlhblRpbWUsXG4gICAgICBzdGFuZGFyZERldmlhdGlvbixcbiAgICAgIG1heFRpbWUsXG4gICAgICBtaW5UaW1lLFxuICAgICAgcnVuVGltZSxcbiAgICAgIHRvdGFsVGltZVxuICAgIH07XG4gIH1cblxuICBjb21wYXJlV2l0aChcbiAgICBvdGhlcjogQmVuY2htYXJrLFxuICAgIGNvbXBhcmVCeTogQ29tcGFyZUJ5ID0gQ29tcGFyZUJ5LlBlcmNlbnRcbiAgKTogbnVtYmVyIHtcbiAgICBjb25zdCB7XG4gICAgICBlcnJvcixcbiAgICAgIGN5Y2xlcyxcbiAgICAgIGh6LFxuICAgICAgbWVhblRpbWUsXG4gICAgICBtZWRpYW5UaW1lLFxuICAgICAgc3RhbmRhcmREZXZpYXRpb24sXG4gICAgICBtYXhUaW1lLFxuICAgICAgbWluVGltZSxcbiAgICAgIHJ1blRpbWVcbiAgICB9ID0gdGhpcztcblxuICAgIGlmIChlcnJvcikge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cblxuICAgIGlmIChvdGhlci5lcnJvcikge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgc3dpdGNoIChjb21wYXJlQnkpIHtcbiAgICAgIGNhc2UgXCJtZWFuVGltZVwiOlxuICAgICAgICByZXR1cm4gb3RoZXIubWVhblRpbWUgLSBtZWFuVGltZTtcbiAgICAgIGNhc2UgXCJtZWRpYW5UaW1lXCI6XG4gICAgICAgIHJldHVybiBvdGhlci5tZWRpYW5UaW1lIC0gbWVkaWFuVGltZTtcbiAgICAgIGNhc2UgXCJzdGFuZGFyZERldmlhdGlvblwiOlxuICAgICAgICByZXR1cm4gc3RhbmRhcmREZXZpYXRpb24gLSBvdGhlci5zdGFuZGFyZERldmlhdGlvbjtcbiAgICAgIGNhc2UgXCJtYXhUaW1lXCI6XG4gICAgICAgIHJldHVybiBtYXhUaW1lIC0gb3RoZXIubWF4VGltZTtcbiAgICAgIGNhc2UgXCJtaW5UaW1lXCI6XG4gICAgICAgIHJldHVybiBvdGhlci5taW5UaW1lIC0gbWluVGltZTtcbiAgICAgIGNhc2UgXCJoelwiOlxuICAgICAgICByZXR1cm4gaHogLSBvdGhlci5oejtcbiAgICAgIGNhc2UgXCJydW5UaW1lXCI6XG4gICAgICAgIHJldHVybiBydW5UaW1lIC0gb3RoZXIucnVuVGltZTtcbiAgICAgIGNhc2UgXCJjeWNsZXNcIjpcbiAgICAgICAgcmV0dXJuIGN5Y2xlcyAtIG90aGVyLmN5Y2xlcztcbiAgICAgIGNhc2UgXCJwZXJjZW50XCI6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgTWF0aC50cnVuYygoKDEwMCAvIG1lYW5UaW1lKSAqIG90aGVyLm1lYW5UaW1lIC0gMTAwKSAqIDEwMCkgLyAxMDBcbiAgICAgICAgKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBjb21wYXJlIGZpZWxkOiAke2NvbXBhcmVCeX1gKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBydW5TYW1wbGUoKSB7XG4gICAgY29uc3QgeyBiZWZvcmVFYWNoLCBhZnRlckVhY2gsIGZuIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgbGV0IHNhbXBsZU1heFRpbWUgPSAxMDAwO1xuICAgIGxldCBzdGFydFRpbWUgPSBub3coKTtcblxuICAgIHdoaWxlIChub3coKSAtIHN0YXJ0VGltZSA8IHNhbXBsZU1heFRpbWUpIHtcbiAgICAgIGNvbnN0IHN0YXJ0Q3ljbGVUaW1lID0gbm93KCk7XG4gICAgICB0aGlzLmN5Y2xlcysrO1xuICAgICAgY29uc3QgQmVmb3JlRWFjaEVycm9yID0gYXdhaXQgcnVuQ2FsbGJhY2soXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiQmVmb3JlRWFjaEVycm9yXCIsXG4gICAgICAgIGJlZm9yZUVhY2hcbiAgICAgICk7XG4gICAgICBpZiAoQmVmb3JlRWFjaEVycm9yKSB7XG4gICAgICAgIHRocm93IEJlZm9yZUVhY2hFcnJvcjtcbiAgICAgIH1cblxuICAgICAgbGV0IHRpbWU7XG4gICAgICB0cnkge1xuICAgICAgICBpZiAoaXNBc3luYyhmbikpIHtcbiAgICAgICAgICBsZXQgc3RhcnQgPSBub3coKTtcbiAgICAgICAgICBhd2FpdCBmbigpO1xuICAgICAgICAgIHRpbWUgPSBub3coKSAtIHN0YXJ0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxldCBzdGFydCA9IG5vdygpO1xuICAgICAgICAgIGZuKCk7XG4gICAgICAgICAgdGltZSA9IG5vdygpIC0gc3RhcnQ7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRocm93IGdldEVycm9yKFxuICAgICAgICAgIGVycm9yIGFzIEVycm9yLFxuICAgICAgICAgIGBCZW5jaG1hcmsgXFxgJHt0aGlzLm5hbWV9XFxgIGZhaWxlZCB0byBydW4gXFxgZm5cXGA6ICR7XG4gICAgICAgICAgICAoZXJyb3IgYXMgRXJyb3IpLm1lc3NhZ2VcbiAgICAgICAgICB9YCxcbiAgICAgICAgICBcIlJ1bkVycm9yXCJcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy50aW1lcy5wdXNoKHRpbWUpO1xuICAgICAgdGhpcy5ydW5UaW1lICs9IHRpbWU7XG5cbiAgICAgIGNvbnN0IEFmdGVyRWFjaEVycm9yID0gYXdhaXQgcnVuQ2FsbGJhY2soXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiQWZ0ZXJFYWNoRXJyb3JcIixcbiAgICAgICAgYWZ0ZXJFYWNoXG4gICAgICApO1xuICAgICAgaWYgKEFmdGVyRWFjaEVycm9yKSB7XG4gICAgICAgIHRocm93IEFmdGVyRWFjaEVycm9yO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnRvdGFsVGltZSArPSBub3coKSAtIHN0YXJ0Q3ljbGVUaW1lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJ1biB0aGUgYmVuY2htYXJrLlxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5zdGFtcCA9IG5vdygpO1xuICAgIGNvbnN0IHsgbWF4VGltZSwgbWluU2FtcGxlcywgYWZ0ZXIsIGJlZm9yZSwgb25FcnJvciB9ID0gdGhpcy5vcHRpb25zO1xuICAgIGxldCBtYXhUaW1lSW5NaWxsaXNlY29uZHMgPSBtYXhUaW1lICogMTAwMDtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBiZWZvcmVFcnJvciA9IGF3YWl0IHJ1bkNhbGxiYWNrKHRoaXMsIFwiQmVmb3JlRXJyb3JcIiwgYmVmb3JlKTtcbiAgICAgIGlmIChiZWZvcmVFcnJvcikge1xuICAgICAgICB0aHJvdyBiZWZvcmVFcnJvcjtcbiAgICAgIH1cblxuICAgICAgd2hpbGUgKFxuICAgICAgICB0aGlzLnNhbXBsZXMgPCBtaW5TYW1wbGVzIHx8XG4gICAgICAgIHRoaXMudG90YWxUaW1lIDwgbWF4VGltZUluTWlsbGlzZWNvbmRzXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5zYW1wbGVzKys7XG4gICAgICAgIGF3YWl0IHRoaXMucnVuU2FtcGxlKCk7XG4gICAgICB9XG5cbiAgICAgIC8vIENhbGN1bGF0ZSB0aGUgaHogYnkgc2Vjb25kXG4gICAgICB0aGlzLmh6ID0gdGhpcy5jeWNsZXMgLyAodGhpcy5ydW5UaW1lIC8gMTAwMCk7XG5cbiAgICAgIC8vIENhbGN1bGF0ZSB0aGUgbWVhbiwgbWVkaWFuLCBtYXJnaW4gb2YgZXJyb3IsIGFuZCBzdGFuZGFyZCBkZXZpYXRpb24uXG4gICAgICB0aGlzLm1lYW5UaW1lID0gdGhpcy5ydW5UaW1lIC8gdGhpcy50aW1lcy5sZW5ndGg7XG4gICAgICB0aGlzLm1lZGlhblRpbWUgPVxuICAgICAgICB0aGlzLnRpbWVzLnNvcnQoKGEsIGIpID0+IGEgLSBiKVtNYXRoLmZsb29yKHRoaXMudGltZXMubGVuZ3RoIC8gMildIHx8XG4gICAgICAgIDA7XG4gICAgICB0aGlzLnN0YW5kYXJkRGV2aWF0aW9uID0gTWF0aC5zcXJ0KFxuICAgICAgICB0aGlzLnRpbWVzXG4gICAgICAgICAgLm1hcCgodCkgPT4gTWF0aC5wb3codCAtIHRoaXMubWVhblRpbWUsIDIpKVxuICAgICAgICAgIC5yZWR1Y2UoKGEsIGIpID0+IGEgKyBiLCAwKSAvIHRoaXMudGltZXMubGVuZ3RoXG4gICAgICApO1xuXG4gICAgICAvLyBDYWxjdWxhdGUgdGhlIG1heCwgbWluLCBhbmQgYXZlcmFnZSB0aW1lcy5cbiAgICAgIHRoaXMubWF4VGltZSA9IHRoaXMudGltZXMucmVkdWNlKChtYXgsIHRpbWUpID0+IE1hdGgubWF4KG1heCwgdGltZSksIDApO1xuICAgICAgdGhpcy5taW5UaW1lID0gdGhpcy50aW1lcy5yZWR1Y2UoXG4gICAgICAgIChtaW4sIHRpbWUpID0+IE1hdGgubWluKG1pbiwgdGltZSksXG4gICAgICAgIEluZmluaXR5XG4gICAgICApO1xuXG4gICAgICBjb25zdCBhZnRlckVycm9yID0gYXdhaXQgcnVuQ2FsbGJhY2sodGhpcywgXCJBZnRlckVycm9yXCIsIGFmdGVyKTtcbiAgICAgIGlmIChhZnRlckVycm9yKSB7XG4gICAgICAgIHRocm93IGFmdGVyRXJyb3I7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSBlcnJvciBhcyBCZW5jaG1hcmtFcnJvcjtcblxuICAgICAgY29uc3Qgb25FcnJvckVycm9yID0gYXdhaXQgcnVuQ2FsbGJhY2soXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiRmF0YWxFcnJvclwiLFxuICAgICAgICBvbkVycm9yLFxuICAgICAgICBlcnJvclxuICAgICAgKTtcbiAgICAgIGlmIChvbkVycm9yRXJyb3IpIHtcbiAgICAgICAgdGhyb3cgb25FcnJvckVycm9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyoqKiBDbGFzcyBTdWl0ZSAqKiovL1xudHlwZSBTdWl0ZU9wdGlvbnMgPSB7XG4gIC8vIFRoZSBtYXhpbXVtIHRpbWUgaW4gc2Vjb25kcyB0aGF0IGEgYmVuY2htYXJrIGNhbiB0YWtlLlxuICBtYXhUaW1lOiBudW1iZXI7XG4gIC8vIFRoZSBtaW5pbXVtIG51bWJlciBvZiBzYW1wbGVzIHRoYXQgbXVzdCBiZSB0YWtlbi5cbiAgbWluU2FtcGxlczogbnVtYmVyO1xuICAvLyBBIGZ1bmN0aW9uIHRvIGJlIHJ1biBvbmNlIGJlZm9yZSBlYWNoIGJlbmNobWFyayBydW5cbiAgYmVmb3JlRWFjaD86IChcbiAgICB0aGlzOiBTdWl0ZSxcbiAgICBiZW5jaG1hcms6IEJlbmNobWFyayxcbiAgICBpOiBudW1iZXJcbiAgKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZDtcbiAgLy8gQSBmdW5jdGlvbiB0byBiZSBydW4gb25jZSBhZnRlciBlYWNoIGJlbmNobWFyayBydW5cbiAgYWZ0ZXJFYWNoPzogKFxuICAgIHRoaXM6IFN1aXRlLFxuICAgIGJlbmNobWFyazogQmVuY2htYXJrLFxuICAgIGk6IG51bWJlclxuICApID0+IFByb21pc2U8dm9pZD4gfCB2b2lkO1xuICAvLyBBIGZ1bmN0aW9uIHRvIGJlIHJ1biBvbmNlIGFmdGVyIHRoZSBzdWl0ZSBjb21wbGV0ZXNcbiAgYWZ0ZXI/OiAodGhpczogU3VpdGUpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkO1xuICAvLyBBIGZ1bmN0aW9uIHRvIGJlIHJ1biBvbmNlIGJlZm9yZSB0aGUgc3VpdGUgc3RhcnRzXG4gIGJlZm9yZT86ICh0aGlzOiBTdWl0ZSkgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWQ7XG4gIC8vIEEgZnVuY3Rpb24gdG8gYmUgcnVuIGlmIGFuIGVycm9yIG9jY3Vycy5cbiAgb25FcnJvcj86ICh0aGlzOiBTdWl0ZSwgZXJyb3I6IEJlbmNobWFya0Vycm9yKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZDtcbn07XG5cbmludGVyZmFjZSBKc29uU3VpdGUge1xuICBuYW1lOiBzdHJpbmc7XG4gIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgcnVuVGltZTogbnVtYmVyO1xuICB0b3RhbFRpbWU6IG51bWJlcjtcbiAgcGFzc2VkOiBib29sZWFuO1xuICBiZW5jaG1hcmtzOiBKc29uQmVuY2htYXJrW107XG59XG5cbnR5cGUgU3VpdGVDb25zdHJ1Y3RvciA9IChcbiAgbmFtZTogc3RyaW5nLFxuICBvcHRpb25zPzogUGFydGlhbDxTdWl0ZU9wdGlvbnM+XG4pID0+IFN1aXRlO1xuXG5pbnRlcmZhY2UgU3VpdGUge1xuICByZWFkb25seSBkZWZhdWx0czoge1xuICAgIG1heFRpbWU6IG51bWJlcjtcbiAgICBtaW5TYW1wbGVzOiBudW1iZXI7XG4gIH07XG5cbiAgbmFtZTogc3RyaW5nO1xuICBlcnJvcj86IEJlbmNobWFya0Vycm9yO1xuICBvcHRpb25zOiBTdWl0ZU9wdGlvbnM7XG4gIHN0YW1wOiBudW1iZXI7XG4gIHJ1blRpbWU6IG51bWJlcjtcbiAgdG90YWxUaW1lOiBudW1iZXI7XG4gIGJlbmNobWFya3M6IEJlbmNobWFya1tdO1xuXG4gIGNvbnN0cnVjdG9yOiBTdWl0ZUNvbnN0cnVjdG9yO1xuICBhZGQoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnNPckZuOlxuICAgICAgfCAoUGFydGlhbDxCZW5jaG1hcmtPcHRpb25zPiAmIHsgZm46IEJlbmNobWFya0Z1bmN0aW9uIH0pXG4gICAgICB8IEJlbmNobWFya0Z1bmN0aW9uLFxuICAgIG9wdGlvbnM6IFBhcnRpYWw8QmVuY2htYXJrT3B0aW9ucz5cbiAgKTogQmVuY2htYXJrO1xuICB0b0pTT04oKTogSnNvblN1aXRlO1xuICBydW4oKTogUHJvbWlzZTx2b2lkPjtcblxuICBnZXRTb3J0ZWRCZW5jaG1hcmtzQnkoc29ydGVkQnk6IENvbXBhcmVCeSk6IEJlbmNobWFya1tdO1xuICBnZXRGYXN0ZXN0KHNvcnRlZEJ5OiBDb21wYXJlQnkpOiBCZW5jaG1hcms7XG4gIGdldFNsb3dlc3Qoc29ydGVkQnk6IENvbXBhcmVCeSk6IEJlbmNobWFyaztcbiAgY29tcGFyZUZhc3Rlc3RXaXRoU2xvd2VzdChjb21wYXJlQnk6IENvbXBhcmVCeSk6IHtcbiAgICBmYXN0ZXN0OiBCZW5jaG1hcms7XG4gICAgc2xvd2VzdDogQmVuY2htYXJrO1xuICAgIGJ5OiBudW1iZXI7XG4gIH07XG59XG5cbmNsYXNzIFN1aXRlIGltcGxlbWVudHMgU3VpdGUge1xuICBzdGF0aWMgcmVhZG9ubHkgZGVmYXVsdHMgPSB7XG4gICAgbWF4VGltZTogNSxcbiAgICBtaW5TYW1wbGVzOiAxXG4gIH07XG5cbiAgbmFtZTogc3RyaW5nO1xuICBlcnJvcj86IEJlbmNobWFya0Vycm9yO1xuICBvcHRpb25zOiBTdWl0ZU9wdGlvbnM7XG4gIHN0YW1wITogbnVtYmVyO1xuICBydW5UaW1lOiBudW1iZXIgPSAwO1xuICB0b3RhbFRpbWU6IG51bWJlciA9IDA7XG4gIGJlbmNobWFya3M6IEJlbmNobWFya1tdID0gW107XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBvcHRpb25zOiBQYXJ0aWFsPFN1aXRlT3B0aW9ucz4gPSB7fSkge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4uU3VpdGUuZGVmYXVsdHMsXG4gICAgICAuLi5vcHRpb25zXG4gICAgfTtcbiAgfVxuXG4gIHRvSlNPTigpOiBKc29uU3VpdGUge1xuICAgIGNvbnN0IHsgZXJyb3IsIG5hbWUsIHJ1blRpbWUsIHRvdGFsVGltZSB9ID0gdGhpcztcblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgZXJyb3JNZXNzYWdlOiBlcnJvciA/IGVycm9yLm1lc3NhZ2UgOiB1bmRlZmluZWQsXG4gICAgICBydW5UaW1lLFxuICAgICAgdG90YWxUaW1lLFxuICAgICAgcGFzc2VkOiAhZXJyb3IsXG4gICAgICBiZW5jaG1hcmtzOiB0aGlzLmdldFNvcnRlZEJlbmNobWFya3NCeShDb21wYXJlQnkuTWVhblRpbWUpLm1hcChcbiAgICAgICAgKGJlbmNobWFyaykgPT4gYmVuY2htYXJrLnRvSlNPTigpXG4gICAgICApXG4gICAgfTtcbiAgfVxuXG4gIGFkZChcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgb3B0aW9uc09yRm46XG4gICAgICB8IChQYXJ0aWFsPEJlbmNobWFya09wdGlvbnM+ICYgeyBmbjogQmVuY2htYXJrRnVuY3Rpb24gfSlcbiAgICAgIHwgQmVuY2htYXJrRnVuY3Rpb24sXG4gICAgb3B0aW9uczogUGFydGlhbDxCZW5jaG1hcmtPcHRpb25zPiA9IHt9XG4gICk6IEJlbmNobWFyayB7XG4gICAgbGV0IG9wdHMgPSB7XG4gICAgICAuLi57XG4gICAgICAgIG1pblNhbXBsZXM6IHRoaXMub3B0aW9ucy5taW5TYW1wbGVzLFxuICAgICAgICBtYXhUaW1lOiB0aGlzLm9wdGlvbnMubWF4VGltZVxuICAgICAgfSxcbiAgICAgIC4uLm9wdGlvbnNcbiAgICB9IGFzIEJlbmNobWFya09wdGlvbnM7XG5cbiAgICBpZiAodHlwZW9mIG9wdGlvbnNPckZuID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIG9wdHMuZm4gPSBvcHRpb25zT3JGbjtcbiAgICB9IGVsc2Uge1xuICAgICAgb3B0cyA9IHtcbiAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgLi4ub3B0aW9uc09yRm5cbiAgICAgIH07XG4gICAgfVxuICAgIGxldCBiZW5jaG1hcmsgPSBuZXcgQmVuY2htYXJrKG5hbWUsIG9wdHMpO1xuICAgIHRoaXMuYmVuY2htYXJrcy5wdXNoKGJlbmNobWFyayk7XG4gICAgcmV0dXJuIGJlbmNobWFyaztcbiAgfVxuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnN0YW1wID0gbm93KCk7XG4gICAgY29uc3QgeyBiZWZvcmVFYWNoLCBhZnRlckVhY2gsIGFmdGVyLCBiZWZvcmUsIG9uRXJyb3IgfSA9IHRoaXMub3B0aW9ucztcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBiZWZvcmVFcnJvciA9IGF3YWl0IHJ1bkNhbGxiYWNrKHRoaXMsIFwiQmVmb3JlRXJyb3JcIiwgYmVmb3JlKTtcbiAgICAgIGlmIChiZWZvcmVFcnJvcikge1xuICAgICAgICB0aHJvdyBiZWZvcmVFcnJvcjtcbiAgICAgIH1cblxuICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aGlzLmJlbmNobWFya3MubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIGxldCBiZW5jaG1hcmsgPSB0aGlzLmJlbmNobWFya3NbaV07XG4gICAgICAgIGNvbnN0IGJlZm9yZUVhY2hFcnJvciA9IGF3YWl0IHJ1bkNhbGxiYWNrKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgXCJCZWZvcmVFYWNoRXJyb3JcIixcbiAgICAgICAgICBiZWZvcmVFYWNoLFxuICAgICAgICAgIGJlbmNobWFyayxcbiAgICAgICAgICBpXG4gICAgICAgICk7XG4gICAgICAgIGlmIChiZWZvcmVFYWNoRXJyb3IpIHtcbiAgICAgICAgICB0aHJvdyBiZWZvcmVFYWNoRXJyb3I7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBiZW5jaG1hcmsucnVuKCk7XG4gICAgICAgIHRoaXMucnVuVGltZSArPSBiZW5jaG1hcmsucnVuVGltZTtcbiAgICAgICAgdGhpcy50b3RhbFRpbWUgKz0gYmVuY2htYXJrLnRvdGFsVGltZTtcblxuICAgICAgICBjb25zdCBhZnRlckVhY2hFcnJvciA9IGF3YWl0IHJ1bkNhbGxiYWNrKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgXCJBZnRlckVhY2hFcnJvclwiLFxuICAgICAgICAgIGFmdGVyRWFjaCxcbiAgICAgICAgICBiZW5jaG1hcmssXG4gICAgICAgICAgaVxuICAgICAgICApO1xuICAgICAgICBpZiAoYWZ0ZXJFYWNoRXJyb3IpIHtcbiAgICAgICAgICB0aHJvdyBhZnRlckVhY2hFcnJvcjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBhZnRlckVycm9yID0gYXdhaXQgcnVuQ2FsbGJhY2sodGhpcywgXCJBZnRlckVycm9yXCIsIGFmdGVyKTtcbiAgICAgIGlmIChhZnRlckVycm9yKSB7XG4gICAgICAgIHRocm93IGFmdGVyRXJyb3I7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSBlcnJvciBhcyBCZW5jaG1hcmtFcnJvcjtcblxuICAgICAgY29uc3Qgb25FcnJvckVycm9yID0gYXdhaXQgcnVuQ2FsbGJhY2soXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiRmF0YWxFcnJvclwiLFxuICAgICAgICBvbkVycm9yLFxuICAgICAgICBlcnJvclxuICAgICAgKTtcbiAgICAgIGlmIChvbkVycm9yRXJyb3IpIHtcbiAgICAgICAgdGhyb3cgb25FcnJvckVycm9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldFNvcnRlZEJlbmNobWFya3NCeShzb3J0Qnk6IENvbXBhcmVCeSk6IEJlbmNobWFya1tdIHtcbiAgICBjb25zdCBiZW5jaG1hcmtzID0gdGhpcy5iZW5jaG1hcmtzLnNsaWNlKCk7XG4gICAgY29uc3Qgc29ydGVkQmVuY2htYXJrcyA9IGJlbmNobWFya3Muc29ydCgoYSwgYikgPT4ge1xuICAgICAgbGV0IHJlc3VsdCA9IGIuY29tcGFyZVdpdGgoYSwgc29ydEJ5KTtcbiAgICAgIHJldHVybiByZXN1bHQgPiAwID8gMSA6IHJlc3VsdCA8IDAgPyAtMSA6IDA7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc29ydGVkQmVuY2htYXJrcztcbiAgfVxuXG4gIGdldEZhc3Rlc3Qoc29ydEJ5OiBDb21wYXJlQnkpOiBCZW5jaG1hcmsge1xuICAgIGNvbnN0IHNvcnRlZEJlbmNobWFya3MgPSB0aGlzLmdldFNvcnRlZEJlbmNobWFya3NCeShzb3J0QnkpO1xuICAgIHJldHVybiBzb3J0ZWRCZW5jaG1hcmtzWzBdO1xuICB9XG5cbiAgZ2V0U2xvd2VzdChzb3J0Qnk6IENvbXBhcmVCeSk6IEJlbmNobWFyayB7XG4gICAgY29uc3Qgc29ydGVkQmVuY2htYXJrcyA9IHRoaXMuZ2V0U29ydGVkQmVuY2htYXJrc0J5KHNvcnRCeSk7XG4gICAgcmV0dXJuIHNvcnRlZEJlbmNobWFya3Nbc29ydGVkQmVuY2htYXJrcy5sZW5ndGggLSAxXTtcbiAgfVxuXG4gIGNvbXBhcmVGYXN0ZXN0V2l0aFNsb3dlc3QoY29tcGFyZUJ5OiBDb21wYXJlQnkpIHtcbiAgICBsZXQgc29ydEJ5ID1cbiAgICAgIGNvbXBhcmVCeSA9PT0gQ29tcGFyZUJ5LlBlcmNlbnQgPyBDb21wYXJlQnkuTWVhblRpbWUgOiBjb21wYXJlQnk7XG4gICAgY29uc3QgZmFzdGVzdCA9IHRoaXMuZ2V0RmFzdGVzdChzb3J0QnkpO1xuICAgIGNvbnN0IHNsb3dlc3QgPSB0aGlzLmdldFNsb3dlc3Qoc29ydEJ5KTtcblxuICAgIHJldHVybiB7XG4gICAgICBmYXN0ZXN0LFxuICAgICAgc2xvd2VzdCxcbiAgICAgIGJ5OiBmYXN0ZXN0LmNvbXBhcmVXaXRoKHNsb3dlc3QsIGNvbXBhcmVCeSlcbiAgICB9O1xuICB9XG59XG5cbkJlbmNobWFyay5TdWl0ZSA9IFN1aXRlO1xuIl0sIm1hcHBpbmdzIjoibUxBd0dJQSxFQUNxQixvQkFBaEJDLFlBQ0gsSUFBTUMsS0FBS0YsTUFDWCxJQUFNQyxZQUFZRCxNQUtURyxFQUFmLGNBQXNDQyxNQUNwQ0MsS0FDQUMsUUFDQUMsS0FDQUMsV0FBYSxFQUdiQyxZQUFZSCxFQUFVLHVCQUF3QkQsR0FDNUNLLFFBQ0FDLEtBQUtMLFFBQVVBLEVBQ2ZLLEtBQUtOLEtBQU9BLEVBQ1pNLEtBQUtKLEtBQVFJLEtBQUtGLFlBQTRDRixPQXdDNURLLEVBQVMsQ0FDYlQsaUJBQ0FVLGdCQXJDRixjQUE4QlYsRUFDNUJLLFdBQWEsRUFDYkQsS0FBTyxtQkFvQ1BPLGVBaENGLGNBQTZCWCxFQUMzQkssV0FBYSxFQUNiRCxLQUFPLGtCQStCUFEsU0EzQkYsY0FBdUJaLEVBQ3JCSyxXQUFhLEVBQ2JELEtBQU8sWUEwQlBTLFdBdEJGLGNBQXlCYixFQUN2QkssV0FBYSxFQUNiRCxLQUFPLGNBcUJQVSxZQWpCRixjQUEwQmQsRUFDeEJLLFdBQWEsRUFDYkQsS0FBTyxlQWdCUFcsV0FaRixjQUF5QmYsRUFDdkJLLFdBQWEsRUFDYkQsS0FBTyxlQTJEU1ksRUFBWCxDQUFXQyxJQUNoQkEsRUFBQSxTQUFXLFdBQ1hBLEVBQUEsV0FBYSxhQUNiQSxFQUFBLGtCQUFvQixvQkFDcEJBLEVBQUEsUUFBVSxVQUNWQSxFQUFBLFFBQVUsVUFDVkEsRUFBQSxHQUFLLEtBQ0xBLEVBQUEsUUFBVSxVQUNWQSxFQUFBLE9BQVMsU0FDVEEsRUFBQSxRQUFVLFVBVE1BLEdBQVgsQ0FBV0QsR0FBQSxJQWlEbEIsU0FBQUUsRUFDRUMsRUFDQWhCLEVBQ0FpQixHQUVBLElBQUlDLEVBQWlCLElBQUlaLEVBQU9XLEdBQU1qQixHQUN0Q2tCLEVBQWVDLE1BQVFILEVBQU1HLE1BQzdCLFFBQVNDLEtBQUtKLEVBQ1JBLEVBQU1LLGVBQWVELEtBQ3ZCRixFQUFlRSxHQUFNSixFQUFjSSxJQUd2QyxPQUFPRixFQUlULFNBQUFJLEVBQWlCQyxHQUNmLE1BQStCLGtCQUF4QkEsRUFBR3BCLFlBQVlGLEtBR3hCdUIsZUFBQUMsRUFDRUMsRUFDQUMsRUFDQUMsS0FDR0MsR0FFSCxHQUFJRCxFQUNGLFVBQ1FBLEVBQVNFLEtBQUtKLEVBQWRFLElBQTJCQyxHQUNuQyxNQUFTYixHQUNQLE9BQU9ELEVBQ0xDLEVBQ0EsZUFBZVUsRUFBU3pCLDBCQUN0QjJCLEVBQVMzQixvQkFDTWUsRUFBZ0JoQixVQUNqQzJCLElBT0QsSUFBTUksRUFBTixNQVdMOUIsS0FDQWUsTUFDQWdCLE9BQWlCLEVBQ2pCQyxRQUFrQixFQUNsQkMsR0FBYSxFQUNiQyxTQUFtQixFQUNuQkMsV0FBcUIsRUFDckJDLGtCQUE0QixFQUM1QkMsUUFBa0IsRUFDbEJDLFFBQWtCLEVBQ2xCQyxNQUFrQixHQUNsQkMsUUFDQUMsTUFDQUMsUUFBa0IsRUFDbEJDLFVBQW9CLEVBRXBCekMsWUFDRUYsRUFDQTRDLEVBR0FKLEVBQXFDLElBRXJDcEMsS0FBS0osS0FBT0EsRUFDWixJQUFJNkMsRUFBTyxJQUNOZixFQUFVZ0IsWUFDVk4sR0FHc0IsbUJBQWhCSSxFQUNUQyxFQUFLdkIsR0FBS3NCLEVBRVZDLEVBQU8sSUFDRkEsS0FDQUQsR0FJUHhDLEtBQUtvQyxRQUFVSyxFQUdqQkUsU0FDRSxNQUFNL0MsS0FDSkEsRUFBQWUsTUFDQUEsRUFBQWdCLE9BQ0FBLEVBQUFFLEdBQ0FBLEVBQUFTLFFBQ0FBLEVBQUFDLFVBQ0FBLEVBQUFYLFFBQ0FBLEVBQUFFLFNBQ0FBLEVBQUFDLFdBQ0FBLEVBQUFDLGtCQUNBQSxFQUFBQyxRQUNBQSxFQUFBQyxRQUNBQSxHQUNFbEMsS0FFSixNQUFPLENBQ0xKLE9BQ0FnRCxhQUFjakMsRUFBUUEsRUFBTWhCLGFBQVUsRUFDdENnQyxTQUNBQyxVQUNBQyxLQUNBQyxXQUNBQyxhQUNBQyxvQkFDQUMsVUFDQUMsVUFDQUksVUFDQUMsYUFJSk0sWUFDRUMsRUFDQUMsRUFBdUIsV0FFdkIsTUFBTXBDLE1BQ0pBLEVBQUFnQixPQUNBQSxFQUFBRSxHQUNBQSxFQUFBQyxTQUNBQSxFQUFBQyxXQUNBQSxFQUFBQyxrQkFDQUEsRUFBQUMsUUFDQUEsRUFBQUMsUUFDQUEsRUFBQUksUUFDQUEsR0FDRXRDLEtBRUosR0FBSVcsRUFDRixPQUFPLEVBR1QsR0FBSW1DLEVBQU1uQyxNQUNSLE9BQU8sRUFHVCxPQUFRb0MsR0FBQSxJQUNELFdBQ0gsT0FBT0QsRUFBTWhCLFNBQVdBLEVBQUEsSUFDckIsYUFDSCxPQUFPZ0IsRUFBTWYsV0FBYUEsRUFBQSxJQUN2QixvQkFDSCxPQUFPQyxFQUFvQmMsRUFBTWQsa0JBQUEsSUFDOUIsVUFDSCxPQUFPQyxFQUFVYSxFQUFNYixRQUFBLElBQ3BCLFVBQ0gsT0FBT2EsRUFBTVosUUFBVUEsRUFBQSxJQUNwQixLQUNILE9BQU9MLEVBQUtpQixFQUFNakIsR0FBQSxJQUNmLFVBQ0gsT0FBT1MsRUFBVVEsRUFBTVIsUUFBQSxJQUNwQixTQUNILE9BQU9YLEVBQVNtQixFQUFNbkIsT0FBQSxJQUNuQixVQUNILE9BQ0VxQixLQUFLQyxNQUFrRCxLQUExQyxJQUFNbkIsRUFBWWdCLEVBQU1oQixTQUFXLE1BQWMsWUFHaEUsTUFBTSxJQUFJckMsTUFBTSwwQkFBMEJzRCxNQUloRDVCLGtCQUNFLE1BQU0rQixXQUFFQSxFQUFBQyxVQUFZQSxFQUFBakMsR0FBV0EsR0FBT2xCLEtBQUtvQyxRQUMzQyxJQUNJZ0IsRUFBWS9ELElBRWhCLEtBQU9BLElBQVErRCxFQUhLLEtBR3NCLENBQ3hDLE1BQU1DLEVBQWlCaEUsSUFDdkJXLEtBQUsyQixTQUNMLE1BQU0yQixRQUF3QmxDLEVBQzVCcEIsS0FDQSxrQkFDQWtELEdBRUYsR0FBSUksRUFDRixNQUFNQSxFQUdSLElBQUlDLEVBQ0osSUFDRSxHQUFJdEMsRUFBUUMsR0FBSyxDQUNmLElBQUlzQyxFQUFRbkUsVUFDTjZCLElBQ05xQyxFQUFPbEUsSUFBUW1FLE1BQ1YsQ0FDTCxJQUFJQSxFQUFRbkUsSUFDWjZCLElBQ0FxQyxFQUFPbEUsSUFBUW1FLEdBRW5CLE1BQVM3QyxHQUNQLE1BQU1ELEVBQ0pDLEVBQ0EsZUFBZVgsS0FBS0osZ0NBQ2pCZSxFQUFnQmhCLFVBRW5CLFlBSUpLLEtBQUttQyxNQUFNc0IsS0FBS0YsR0FDaEJ2RCxLQUFLc0MsU0FBV2lCLEVBRWhCLE1BQU1HLFFBQXVCdEMsRUFDM0JwQixLQUNBLGlCQUNBbUQsR0FFRixHQUFJTyxFQUNGLE1BQU1BLEVBR1IxRCxLQUFLdUMsV0FBYWxELElBQVFnRSxHQUs5QmxDLFlBQ0VuQixLQUFLcUMsTUFBUWhELElBQ2IsTUFBTTRDLFFBQUVBLEVBQUEwQixXQUFTQSxFQUFBQyxNQUFZQSxFQUFBQyxPQUFPQSxFQUFBQyxRQUFRQSxHQUFZOUQsS0FBS29DLFFBQzdELElBQUkyQixFQUFrQyxJQUFWOUIsRUFFNUIsSUFDRSxNQUFNK0IsUUFBb0I1QyxFQUFZcEIsS0FBTSxjQUFlNkQsR0FDM0QsR0FBSUcsRUFDRixNQUFNQSxFQUdSLEtBQ0VoRSxLQUFLNEIsUUFBVStCLEdBQ2YzRCxLQUFLdUMsVUFBWXdCLEdBRWpCL0QsS0FBSzRCLGdCQUNDNUIsS0FBS2lFLFlBSWJqRSxLQUFLNkIsR0FBSzdCLEtBQUsyQixRQUFVM0IsS0FBS3NDLFFBQVUsS0FHeEN0QyxLQUFLOEIsU0FBVzlCLEtBQUtzQyxRQUFVdEMsS0FBS21DLE1BQU0rQixPQUMxQ2xFLEtBQUsrQixXQUNIL0IsS0FBS21DLE1BQU1nQyxLQUFLLENBQUNDLEVBQUdDLElBQU1ELEVBQUlDLEdBQUdyQixLQUFLc0IsTUFBTXRFLEtBQUttQyxNQUFNK0IsT0FBUyxLQUNoRSxFQUNGbEUsS0FBS2dDLGtCQUFvQmdCLEtBQUt1QixLQUM1QnZFLEtBQUttQyxNQUNGcUMsSUFBS0MsR0FBTXpCLEtBQUswQixJQUFJRCxFQUFJekUsS0FBSzhCLFNBQVUsSUFDdkM2QyxPQUFPLENBQUNQLEVBQUdDLElBQU1ELEVBQUlDLEVBQUcsR0FBS3JFLEtBQUttQyxNQUFNK0IsUUFJN0NsRSxLQUFLaUMsUUFBVWpDLEtBQUttQyxNQUFNd0MsT0FBTyxDQUFDQyxFQUFLckIsSUFBU1AsS0FBSzRCLElBQUlBLEVBQUtyQixHQUFPLEdBQ3JFdkQsS0FBS2tDLFFBQVVsQyxLQUFLbUMsTUFBTXdDLE9BQ3hCLENBQUNFLEVBQUt0QixJQUFTUCxLQUFLNkIsSUFBSUEsRUFBS3RCLEdBQzdCdUIsS0FHRixNQUFNQyxRQUFtQjNELEVBQVlwQixLQUFNLGFBQWM0RCxHQUN6RCxHQUFJbUIsRUFDRixNQUFNQSxFQUVWLE1BQVNwRSxHQUNQWCxLQUFLVyxNQUFRQSxFQUViLE1BQU1xRSxRQUFxQjVELEVBQ3pCcEIsS0FDQSxhQUNBOEQsRUFDQW5ELEdBRUYsR0FBSXFFLEVBQ0YsTUFBTUEsS0FuUERDLEVBQU52RCxFQUNMd0QsRUFEV0QsRUFDSixTQUNQQyxFQUZXRCxFQUVLLFVBbE5GLFNBbU5kQyxFQUhXRCxFQUdLLFdBR1osQ0FDRmhELFFBQVMsRUFDVDBCLFdBQVksSUE0VGhCLElBQU13QixFQUFOLE1BTUV2RixLQUNBZSxNQUNBeUIsUUFDQUMsTUFDQUMsUUFBa0IsRUFDbEJDLFVBQW9CLEVBQ3BCNkMsV0FBMEIsR0FFMUJ0RixZQUFZRixFQUFjd0MsRUFBaUMsSUFDekRwQyxLQUFLSixLQUFPQSxFQUNaSSxLQUFLb0MsUUFBVSxJQUNWK0MsRUFBTXpDLFlBQ05OLEdBSVBPLFNBQ0UsTUFBTWhDLE1BQUVBLEVBQUFmLEtBQU9BLEVBQUEwQyxRQUFNQSxFQUFBQyxVQUFTQSxHQUFjdkMsS0FFNUMsTUFBTyxDQUNMSixPQUNBZ0QsYUFBY2pDLEVBQVFBLEVBQU1oQixhQUFVLEVBQ3RDMkMsVUFDQUMsWUFDQThDLFFBQVMxRSxFQUNUeUUsV0FBWXBGLEtBQUtzRixzQkFBc0IsWUFBb0JkLElBQ3hEZSxHQUFjQSxFQUFVNUMsV0FLL0I2QyxJQUNFNUYsRUFDQTRDLEVBR0FKLEVBQXFDLElBRXJDLElBQUlLLEVBQU8sQ0FFUGtCLFdBQVkzRCxLQUFLb0MsUUFBUXVCLFdBQ3pCMUIsUUFBU2pDLEtBQUtvQyxRQUFRSCxXQUVyQkcsR0FHc0IsbUJBQWhCSSxFQUNUQyxFQUFLdkIsR0FBS3NCLEVBRVZDLEVBQU8sSUFDRkEsS0FDQUQsR0FHUCxJQUFJK0MsRUFBWSxJQUFJTixFQUFVckYsRUFBTTZDLEdBRXBDLE9BREF6QyxLQUFLb0YsV0FBVzNCLEtBQUs4QixHQUNkQSxFQUdUcEUsWUFDRW5CLEtBQUtxQyxNQUFRaEQsSUFDYixNQUFNNkQsV0FBRUEsRUFBQUMsVUFBWUEsRUFBQVMsTUFBV0EsRUFBQUMsT0FBT0EsRUFBQUMsUUFBUUEsR0FBWTlELEtBQUtvQyxRQUUvRCxJQUNFLE1BQU00QixRQUFvQjVDLEVBQVlwQixLQUFNLGNBQWU2RCxHQUMzRCxHQUFJRyxFQUNGLE1BQU1BLEVBR1IsUUFBU2pELEVBQUksRUFBRzBFLEVBQUl6RixLQUFLb0YsV0FBV2xCLE9BQVFuRCxFQUFJMEUsRUFBRzFFLElBQUssQ0FDdEQsSUFBSXdFLEVBQVl2RixLQUFLb0YsV0FBV3JFLEdBQ2hDLE1BQU0yRSxRQUF3QnRFLEVBQzVCcEIsS0FDQSxrQkFDQWtELEVBQ0FxQyxFQUNBeEUsR0FFRixHQUFJMkUsRUFDRixNQUFNQSxRQUdGSCxFQUFVSSxNQUNoQjNGLEtBQUtzQyxTQUFXaUQsRUFBVWpELFFBQzFCdEMsS0FBS3VDLFdBQWFnRCxFQUFVaEQsVUFFNUIsTUFBTXFELFFBQXVCeEUsRUFDM0JwQixLQUNBLGlCQUNBbUQsRUFDQW9DLEVBQ0F4RSxHQUVGLEdBQUk2RSxFQUNGLE1BQU1BLEVBSVYsTUFBTWIsUUFBbUIzRCxFQUFZcEIsS0FBTSxhQUFjNEQsR0FDekQsR0FBSW1CLEVBQ0YsTUFBTUEsRUFFVixNQUFTcEUsR0FDUFgsS0FBS1csTUFBUUEsRUFFYixNQUFNcUUsUUFBcUI1RCxFQUN6QnBCLEtBQ0EsYUFDQThELEVBQ0FuRCxHQUVGLEdBQUlxRSxFQUNGLE1BQU1BLEdBS1pNLHNCQUFzQk8sR0FPcEIsT0FObUI3RixLQUFLb0YsV0FBV1UsUUFDQzNCLEtBQUssQ0FBQ0MsRUFBR0MsS0FDM0MsSUFBSTBCLEVBQVMxQixFQUFFeEIsWUFBWXVCLEVBQUd5QixHQUM5QixPQUFPRSxFQUFTLEVBQUksRUFBSUEsRUFBUyxHQUFJLEVBQUssSUFNOUNDLFdBQVdILEdBRVQsT0FEeUI3RixLQUFLc0Ysc0JBQXNCTyxHQUM1QixHQUcxQkksV0FBV0osR0FDVCxNQUFNSyxFQUFtQmxHLEtBQUtzRixzQkFBc0JPLEdBQ3BELE9BQU9LLEVBQWlCQSxFQUFpQmhDLE9BQVMsR0FHcERpQywwQkFBMEJwRCxHQUN4QixJQUFJOEMsRUFDWSxZQUFkOUMsRUFBa0MsV0FBcUJBLEVBQ3pELE1BQU1xRCxFQUFVcEcsS0FBS2dHLFdBQVdILEdBQzFCUSxFQUFVckcsS0FBS2lHLFdBQVdKLEdBRWhDLE1BQU8sQ0FDTE8sVUFDQUMsVUFDQUMsR0FBSUYsRUFBUXZELFlBQVl3RCxFQUFTdEQsTUF4SmpDd0QsRUFBTnBCLEVBQ0VELEVBRElxQixFQUNZLFdBQVcsQ0FDekJ0RSxRQUFTLEVBQ1QwQixXQUFZLElBMEpoQnNCLEVBQVVzQixNQUFRQSxFIn0= \ No newline at end of file diff --git a/dist/index.mjs b/dist/index.mjs new file mode 100644 index 0000000..f130cae --- /dev/null +++ b/dist/index.mjs @@ -0,0 +1,387 @@ +import path from 'path'; +import { fileURLToPath } from 'url'; +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +"use strict"; +var __defProp = Object.defineProperty; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + +// lib/index.ts +var version = "1.0.3"; +var now = typeof performance === "undefined" ? () => Date.now() : () => performance.now(); +var BenchmarkError = class extends Error { + code; + message; + name; + statusCode = 0; + constructor(message = "Something went wrong", code) { + super(); + this.message = message; + this.code = code; + this.name = this.constructor.name; + } +}; +var BeforeEachError = class extends BenchmarkError { + statusCode = 1; + name = "BeforeEachError"; +}; +var AfterEachError = class extends BenchmarkError { + statusCode = 2; + name = "AfterEachError"; +}; +var RunError = class extends BenchmarkError { + statusCode = 3; + name = "RunError"; +}; +var AfterError = class extends BenchmarkError { + statusCode = 4; + name = "AfterError"; +}; +var BeforeError = class extends BenchmarkError { + statusCode = 5; + name = "BeforeError"; +}; +var FatalError = class extends BenchmarkError { + statusCode = 7; + name = "FatalError"; +}; +var Errors = { + BenchmarkError, + BeforeEachError, + AfterEachError, + RunError, + AfterError, + BeforeError, + FatalError +}; +var CompareBy = /* @__PURE__ */ ((CompareBy2) => { + CompareBy2["MeanTime"] = "meanTime"; + CompareBy2["MedianTime"] = "medianTime"; + CompareBy2["StandardDeviation"] = "standardDeviation"; + CompareBy2["MaxTime"] = "maxTime"; + CompareBy2["MinTime"] = "minTime"; + CompareBy2["Hz"] = "hz"; + CompareBy2["RunTime"] = "runTime"; + CompareBy2["Cycles"] = "cycles"; + CompareBy2["Percent"] = "percent"; + return CompareBy2; +})(CompareBy || {}); +function getError(error, message, type) { + let benchmarkError = new Errors[type](message); + benchmarkError.stack = error.stack; + for (let i in error) { + if (error.hasOwnProperty(i)) { + benchmarkError[i] = error[i]; + } + } + return benchmarkError; +} +function isAsync(fn) { + return fn.constructor.name === "AsyncFunction"; +} +async function runCallback(instance, errorTypeIfAny, callback, ...args) { + if (callback) { + try { + await callback.bind(instance)(...args); + } catch (error) { + return getError(error, `Benchmark \`${instance.name}\` failed to run \`${callback.name}\` callback: ${error.message}`, errorTypeIfAny); + } + } +} +var _Benchmark = class { + name; + error; + cycles = 0; + samples = 0; + hz = 0; + meanTime = 0; + medianTime = 0; + standardDeviation = 0; + maxTime = 0; + minTime = 0; + times = []; + options; + stamp; + runTime = 0; + totalTime = 0; + constructor(name, optionsOrFn, options = {}) { + this.name = name; + let opts = { + ..._Benchmark.defaults, + ...options + }; + if (typeof optionsOrFn === "function") { + opts.fn = optionsOrFn; + } else { + opts = { + ...opts, + ...optionsOrFn + }; + } + this.options = opts; + } + toJSON() { + const { + name, + error, + cycles, + hz, + runTime, + totalTime, + samples, + meanTime, + medianTime, + standardDeviation, + maxTime, + minTime + } = this; + return { + name, + errorMessage: error ? error.message : void 0, + cycles, + samples, + hz, + meanTime, + medianTime, + standardDeviation, + maxTime, + minTime, + runTime, + totalTime + }; + } + compareWith(other, compareBy = "percent" /* Percent */) { + const { + error, + cycles, + hz, + meanTime, + medianTime, + standardDeviation, + maxTime, + minTime, + runTime + } = this; + if (error) { + return -1; + } + if (other.error) { + return 1; + } + switch (compareBy) { + case "meanTime": + return other.meanTime - meanTime; + case "medianTime": + return other.medianTime - medianTime; + case "standardDeviation": + return standardDeviation - other.standardDeviation; + case "maxTime": + return maxTime - other.maxTime; + case "minTime": + return other.minTime - minTime; + case "hz": + return hz - other.hz; + case "runTime": + return runTime - other.runTime; + case "cycles": + return cycles - other.cycles; + case "percent": + return Math.trunc((100 / meanTime * other.meanTime - 100) * 100) / 100; + default: + throw new Error(`Unknown compare field: ${compareBy}`); + } + } + async runSample() { + const { beforeEach, afterEach, fn } = this.options; + let sampleMaxTime = 1e3; + let startTime = now(); + while (now() - startTime < sampleMaxTime) { + const startCycleTime = now(); + this.cycles++; + const BeforeEachError2 = await runCallback(this, "BeforeEachError", beforeEach); + if (BeforeEachError2) { + throw BeforeEachError2; + } + let time; + try { + if (isAsync(fn)) { + let start = now(); + await fn(); + time = now() - start; + } else { + let start = now(); + fn(); + time = now() - start; + } + } catch (error) { + throw getError(error, `Benchmark \`${this.name}\` failed to run \`fn\`: ${error.message}`, "RunError"); + } + this.times.push(time); + this.runTime += time; + const AfterEachError2 = await runCallback(this, "AfterEachError", afterEach); + if (AfterEachError2) { + throw AfterEachError2; + } + this.totalTime += now() - startCycleTime; + } + } + async run() { + this.stamp = now(); + const { maxTime, minSamples, after, before, onError } = this.options; + let maxTimeInMilliseconds = maxTime * 1e3; + try { + const beforeError = await runCallback(this, "BeforeError", before); + if (beforeError) { + throw beforeError; + } + while (this.samples < minSamples || this.totalTime < maxTimeInMilliseconds) { + this.samples++; + await this.runSample(); + } + this.hz = this.cycles / (this.runTime / 1e3); + this.meanTime = this.runTime / this.times.length; + this.medianTime = this.times.sort((a, b) => a - b)[Math.floor(this.times.length / 2)] || 0; + this.standardDeviation = Math.sqrt(this.times.map((t) => Math.pow(t - this.meanTime, 2)).reduce((a, b) => a + b, 0) / this.times.length); + this.maxTime = this.times.reduce((max, time) => Math.max(max, time), 0); + this.minTime = this.times.reduce((min, time) => Math.min(min, time), Infinity); + const afterError = await runCallback(this, "AfterError", after); + if (afterError) { + throw afterError; + } + } catch (error) { + this.error = error; + const onErrorError = await runCallback(this, "FatalError", onError, error); + if (onErrorError) { + throw onErrorError; + } + } + } +}; +var Benchmark = _Benchmark; +__publicField(Benchmark, "Suite"); +__publicField(Benchmark, "version", version); +__publicField(Benchmark, "defaults", { + maxTime: 5, + minSamples: 1 +}); +var _Suite = class { + name; + error; + options; + stamp; + runTime = 0; + totalTime = 0; + benchmarks = []; + constructor(name, options = {}) { + this.name = name; + this.options = { + ..._Suite.defaults, + ...options + }; + } + toJSON() { + const { error, name, runTime, totalTime } = this; + return { + name, + errorMessage: error ? error.message : void 0, + runTime, + totalTime, + passed: !error, + benchmarks: this.getSortedBenchmarksBy("meanTime" /* MeanTime */).map((benchmark) => benchmark.toJSON()) + }; + } + add(name, optionsOrFn, options = {}) { + let opts = { + ...{ + minSamples: this.options.minSamples, + maxTime: this.options.maxTime + }, + ...options + }; + if (typeof optionsOrFn === "function") { + opts.fn = optionsOrFn; + } else { + opts = { + ...opts, + ...optionsOrFn + }; + } + let benchmark = new Benchmark(name, opts); + this.benchmarks.push(benchmark); + return benchmark; + } + async run() { + this.stamp = now(); + const { beforeEach, afterEach, after, before, onError } = this.options; + try { + const beforeError = await runCallback(this, "BeforeError", before); + if (beforeError) { + throw beforeError; + } + for (let i = 0, l = this.benchmarks.length; i < l; i++) { + let benchmark = this.benchmarks[i]; + const beforeEachError = await runCallback(this, "BeforeEachError", beforeEach, benchmark, i); + if (beforeEachError) { + throw beforeEachError; + } + await benchmark.run(); + this.runTime += benchmark.runTime; + this.totalTime += benchmark.totalTime; + const afterEachError = await runCallback(this, "AfterEachError", afterEach, benchmark, i); + if (afterEachError) { + throw afterEachError; + } + } + const afterError = await runCallback(this, "AfterError", after); + if (afterError) { + throw afterError; + } + } catch (error) { + this.error = error; + const onErrorError = await runCallback(this, "FatalError", onError, error); + if (onErrorError) { + throw onErrorError; + } + } + } + getSortedBenchmarksBy(sortBy) { + const benchmarks = this.benchmarks.slice(); + const sortedBenchmarks = benchmarks.sort((a, b) => { + let result = b.compareWith(a, sortBy); + return result > 0 ? 1 : result < 0 ? -1 : 0; + }); + return sortedBenchmarks; + } + getFastest(sortBy) { + const sortedBenchmarks = this.getSortedBenchmarksBy(sortBy); + return sortedBenchmarks[0]; + } + getSlowest(sortBy) { + const sortedBenchmarks = this.getSortedBenchmarksBy(sortBy); + return sortedBenchmarks[sortedBenchmarks.length - 1]; + } + compareFastestWithSlowest(compareBy) { + let sortBy = compareBy === "percent" /* Percent */ ? "meanTime" /* MeanTime */ : compareBy; + const fastest = this.getFastest(sortBy); + const slowest = this.getSlowest(sortBy); + return { + fastest, + slowest, + by: fastest.compareWith(slowest, compareBy) + }; + } +}; +var Suite = _Suite; +__publicField(Suite, "defaults", { + maxTime: 5, + minSamples: 1 +}); +Benchmark.Suite = Suite; +export { + Benchmark, + CompareBy +}; diff --git a/index.js b/index.js deleted file mode 100644 index 7b9e323..0000000 --- a/index.js +++ /dev/null @@ -1,2 +0,0 @@ -require("./register"); -require("./bench/index.ts"); diff --git a/lib/index.ts b/lib/index.ts index 098bf36..9f84f6b 100644 --- a/lib/index.ts +++ b/lib/index.ts @@ -100,9 +100,12 @@ // This errors will be found in the `error` property of the benchmark instance. // When converting to JSON, the `errorMessage` property will be a string containing the error message. -import { version } from '../package.json'; +const version = "1.1.0"; -let now = typeof performance === 'undefined' ? () => Date.now() : () => performance.now(); +let now = + typeof performance === "undefined" + ? () => Date.now() + : () => performance.now(); //*** Errors ***// @@ -114,7 +117,7 @@ abstract class BenchmarkError extends Error { statusCode = 0; [key: string]: any; - constructor(message = 'Something went wrong', code?: string) { + constructor(message = "Something went wrong", code?: string) { super(); this.message = message; this.code = code; @@ -125,37 +128,37 @@ abstract class BenchmarkError extends Error { // BeforeEachError: The `beforeEach` function threw an error. class BeforeEachError extends BenchmarkError { statusCode = 1; - name = 'BeforeEachError'; + name = "BeforeEachError"; } // AfterEachError: The `afterEach` function threw an error. class AfterEachError extends BenchmarkError { statusCode = 2; - name = 'AfterEachError'; + name = "AfterEachError"; } // RunError: The `fn` function threw an error. class RunError extends BenchmarkError { statusCode = 3; - name = 'RunError'; + name = "RunError"; } // AfterError: The `after` function threw an error. class AfterError extends BenchmarkError { statusCode = 4; - name = 'AfterError'; + name = "AfterError"; } // BeforeError: The `before` function threw an error. class BeforeError extends BenchmarkError { statusCode = 5; - name = 'BeforeError'; + name = "BeforeError"; } // FatalError: The `onError` function threw an error. class FatalError extends BenchmarkError { statusCode = 7; - name = 'FatalError'; + name = "FatalError"; } const Errors = { @@ -168,7 +171,13 @@ const Errors = { FatalError }; -type ErrorType = 'BeforeEachError' | 'AfterEachError' | 'RunError' | 'AfterError' | 'BeforeError' | 'FatalError'; +type ErrorType = + | "BeforeEachError" + | "AfterEachError" + | "RunError" + | "AfterError" + | "BeforeError" + | "FatalError"; // BenchmarkFunction a function that can be used as a benchmark. type BenchmarkFunction = () => Promise | void | any; @@ -180,15 +189,15 @@ type BenchmarkOptions = { // The minimum number of samples that must be taken. minSamples: number; // A function to be run once before each benchmark loop, does not count for run time. - beforeEach?: () => Promise | void; + beforeEach?: (this: Benchmark) => Promise | void; // A function to be run once after each benchmark loop, does not count for run time. - afterEach?: () => Promise | void; + afterEach?: (this: Benchmark) => Promise | void; // A function to be run once after the benchmark completes, does not count for run time. - after?: () => Promise | void; + after?: (this: Benchmark) => Promise | void; // A function to be run once before the benchmark starts, does not count for run time. - before?: () => Promise | void; + before?: (this: Benchmark) => Promise | void; // A function to be run if an error occurs. - onError?: (error: BenchmarkError) => Promise | void; + onError?: (this: Benchmark, error: BenchmarkError) => Promise | void; // The function to be run. fn: BenchmarkFunction; }; @@ -209,24 +218,26 @@ interface JsonBenchmark { } export const enum CompareBy { - MeanTime = 'meanTime', - MedianTime = 'medianTime', - StandardDeviation = 'standardDeviation', - MaxTime = 'maxTime', - MinTime = 'minTime', - Hz = 'hz', - RunTime = 'runTime', - Cycles = 'cycles', - Percent = 'percent' + MeanTime = "meanTime", + MedianTime = "medianTime", + StandardDeviation = "standardDeviation", + MaxTime = "maxTime", + MinTime = "minTime", + Hz = "hz", + RunTime = "runTime", + Cycles = "cycles", + Percent = "percent" } type BenchmarkConstructor = ( name: string, - optionsOrFn: (Partial & { fn: BenchmarkFunction }) | BenchmarkFunction, + optionsOrFn: + | (Partial & { fn: BenchmarkFunction }) + | BenchmarkFunction, options: Partial ) => Benchmark; -interface Benchmark { +export interface Benchmark { Suite: typeof Suite; readonly version: string; readonly defaults: { @@ -255,7 +266,11 @@ interface Benchmark { } // helper to get the correct error type from a normal error -function getError(error: Error, message: string, type: ErrorType): BenchmarkError { +function getError( + error: Error, + message: string, + type: ErrorType +): BenchmarkError { let benchmarkError = new Errors[type](message); benchmarkError.stack = error.stack; for (let i in error) { @@ -268,7 +283,7 @@ function getError(error: Error, message: string, type: ErrorType): BenchmarkErro // helper function to know if a function is async or not function isAsync(fn: BenchmarkFunction): boolean { - return fn.constructor.name === 'AsyncFunction'; + return fn.constructor.name === "AsyncFunction"; } async function runCallback( @@ -283,7 +298,9 @@ async function runCallback( } catch (error) { return getError( error as Error, - `Benchmark \`${instance.name}\` failed to run \`${callback.name}\` callback: ${(error as Error).message}`, + `Benchmark \`${instance.name}\` failed to run \`${ + callback.name + }\` callback: ${(error as Error).message}`, errorTypeIfAny ); } @@ -291,7 +308,7 @@ async function runCallback( } // The benchmark class -class Benchmark implements Benchmark { +export class Benchmark implements Benchmark { static Suite: typeof Suite; static readonly version: string = version; static readonly defaults: { @@ -318,14 +335,20 @@ class Benchmark implements Benchmark { runTime: number = 0; totalTime: number = 0; - constructor(name: string, optionsOrFn: (Partial & { fn: BenchmarkFunction }) | BenchmarkFunction, options: Partial = {}) { + constructor( + name: string, + optionsOrFn: + | (Partial & { fn: BenchmarkFunction }) + | BenchmarkFunction, + options: Partial = {} + ) { this.name = name; let opts = { ...Benchmark.defaults, ...options } as BenchmarkOptions; - if (typeof optionsOrFn === 'function') { + if (typeof optionsOrFn === "function") { opts.fn = optionsOrFn; } else { opts = { @@ -338,7 +361,20 @@ class Benchmark implements Benchmark { } toJSON(): JsonBenchmark { - const { name, error, cycles, hz, runTime, totalTime, samples, meanTime, medianTime, standardDeviation, maxTime, minTime } = this; + const { + name, + error, + cycles, + hz, + runTime, + totalTime, + samples, + meanTime, + medianTime, + standardDeviation, + maxTime, + minTime + } = this; return { name, @@ -356,8 +392,21 @@ class Benchmark implements Benchmark { }; } - compareWith(other: Benchmark, compareBy: CompareBy = CompareBy.Percent): number { - const { error, cycles, hz, meanTime, medianTime, standardDeviation, maxTime, minTime, runTime } = this; + compareWith( + other: Benchmark, + compareBy: CompareBy = CompareBy.Percent + ): number { + const { + error, + cycles, + hz, + meanTime, + medianTime, + standardDeviation, + maxTime, + minTime, + runTime + } = this; if (error) { return -1; @@ -368,24 +417,26 @@ class Benchmark implements Benchmark { } switch (compareBy) { - case 'meanTime': + case "meanTime": return other.meanTime - meanTime; - case 'medianTime': + case "medianTime": return other.medianTime - medianTime; - case 'standardDeviation': + case "standardDeviation": return standardDeviation - other.standardDeviation; - case 'maxTime': + case "maxTime": return maxTime - other.maxTime; - case 'minTime': + case "minTime": return other.minTime - minTime; - case 'hz': + case "hz": return hz - other.hz; - case 'runTime': + case "runTime": return runTime - other.runTime; - case 'cycles': + case "cycles": return cycles - other.cycles; - case 'percent': - return Math.trunc(((100 / meanTime) * other.meanTime - 100) * 100) / 100; + case "percent": + return ( + Math.trunc(((100 / meanTime) * other.meanTime - 100) * 100) / 100 + ); default: throw new Error(`Unknown compare field: ${compareBy}`); } @@ -399,7 +450,11 @@ class Benchmark implements Benchmark { while (now() - startTime < sampleMaxTime) { const startCycleTime = now(); this.cycles++; - const BeforeEachError = await runCallback(this, 'BeforeEachError', beforeEach); + const BeforeEachError = await runCallback( + this, + "BeforeEachError", + beforeEach + ); if (BeforeEachError) { throw BeforeEachError; } @@ -416,13 +471,23 @@ class Benchmark implements Benchmark { time = now() - start; } } catch (error) { - throw getError(error as Error, `Benchmark \`${this.name}\` failed to run \`fn\`: ${(error as Error).message}`, 'RunError'); + throw getError( + error as Error, + `Benchmark \`${this.name}\` failed to run \`fn\`: ${ + (error as Error).message + }`, + "RunError" + ); } this.times.push(time); this.runTime += time; - const AfterEachError = await runCallback(this, 'AfterEachError', afterEach); + const AfterEachError = await runCallback( + this, + "AfterEachError", + afterEach + ); if (AfterEachError) { throw AfterEachError; } @@ -438,12 +503,15 @@ class Benchmark implements Benchmark { let maxTimeInMilliseconds = maxTime * 1000; try { - const beforeError = await runCallback(this, 'BeforeError', before); + const beforeError = await runCallback(this, "BeforeError", before); if (beforeError) { throw beforeError; } - while (this.samples < minSamples || this.totalTime < maxTimeInMilliseconds) { + while ( + this.samples < minSamples || + this.totalTime < maxTimeInMilliseconds + ) { this.samples++; await this.runSample(); } @@ -453,21 +521,35 @@ class Benchmark implements Benchmark { // Calculate the mean, median, margin of error, and standard deviation. this.meanTime = this.runTime / this.times.length; - this.medianTime = this.times.sort((a, b) => a - b)[Math.floor(this.times.length / 2)] || 0; - this.standardDeviation = Math.sqrt(this.times.map((t) => Math.pow(t - this.meanTime, 2)).reduce((a, b) => a + b, 0) / this.times.length); + this.medianTime = + this.times.sort((a, b) => a - b)[Math.floor(this.times.length / 2)] || + 0; + this.standardDeviation = Math.sqrt( + this.times + .map((t) => Math.pow(t - this.meanTime, 2)) + .reduce((a, b) => a + b, 0) / this.times.length + ); // Calculate the max, min, and average times. this.maxTime = this.times.reduce((max, time) => Math.max(max, time), 0); - this.minTime = this.times.reduce((min, time) => Math.min(min, time), Infinity); + this.minTime = this.times.reduce( + (min, time) => Math.min(min, time), + Infinity + ); - const afterError = await runCallback(this, 'AfterError', after); + const afterError = await runCallback(this, "AfterError", after); if (afterError) { throw afterError; } } catch (error) { this.error = error as BenchmarkError; - const onErrorError = await runCallback(this, 'FatalError', onError, error); + const onErrorError = await runCallback( + this, + "FatalError", + onError, + error + ); if (onErrorError) { throw onErrorError; } @@ -482,15 +564,23 @@ type SuiteOptions = { // The minimum number of samples that must be taken. minSamples: number; // A function to be run once before each benchmark run - beforeEach?: (benchmark: Benchmark, i: number) => Promise | void; + beforeEach?: ( + this: Suite, + benchmark: Benchmark, + i: number + ) => Promise | void; // A function to be run once after each benchmark run - afterEach?: (benchmark: Benchmark, i: number) => Promise | void; + afterEach?: ( + this: Suite, + benchmark: Benchmark, + i: number + ) => Promise | void; // A function to be run once after the suite completes - after?: () => Promise | void; + after?: (this: Suite) => Promise | void; // A function to be run once before the suite starts - before?: () => Promise | void; + before?: (this: Suite) => Promise | void; // A function to be run if an error occurs. - onError?: (error: BenchmarkError) => Promise | void; + onError?: (this: Suite, error: BenchmarkError) => Promise | void; }; interface JsonSuite { @@ -502,7 +592,10 @@ interface JsonSuite { benchmarks: JsonBenchmark[]; } -type SuiteConstructor = (name: string, options?: Partial) => Suite; +type SuiteConstructor = ( + name: string, + options?: Partial +) => Suite; interface Suite { readonly defaults: { @@ -519,14 +612,24 @@ interface Suite { benchmarks: Benchmark[]; constructor: SuiteConstructor; - add(name: string, optionsOrFn: (Partial & { fn: BenchmarkFunction }) | BenchmarkFunction, options: Partial): Benchmark; + add( + name: string, + optionsOrFn: + | (Partial & { fn: BenchmarkFunction }) + | BenchmarkFunction, + options: Partial + ): Benchmark; toJSON(): JsonSuite; run(): Promise; getSortedBenchmarksBy(sortedBy: CompareBy): Benchmark[]; getFastest(sortedBy: CompareBy): Benchmark; getSlowest(sortedBy: CompareBy): Benchmark; - compareFastestWithSlowest(compareBy: CompareBy): { fastest: Benchmark; slowest: Benchmark; by: number }; + compareFastestWithSlowest(compareBy: CompareBy): { + fastest: Benchmark; + slowest: Benchmark; + by: number; + }; } class Suite implements Suite { @@ -560,13 +663,17 @@ class Suite implements Suite { runTime, totalTime, passed: !error, - benchmarks: this.getSortedBenchmarksBy(CompareBy.MeanTime).map((benchmark) => benchmark.toJSON()) + benchmarks: this.getSortedBenchmarksBy(CompareBy.MeanTime).map( + (benchmark) => benchmark.toJSON() + ) }; } add( name: string, - optionsOrFn: (Partial & { fn: BenchmarkFunction }) | BenchmarkFunction, + optionsOrFn: + | (Partial & { fn: BenchmarkFunction }) + | BenchmarkFunction, options: Partial = {} ): Benchmark { let opts = { @@ -577,7 +684,7 @@ class Suite implements Suite { ...options } as BenchmarkOptions; - if (typeof optionsOrFn === 'function') { + if (typeof optionsOrFn === "function") { opts.fn = optionsOrFn; } else { opts = { @@ -595,14 +702,20 @@ class Suite implements Suite { const { beforeEach, afterEach, after, before, onError } = this.options; try { - const beforeError = await runCallback(this, 'BeforeError', before); + const beforeError = await runCallback(this, "BeforeError", before); if (beforeError) { throw beforeError; } for (let i = 0, l = this.benchmarks.length; i < l; i++) { let benchmark = this.benchmarks[i]; - const beforeEachError = await runCallback(this, 'BeforeEachError', beforeEach, benchmark, i); + const beforeEachError = await runCallback( + this, + "BeforeEachError", + beforeEach, + benchmark, + i + ); if (beforeEachError) { throw beforeEachError; } @@ -611,20 +724,31 @@ class Suite implements Suite { this.runTime += benchmark.runTime; this.totalTime += benchmark.totalTime; - const afterEachError = await runCallback(this, 'AfterEachError', afterEach, benchmark, i); + const afterEachError = await runCallback( + this, + "AfterEachError", + afterEach, + benchmark, + i + ); if (afterEachError) { throw afterEachError; } } - const afterError = await runCallback(this, 'AfterError', after); + const afterError = await runCallback(this, "AfterError", after); if (afterError) { throw afterError; } } catch (error) { this.error = error as BenchmarkError; - const onErrorError = await runCallback(this, 'FatalError', onError, error); + const onErrorError = await runCallback( + this, + "FatalError", + onError, + error + ); if (onErrorError) { throw onErrorError; } @@ -652,7 +776,8 @@ class Suite implements Suite { } compareFastestWithSlowest(compareBy: CompareBy) { - let sortBy = compareBy === CompareBy.Percent ? CompareBy.MeanTime : compareBy; + let sortBy = + compareBy === CompareBy.Percent ? CompareBy.MeanTime : compareBy; const fastest = this.getFastest(sortBy); const slowest = this.getSlowest(sortBy); @@ -665,6 +790,3 @@ class Suite implements Suite { } Benchmark.Suite = Suite; - -// Export the Benchmark class. -export default Benchmark; diff --git a/package.json b/package.json index 4db6992..3671b7c 100644 --- a/package.json +++ b/package.json @@ -4,10 +4,14 @@ "description": "A benchmarking library that supports async hooks and benchmarks by default.", "source": "lib/index.ts", "main": "dist/index.min.js", - "module": "dist/index.min.js", + "module": "dist/index.mjs", "unpkg": "dist/index.min.js", "browser": "dist/index.min.js", - "types": "types/lib/index.d.ts", + "types": "dist/index.d.ts", + "exports": { + "import": "./dist/index.mjs", + "require": "./dist/index.js" + }, "repository": "git@github.com:Masquerade-Circus/buffalo-bench.git", "author": "Masquerade ", "license": "Apache-2.0", @@ -15,7 +19,7 @@ "files": [ "dist", "lib", - "register.js" + "tsconfig.json" ], "keywords": [ "buffalo-bench", @@ -30,29 +34,32 @@ "perf" ], "scripts": { - "dev": "nodemon -e js,ts -w ./bench -w ./lib --exec 'yarn test'", - "test": "node ./index.js", + "dev": "nodemon -e js,ts -w ./tests -w ./lib --exec 'yarn test'", + "test": "node --require ts-node/register tests/index.ts", + "test-cjs": "node tests/index.cjs", + "test-mjs": "node tests/index.mjs", + "test-min": "node tests/index.min.js", + "test-all": "yarn test && yarn test-cjs && yarn test-mjs && yarn test-min", "build": "node ./build.js", "remark": "remark . -o", "commit": "git add . && git-cz", "release": "release-it --verbose", "release-test": "release-it --dry-run --verbose" }, - "dependencies": { - "esbuild": "^0.13.13", - "pirates": "^4.0.1" - }, + "dependencies": {}, "devDependencies": { - "@release-it/conventional-changelog": "^3.3.0", - "@types/node": "^16.11.7", + "@release-it/conventional-changelog": "^5.0.0", + "@types/node": "^18.0.0", "cz-conventional-changelog": "^3.3.0", - "nodemon": "^2.0.15", - "release-it": "^14.11.6", - "remark-cli": "^10.0.0", - "terser": "^5.9.0", - "tsc": "^2.0.3", + "esbuild": "^0.14.47", + "nodemon": "^2.0.18", + "release-it": "^15.1.0", + "remark-cli": "^11.0.0", + "terser": "^5.14.1", + "ts-node": "^10.8.1", + "tsc": "^2.0.4", "tsc-prog": "^2.2.1", - "typescript": "^4.4.4" + "typescript": "^4.7.4" }, "config": { "commitizen": { @@ -134,4 +141,4 @@ ] } } -} +} \ No newline at end of file diff --git a/register.js b/register.js deleted file mode 100644 index 52f812e..0000000 --- a/register.js +++ /dev/null @@ -1,82 +0,0 @@ -const { addHook } = require('pirates'); -const { transformSync } = require('esbuild'); -const fs = require('fs'); - -addHook( - (code, filePath) => { - let fileName = filePath.split('/').pop(); - let extension = fileName.split('.').pop(); - - let loader = 'default'; - if (['js', 'jsx', 'ts', 'tsx', 'css', 'json', 'txt'].includes(extension)) { - if (['js', 'jsx', 'mjs'].includes(extension)) { - loader = 'jsx'; - } else if (['ts', 'tsx'].includes(extension)) { - loader = 'tsx'; - } else if (extension === 'txt') { - loader = 'text'; - } else { - loader = extension; - } - } else if (['jpeg', 'jpg', 'png', 'gif', 'webp', 'svg'].includes(extension)) { - loader = 'dataurl'; - } - - let options = { - tsconfigRaw: { - compilerOptions: { - target: 'ESNEXT', - module: 'ESNEXT', - strict: true, - allowSyntheticDefaultImports: true, - allowJs: true, - esModuleInterop: true, - resolveJsonModule: true - } - }, - loader, - minify: false, - format: 'cjs', - target: 'esnext', - logLevel: 'warning' - }; - - // Check if tsconfig.json exists with fs module - if ((extension === 'ts' || extension === 'tsx') && fs.existsSync(process.cwd() + '/tsconfig.json')) { - let tsconfig = fs.readFileSync(process.cwd() + '/tsconfig.json', 'utf8'); - - let tsconfigRaw = JSON.parse(tsconfig); - let compilerOptions = tsconfigRaw.compilerOptions || {}; - - options.tsconfigRaw = { ...options.tsconfigRaw, ...tsconfigRaw }; - options.tsconfigRaw.compilerOptions = { ...options.tsconfigRaw.compilerOptions, ...compilerOptions }; - - if (compilerOptions.target) { - options.target = compilerOptions.target.toLowerCase(); - } - - if (compilerOptions.module) { - let format = compilerOptions.module.toLowerCase(); - if (format === 'commonjs') { - options.format = 'cjs'; - } else if (format.startsWith('es')) { - options.format = 'esm'; - } - } - } - - let { code: transformed } = transformSync(code, options); - if (/"use strict"\;/gi.test(code) === false) { - transformed = '"use strict";' + transformed; - } - - return transformed; - }, - { - exts: ['.js', '.jsx', '.ts', '.tsx', '.mjs', '.css', '.json', '.text', '.jpeg', '.jpg', '.png', '.gif', '.webp', '.svg', '.html'], - ignoreNodeModules: false, - matcher(fileName) { - return !/node_modules/.test(fileName) || /\.tsx?$/.test(fileName); - } - } -); diff --git a/tests/index.cjs b/tests/index.cjs new file mode 100644 index 0000000..09ba7f3 --- /dev/null +++ b/tests/index.cjs @@ -0,0 +1,38 @@ +const { CompareBy, Benchmark } = require("../dist/index.js"); + +(async () => { + let suite = new Benchmark.Suite("String comparison", { + beforeEach(benchmark) { + console.log(`${this.name}: ${benchmark.name}: Start`); + }, + afterEach(benchmark) { + console.log(`${this.name}: ${benchmark.name}: End`); + } + }); + suite.add("Direct comparison", () => "Hello World!" === "Hello World!"); + suite.add("Regexp comparison", () => + new RegExp("Hello World!").test("Hello World!") + ); + suite.add("IndexOf comparison", () => "Hello World!".indexOf("Hello World!")); + suite.add("Complex comparison", () => { + let str = "Hello World!"; + let str2 = "Hello World!"; + let l = str.length; + str.length === str2.length && + str[0] === str2[0] && + str[l - 1] === str2[l - 1] && + str === str2; + }); + + await suite.run(); + + let result = suite.compareFastestWithSlowest(CompareBy.Percent); + console.log( + result.fastest.name + + " is faster than " + + result.slowest.name + + " by " + + result.by + + "%" + ); +})(); diff --git a/tests/index.min.js b/tests/index.min.js new file mode 100644 index 0000000..5c89472 --- /dev/null +++ b/tests/index.min.js @@ -0,0 +1,38 @@ +const { CompareBy, Benchmark } = require("../dist/index.min.js"); + +(async () => { + let suite = new Benchmark.Suite("String comparison", { + beforeEach(benchmark) { + console.log(`${this.name}: ${benchmark.name}: Start`); + }, + afterEach(benchmark) { + console.log(`${this.name}: ${benchmark.name}: End`); + } + }); + suite.add("Direct comparison", () => "Hello World!" === "Hello World!"); + suite.add("Regexp comparison", () => + new RegExp("Hello World!").test("Hello World!") + ); + suite.add("IndexOf comparison", () => "Hello World!".indexOf("Hello World!")); + suite.add("Complex comparison", () => { + let str = "Hello World!"; + let str2 = "Hello World!"; + let l = str.length; + str.length === str2.length && + str[0] === str2[0] && + str[l - 1] === str2[l - 1] && + str === str2; + }); + + await suite.run(); + + let result = suite.compareFastestWithSlowest(CompareBy.Percent); + console.log( + result.fastest.name + + " is faster than " + + result.slowest.name + + " by " + + result.by + + "%" + ); +})(); diff --git a/tests/index.mjs b/tests/index.mjs new file mode 100644 index 0000000..523481d --- /dev/null +++ b/tests/index.mjs @@ -0,0 +1,38 @@ +import { Benchmark, CompareBy } from "../dist/index.mjs"; + +(async () => { + let suite = new Benchmark.Suite("String comparison", { + beforeEach(benchmark) { + console.log(`${this.name}: ${benchmark.name}: Start`); + }, + afterEach(benchmark) { + console.log(`${this.name}: ${benchmark.name}: End`); + } + }); + suite.add("Direct comparison", () => "Hello World!" === "Hello World!"); + suite.add("Regexp comparison", () => + new RegExp("Hello World!").test("Hello World!") + ); + suite.add("IndexOf comparison", () => "Hello World!".indexOf("Hello World!")); + suite.add("Complex comparison", () => { + let str = "Hello World!"; + let str2 = "Hello World!"; + let l = str.length; + str.length === str2.length && + str[0] === str2[0] && + str[l - 1] === str2[l - 1] && + str === str2; + }); + + await suite.run(); + + let result = suite.compareFastestWithSlowest(CompareBy.Percent); + console.log( + result.fastest.name + + " is faster than " + + result.slowest.name + + " by " + + result.by + + "%" + ); +})(); diff --git a/bench/index.ts b/tests/index.ts similarity index 62% rename from bench/index.ts rename to tests/index.ts index 4eec1a3..bd8d9b7 100644 --- a/bench/index.ts +++ b/tests/index.ts @@ -1,4 +1,4 @@ -import Benchmark, { CompareBy } from '../lib'; +import { Benchmark, CompareBy } from "../lib"; (async () => { // let benchmark = new Benchmark("Regexp test", { @@ -34,7 +34,7 @@ import Benchmark, { CompareBy } from '../lib'; // await benchmark4.run(); // console.log(benchmark4.toJSON()); - let suite = new Benchmark.Suite('String comparison', { + let suite = new Benchmark.Suite("String comparison", { beforeEach(benchmark) { console.log(`${this.name}: ${benchmark.name}: Start`); }, @@ -42,20 +42,32 @@ import Benchmark, { CompareBy } from '../lib'; console.log(`${this.name}: ${benchmark.name}: End`); } }); - suite.add('Direct comparison', () => 'Hello World!' === 'Hello World!'); - suite.add('Regexp comparison', () => new RegExp('Hello World!').test('Hello World!')); - suite.add('IndexOf comparison', () => 'Hello World!'.indexOf('Hello World!')); - suite.add('Complex comparison', () => { - let str = 'Hello World!'; - let str2 = 'Hello World!'; + suite.add("Direct comparison", () => "Hello World!" === "Hello World!"); + suite.add("Regexp comparison", () => + new RegExp("Hello World!").test("Hello World!") + ); + suite.add("IndexOf comparison", () => "Hello World!".indexOf("Hello World!")); + suite.add("Complex comparison", () => { + let str = "Hello World!"; + let str2 = "Hello World!"; let l = str.length; - str.length === str2.length && str[0] === str2[0] && str[l - 1] === str2[l - 1] && str === str2; + str.length === str2.length && + str[0] === str2[0] && + str[l - 1] === str2[l - 1] && + str === str2; }); await suite.run(); let result = suite.compareFastestWithSlowest(CompareBy.Percent); - console.log(result.fastest.name + ' is faster than ' + result.slowest.name + ' by ' + result.by + '%'); + console.log( + result.fastest.name + + " is faster than " + + result.slowest.name + + " by " + + result.by + + "%" + ); // console.log(suite.toJSON()); })(); diff --git a/tsconfig.json b/tsconfig.json index f0fe737..cc970b7 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -12,5 +12,12 @@ "declaration": true }, "include": ["lib/**/*"], - "exclude": ["test*/**/*", "**/*.test.ts", "**/*.spec.ts", "bench/**/*", "node_modules/**/*", "types/**/*"] + "exclude": [ + "test*/**/*", + "**/*.test.ts", + "**/*.spec.ts", + "bench/**/*", + "node_modules/**/*", + "types/**/*" + ] } diff --git a/yarn.lock b/yarn.lock index 733b51e..7bcec16 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,73 +2,82 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" - integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== dependencies: - "@babel/highlight" "^7.16.0" + "@babel/highlight" "^7.18.6" -"@babel/helper-validator-identifier@^7.15.7": - version "7.15.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" - integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== +"@babel/helper-validator-identifier@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" + integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== -"@babel/highlight@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" - integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g== +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== dependencies: - "@babel/helper-validator-identifier" "^7.15.7" + "@babel/helper-validator-identifier" "^7.18.6" chalk "^2.0.0" js-tokens "^4.0.0" -"@commitlint/execute-rule@^14.0.0": - version "14.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-14.0.0.tgz#3ba45fc255286e3180f89ed4e9ac1ef237160734" - integrity sha512-Hh/HLpCBDlrD3Rx2x2pDBx6CU+OtVqGXh7mbFpNihAVx6B0zyZqm/vv0cdwdhfGW5OEn1BhCqHf1ZOvL/DwdWA== +"@commitlint/config-validator@^17.0.3": + version "17.0.3" + resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-17.0.3.tgz#5d1ec17eece1f85a0d06c05d168a039b313eb5d7" + integrity sha512-3tLRPQJKapksGE7Kee9axv+9z5I2GDHitDH4q63q7NmNA0wkB+DAorJ0RHz2/K00Zb1/MVdHzhCga34FJvDihQ== + dependencies: + "@commitlint/types" "^17.0.0" + ajv "^8.11.0" + +"@commitlint/execute-rule@^17.0.0": + version "17.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-17.0.0.tgz#186e9261fd36733922ae617497888c4bdb6e5c92" + integrity sha512-nVjL/w/zuqjCqSJm8UfpNaw66V9WzuJtQvEnCrK4jDw6qKTmZB+1JQ8m6BQVZbNBcwfYdDNKnhIhqI0Rk7lgpQ== "@commitlint/load@>6.1.1": - version "14.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-14.1.0.tgz#911e8625cfa1a80df2914b835834c6068fdfdab4" - integrity sha512-p+HbgjhkqLsnxyjOUdEYHztHCp8n2oLVUJTmRPuP5FXLNevh6Gwmxf+NYC2J0sgD084aV2CFi3qu1W4yHWIknA== - dependencies: - "@commitlint/execute-rule" "^14.0.0" - "@commitlint/resolve-extends" "^14.1.0" - "@commitlint/types" "^14.0.0" - "@endemolshinegroup/cosmiconfig-typescript-loader" "^3.0.2" - chalk "^4.0.0" + version "17.0.3" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.0.3.tgz#683aa484a5515714512e442f2f4b11f75e66097a" + integrity sha512-3Dhvr7GcKbKa/ey4QJ5MZH3+J7QFlARohUow6hftQyNjzoXXROm+RwpBes4dDFrXG1xDw9QPXA7uzrOShCd4bw== + dependencies: + "@commitlint/config-validator" "^17.0.3" + "@commitlint/execute-rule" "^17.0.0" + "@commitlint/resolve-extends" "^17.0.3" + "@commitlint/types" "^17.0.0" + "@types/node" ">=12" + chalk "^4.1.0" cosmiconfig "^7.0.0" + cosmiconfig-typescript-loader "^2.0.0" lodash "^4.17.19" resolve-from "^5.0.0" - typescript "^4.4.3" + typescript "^4.6.4" -"@commitlint/resolve-extends@^14.1.0": - version "14.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-14.1.0.tgz#f23b40d95c95901fcb7b53edebc8fe86f54fe99d" - integrity sha512-ko80k6QB6E6/OvGNWy4u7gzzWyluDT3VDNL2kfZaDywsnrYntUKyT4Do97gQ7orttITzj2GRtk3KWClVz4rUUQ== +"@commitlint/resolve-extends@^17.0.3": + version "17.0.3" + resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-17.0.3.tgz#43b237899e2abd59d16af091521b888c8a071412" + integrity sha512-H/RFMvrcBeJCMdnVC4i8I94108UDccIHrTke2tyQEg9nXQnR5/Hd6MhyNWkREvcrxh9Y+33JLb+PiPiaBxCtBA== dependencies: + "@commitlint/config-validator" "^17.0.3" + "@commitlint/types" "^17.0.0" import-fresh "^3.0.0" lodash "^4.17.19" resolve-from "^5.0.0" resolve-global "^1.0.0" -"@commitlint/types@^14.0.0": - version "14.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-14.0.0.tgz#17bf4d1ab1178c67990ce01b36017d6e6792b751" - integrity sha512-sIls1nP2uSbGL466edYlh8mn7O/WP4i3bcvP+2DMhkscRCSgaPhNRWDilhYVsHt2Vu1HTQ27uT0Bj5/Lt2+EcQ== +"@commitlint/types@^17.0.0": + version "17.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-17.0.0.tgz#3b4604c1a0f06c340ce976e6c6903d4f56e3e690" + integrity sha512-hBAw6U+SkAT5h47zDMeOu3HSiD0SODw4Aq7rRNh1ceUmL7GyLKYhPbUvlRWqZ65XjBLPHZhFyQlRaPNz8qvUyQ== dependencies: - chalk "^4.0.0" + chalk "^4.1.0" -"@endemolshinegroup/cosmiconfig-typescript-loader@^3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz#eea4635828dde372838b0909693ebd9aafeec22d" - integrity sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA== +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== dependencies: - lodash.get "^4" - make-error "^1" - ts-node "^9" - tslib "^2" + "@jridgewell/trace-mapping" "0.3.9" "@hutson/parse-repository-url@^3.0.0": version "3.0.2" @@ -80,6 +89,54 @@ resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.5.tgz#b32366c89b43c6f8cefbdefac778b9c828e3ba8c" integrity sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg== +"@jridgewell/gen-mapping@^0.3.0": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.8.tgz#687cc2bbf243f4e9a868ecf2262318e2658873a1" + integrity sha512-YK5G9LaddzGbcucK4c8h5tWFmMPBvRZ/uyWmN1/SbBdIvqGUdWGkJ5BAaccgs6XbzVLsqbPJrBSFwKv3kT9i7w== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/source-map@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" + integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/trace-mapping@^0.3.9": + version "0.3.14" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz#b231a081d8f66796e475ad588a1ef473112701ed" + integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -101,6 +158,35 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@npmcli/config@^4.0.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/config/-/config-4.1.0.tgz#5c92e5ded2a44baf76b94926646329c3b39e79b8" + integrity sha512-cPQmIQ2Q0vuOfrenrA3isikdMFMAHgzlXV+EmvZ8f2JeJsU5xTU2bG7ipXECiMvPF9nM+QDnMLuIg8QLw9H4xg== + dependencies: + "@npmcli/map-workspaces" "^2.0.2" + ini "^3.0.0" + mkdirp-infer-owner "^2.0.0" + nopt "^5.0.0" + proc-log "^2.0.0" + read-package-json-fast "^2.0.3" + semver "^7.3.5" + walk-up-path "^1.0.0" + +"@npmcli/map-workspaces@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-2.0.3.tgz#2d3c75119ee53246e9aa75bc469a55281cd5f08f" + integrity sha512-X6suAun5QyupNM8iHkNPh0AHdRC2rb1W+MTdMvvA/2ixgmqZwlq5cGUBgmKHUHT2LgrkKJMAXbfAoTxOigpK8Q== + dependencies: + "@npmcli/name-from-folder" "^1.0.1" + glob "^8.0.1" + minimatch "^5.0.1" + read-package-json-fast "^2.0.3" + +"@npmcli/name-from-folder@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz#77ecd0a4fcb772ba6fe927e2e2e155fbec2e6b1a" + integrity sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA== + "@octokit/auth-token@^2.4.4": version "2.5.0" resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36" @@ -109,13 +195,13 @@ "@octokit/types" "^6.0.3" "@octokit/core@^3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.5.1.tgz#8601ceeb1ec0e1b1b8217b960a413ed8e947809b" - integrity sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw== + version "3.6.0" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.6.0.tgz#3376cb9f3008d9b3d110370d90e0a1fcd5fe6085" + integrity sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q== dependencies: "@octokit/auth-token" "^2.4.4" "@octokit/graphql" "^4.5.8" - "@octokit/request" "^5.6.0" + "@octokit/request" "^5.6.3" "@octokit/request-error" "^2.0.5" "@octokit/types" "^6.0.3" before-after-hook "^2.2.0" @@ -139,29 +225,29 @@ "@octokit/types" "^6.0.3" universal-user-agent "^6.0.0" -"@octokit/openapi-types@^11.2.0": - version "11.2.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-11.2.0.tgz#b38d7fc3736d52a1e96b230c1ccd4a58a2f400a6" - integrity sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA== +"@octokit/openapi-types@^12.4.0": + version "12.4.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.4.0.tgz#fd8bf5db72bd566c5ba2cb76754512a9ebe66e71" + integrity sha512-Npcb7Pv30b33U04jvcD7l75yLU0mxhuX2Xqrn51YyZ5WTkF04bpbxLaZ6GcaTqu03WZQHoO/Gbfp95NGRueDUA== -"@octokit/plugin-paginate-rest@^2.16.0": - version "2.17.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz#32e9c7cab2a374421d3d0de239102287d791bce7" - integrity sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw== +"@octokit/plugin-paginate-rest@^2.16.8": + version "2.19.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.19.0.tgz#b52eae6ecacfa1f5583dc2cc0985cfbed3ca78b0" + integrity sha512-hQ4Qysg2hNmEMuZeJkvyzM4eSZiTifOKqYAMsW8FnxFKowhuwWICSgBQ9Gn9GpUmgKB7qaf1hFvMjYaTAg5jQA== dependencies: - "@octokit/types" "^6.34.0" + "@octokit/types" "^6.36.0" "@octokit/plugin-request-log@^1.0.4": version "1.0.4" resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== -"@octokit/plugin-rest-endpoint-methods@^5.9.0": - version "5.13.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz#8c46109021a3412233f6f50d28786f8e552427ba" - integrity sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA== +"@octokit/plugin-rest-endpoint-methods@^5.12.0": + version "5.15.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.15.0.tgz#6c8251b55c33315a6e53e5b55654f72023ed5049" + integrity sha512-Gsw9+Xm56jVhfbJoy4pt6eOOyf8/3K6CAnx1Sl7U2GhZWcg8MR6YgXWnpfdF69S2ViMXLA7nfvTDAsZpFlkLRw== dependencies: - "@octokit/types" "^6.34.0" + "@octokit/types" "^6.36.0" deprecation "^2.3.1" "@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": @@ -173,54 +259,53 @@ deprecation "^2.0.0" once "^1.4.0" -"@octokit/request@^5.6.0": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.2.tgz#1aa74d5da7b9e04ac60ef232edd9a7438dcf32d8" - integrity sha512-je66CvSEVf0jCpRISxkUcCa0UkxmFs6eGDRSbfJtAVwbLH5ceqF+YEyC8lj8ystKyZTy8adWr0qmkY52EfOeLA== +"@octokit/request@^5.6.0", "@octokit/request@^5.6.3": + version "5.6.3" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.3.tgz#19a022515a5bba965ac06c9d1334514eb50c48b0" + integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A== dependencies: "@octokit/endpoint" "^6.0.1" "@octokit/request-error" "^2.1.0" "@octokit/types" "^6.16.1" is-plain-object "^5.0.0" - node-fetch "^2.6.1" + node-fetch "^2.6.7" universal-user-agent "^6.0.0" -"@octokit/rest@18.10.0": - version "18.10.0" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.10.0.tgz#8a0add9611253e0e31d3ed5b4bc941a3795a7648" - integrity sha512-esHR5OKy38bccL/sajHqZudZCvmv4yjovMJzyXlphaUo7xykmtOdILGJ3aAm0mFHmMLmPFmDMJXf39cAjNJsrw== +"@octokit/rest@18.12.0": + version "18.12.0" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" + integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q== dependencies: "@octokit/core" "^3.5.1" - "@octokit/plugin-paginate-rest" "^2.16.0" + "@octokit/plugin-paginate-rest" "^2.16.8" "@octokit/plugin-request-log" "^1.0.4" - "@octokit/plugin-rest-endpoint-methods" "^5.9.0" + "@octokit/plugin-rest-endpoint-methods" "^5.12.0" -"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.34.0": - version "6.34.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.34.0.tgz#c6021333334d1ecfb5d370a8798162ddf1ae8218" - integrity sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw== +"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.36.0": + version "6.37.1" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.37.1.tgz#600a9c9643f696ba68f229c8d71abbc1040ad6a6" + integrity sha512-Q1hXSP2YumHkDdD+V4wFKr7vJ9+8tjocixrTSb75JzJ4GpjSyu5B4kpgrXxO6GOs4nOmVyRwRgS4/RO/Lf9oEA== dependencies: - "@octokit/openapi-types" "^11.2.0" + "@octokit/openapi-types" "^12.4.0" -"@release-it/conventional-changelog@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@release-it/conventional-changelog/-/conventional-changelog-3.3.0.tgz#0f79e4b736412040d37c2b84bf433e393268c08e" - integrity sha512-pchCHf+wNpn15oj2hau4gisFKQat/01JuTzAwlGsQE83ZUBknU4dRlPA3xf5F5f3K70VVTQ3lx4/lgQvR+zxww== +"@release-it/conventional-changelog@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@release-it/conventional-changelog/-/conventional-changelog-5.0.0.tgz#2359e19f7d609c60c31a680faaaeead6efc752d7" + integrity sha512-YAvGgxA8cIQSbmyHmAmLMwzCkNP74upLST8jFuDJTI+AVfK2Grp2HbZu0/NeV3sHYD20sT8YMzNVUeRxNlyHeg== dependencies: concat-stream "^2.0.0" - conventional-changelog "^3.1.24" + conventional-changelog "^3.1.25" conventional-recommended-bump "^6.1.0" - prepend-file "^2.0.0" "@sindresorhus/is@^0.14.0": version "0.14.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== -"@sindresorhus/is@^4.0.0": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.2.0.tgz#667bfc6186ae7c9e0b45a08960c551437176e1ca" - integrity sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw== +"@sindresorhus/is@^4.6.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== "@szmarczak/http-timer@^1.1.2": version "1.1.2" @@ -229,14 +314,39 @@ dependencies: defer-to-connect "^1.0.1" -"@szmarczak/http-timer@^4.0.5": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" - integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== +"@szmarczak/http-timer@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" + integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== dependencies: - defer-to-connect "^2.0.0" + defer-to-connect "^2.0.1" + +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== -"@types/cacheable-request@^6.0.1": +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== + +"@types/cacheable-request@^6.0.2": version "6.0.2" resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" integrity sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA== @@ -246,10 +356,10 @@ "@types/node" "*" "@types/responselike" "*" -"@types/concat-stream@^1.0.0": - version "1.6.1" - resolved "https://registry.yarnpkg.com/@types/concat-stream/-/concat-stream-1.6.1.tgz#24bcfc101ecf68e886aaedce60dfd74b632a1b74" - integrity sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA== +"@types/concat-stream@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/concat-stream/-/concat-stream-2.0.0.tgz#a716f0ba9015014e643addb351da05a73bef425c" + integrity sha512-t3YCerNM7NTVjLuICZo5gYAXYoDvpuuTceCcFQWcDQz26kxUR5uIWolxbIR5jRNIXpMqhOpW/b8imCR1LEmuJw== dependencies: "@types/node" "*" @@ -270,15 +380,15 @@ resolved "https://registry.yarnpkg.com/@types/is-empty/-/is-empty-1.2.1.tgz#18d7256a73e43ec51f8b75c25fbdc31350be52a6" integrity sha512-a3xgqnFTuNJDm1fjsTjHocYJ40Cz3t8utYpi5GNaxzrJC2HSD08ym+whIL7fNqiqBCdM9bcqD1H/tORWAFXoZw== -"@types/js-yaml@^4.0.0": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.4.tgz#cc38781257612581a1a0eb25f1709d2b06812fce" - integrity sha512-AuHubXUmg0AzkXH0Mx6sIxeY/1C110mm/EkE/gB1sTRz3h2dao2W/63q42SlVST+lICxz5Oki2hzYA6+KnnieQ== +"@types/json-buffer@~3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/json-buffer/-/json-buffer-3.0.0.tgz#85c1ff0f0948fc159810d4b5be35bf8c20875f64" + integrity sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ== "@types/keyv@*": - version "3.1.3" - resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.3.tgz#1c9aae32872ec1f20dcdaee89a9f3ba88f465e41" - integrity sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg== + version "3.1.4" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" + integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== dependencies: "@types/node" "*" @@ -299,10 +409,10 @@ resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== -"@types/node@*", "@types/node@^16.0.0", "@types/node@^16.11.7": - version "16.11.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.7.tgz#36820945061326978c42a01e56b61cd223dfdc42" - integrity sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw== +"@types/node@*", "@types/node@>=12", "@types/node@^18.0.0": + version "18.0.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.0.tgz#67c7b724e1bcdd7a8821ce0d5ee184d3b4dd525a" + integrity sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -349,10 +459,37 @@ abbrev@1: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== +acorn-walk@^8.1.1, acorn-walk@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.0: + version "8.7.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" + integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== + add-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" - integrity sha1-anmQQ3ynNtXhKI25K9MmbV9csqo= + integrity sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ== + +agent-base@6, agent-base@^6.0.0, agent-base@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +ajv@^8.11.0: + version "8.11.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" + integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" ansi-align@^3.0.0: version "3.0.1" @@ -366,22 +503,22 @@ ansi-escapes@^3.2.0: resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== -ansi-escapes@^4.2.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== +ansi-escapes@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-5.0.0.tgz#b6a0caf0eef0c41af190e9a749e0c00ec04bb2a6" + integrity sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA== dependencies: - type-fest "^0.21.3" + type-fest "^1.0.2" ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" + integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== ansi-regex@^5.0.1: version "5.0.1" @@ -407,6 +544,11 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" +ansi-styles@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.1.0.tgz#87313c102b8118abd57371afab34618bf7350ed3" + integrity sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ== + anymatch@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" @@ -420,25 +562,33 @@ arg@^4.1.0: resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - array-ify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" - integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= + integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== +array.prototype.map@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/array.prototype.map/-/array.prototype.map-1.0.4.tgz#0d97b640cfdd036c1b41cfe706a5e699aa0711f2" + integrity sha512-Qds9QnX7A0qISY7JT5WuJO0NJPE9CMlC6JzHQfhpqAAQQzufVRoeH7EzUY5GcPTx72voG8LV/5eo+b8Qi8hmhA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + es-array-method-boxes-properly "^1.0.0" + is-string "^1.0.7" arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== + +ast-types@^0.13.2: + version "0.13.4" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782" + integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w== + dependencies: + tslib "^2.0.1" async-retry@1.3.3: version "1.3.3" @@ -450,7 +600,7 @@ async-retry@1.3.3: asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== bail@^2.0.0: version "2.0.2" @@ -477,12 +627,12 @@ 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.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== +bl@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-5.0.0.tgz#6928804a41e9da9034868e1c50ca88f21f57aea2" + integrity sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ== dependencies: - buffer "^5.5.0" + buffer "^6.0.3" inherits "^2.0.4" readable-stream "^3.4.0" @@ -508,7 +658,14 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^3.0.1, braces@~3.0.2: +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -520,25 +677,30 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== dependencies: base64-js "^1.3.1" - ieee754 "^1.1.13" + ieee754 "^1.2.1" -builtins@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-4.0.0.tgz#a8345420de82068fdc4d6559d0456403a8fb1905" - integrity sha512-qC0E2Dxgou1IHhvJSLwGDSTvokbRovU5zZFuDY6oY8Y2lF3nGt5Ad8YZK7GMtqzY84Wu7pXTPeHQeHcXSXsRhw== +builtins@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" + integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== dependencies: semver "^7.0.0" -cacheable-lookup@^5.0.3: - version "5.0.4" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" - integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cacheable-lookup@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-6.0.4.tgz#65c0e51721bb7f9f2cb513aed6da4a1b93ad7dc8" + integrity sha512-mbcDEZCkv2CZF4G01kr8eBd/5agkt9oCqz75tJMSIsquvRZ2sL6Hi5zGVKi/0OSC9oO1GHfJ2AV0ZIOY9vye0A== cacheable-request@^6.0.0: version "6.1.0" @@ -553,7 +715,7 @@ cacheable-request@^6.0.0: normalize-url "^4.1.0" responselike "^1.0.2" -cacheable-request@^7.0.1: +cacheable-request@^7.0.2: version "7.0.2" resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== @@ -571,7 +733,7 @@ cachedir@2.2.0: resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.2.0.tgz#19afa4305e05d79e417566882e0c8f960f62ff0e" integrity sha512-VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ== -call-bind@^1.0.0: +call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== @@ -598,18 +760,20 @@ camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0, camelcase@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" - integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== +camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" +camelcase@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.0.tgz#fd112621b212126741f998d614cbc2a8623fd174" + integrity sha512-JToIvOmz6nhGsUhAYScbo2d6Py5wojjNfoxoc2mEVLUdJ70gJK2gnd+ABY1Tc3sVMyK7QDPtN0T/XdlCQWITyQ== + +chalk@5.0.1, chalk@^5.0.0, chalk@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.0.1.tgz#ca57d71e82bb534a296df63bbacc4a1c22b2a4b6" + integrity sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w== chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" @@ -620,20 +784,18 @@ chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -character-entities-legacy@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" - integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== +chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" character-entities@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.1.tgz#98724833e1e27990dee0bd0f2b8a859c3476aac7" - integrity sha512-OzmutCf2Kmc+6DrFrrPS8/tDh2+DpnrfzdICHWhcVC9eOd0N1PXmQEE1a8iM4IziIAG+8tmTq3K+oo0ubH6RRQ== - -character-reference-invalid@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz#85c66b041e43b47210faf401278abf808ac45cb9" - integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw== + version "2.0.2" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== chardet@^0.7.0: version "0.7.0" @@ -641,9 +803,9 @@ chardet@^0.7.0: integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== chokidar@^3.0.0, chokidar@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -655,15 +817,20 @@ chokidar@^3.0.0, chokidar@^3.5.2: optionalDependencies: fsevents "~2.3.2" +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + ci-info@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -ci-info@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" - integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== +ci-info@^3.2.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.2.tgz#6d2967ffa407466481c6c90b6e16b3098f080128" + integrity sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg== cli-boxes@^2.2.1: version "2.2.1" @@ -673,18 +840,18 @@ cli-boxes@^2.2.1: cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== dependencies: restore-cursor "^2.0.0" -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== +cli-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" + integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== dependencies: - restore-cursor "^3.1.0" + restore-cursor "^4.0.0" -cli-spinners@^2.5.0: +cli-spinners@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== @@ -694,10 +861,10 @@ cli-width@^2.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== -cli-width@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" - integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +cli-width@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.0.0.tgz#a5622f6a3b0a9e3e711a25f099bf2399f608caf6" + integrity sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw== cliui@^7.0.2: version "7.0.4" @@ -711,14 +878,14 @@ cliui@^7.0.2: clone-response@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + integrity sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q== dependencies: mimic-response "^1.0.0" clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== color-convert@^1.9.0: version "1.9.3" @@ -737,7 +904,7 @@ color-convert@^2.0.1: color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: version "1.1.4" @@ -784,10 +951,18 @@ compare-func@^2.0.0: array-ify "^1.0.0" dot-prop "^5.1.0" +compress-brotli@^1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/compress-brotli/-/compress-brotli-1.3.8.tgz#0c0a60c97a989145314ec381e84e26682e7b38db" + integrity sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ== + dependencies: + "@types/json-buffer" "~3.0.0" + json-buffer "~3.0.1" + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== concat-stream@^2.0.0: version "2.0.0" @@ -834,9 +1009,9 @@ conventional-changelog-codemirror@^2.0.8: q "^1.5.1" conventional-changelog-conventionalcommits@^4.5.0: - version "4.6.1" - resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.1.tgz#f4c0921937050674e578dc7875f908351ccf4014" - integrity sha512-lzWJpPZhbM1R0PIzkwzGBCnAkH5RKJzJfFQZcl/D+2lsJxAwGnDKBqn/F4C1RD31GJNn8NuKWQzAZDAVXPp2Mw== + version "4.6.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz#0765490f56424b46f6cb4db9135902d6e5a36dc2" + integrity sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g== dependencies: compare-func "^2.0.0" lodash "^4.17.15" @@ -904,13 +1079,13 @@ conventional-changelog-preset-loader@^2.3.4: integrity sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g== conventional-changelog-writer@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-5.0.0.tgz#c4042f3f1542f2f41d7d2e0d6cad23aba8df8eec" - integrity sha512-HnDh9QHLNWfL6E1uHz6krZEQOgm8hN7z/m7tT16xwd802fwgMN0Wqd7AQYVkhpsjDUx/99oo+nGgvKF657XP5g== + version "5.0.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz#e0757072f045fe03d91da6343c843029e702f359" + integrity sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ== dependencies: conventional-commits-filter "^2.0.7" dateformat "^3.0.0" - handlebars "^4.7.6" + handlebars "^4.7.7" json-stringify-safe "^5.0.1" lodash "^4.17.15" meow "^8.0.0" @@ -918,10 +1093,10 @@ conventional-changelog-writer@^5.0.0: split "^1.0.0" through2 "^4.0.0" -conventional-changelog@^3.1.24: - version "3.1.24" - resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-3.1.24.tgz#ebd180b0fd1b2e1f0095c4b04fd088698348a464" - integrity sha512-ed6k8PO00UVvhExYohroVPXcOJ/K1N0/drJHx/faTH37OIZthlecuLIRX/T6uOp682CAoVoFpu+sSEaeuH6Asg== +conventional-changelog@^3.1.25: + version "3.1.25" + resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-3.1.25.tgz#3e227a37d15684f5aa1fb52222a6e9e2536ccaff" + integrity sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ== dependencies: conventional-changelog-angular "^5.0.12" conventional-changelog-atom "^2.0.8" @@ -949,9 +1124,9 @@ conventional-commits-filter@^2.0.7: modify-values "^1.0.0" conventional-commits-parser@^3.2.0: - version "3.2.3" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.2.3.tgz#fc43704698239451e3ef35fd1d8ed644f46bd86e" - integrity sha512-YyRDR7On9H07ICFpRm/igcdjIqebXbvf4Cff+Pf0BrBys1i1EOzx9iFXNlAbdrLAR8jf7bkUYkDAr8pEy0q4Pw== + version "3.2.4" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz#a7d3b77758a202a9b2293d2112a8d8052c740972" + integrity sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q== dependencies: JSONStream "^1.0.4" is-text-path "^1.0.1" @@ -979,7 +1154,15 @@ core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -cosmiconfig@7.0.1, cosmiconfig@^7.0.0: +cosmiconfig-typescript-loader@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-2.0.2.tgz#7e7ce6064af041c910e1e43fb0fd9625cee56e93" + integrity sha512-KmE+bMjWMXJbkWCeY4FJX/npHuZPNr9XF9q9CIQ/bpFwi1qHfCmSiKarrCcRa0LO4fWjk93pVoeRtJAkTGcYNw== + dependencies: + cosmiconfig "^7" + ts-node "^10.8.1" + +cosmiconfig@7.0.1, cosmiconfig@^7, cosmiconfig@^7.0.0: version "7.0.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== @@ -995,7 +1178,7 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -cross-spawn@^7.0.0, cross-spawn@^7.0.3: +cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -1042,15 +1225,20 @@ dargs@^7.0.0: resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== +data-uri-to-buffer@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" + integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== + dateformat@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== -debug@4.3.2, debug@^4.0.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== +debug@4, debug@^4.0.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" @@ -1064,7 +1252,7 @@ debug@^3.2.7: decamelize-keys@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" - integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= + integrity sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg== dependencies: decamelize "^1.1.0" map-obj "^1.0.0" @@ -1072,17 +1260,24 @@ decamelize-keys@^1.1.0: decamelize@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +decode-named-character-reference@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" + integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== + dependencies: + character-entities "^2.0.0" decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== decompress-response@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== dependencies: mimic-response "^1.0.0" @@ -1096,17 +1291,22 @@ decompress-response@^6.0.0: dedent@0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== +deep-is@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + defaults@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + integrity sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA== dependencies: clone "^1.0.2" @@ -1115,23 +1315,43 @@ defer-to-connect@^1.0.1: resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== -defer-to-connect@^2.0.0: +defer-to-connect@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +define-properties@^1.1.3, define-properties@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +degenerator@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-3.0.2.tgz#6a61fcc42a702d6e50ff6023fe17bff435f68235" + integrity sha512-c0mef3SNQo56t6urUU6tdQAs+ThoD0o9B9MJ8HEt7NQcGEILCRFqQb7ZbP9JAv+QF1Ky5plydhMR/IrqWDm+TQ== + dependencies: + ast-types "^0.13.2" + escodegen "^1.8.1" + esprima "^4.0.0" + vm2 "^3.9.8" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== -deprecated-obj@2.0.0: +depd@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/deprecated-obj/-/deprecated-obj-2.0.0.tgz#e6ba93a3989f6ed18d685e7d99fb8d469b4beffc" - integrity sha512-CkdywZC2rJ8RGh+y3MM1fw1EJ4oO/oNExGbRFv0AQoMS+faTd3nO7slYjkj/6t8OnIMUE+wxh6G97YHhK1ytrw== - dependencies: - flat "^5.0.2" - lodash "^4.17.20" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== deprecation@^2.0.0, deprecation@^2.3.1: version "2.3.1" @@ -1146,7 +1366,7 @@ dequal@^2.0.0: detect-file@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" - integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= + integrity sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q== detect-indent@6.0.0: version "6.0.0" @@ -1159,9 +1379,9 @@ diff@^4.0.1: integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== diff@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== dir-glob@^3.0.1: version "3.0.1" @@ -1180,7 +1400,12 @@ dot-prop@^5.1.0, dot-prop@^5.2.0: duplexer3@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + integrity sha512-CEj8FwwNA4cVH2uFCoHUrmojhYh1vmCdOaneKJXwkeY1i9jnlslVo9dx+hQ5Hl9GnH/Bwy/IjxAyOePyPKYnzA== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== emoji-regex@^8.0.0: version "8.0.0" @@ -1199,120 +1424,195 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -error-ex@^1.3.1: +error-ex@^1.3.1, error-ex@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" -esbuild-android-arm64@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.13.tgz#da07b5fb2daf7d83dcd725f7cf58a6758e6e702a" - integrity sha512-T02aneWWguJrF082jZworjU6vm8f4UQ+IH2K3HREtlqoY9voiJUwHLRL6khRlsNLzVglqgqb7a3HfGx7hAADCQ== - -esbuild-darwin-64@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.13.tgz#e94e9fd3b4b5455a2e675cd084a19a71b6904bbf" - integrity sha512-wkaiGAsN/09X9kDlkxFfbbIgR78SNjMOfUhoel3CqKBDsi9uZhw7HBNHNxTzYUK8X8LAKFpbODgcRB3b/I8gHA== - -esbuild-darwin-arm64@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.13.tgz#8c320eafbb3ba2c70d8062128c5b71503e342471" - integrity sha512-b02/nNKGSV85Gw9pUCI5B48AYjk0vFggDeom0S6QMP/cEDtjSh1WVfoIFNAaLA0MHWfue8KBwoGVsN7rBshs4g== - -esbuild-freebsd-64@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.13.tgz#ce0ca5b8c4c274cfebc9326f9b316834bd9dd151" - integrity sha512-ALgXYNYDzk9YPVk80A+G4vz2D22Gv4j4y25exDBGgqTcwrVQP8rf/rjwUjHoh9apP76oLbUZTmUmvCMuTI1V9A== - -esbuild-freebsd-arm64@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.13.tgz#463da17562fdcfdf03b3b94b28497d8d8dcc8f62" - integrity sha512-uFvkCpsZ1yqWQuonw5T1WZ4j59xP/PCvtu6I4pbLejhNo4nwjW6YalqnBvBSORq5/Ifo9S/wsIlVHzkzEwdtlw== - -esbuild-linux-32@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.13.tgz#2035793160da2c4be48a929e5bafb14a31789acc" - integrity sha512-yxR9BBwEPs9acVEwTrEE2JJNHYVuPQC9YGjRfbNqtyfK/vVBQYuw8JaeRFAvFs3pVJdQD0C2BNP4q9d62SCP4w== - -esbuild-linux-64@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.13.tgz#fbe4802a8168c6d339d0749f977b099449b56f22" - integrity sha512-kzhjlrlJ+6ESRB/n12WTGll94+y+HFeyoWsOrLo/Si0s0f+Vip4b8vlnG0GSiS6JTsWYAtGHReGczFOaETlKIw== - -esbuild-linux-arm64@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.13.tgz#f08d98df28d436ed4aad1529615822bb74d4d978" - integrity sha512-KMrEfnVbmmJxT3vfTnPv/AiXpBFbbyExH13BsUGy1HZRPFMi5Gev5gk8kJIZCQSRfNR17aqq8sO5Crm2KpZkng== - -esbuild-linux-arm@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.13.tgz#6f968c3a98b64e30c80b212384192d0cfcb32e7f" - integrity sha512-hXub4pcEds+U1TfvLp1maJ+GHRw7oizvzbGRdUvVDwtITtjq8qpHV5Q5hWNNn6Q+b3b2UxF03JcgnpzCw96nUQ== - -esbuild-linux-mips64le@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.13.tgz#690c78dc4725efe7d06a1431287966fbf7774c7f" - integrity sha512-cJT9O1LYljqnnqlHaS0hdG73t7hHzF3zcN0BPsjvBq+5Ad47VJun+/IG4inPhk8ta0aEDK6LdP+F9299xa483w== - -esbuild-linux-ppc64le@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.13.tgz#7ec9048502de46754567e734aae7aebd2df6df02" - integrity sha512-+rghW8st6/7O6QJqAjVK3eXzKkZqYAw6LgHv7yTMiJ6ASnNvghSeOcIvXFep3W2oaJc35SgSPf21Ugh0o777qQ== - -esbuild-netbsd-64@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.13.tgz#439bdaefffa03a8fa84324f5d83d636f548a2de3" - integrity sha512-A/B7rwmzPdzF8c3mht5TukbnNwY5qMJqes09ou0RSzA5/jm7Jwl/8z853ofujTFOLhkNHUf002EAgokzSgEMpQ== - -esbuild-openbsd-64@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.13.tgz#c9958e5291a00a3090c1ec482d6bcdf2d5b5d107" - integrity sha512-szwtuRA4rXKT3BbwoGpsff6G7nGxdKgUbW9LQo6nm0TVCCjDNDC/LXxT994duIW8Tyq04xZzzZSW7x7ttDiw1w== - -esbuild-sunos-64@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.13.tgz#ac9ead8287379cd2f6d00bd38c5997fda9c1179e" - integrity sha512-ihyds9O48tVOYF48iaHYUK/boU5zRaLOXFS+OOL3ceD39AyHo46HVmsJLc7A2ez0AxNZCxuhu+P9OxfPfycTYQ== - -esbuild-windows-32@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.13.tgz#a3820fc86631ca594cb7b348514b5cc3f058cfd6" - integrity sha512-h2RTYwpG4ldGVJlbmORObmilzL8EECy8BFiF8trWE1ZPHLpECE9//J3Bi+W3eDUuv/TqUbiNpGrq4t/odbayUw== - -esbuild-windows-64@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.13.tgz#1da748441f228d75dff474ddb7d584b81887323c" - integrity sha512-oMrgjP4CjONvDHe7IZXHrMk3wX5Lof/IwFEIbwbhgbXGBaN2dke9PkViTiXC3zGJSGpMvATXVplEhlInJ0drHA== - -esbuild-windows-arm64@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.13.tgz#06dfa52a6b178a5932a9a6e2fdb240c09e6da30c" - integrity sha512-6fsDfTuTvltYB5k+QPah/x7LrI2+OLAJLE3bWLDiZI6E8wXMQU+wLqtEO/U/RvJgVY1loPs5eMpUBpVajczh1A== - -esbuild@^0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.13.tgz#0b5399c20f219f663c8c1048436fb0f59ab17a41" - integrity sha512-Z17A/R6D0b4s3MousytQ/5i7mTCbaF+Ua/yPfoe71vdTv4KBvVAvQ/6ytMngM2DwGJosl8WxaD75NOQl2QF26Q== +es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.5: + version "1.20.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" + integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.1.1" + get-symbol-description "^1.0.0" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + is-callable "^1.2.4" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-weakref "^1.0.2" + object-inspect "^1.12.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + regexp.prototype.flags "^1.4.3" + string.prototype.trimend "^1.0.5" + string.prototype.trimstart "^1.0.5" + unbox-primitive "^1.0.2" + +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + +es-get-iterator@^1.0.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.2.tgz#9234c54aba713486d7ebde0220864af5e2b283f7" + integrity sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.0" + has-symbols "^1.0.1" + is-arguments "^1.1.0" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.5" + isarray "^2.0.5" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +esbuild-android-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.47.tgz#ef95b42c67bcf4268c869153fa3ad1466c4cea6b" + integrity sha512-R13Bd9+tqLVFndncMHssZrPWe6/0Kpv2/dt4aA69soX4PRxlzsVpCvoJeFE8sOEoeVEiBkI0myjlkDodXlHa0g== + +esbuild-android-arm64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.47.tgz#4ebd7ce9fb250b4695faa3ee46fd3b0754ecd9e6" + integrity sha512-OkwOjj7ts4lBp/TL6hdd8HftIzOy/pdtbrNA4+0oVWgGG64HrdVzAF5gxtJufAPOsEjkyh1oIYvKAUinKKQRSQ== + +esbuild-darwin-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.47.tgz#e0da6c244f497192f951807f003f6a423ed23188" + integrity sha512-R6oaW0y5/u6Eccti/TS6c/2c1xYTb1izwK3gajJwi4vIfNs1s8B1dQzI1UiC9T61YovOQVuePDcfqHLT3mUZJA== + +esbuild-darwin-arm64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.47.tgz#cd40fd49a672fca581ed202834239dfe540a9028" + integrity sha512-seCmearlQyvdvM/noz1L9+qblC5vcBrhUaOoLEDDoLInF/VQ9IkobGiLlyTPYP5dW1YD4LXhtBgOyevoIHGGnw== + +esbuild-freebsd-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.47.tgz#8da6a14c095b29c01fc8087a16cb7906debc2d67" + integrity sha512-ZH8K2Q8/Ux5kXXvQMDsJcxvkIwut69KVrYQhza/ptkW50DC089bCVrJZZ3sKzIoOx+YPTrmsZvqeZERjyYrlvQ== + +esbuild-freebsd-arm64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.47.tgz#ad31f9c92817ff8f33fd253af7ab5122dc1b83f6" + integrity sha512-ZJMQAJQsIOhn3XTm7MPQfCzEu5b9STNC+s90zMWe2afy9EwnHV7Ov7ohEMv2lyWlc2pjqLW8QJnz2r0KZmeAEQ== + +esbuild-linux-32@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.47.tgz#de085e4db2e692ea30c71208ccc23fdcf5196c58" + integrity sha512-FxZOCKoEDPRYvq300lsWCTv1kcHgiiZfNrPtEhFAiqD7QZaXrad8LxyJ8fXGcWzIFzRiYZVtB3ttvITBvAFhKw== + +esbuild-linux-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.47.tgz#2a9321bbccb01f01b04cebfcfccbabeba3658ba1" + integrity sha512-nFNOk9vWVfvWYF9YNYksZptgQAdstnDCMtR6m42l5Wfugbzu11VpMCY9XrD4yFxvPo9zmzcoUL/88y0lfJZJJw== + +esbuild-linux-arm64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.47.tgz#b9da7b6fc4b0ca7a13363a0c5b7bb927e4bc535a" + integrity sha512-ywfme6HVrhWcevzmsufjd4iT3PxTfCX9HOdxA7Hd+/ZM23Y9nXeb+vG6AyA6jgq/JovkcqRHcL9XwRNpWG6XRw== + +esbuild-linux-arm@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.47.tgz#56fec2a09b9561c337059d4af53625142aded853" + integrity sha512-ZGE1Bqg/gPRXrBpgpvH81tQHpiaGxa8c9Rx/XOylkIl2ypLuOcawXEAo8ls+5DFCcRGt/o3sV+PzpAFZobOsmA== + +esbuild-linux-mips64le@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.47.tgz#9db21561f8f22ed79ef2aedb7bbef082b46cf823" + integrity sha512-mg3D8YndZ1LvUiEdDYR3OsmeyAew4MA/dvaEJxvyygahWmpv1SlEEnhEZlhPokjsUMfRagzsEF/d/2XF+kTQGg== + +esbuild-linux-ppc64le@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.47.tgz#dc3a3da321222b11e96e50efafec9d2de408198b" + integrity sha512-WER+f3+szmnZiWoK6AsrTKGoJoErG2LlauSmk73LEZFQ/iWC+KhhDsOkn1xBUpzXWsxN9THmQFltLoaFEH8F8w== + +esbuild-linux-riscv64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.47.tgz#9bd6dcd3dca6c0357084ecd06e1d2d4bf105335f" + integrity sha512-1fI6bP3A3rvI9BsaaXbMoaOjLE3lVkJtLxsgLHqlBhLlBVY7UqffWBvkrX/9zfPhhVMd9ZRFiaqXnB1T7BsL2g== + +esbuild-linux-s390x@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.47.tgz#a458af939b52f2cd32fc561410d441a51f69d41f" + integrity sha512-eZrWzy0xFAhki1CWRGnhsHVz7IlSKX6yT2tj2Eg8lhAwlRE5E96Hsb0M1mPSE1dHGpt1QVwwVivXIAacF/G6mw== + +esbuild-netbsd-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.47.tgz#6388e785d7e7e4420cb01348d7483ab511b16aa8" + integrity sha512-Qjdjr+KQQVH5Q2Q1r6HBYswFTToPpss3gqCiSw2Fpq/ua8+eXSQyAMG+UvULPqXceOwpnPo4smyZyHdlkcPppQ== + +esbuild-openbsd-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.47.tgz#309af806db561aa886c445344d1aacab850dbdc5" + integrity sha512-QpgN8ofL7B9z8g5zZqJE+eFvD1LehRlxr25PBkjyyasakm4599iroUpaj96rdqRlO2ShuyqwJdr+oNqWwTUmQw== + +esbuild-sunos-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.47.tgz#3f19612dcdb89ba6c65283a7ff6e16f8afbf8aaa" + integrity sha512-uOeSgLUwukLioAJOiGYm3kNl+1wJjgJA8R671GYgcPgCx7QR73zfvYqXFFcIO93/nBdIbt5hd8RItqbbf3HtAQ== + +esbuild-windows-32@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.47.tgz#a92d279c8458d5dc319abcfeb30aa49e8f2e6f7f" + integrity sha512-H0fWsLTp2WBfKLBgwYT4OTfFly4Im/8B5f3ojDv1Kx//kiubVY0IQunP2Koc/fr/0wI7hj3IiBDbSrmKlrNgLQ== + +esbuild-windows-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.47.tgz#2564c3fcf0c23d701edb71af8c52d3be4cec5f8a" + integrity sha512-/Pk5jIEH34T68r8PweKRi77W49KwanZ8X6lr3vDAtOlH5EumPE4pBHqkCUdELanvsT14yMXLQ/C/8XPi1pAtkQ== + +esbuild-windows-arm64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.47.tgz#86d9db1a22d83360f726ac5fba41c2f625db6878" + integrity sha512-HFSW2lnp62fl86/qPQlqw6asIwCnEsEoNIL1h2uVMgakddf+vUuMcCbtUY1i8sst7KkgHrVKCJQB33YhhOweCQ== + +esbuild@^0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.47.tgz#0d6415f6bd8eb9e73a58f7f9ae04c5276cda0e4d" + integrity sha512-wI4ZiIfFxpkuxB8ju4MHrGwGLyp1+awEHAHVpx6w7a+1pmYIq8T9FGEVVwFo0iFierDoMj++Xq69GXWYn2EiwA== optionalDependencies: - esbuild-android-arm64 "0.13.13" - esbuild-darwin-64 "0.13.13" - esbuild-darwin-arm64 "0.13.13" - esbuild-freebsd-64 "0.13.13" - esbuild-freebsd-arm64 "0.13.13" - esbuild-linux-32 "0.13.13" - esbuild-linux-64 "0.13.13" - esbuild-linux-arm "0.13.13" - esbuild-linux-arm64 "0.13.13" - esbuild-linux-mips64le "0.13.13" - esbuild-linux-ppc64le "0.13.13" - esbuild-netbsd-64 "0.13.13" - esbuild-openbsd-64 "0.13.13" - esbuild-sunos-64 "0.13.13" - esbuild-windows-32 "0.13.13" - esbuild-windows-64 "0.13.13" - esbuild-windows-arm64 "0.13.13" + esbuild-android-64 "0.14.47" + esbuild-android-arm64 "0.14.47" + esbuild-darwin-64 "0.14.47" + esbuild-darwin-arm64 "0.14.47" + esbuild-freebsd-64 "0.14.47" + esbuild-freebsd-arm64 "0.14.47" + esbuild-linux-32 "0.14.47" + esbuild-linux-64 "0.14.47" + esbuild-linux-arm "0.14.47" + esbuild-linux-arm64 "0.14.47" + esbuild-linux-mips64le "0.14.47" + esbuild-linux-ppc64le "0.14.47" + esbuild-linux-riscv64 "0.14.47" + esbuild-linux-s390x "0.14.47" + esbuild-netbsd-64 "0.14.47" + esbuild-openbsd-64 "0.14.47" + esbuild-sunos-64 "0.14.47" + esbuild-windows-32 "0.14.47" + esbuild-windows-64 "0.14.47" + esbuild-windows-arm64 "0.14.47" escalade@^3.1.1: version "3.1.1" @@ -1327,9 +1627,56 @@ escape-goat@^2.0.0: escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + +escodegen@^1.8.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -execa@5.1.1: +estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +execa@6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" + integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.1" + human-signals "^3.0.1" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" + +execa@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -1344,25 +1691,10 @@ execa@5.1.1: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -execa@^4.0.2: - version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" - integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= + integrity sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw== dependencies: homedir-polyfill "^1.0.1" @@ -1380,10 +1712,15 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" -fast-glob@^3.1.1: - version "3.2.7" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" - integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.2.11: + version "3.2.11" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -1391,6 +1728,11 @@ fast-glob@^3.1.1: merge2 "^1.3.0" micromatch "^4.0.4" +fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + fastq@^1.6.0: version "1.13.0" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" @@ -1405,24 +1747,25 @@ fault@^2.0.0: dependencies: format "^0.2.0" -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= + integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== dependencies: escape-string-regexp "^1.0.5" -figures@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== +figures@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/figures/-/figures-4.0.1.tgz#27b26609907bc888b3e3b0ef5403643f80aa2518" + integrity sha512-rElJwkA/xS04Vfg+CaZodpso7VqBknOYbzi6I76hI4X80RUjkSxO2oAyPmGbuXUppywjqndOrQDl817hDnI++w== dependencies: - escape-string-regexp "^1.0.5" + escape-string-regexp "^5.0.0" + is-unicode-supported "^1.2.0" + +file-uri-to-path@2: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz#7b415aeba227d575851e0a5b0c640d7656403fba" + integrity sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg== fill-range@^7.0.1: version "7.0.1" @@ -1434,15 +1777,15 @@ fill-range@^7.0.1: filter-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" - integrity sha1-mzERErxsYSehbgFsbF1/GeCAXFs= + integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== find-node-modules@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/find-node-modules/-/find-node-modules-2.1.2.tgz#57565a3455baf671b835bc6b2134a9b938b9c53c" - integrity sha512-x+3P4mbtRPlSiVE1Qco0Z4YLU8WFiFcuWTf3m75OV9Uzcfs2Bg+O9N+r/K0AnmINBW06KpfqKwYJbFlFq4qNug== + version "2.1.3" + resolved "https://registry.yarnpkg.com/find-node-modules/-/find-node-modules-2.1.3.tgz#3c976cff2ca29ee94b4f9eafc613987fc4c0ee44" + integrity sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg== dependencies: findup-sync "^4.0.0" - merge "^2.1.0" + merge "^2.1.1" find-root@1.1.0: version "1.1.0" @@ -1452,17 +1795,10 @@ find-root@1.1.0: find-up@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== dependencies: locate-path "^2.0.0" -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -1481,10 +1817,10 @@ findup-sync@^4.0.0: micromatch "^4.0.2" resolve-dir "^1.0.1" -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== +form-data-encoder@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.1.tgz#ac80660e4f87ee0d3d3c3638b7da8278ddb8ec96" + integrity sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg== form-data@4.0.0: version "4.0.0" @@ -1498,9 +1834,9 @@ form-data@4.0.0: format@^0.2.0: version "0.2.2" resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" - integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs= + integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== -fs-extra@8.1.0: +fs-extra@8.1.0, fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== @@ -1512,31 +1848,54 @@ fs-extra@8.1.0: fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== +ftp@^0.3.10: + version "0.3.10" + resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d" + integrity sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ== + dependencies: + readable-stream "1.1.x" + xregexp "2.0.0" + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +functions-have-names@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" + integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== dependencies: function-bind "^1.1.1" has "^1.0.3" - has-symbols "^1.0.1" + has-symbols "^1.0.3" get-pkg-repo@^4.0.0: version "4.2.1" @@ -1555,22 +1914,42 @@ get-stream@^4.1.0: dependencies: pump "^3.0.0" -get-stream@^5.0.0, get-stream@^5.1.0: +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: +get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +get-uri@3: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-3.0.2.tgz#f0ef1356faabc70e1f9404fa3b66b2ba9bfc725c" + integrity sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg== + dependencies: + "@tootallnate/once" "1" + data-uri-to-buffer "3" + debug "4" + file-uri-to-path "2" + fs-extra "^8.1.0" + ftp "^0.3.10" + git-raw-commits@^2.0.8: - version "2.0.10" - resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.10.tgz#e2255ed9563b1c9c3ea6bd05806410290297bbc1" - integrity sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ== + version "2.0.11" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.11.tgz#bc3576638071d18655e1cc60d7f524920008d723" + integrity sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A== dependencies: dargs "^7.0.0" lodash "^4.17.15" @@ -1581,7 +1960,7 @@ git-raw-commits@^2.0.8: git-remote-origin-url@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" - integrity sha1-UoJlna4hBxRaERJhEq0yFuxfpl8= + integrity sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw== dependencies: gitconfiglocal "^1.0.0" pify "^2.3.0" @@ -1612,7 +1991,7 @@ git-url-parse@11.6.0: gitconfiglocal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" - integrity sha1-QdBF84UaXqiPA/JMocYXgRRGS5s= + integrity sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ== dependencies: ini "^1.3.2" @@ -1636,21 +2015,32 @@ glob@7.1.4: path-is-absolute "^1.0.0" glob@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^3.1.1" once "^1.3.0" path-is-absolute "^1.0.0" +glob@^8.0.0, glob@^8.0.1: + version "8.0.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" + integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + global-dirs@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" - integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= + integrity sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg== dependencies: ini "^1.3.4" @@ -1673,7 +2063,7 @@ global-modules@^1.0.0: global-prefix@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= + integrity sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg== dependencies: expand-tilde "^2.0.2" homedir-polyfill "^1.0.1" @@ -1681,33 +2071,34 @@ global-prefix@^1.0.1: is-windows "^1.0.1" which "^1.2.14" -globby@11.0.4: - version "11.0.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" - integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== +globby@13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.2.tgz#29047105582427ab6eca4f905200667b056da515" + integrity sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ== dependencies: - array-union "^2.1.0" dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" - slash "^3.0.0" - -got@11.8.2: - version "11.8.2" - resolved "https://registry.yarnpkg.com/got/-/got-11.8.2.tgz#7abb3959ea28c31f3576f1576c1effce23f33599" - integrity sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ== - dependencies: - "@sindresorhus/is" "^4.0.0" - "@szmarczak/http-timer" "^4.0.5" - "@types/cacheable-request" "^6.0.1" + fast-glob "^3.2.11" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^4.0.0" + +got@12.1.0: + version "12.1.0" + resolved "https://registry.yarnpkg.com/got/-/got-12.1.0.tgz#099f3815305c682be4fd6b0ee0726d8e4c6b0af4" + integrity sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig== + dependencies: + "@sindresorhus/is" "^4.6.0" + "@szmarczak/http-timer" "^5.0.1" + "@types/cacheable-request" "^6.0.2" "@types/responselike" "^1.0.0" - cacheable-lookup "^5.0.3" - cacheable-request "^7.0.1" + cacheable-lookup "^6.0.4" + cacheable-request "^7.0.2" decompress-response "^6.0.0" - http2-wrapper "^1.0.0-beta.5.2" - lowercase-keys "^2.0.0" - p-cancelable "^2.0.0" + form-data-encoder "1.7.1" + get-stream "^6.0.1" + http2-wrapper "^2.1.10" + lowercase-keys "^3.0.0" + p-cancelable "^3.0.0" responselike "^2.0.0" got@^9.6.0: @@ -1727,12 +2118,12 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.8" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" - integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== -handlebars@^4.7.6: +handlebars@^4.7.7: version "4.7.7" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== @@ -1749,25 +2140,39 @@ hard-rejection@^2.1.0: resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-flag@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-5.0.1.tgz#5483db2ae02a472d1d0691462fc587d1843cd940" - integrity sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA== +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" -has-symbols@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== +has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" has-yarn@^2.1.0: version "2.1.0" @@ -1794,9 +2199,9 @@ hosted-git-info@^2.1.4: integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== hosted-git-info@^4.0.0, hosted-git-info@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961" - integrity sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg== + version "4.1.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== dependencies: lru-cache "^6.0.0" @@ -1805,32 +2210,60 @@ http-cache-semantics@^4.0.0: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== -http2-wrapper@^1.0.0-beta.5.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" - integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-proxy-agent@^4.0.0, http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + +http2-wrapper@^2.1.10: + version "2.1.11" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.1.11.tgz#d7c980c7ffb85be3859b6a96c800b2951ae257ef" + integrity sha512-aNAk5JzLturWEUiuhAN73Jcbq96R7rTitAoXV54FYMatvihnpD2+6PUgU4ce3D/m5VDbw+F5CsyKSF176ptitQ== dependencies: quick-lru "^5.1.1" - resolve-alpn "^1.0.0" + resolve-alpn "^1.2.0" -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== +https-proxy-agent@5, https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -iconv-lite@^0.4.24: +human-signals@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" + integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== + +iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" -ieee754@^1.1.13: +ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -1838,19 +2271,12 @@ ieee754@^1.1.13: ignore-by-default@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" - integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= + integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== -ignore@^5.0.0, ignore@^5.1.4: - version "5.1.9" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.9.tgz#9ec1a5cbe8e1446ec60d4420060d43aa6e7382fb" - integrity sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ== - -import-cwd@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-3.0.0.tgz#20845547718015126ea9b3676b7592fb8bd4cf92" - integrity sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg== - dependencies: - import-from "^3.0.0" +ignore@^5.0.0, ignore@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" + integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" @@ -1860,44 +2286,42 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" -import-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-3.0.0.tgz#055cfec38cd5a27d8057ca51376d7d3bf0891966" - integrity sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ== - dependencies: - resolve-from "^5.0.0" - import-lazy@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= + integrity sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A== -import-meta-resolve@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-1.1.1.tgz#244fd542fd1fae73550d4f8b3cde3bba1d7b2b18" - integrity sha512-JiTuIvVyPaUg11eTrNDx5bgQ/yMKMZffc7YSjvQeSMXy58DO2SQ8BtAf3xteZvmzvjYh14wnqNjL8XVeDy2o9A== +import-meta-resolve@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-2.0.3.tgz#117f3dc9a6415e82c32530545e1cf91be5c0a5d1" + integrity sha512-fpAppnBpZ3ymQ/dPP97TNsco1HB5+V9SYJ3chY50PP8xn4U/w+Y6ovWBmTImB/prmGsTjzPh8pQYY+EVBlr9mw== dependencies: - builtins "^4.0.0" + builtins "^5.0.0" imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indent-string@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== +infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -1907,11 +2331,16 @@ ini@2.0.0: resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== -ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: +ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== +ini@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-3.0.0.tgz#2f6de95006923aa75feed8894f5686165adc08f1" + integrity sha512-TxYQaeNW/N8ymDvwAxPyRbhMBtnEwuvaTYpOQkFx1nSeusgezHniEc/l35Vo4iCq/mMiTJbpD7oYxN98hFlfmw== + inquirer@6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" @@ -1931,48 +2360,65 @@ inquirer@6.5.2: strip-ansi "^5.1.0" through "^2.3.6" -inquirer@8.1.5: - version "8.1.5" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.1.5.tgz#2dc5159203c826d654915b5fe6990fd17f54a150" - integrity sha512-G6/9xUqmt/r+UvufSyrPpt84NYwhKZ9jLsgMbQzlx804XErNupor8WQdBnBRrXmBfTPpuwf1sV+ss2ovjgdXIg== +inquirer@9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-9.0.0.tgz#8b0cc9f202bfa3edfc7fc93f389f9e57ecc45eed" + integrity sha512-eYTDdTYr/YPwRenOzLZTvaJUDXDW8GQgxvzBppuXLj/kauTRLfV8bCPVbGh2staP7edrqL+rGwjaOa+JVxBWsg== dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.1" - cli-cursor "^3.1.0" - cli-width "^3.0.0" + ansi-escapes "^5.0.0" + chalk "^5.0.1" + cli-cursor "^4.0.0" + cli-width "^4.0.0" external-editor "^3.0.3" - figures "^3.0.0" + figures "^4.0.1" lodash "^4.17.21" mute-stream "0.0.8" - ora "^5.4.1" + ora "^6.1.0" run-async "^2.4.0" - rxjs "^7.2.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" + rxjs "^7.5.5" + string-width "^5.1.2" + strip-ansi "^7.0.1" through "^2.3.6" + wrap-ansi "^8.0.1" + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" interpret@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== -is-alphabetical@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz#01072053ea7c1036df3c7d19a6daaec7f19e789b" - integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ== +ip@^1.1.5: + version "1.1.8" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" + integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== -is-alphanumerical@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz#7c03fbe96e3e931113e57f964b0a368cc2dfd875" - integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw== +is-arguments@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== dependencies: - is-alphabetical "^2.0.0" - is-decimal "^2.0.0" + call-bind "^1.0.2" + has-tostringtag "^1.0.0" is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" is-binary-path@~2.1.0: version "2.1.0" @@ -1981,17 +2427,30 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + is-buffer@^2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-ci@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz#c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994" - integrity sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ== +is-callable@^1.1.4, is-callable@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== + +is-ci@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" + integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== dependencies: - ci-info "^3.1.1" + ci-info "^3.2.0" is-ci@^2.0.0: version "2.0.0" @@ -2000,19 +2459,21 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-core-module@^2.2.0, is-core-module@^2.5.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" - integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== +is-core-module@^2.5.0, is-core-module@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" + integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== dependencies: has "^1.0.3" -is-decimal@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-2.0.1.tgz#9469d2dc190d0214fd87d78b78caecc0cc14eef7" - integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A== +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" -is-docker@^2.0.0: +is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== @@ -2020,28 +2481,23 @@ is-docker@^2.0.0: is-empty@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/is-empty/-/is-empty-1.2.0.tgz#de9bb5b278738a05a0b09a57e1fb4d4a341a9f6b" - integrity sha1-3pu1snhzigWgsJpX4ftNSjQan2s= + integrity sha512-F2FnH/otLNJv0J6wc73A5Xo7oHLNnqplYqZhUu01tD54DIPvxIRSTSLkrUB/M0nHO4vo1O9PDfN4KoTxCzLh/w== is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-fullwidth-code-point@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" - integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== - is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" @@ -2049,11 +2505,6 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -is-hexadecimal@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" - integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== - is-installed-globally@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" @@ -2062,16 +2513,33 @@ is-installed-globally@^0.4.0: global-dirs "^3.0.0" is-path-inside "^3.0.2" -is-interactive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" - integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== +is-interactive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-2.0.0.tgz#40c57614593826da1100ade6059778d597f16e90" + integrity sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ== + +is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== is-npm@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" @@ -2090,58 +2558,104 @@ is-path-inside@^3.0.2: is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== is-plain-obj@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.0.0.tgz#06c0999fd7574edf5a906ba5644ad0feb3a84d22" - integrity sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw== + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== is-plain-object@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + is-ssh@^1.3.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.3.3.tgz#7f133285ccd7f2c2c7fc897b771b53d95a2b2c7e" - integrity sha512-NKzJmQzJfEEma3w5cJNcUMxoXfDjz0Zj0eyCalHn2E6VOwlzjZo0yuO2fcBSf8zhFuVCL/82/r5gRcoi6aEPVQ== + version "1.4.0" + resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" + integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ== dependencies: - protocols "^1.1.0" + protocols "^2.0.1" is-stream@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + is-text-path@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" - integrity sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4= + integrity sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w== dependencies: text-extensions "^1.0.0" is-typedarray@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== +is-unicode-supported@^1.1.0, is-unicode-supported@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.2.0.tgz#f4f54f34d8ebc84a46b93559a036763b6d3e1014" + integrity sha512-wH+U77omcRzevfIG8dDhTS0V9zZyweakfD01FULl97+0EHiJTTZtJqxPSkIIo/SDPv/i07k/C9jAPY+jwLLeUQ== is-utf8@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" is-windows@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== -is-wsl@^2.1.1: +is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== @@ -2153,34 +2667,50 @@ is-yarn-global@^0.3.0: resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +iterate-iterator@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/iterate-iterator/-/iterate-iterator-1.0.2.tgz#551b804c9eaa15b847ea6a7cdc2f5bf1ec150f91" + integrity sha512-t91HubM4ZDQ70M9wqp+pcNpu8OyJ9UAtXntT/Bcsvp5tZMnz9vRa+IunKXeI8AnfZMTv0jNuVEmGeLSMjVvfPw== + +iterate-value@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/iterate-value/-/iterate-value-1.0.2.tgz#935115bd37d006a52046535ebc8d07e9c9337f57" + integrity sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ== + dependencies: + es-get-iterator "^1.0.2" + iterate-iterator "^1.0.1" js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - json-buffer@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== -json-buffer@3.0.1: +json-buffer@3.0.1, json-buffer@~3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== @@ -2190,34 +2720,37 @@ json-parse-better-errors@^1.0.1: resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== -json-parse-even-better-errors@^2.3.0: +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + json-stringify-safe@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== json5@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" + version "2.2.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" + integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== optionalDependencies: graceful-fs "^4.1.6" jsonparse@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== keyv@^3.0.0: version "3.1.0" @@ -2227,10 +2760,11 @@ keyv@^3.0.0: json-buffer "3.0.0" keyv@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.4.tgz#f040b236ea2b06ed15ed86fbef8407e1a1c8e376" - integrity sha512-vqNHbAc8BBsxk+7QBYLW0Y219rWcClspR6WSeoHYKG5mnsSoOH+BL1pWq02DDCVdvvuUny5rkBlzMRzoqc+GIg== + version "4.3.2" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.3.2.tgz#e839df676a0c7ee594c8835e7c1c83742558e5c2" + integrity sha512-kn8WmodVBe12lmHpA6W8OY7SNh6wVR+Z+wZESF4iF5FCazaVXGWOtnbnvX0tMQ1bO+/TmOD9LziuYMvrIIs0xw== dependencies: + compress-brotli "^1.3.8" json-buffer "3.0.1" kind-of@^6.0.3: @@ -2239,9 +2773,9 @@ kind-of@^6.0.3: integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== kleur@^4.0.3: - version "4.1.4" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d" - integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== + version "4.1.5" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== latest-version@^5.1.0: version "5.1.0" @@ -2250,54 +2784,50 @@ latest-version@^5.1.0: dependencies: package-json "^6.3.0" -libnpmconfig@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/libnpmconfig/-/libnpmconfig-1.2.1.tgz#c0c2f793a74e67d4825e5039e7a02a0044dfcbc0" - integrity sha512-9esX8rTQAHqarx6qeZqmGQKBNZR5OIbl/Ayr0qQDy3oXja2iFVQQI81R6GZ2a02bSNZ9p3YOGX1O6HHCb1X7kA== +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== dependencies: - figgy-pudding "^3.5.1" - find-up "^3.0.0" - ini "^1.3.5" + prelude-ls "~1.1.2" + type-check "~0.3.2" lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +lines-and-columns@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-2.0.3.tgz#b2f0badedb556b747020ab8ea7f0373e22efac1b" + integrity sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w== load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== dependencies: graceful-fs "^4.1.2" parse-json "^4.0.0" pify "^3.0.0" strip-bom "^3.0.0" -load-plugin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/load-plugin/-/load-plugin-4.0.1.tgz#9a239b0337064c9b8aac82b0c9f89b067db487c5" - integrity sha512-4kMi+mOSn/TR51pDo4tgxROHfBHXsrcyEYSGHcJ1o6TtRaP2PsRM5EwmYbj1uiLDvbfA/ohwuSWZJzqGiai8Dw== +load-plugin@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/load-plugin/-/load-plugin-5.0.0.tgz#e24f6a69ed905e6b31d4555b1a46603c11e9c1f0" + integrity sha512-jTz8tvC0BTMtof27lTSV5SAOnCRT0Z++k+S3QeQ5CrF8ZAS5L2nhi3euf4ZhJyDkds+nOQGyPcFqdQZ9s8ELkg== dependencies: - import-meta-resolve "^1.0.0" - libnpmconfig "^1.0.0" + "@npmcli/config" "^4.0.0" + import-meta-resolve "^2.0.0" locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== dependencies: p-locate "^2.0.0" path-exists "^3.0.0" -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -2305,33 +2835,28 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -lodash.get@^4: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= - lodash.ismatch@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" - integrity sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc= + integrity sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g== lodash.map@^4.5.1: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" - integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= + integrity sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q== lodash@4.17.21, lodash@^4.17.12, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== +log-symbols@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-5.1.0.tgz#a20e3b9a5f53fac6aeb8e2bb22c07cf2c8f16d93" + integrity sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA== dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" + chalk "^5.0.0" + is-unicode-supported "^1.1.0" longest-streak@^3.0.0: version "3.0.1" @@ -2341,7 +2866,7 @@ longest-streak@^3.0.0: longest@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-2.0.1.tgz#781e183296aa94f6d4d916dc335d0d17aefa23f8" - integrity sha1-eB4YMpaqlPbU2RbcM10NF676I/g= + integrity sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q== lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: version "1.0.1" @@ -2353,6 +2878,18 @@ lowercase-keys@^2.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== +lowercase-keys@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" + integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -2360,10 +2897,10 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -macos-release@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.5.0.tgz#067c2c88b5f3fb3c56a375b2ec93826220fa1ff2" - integrity sha512-EIgv+QZ9r+814gjJj0Bt5vSLJLzswGmSUbUpbi9AIr/fsN2IWFBl2NucV9PAiek+U1STK468tEkxmVYUtuAN3g== +macos-release@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-3.1.0.tgz#6165bb0736ae567ed6649e36ce6a24d87cbb7aca" + integrity sha512-/M/R0gCDgM+Cv1IuBG1XGdfTFnMEG6PZeT+KGWHO/OG+imqmaD9CH5vHBTycEM3+Kc4uG2Il+tFAuUWLqQOeUA== make-dir@^3.0.0: version "3.1.0" @@ -2372,7 +2909,7 @@ make-dir@^3.0.0: dependencies: semver "^6.0.0" -make-error@^1, make-error@^1.1.1: +make-error@^1.1.1: version "1.3.6" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== @@ -2380,7 +2917,7 @@ make-error@^1, make-error@^1.1.1: map-obj@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== map-obj@^4.0.0: version "4.3.0" @@ -2388,12 +2925,13 @@ map-obj@^4.0.0: integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== mdast-util-from-markdown@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.1.0.tgz#534e75b4d4ef93e8aee3f51aba0a7592849e4b32" - integrity sha512-Mex7IIeIKRpGYNNywpxTfPhfFBTxBL5IVacPMU6GjYF+EkIvy++19cBgxVFyHVd2JpC/chG2IKGqZLffoo7Q1g== + version "1.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz#84df2924ccc6c995dec1e2368b2b208ad0a76268" + integrity sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q== dependencies: "@types/mdast" "^3.0.0" "@types/unist" "^2.0.0" + decode-named-character-reference "^1.0.0" mdast-util-to-string "^3.1.0" micromark "^3.0.0" micromark-util-decode-numeric-character-reference "^1.0.0" @@ -2401,14 +2939,13 @@ mdast-util-from-markdown@^1.0.0: micromark-util-normalize-identifier "^1.0.0" micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.0" - parse-entities "^3.0.0" unist-util-stringify-position "^3.0.0" uvu "^0.5.0" mdast-util-to-markdown@^1.0.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.2.4.tgz#f67173bb95526a4d93454021aa4602f165ad3858" - integrity sha512-Wive3NvrNS4OY5yYKBADdK1QSlbJUZyZ2ssanITUzNQ7sxMfBANTVjLrAA9BFXshaeG9G77xpOK/z+TTret5Hg== + version "1.3.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.3.0.tgz#38b6cdc8dc417de642a469c4fc2abdf8c931bd1e" + integrity sha512-6tUSs4r+KK4JGTTiQ7FfHmVOaDrLQJPmpjD6wPMlHGUVXoG9Vjc3jIeP+uyBWRf8clwB2blM+W7+KrlMYQnftA== dependencies: "@types/mdast" "^3.0.0" "@types/unist" "^2.0.0" @@ -2445,21 +2982,22 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.3.0: +merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -merge@^2.1.0: +merge@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/merge/-/merge-2.1.1.tgz#59ef4bf7e0b3e879186436e8481c06a6c162ca98" integrity sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w== micromark-core-commonmark@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.0.4.tgz#fee459d29c5912a32f059c3a9836d4318ac85f30" - integrity sha512-HAtoZisp1M/sQFuw2zoUKGo1pMKod7GSvdM6B2oBU0U2CEN5/C6Tmydmi1rmvEieEhGQsjMyiiSoYgxISNxGFA== + version "1.0.6" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz#edff4c72e5993d93724a3c206970f5a15b0585ad" + integrity sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA== dependencies: + decode-named-character-reference "^1.0.0" micromark-factory-destination "^1.0.0" micromark-factory-label "^1.0.0" micromark-factory-space "^1.0.0" @@ -2474,7 +3012,6 @@ micromark-core-commonmark@^1.0.1: micromark-util-subtokenize "^1.0.0" micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.1" - parse-entities "^3.0.0" uvu "^0.5.0" micromark-factory-destination@^1.0.0: @@ -2565,24 +3102,24 @@ micromark-util-decode-numeric-character-reference@^1.0.0: micromark-util-symbol "^1.0.0" micromark-util-decode-string@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.0.1.tgz#fa779dcef7f2dc2c9e4b759abd85e553674eea4f" - integrity sha512-Wf3H6jLaO3iIlHEvblESXaKAr72nK7JtBbLLICPwuZc3eJkMcp4j8rJ5Xv1VbQWMCWWDvKUbVUbE2MfQNznwTA== + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz#942252ab7a76dec2dbf089cc32505ee2bc3acf02" + integrity sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q== dependencies: + decode-named-character-reference "^1.0.0" micromark-util-character "^1.0.0" micromark-util-decode-numeric-character-reference "^1.0.0" micromark-util-symbol "^1.0.0" - parse-entities "^3.0.0" micromark-util-encode@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.0.0.tgz#c409ecf751a28aa9564b599db35640fccec4c068" - integrity sha512-cJpFVM768h6zkd8qJ1LNRrITfY4gwFt+tziPcIf71Ui8yFzY9wG3snZQqiWVq93PG4Sw6YOtcNiKJfVIs9qfGg== + version "1.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz#2c1c22d3800870ad770ece5686ebca5920353383" + integrity sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA== micromark-util-html-tag-name@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.0.0.tgz#75737e92fef50af0c6212bd309bc5cb8dbd489ed" - integrity sha512-NenEKIshW2ZI/ERv9HtFNsrn3llSPZtY337LID/24WeLqMzeZhBEE6BQ0vS2ZBjshm5n40chKtJ3qjAbVV8S0g== + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz#eb227118befd51f48858e879b7a419fc0df20497" + integrity sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA== micromark-util-normalize-identifier@^1.0.0: version "1.0.0" @@ -2618,22 +3155,23 @@ micromark-util-subtokenize@^1.0.0: uvu "^0.5.0" micromark-util-symbol@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.0.0.tgz#91cdbcc9b2a827c0129a177d36241bcd3ccaa34d" - integrity sha512-NZA01jHRNCt4KlOROn8/bGi6vvpEmlXld7EHcRH+aYWUfL3Wc8JLUNNlqUMKa0hhz6GrpUWsHtzPmKof57v0gQ== + version "1.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz#b90344db62042ce454f351cf0bebcc0a6da4920e" + integrity sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ== micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.0.1.tgz#8bb8a092d93d326bd29fe29602799f2d0d922fd4" - integrity sha512-UT0ylWEEy80RFYzK9pEaugTqaxoD/j0Y9WhHpSyitxd99zjoQz7JJ+iKuhPAgOW2MiPSUAx+c09dcqokeyaROA== + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.0.2.tgz#f4220fdb319205812f99c40f8c87a9be83eded20" + integrity sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w== micromark@^3.0.0: - version "3.0.7" - resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.0.7.tgz#036dfc974ddf8e6e773b197839c5671d92d0928c" - integrity sha512-67ipZ2CzQVsDyH1kqNLh7dLwe5QMPJwjFBGppW7JCLByaSc6ZufV0ywPOxt13MIDAzzmj3wctDL6Ov5w0fOHXw== + version "3.0.10" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.0.10.tgz#1eac156f0399d42736458a14b0ca2d86190b457c" + integrity sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg== dependencies: "@types/debug" "^4.0.0" debug "^4.0.0" + decode-named-character-reference "^1.0.0" micromark-core-commonmark "^1.0.1" micromark-factory-space "^1.0.0" micromark-util-character "^1.0.0" @@ -2647,40 +3185,27 @@ micromark@^3.0.0: micromark-util-subtokenize "^1.0.0" micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.1" - parse-entities "^3.0.0" uvu "^0.5.0" micromatch@^4.0.2, micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: - braces "^3.0.1" - picomatch "^2.2.3" + braces "^3.0.2" + picomatch "^2.3.1" -mime-db@1.49.0: - version "1.49.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed" - integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-db@1.51.0: - version "1.51.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" - integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== - -mime-types@2.1.32: - version "2.1.32" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5" - integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A== - dependencies: - mime-db "1.49.0" - -mime-types@^2.1.12: - version "2.1.34" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" - integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== +mime-types@2.1.35, mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: - mime-db "1.51.0" + mime-db "1.52.0" mimic-fn@^1.0.0: version "1.2.0" @@ -2692,6 +3217,11 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + mimic-response@^1.0.0, mimic-response@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" @@ -2707,13 +3237,20 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== +minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" +minimatch@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" + integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== + dependencies: + brace-expansion "^2.0.1" + minimist-options@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -2723,11 +3260,30 @@ minimist-options@4.1.0: is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@1.2.5, minimist@^1.0.0, minimist@^1.2.0, minimist@^1.2.5: +minimist@1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== +minimist@^1.0.0, minimist@^1.2.0, minimist@^1.2.5: + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + +mkdirp-infer-owner@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz#55d3b368e7d89065c38f32fd38e638f0ab61d316" + integrity sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw== + dependencies: + chownr "^2.0.0" + infer-owner "^1.0.4" + mkdirp "^1.0.3" + +mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + modify-values@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" @@ -2751,7 +3307,7 @@ ms@^2.1.1: mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= + integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== mute-stream@0.0.8: version "0.0.8" @@ -2763,29 +3319,29 @@ neo-async@^2.6.0: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -new-github-release-url@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/new-github-release-url/-/new-github-release-url-1.0.0.tgz#493847e6fecce39c247e9d89929be773d2e7f777" - integrity sha512-dle7yf655IMjyFUqn6Nxkb18r4AOAkzRcgcZv6WZ0IqrOH4QCEZ8Sm6I7XX21zvHdBeeMeTkhR9qT2Z0EJDx6A== +netmask@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" + integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== + +new-github-release-url@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/new-github-release-url/-/new-github-release-url-2.0.0.tgz#335189b91f52bbb9569042a7485900a205a0500b" + integrity sha512-NHDDGYudnvRutt/VhKFlX26IotXe1w0cmkDm6JGquh5bz/bDTw0LufSmH/GxTjEdpHEO+bVKFTwdrcGa/9XlKQ== dependencies: - type-fest "^0.4.1" + type-fest "^2.5.1" -node-fetch@^2.6.1: - version "2.6.6" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.6.tgz#1751a7c01834e8e1697758732e9efb6eeadfaf89" - integrity sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA== +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== dependencies: whatwg-url "^5.0.0" -node-modules-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" - integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= - -nodemon@^2.0.15: - version "2.0.15" - resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.15.tgz#504516ce3b43d9dc9a955ccd9ec57550a31a8d4e" - integrity sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA== +nodemon@^2.0.18: + version "2.0.18" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.18.tgz#0f5a3aa7b4587f2626e6f01369deba89cb0462a2" + integrity sha512-uAvrKipi2zAz8E7nkSz4qW4F4zd5fs2wNGsTx+xXlP8KXqd9ucE0vY9wankOsPboeDyuUGN9vsXGV1pLn80l/A== dependencies: chokidar "^3.5.2" debug "^3.2.7" @@ -2798,10 +3354,17 @@ nodemon@^2.0.15: undefsafe "^2.0.5" update-notifier "^5.1.0" +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + dependencies: + abbrev "1" + nopt@~1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" - integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= + integrity sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg== dependencies: abbrev "1" @@ -2840,29 +3403,56 @@ normalize-url@^6.0.1, normalize-url@^6.1.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== -npm-run-path@^4.0.0, npm-run-path@^4.0.1: +npm-normalize-package-bin@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" + integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== + +npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" -object-inspect@^1.9.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" - integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== +npm-run-path@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" + integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== + dependencies: + path-key "^4.0.0" + +object-inspect@^1.12.0, object-inspect@^1.9.0: + version "1.12.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" onetime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== dependencies: mimic-fn "^1.0.0" @@ -2873,51 +3463,86 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -open@7.4.2: - version "7.4.2" - resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" - integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== dependencies: - is-docker "^2.0.0" - is-wsl "^2.1.1" + mimic-fn "^4.0.0" -ora@5.4.1, ora@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" - integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== +open@8.4.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" + integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== dependencies: - bl "^4.1.0" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-spinners "^2.5.0" - is-interactive "^1.0.0" - is-unicode-supported "^0.1.0" - log-symbols "^4.1.0" - strip-ansi "^6.0.0" + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +ora@6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-6.1.0.tgz#86aa07058c4e9fb91444412d103b0d7e01aca973" + integrity sha512-CxEP6845hLK+NHFWZ+LplGO4zfw4QSfxTlqMfvlJ988GoiUeZDMzCvqsZkFHv69sPICmJH1MDxZoQFOKXerAVw== + dependencies: + bl "^5.0.0" + chalk "^5.0.0" + cli-cursor "^4.0.0" + cli-spinners "^2.6.1" + is-interactive "^2.0.0" + is-unicode-supported "^1.1.0" + log-symbols "^5.1.0" + strip-ansi "^7.0.1" wcwidth "^1.0.1" -os-name@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/os-name/-/os-name-4.0.1.tgz#32cee7823de85a8897647ba4d76db46bf845e555" - integrity sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw== +ora@^6.1.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-6.1.1.tgz#71e729509b4a782f62e17aba01ae07c8bdb77763" + integrity sha512-MTvBeGEswwM6CjyuidTH4nKdmG8YudnsZZRMdpj4YFfm7qDnvOSTKU2biA3dqdnL5m5CT3R9bWk+M3A8fqtEZw== + dependencies: + bl "^5.0.0" + chalk "^5.0.0" + cli-cursor "^4.0.0" + cli-spinners "^2.6.1" + is-interactive "^2.0.0" + is-unicode-supported "^1.1.0" + log-symbols "^5.1.0" + strip-ansi "^7.0.1" + wcwidth "^1.0.1" + +os-name@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/os-name/-/os-name-5.0.1.tgz#acb4f996ec5bd86c41755fef9d6d31905c47172e" + integrity sha512-0EQpaHUHq7olp2/YFUr+0vZi9tMpDTblHGz+Ch5RntKxiRXOAY0JOz1UlxhSjMSksHvkm13eD6elJj3M8Ht/kw== dependencies: - macos-release "^2.5.0" - windows-release "^4.0.0" + macos-release "^3.0.1" + windows-release "^5.0.1" os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== p-cancelable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== -p-cancelable@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" - integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== +p-cancelable@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" + integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== p-limit@^1.1.0: version "1.3.0" @@ -2926,7 +3551,7 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" -p-limit@^2.0.0, p-limit@^2.2.0: +p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== @@ -2936,17 +3561,10 @@ p-limit@^2.0.0, p-limit@^2.2.0: p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== dependencies: p-limit "^1.1.0" -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -2957,13 +3575,37 @@ p-locate@^4.1.0: p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +pac-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz#b718f76475a6a5415c2efbe256c1c971c84f635e" + integrity sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + get-uri "3" + http-proxy-agent "^4.0.1" + https-proxy-agent "5" + pac-resolver "^5.0.0" + raw-body "^2.2.0" + socks-proxy-agent "5" + +pac-resolver@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-5.0.1.tgz#c91efa3a9af9f669104fa2f51102839d01cde8e7" + integrity sha512-cy7u00ko2KVgBAjuhevqpPeHIkCIqPe1v24cydhWjmeuzaBfmUWFCZJ1iAh5TuVzVZoUzXIW7K8sMYOZ84uZ9Q== + dependencies: + degenerator "^3.0.2" + ip "^1.1.5" + netmask "^2.0.2" + package-json@^6.3.0: version "6.5.0" resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" @@ -2981,20 +3623,15 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-entities@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-3.1.0.tgz#82b04f2c26f2b3604e4df1972beb231f20d207e2" - integrity sha512-xf2yeHbsfg1vJySsQelVwgtI/67eAndVU05skrr/XN6KFMoVVA95BYrW8y78OfW4jqcuHwB7tlMlLkvbq4WbHQ== +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== dependencies: - "@types/unist" "^2.0.0" - character-entities "^2.0.0" - character-entities-legacy "^3.0.0" - character-reference-invalid "^2.0.0" - is-alphanumerical "^2.0.0" - is-decimal "^2.0.0" - is-hexadecimal "^2.0.0" + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" -parse-json@5.2.0, parse-json@^5.0.0: +parse-json@^5.0.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== @@ -3004,23 +3641,25 @@ parse-json@5.2.0, parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= +parse-json@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-6.0.2.tgz#6bf79c201351cc12d5d66eba48d5a097c13dc200" + integrity sha512-SA5aMiaIjXkAiBrW/yPgLgQAQg42f7K3ACO+2l/zOvtQBwX58DMUsFJXelW2fx3yMBmWOVkR6j1MGsdSbCA4UA== dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" + "@babel/code-frame" "^7.16.0" + error-ex "^1.3.2" + json-parse-even-better-errors "^2.3.1" + lines-and-columns "^2.0.2" parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q== -parse-path@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.3.tgz#82d81ec3e071dcc4ab49aa9f2c9c0b8966bb22bf" - integrity sha512-9Cepbp2asKnWTJ9x2kpw6Fe8y9JDbqwahGCTvklzd/cEq5C5JC59x2Xb0Kx+x0QZ8bvNquGO8/BWP0cwBHzSAA== +parse-path@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.4.tgz#4bf424e6b743fb080831f03b536af9fc43f0ffea" + integrity sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw== dependencies: is-ssh "^1.3.0" protocols "^1.4.0" @@ -3028,19 +3667,19 @@ parse-path@^4.0.0: query-string "^6.13.8" parse-url@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-6.0.0.tgz#f5dd262a7de9ec00914939220410b66cff09107d" - integrity sha512-cYyojeX7yIIwuJzledIHeLUBVJ6COVLeT4eF+2P6aKVzwvgKQPndCBv3+yQ7pcWjqToYwaligxzSYNNmGoMAvw== + version "6.0.2" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-6.0.2.tgz#4a30b057bfc452af64512dfb1a7755c103db3ea1" + integrity sha512-uCSjOvD3T+6B/sPWhR+QowAZcU/o4bjPrVBQBGFxcDF6J6FraCGIaDBsdoQawiaaAVdHvtqBe3w3vKlfBKySOQ== dependencies: is-ssh "^1.3.0" normalize-url "^6.1.0" - parse-path "^4.0.0" + parse-path "^4.0.4" protocols "^1.4.0" path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== path-exists@^4.0.0: version "4.0.0" @@ -3050,14 +3689,19 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6: +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + +path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -3074,51 +3718,82 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pirates@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" - integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== - dependencies: - node-modules-regexp "^1.0.0" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== -prepend-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-file/-/prepend-file-2.0.0.tgz#2d3256376a64ca3b5640153890a89cadbebaf1a9" - integrity sha512-U6on3jv5hQ+CNEO7gFn00PUlm3F/oXIQTMg6jpeQTQHLYSZl/Cxb4NpH44FA0By+maPXpfUaqmCoPUTu/Z3/8g== - dependencies: - path-exists "^4.0.0" - temp-write "^4.0.0" +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== prepend-http@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== + +proc-log@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-2.0.1.tgz#8f3f69a1f608de27878f91f5c688b225391cb685" + integrity sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw== process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -protocols@^1.1.0, protocols@^1.4.0: +promise.allsettled@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/promise.allsettled/-/promise.allsettled-1.0.5.tgz#2443f3d4b2aa8dfa560f6ac2aa6c4ea999d75f53" + integrity sha512-tVDqeZPoBC0SlzJHzWGZ2NKAguVq2oiYj7gbggbiTvH2itHohijTp7njOUA0aQ/nl+0lr/r6egmhoYu63UZ/pQ== + dependencies: + array.prototype.map "^1.0.4" + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + get-intrinsic "^1.1.1" + iterate-value "^1.0.2" + +protocols@^1.4.0: version "1.4.8" resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8" integrity sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg== +protocols@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" + integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== + +proxy-agent@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-5.0.0.tgz#d31405c10d6e8431fde96cba7a0c027ce01d633b" + integrity sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g== + dependencies: + agent-base "^6.0.0" + debug "4" + http-proxy-agent "^4.0.0" + https-proxy-agent "^5.0.0" + lru-cache "^5.1.1" + pac-proxy-agent "^5.0.0" + proxy-from-env "^1.0.0" + socks-proxy-agent "^5.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== + pstree.remy@^1.1.8: version "1.1.8" resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" @@ -3132,6 +3807,11 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + pupa@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" @@ -3142,12 +3822,12 @@ pupa@^2.1.1: q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== qs@^6.9.4: - version "6.10.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a" - integrity sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg== + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== dependencies: side-channel "^1.0.4" @@ -3176,7 +3856,17 @@ quick-lru@^5.1.1: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== -rc@^1.2.8: +raw-body@^2.2.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@1.2.8, rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -3186,10 +3876,18 @@ rc@^1.2.8: minimist "^1.2.0" strip-json-comments "~2.0.1" +read-package-json-fast@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz#323ca529630da82cb34b36cc0b996693c98c2b83" + integrity sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ== + dependencies: + json-parse-even-better-errors "^2.3.0" + npm-normalize-package-bin "^1.0.1" + read-pkg-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= + integrity sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw== dependencies: find-up "^2.0.0" read-pkg "^3.0.0" @@ -3206,7 +3904,7 @@ read-pkg-up@^7.0.1: read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= + integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== dependencies: load-json-file "^4.0.0" normalize-package-data "^2.3.2" @@ -3222,6 +3920,16 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" +readable-stream@1.1.x: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.4.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" @@ -3254,7 +3962,7 @@ readdirp@~3.6.0: rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== dependencies: resolve "^1.1.6" @@ -3266,12 +3974,21 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" +regexp.prototype.flags@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + functions-have-names "^1.2.2" + registry-auth-token@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" - integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== + version "4.2.2" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.2.tgz#f02d49c3668884612ca031419491a13539e21fac" + integrity sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg== dependencies: - rc "^1.2.8" + rc "1.2.8" registry-url@^5.0.0: version "5.1.0" @@ -3280,71 +3997,68 @@ registry-url@^5.0.0: dependencies: rc "^1.2.8" -release-it@^14.11.6: - version "14.11.6" - resolved "https://registry.yarnpkg.com/release-it/-/release-it-14.11.6.tgz#a285eaac25f9f3a6d47e688911e539af53a74446" - integrity sha512-6BNcuzFZHThBUBJ/xYw/bxZ+58CAwrwf1zgmjq2Ibl3nlDZbjphHG6iqxkJu7mZ8TIWs6NjloEAhqpjeXoN//Q== +release-it@^15.1.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/release-it/-/release-it-15.1.0.tgz#566d5915bf5672dd59a9c8267fbb255c4ad80d28" + integrity sha512-QAiyL8OfhDuEmcASBRZiZqf2fXZRvz6ieLx8Gw0McKvsePtkYnyIHFR0mYIrF5WuDvLVfRSBJfRRkU52B5jlKA== dependencies: "@iarna/toml" "2.2.5" - "@octokit/rest" "18.10.0" + "@octokit/rest" "18.12.0" async-retry "1.3.3" - chalk "4.1.2" + chalk "5.0.1" cosmiconfig "7.0.1" - debug "4.3.2" - deprecated-obj "2.0.0" - execa "5.1.1" + execa "6.1.0" form-data "4.0.0" git-url-parse "11.6.0" - globby "11.0.4" - got "11.8.2" - import-cwd "3.0.0" - inquirer "8.1.5" - is-ci "3.0.0" + globby "13.1.2" + got "12.1.0" + inquirer "9.0.0" + is-ci "3.0.1" lodash "4.17.21" - mime-types "2.1.32" - new-github-release-url "1.0.0" - open "7.4.2" - ora "5.4.1" - os-name "4.0.1" - parse-json "5.2.0" - semver "7.3.5" - shelljs "0.8.4" + mime-types "2.1.35" + new-github-release-url "2.0.0" + open "8.4.0" + ora "6.1.0" + os-name "5.0.1" + promise.allsettled "1.0.5" + proxy-agent "5.0.0" + semver "7.3.7" + shelljs "0.8.5" update-notifier "5.1.0" - url-join "4.0.1" - uuid "8.3.2" - yaml "1.10.2" - yargs-parser "20.2.9" + url-join "5.0.0" + wildcard-match "5.1.2" + yargs-parser "21.0.1" -remark-cli@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/remark-cli/-/remark-cli-10.0.0.tgz#3b0e20f2ad3909f35c7a6fb3f721c82f6ff5beac" - integrity sha512-Yc5kLsJ5vgiQJl6xMLLJHqPac6OSAC5DOqKQrtmzJxSdJby2Jgr+OpIAkWQYwvbNHEspNagyoQnuwK2UCWg73g== +remark-cli@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/remark-cli/-/remark-cli-11.0.0.tgz#302c15c5e73c0b422a6709f65adb74cac3b5eb53" + integrity sha512-8JEWwArXquRq1/In4Ftz7gSG9Scwb1ijT2/dEuBETW9omqhmMRxcfjZ3iKqrak3BnCJeZSXCdWEmPhFKC8+RUQ== dependencies: remark "^14.0.0" - unified-args "^9.0.0" + unified-args "^10.0.0" remark-parse@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.0.tgz#65e2b2b34d8581d36b97f12a2926bb2126961cb4" - integrity sha512-07ei47p2Xl7Bqbn9H2VYQYirnAFJPwdMuypdozWsSbnmrkgA2e2sZLZdnDNrrsxR4onmIzH/J6KXqKxCuqHtPQ== + version "10.0.1" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.1.tgz#6f60ae53edbf0cf38ea223fe643db64d112e0775" + integrity sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw== dependencies: "@types/mdast" "^3.0.0" mdast-util-from-markdown "^1.0.0" unified "^10.0.0" remark-stringify@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-10.0.1.tgz#9422dd20803892570a5e3d16801ffe081340ff06" - integrity sha512-380vOu9EHqRTDhI9RlPU2EKY1abUDEmxw9fW7pJ/8Jr1izk0UcdnZB30qiDDRYi6pGn5FnVf9Wd2iUeCWTqM7Q== + version "10.0.2" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-10.0.2.tgz#50414a6983f5008eb9e72eed05f980582d1f69d7" + integrity sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw== dependencies: "@types/mdast" "^3.0.0" mdast-util-to-markdown "^1.0.0" unified "^10.0.0" remark@^14.0.0: - version "14.0.1" - resolved "https://registry.yarnpkg.com/remark/-/remark-14.0.1.tgz#a97280d4f2a3010a7d81e6c292a310dcd5554d80" - integrity sha512-7zLG3u8EUjOGuaAS9gUNJPD2j+SqDqAFHv2g6WMpE5CU9rZ6e3IKDM12KHZ3x+YNje+NMAuN55yx8S5msGSx7Q== + version "14.0.2" + resolved "https://registry.yarnpkg.com/remark/-/remark-14.0.2.tgz#4a1833f7441a5c29e44b37bb1843fb820797b40f" + integrity sha512-A3ARm2V4BgiRXaUo5K0dRvJ1lbogrbXnhkJRmD0yw092/Yl0kOCZt1k9ZeElEwkZsWGsMumz6qL5MfNJH9nOBA== dependencies: "@types/mdast" "^3.0.0" remark-parse "^10.0.0" @@ -3354,9 +4068,14 @@ remark@^14.0.0: require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== -resolve-alpn@^1.0.0: +resolve-alpn@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== @@ -3364,7 +4083,7 @@ resolve-alpn@^1.0.0: resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= + integrity sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg== dependencies: expand-tilde "^2.0.0" global-modules "^1.0.0" @@ -3387,17 +4106,18 @@ resolve-global@^1.0.0: global-dirs "^0.1.1" resolve@^1.1.6, resolve@^1.10.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" responselike@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + integrity sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ== dependencies: lowercase-keys "^1.0.0" @@ -3411,15 +4131,15 @@ responselike@^2.0.0: restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== dependencies: onetime "^2.0.0" signal-exit "^3.0.2" -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== +restore-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" + integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== dependencies: onetime "^5.1.0" signal-exit "^3.0.2" @@ -3453,17 +4173,17 @@ rxjs@^6.4.0: dependencies: tslib "^1.9.0" -rxjs@^7.2.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.4.0.tgz#a12a44d7eebf016f5ff2441b87f28c9a51cebc68" - integrity sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w== +rxjs@^7.5.5: + version "7.5.5" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" + integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== dependencies: - tslib "~2.1.0" + tslib "^2.1.0" sade@^1.7.3: - version "1.7.4" - resolved "https://registry.yarnpkg.com/sade/-/sade-1.7.4.tgz#ea681e0c65d248d2095c90578c03ca0bb1b54691" - integrity sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA== + version "1.8.1" + resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" + integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== dependencies: mri "^1.1.0" @@ -3494,10 +4214,10 @@ semver-diff@^3.1.1: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@7.3.5, semver@^7.0.0, semver@^7.3.4: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== +semver@7.3.7, semver@^7.0.0, semver@^7.3.4, semver@^7.3.5: + version "7.3.7" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== dependencies: lru-cache "^6.0.0" @@ -3506,6 +4226,11 @@ semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -3518,10 +4243,10 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shelljs@0.8.4: - version "0.8.4" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2" - integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ== +shelljs@0.8.5: + version "0.8.5" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== dependencies: glob "^7.0.0" interpret "^1.0.0" @@ -3536,34 +4261,51 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.2, signal-exit@^3.0.3: - version "3.0.5" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f" - integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ== +signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== + +smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + +socks-proxy-agent@5, socks-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz#032fb583048a29ebffec2e6a73fca0761f48177e" + integrity sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ== + dependencies: + agent-base "^6.0.2" + debug "4" + socks "^2.3.3" + +socks@^2.3.3: + version "2.6.2" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.2.tgz#ec042d7960073d40d94268ff3bb727dc685f111a" + integrity sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA== + dependencies: + ip "^1.1.5" + smart-buffer "^4.2.0" -source-map-support@^0.5.17, source-map-support@~0.5.20: - version "0.5.20" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9" - integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw== +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.6.0, source-map@^0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@~0.7.2: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - spdx-correct@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" @@ -3586,9 +4328,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.10" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz#0d9becccde7003d6c658d487dd48a32f0bf3014b" - integrity sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA== + version "3.0.11" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" + integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== split-on-first@^1.0.0: version "1.1.0" @@ -3609,10 +4351,15 @@ split@^1.0.0: dependencies: through "2" +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + strict-uri-encode@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" - integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= + integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== string-width@^2.1.0: version "2.1.1" @@ -3631,15 +4378,33 @@ string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2 is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.0.1.tgz#0d8158335a6cfd8eb95da9b6b262ce314a036ffd" - integrity sha512-5ohWO/M4//8lErlUUtrFy3b11GtNOuMOU0ysKCDXFcfXuuvUXu95akgj/i8ofmaGdN0hCqyl6uu9i8dS/mQp5g== +string-width@^5.0.0, string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== dependencies: + eastasianwidth "^0.2.0" emoji-regex "^9.2.2" - is-fullwidth-code-point "^4.0.0" strip-ansi "^7.0.1" +string.prototype.trimend@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" + integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + +string.prototype.trimstart@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" + integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -3647,6 +4412,11 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -3657,7 +4427,7 @@ string_decoder@~1.1.1: strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== dependencies: ansi-regex "^3.0.0" @@ -3690,13 +4460,18 @@ strip-bom@4.0.0: strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== strip-final-newline@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + strip-indent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" @@ -3712,7 +4487,7 @@ strip-json-comments@3.0.1: strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== supports-color@^5.3.0, supports-color@^5.5.0: version "5.5.0" @@ -3729,35 +4504,23 @@ supports-color@^7.1.0: has-flag "^4.0.0" supports-color@^9.0.0: - version "9.0.2" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.0.2.tgz#50f082888e4b0a4e2ccd2d0b4f9ef4efcd332485" - integrity sha512-ii6tc8ImGFrgMPYq7RVAMKkhPo9vk8uA+D3oKbJq/3Pk2YSMv1+9dUAesa9UxMbxBTvxwKTQffBahNVNxEvM8Q== - dependencies: - has-flag "^5.0.0" + version "9.2.2" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.2.2.tgz#502acaf82f2b7ee78eb7c83dcac0f89694e5a7bb" + integrity sha512-XC6g/Kgux+rJXmwokjm9ECpD6k/smUoS5LKlUCcsYr4IY3rW0XyAympon2RmxGrlnZURMpg5T18gWDP9CsHXFA== -temp-dir@^1.0.0: +supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" - integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= - -temp-write@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/temp-write/-/temp-write-4.0.0.tgz#cd2e0825fc826ae72d201dc26eef3bf7e6fc9320" - integrity sha512-HIeWmj77uOOHb0QX7siN3OtwV3CTntquin6TNVg6SHOqCP3hYKmox90eeFOGaY1MqJ9WYDDjkyZrW6qS5AWpbw== - dependencies: - graceful-fs "^4.1.15" - is-stream "^2.0.0" - make-dir "^3.0.0" - temp-dir "^1.0.0" - uuid "^3.3.2" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -terser@^5.9.0: - version "5.9.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.9.0.tgz#47d6e629a522963240f2b55fcaa3c99083d2c351" - integrity sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ== +terser@^5.14.1: + version "5.14.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.1.tgz#7c95eec36436cb11cf1902cc79ac564741d19eca" + integrity sha512-+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ== dependencies: + "@jridgewell/source-map" "^0.3.2" + acorn "^8.5.0" commander "^2.20.0" - source-map "~0.7.2" source-map-support "~0.5.20" text-extensions@^1.0.0: @@ -3768,7 +4531,7 @@ text-extensions@^1.0.0: text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== through2@^2.0.0: version "2.0.5" @@ -3788,7 +4551,7 @@ through2@^4.0.0: through@2, "through@>=2.2.7 <3", through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== tmp@^0.0.33: version "0.0.33" @@ -3810,17 +4573,17 @@ to-regex-range@^5.0.1: is-number "^7.0.0" to-vfile@^7.0.0: - version "7.2.2" - resolved "https://registry.yarnpkg.com/to-vfile/-/to-vfile-7.2.2.tgz#5976568397ef664bc8df210676d082478822afbf" - integrity sha512-7WL+coet3qyaYb5vrVrfLtOUHgNv9E1D5SIsyVKmHKcgZefy77WMQRk7FByqGKNInoHOlY6xkTGymo29AwjUKg== + version "7.2.3" + resolved "https://registry.yarnpkg.com/to-vfile/-/to-vfile-7.2.3.tgz#4e54ad10878901703f1a956a33ba4f131c31eef7" + integrity sha512-QO0A9aE6Z/YkmQadJ0syxpmNXtcQiu0qAtCKYKD5cS3EfgfFTAXfgLX6AOaBrSfWSek5nfsMf3gBZ9KGVFcLuw== dependencies: is-buffer "^2.0.0" vfile "^5.1.0" -totalist@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/totalist/-/totalist-2.0.0.tgz#db6f1e19c0fa63e71339bbb8fba89653c18c7eec" - integrity sha512-+Y17F0YzxfACxTyjfhnJQEe7afPA0GSpYlFkl2VFMxYP7jshQf9gXV7cH47EfToBumFThfKBvfAcoUn6fdNeRQ== +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== touch@^3.1.0: version "3.1.0" @@ -3832,7 +4595,7 @@ touch@^3.1.0: tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== trim-newlines@^3.0.0: version "3.0.1" @@ -3840,20 +4603,27 @@ trim-newlines@^3.0.0: integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== trough@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/trough/-/trough-2.0.2.tgz#94a3aa9d5ce379fc561f6244905b3f36b7458d96" - integrity sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w== - -ts-node@^9: - version "9.1.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" - integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== - dependencies: + version "2.1.0" + resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876" + integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== + +ts-node@^10.8.1: + version "10.8.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.8.1.tgz#ea2bd3459011b52699d7e88daa55a45a1af4f066" + integrity sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" arg "^4.1.0" create-require "^1.1.0" diff "^4.0.1" make-error "^1.1.1" - source-map-support "^0.5.17" + v8-compile-cache-lib "^3.0.1" yn "3.1.1" tsc-prog@^2.2.1: @@ -3861,25 +4631,27 @@ tsc-prog@^2.2.1: resolved "https://registry.yarnpkg.com/tsc-prog/-/tsc-prog-2.2.1.tgz#7ea892e1628f1ef93ae6f4d0a97c8a9518e4b408" integrity sha512-whYQUQjB+wm9c2FoikigaBVnXesgAjIYXgHrbzlK+Etg9L657a92MSUcbi5hrD/YBaRmjuDcTIQVZmo/f74OZQ== -tsc@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/tsc/-/tsc-2.0.3.tgz#037fe579e3bd67a5cbdaa604b43c6c1991b04bef" - integrity sha512-SN+9zBUtrpUcOpaUO7GjkEHgWtf22c7FKbKCA4e858eEM7Qz86rRDpgOU2lBIDf0fLCsEg65ms899UMUIB2+Ow== +tsc@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/tsc/-/tsc-2.0.4.tgz#5f6499146abea5dca4420b451fa4f2f9345238f5" + integrity sha512-fzoSieZI5KKJVBYGvwbVZs/J5za84f2lSTLPYf6AGiIf43tZ3GNrI1QzTLcjtyDDP4aLxd46RTZq1nQxe7+k5Q== tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== +tslib@^2.0.1, tslib@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== -tslib@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" - integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== + dependencies: + prelude-ls "~1.1.2" type-fest@^0.18.0: version "0.18.1" @@ -3891,16 +4663,6 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.4.1.tgz#8bdf77743385d8a4f13ba95f610f5ccd68c728f8" - integrity sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw== - type-fest@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" @@ -3911,6 +4673,16 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== +type-fest@^1.0.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" + integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== + +type-fest@^2.5.1: + version "2.14.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.14.0.tgz#f990e19169517d689c98e16d128b231022b27e12" + integrity sha512-hQnTQkFjL5ik6HF2fTAM8ycbr94UbQXK364wF930VHb0dfBJ5JBP8qwrR8TaK9zwUEk7meruo2JAUDMwvuxd/w== + typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" @@ -3921,71 +4693,80 @@ typedarray-to-buffer@^3.1.5: typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typescript@^4.4.3, typescript@^4.4.4: - version "4.4.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c" - integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== +typescript@^4.6.4, typescript@^4.7.4: + version "4.7.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" + integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== uglify-js@^3.1.4: - version "3.14.3" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.3.tgz#c0f25dfea1e8e5323eccf59610be08b6043c15cf" - integrity sha512-mic3aOdiq01DuSVx0TseaEzMIVqebMZ0Z3vaeDhFEh9bsc24hV1TFvN74reA2vs08D0ZWfNjAcJ3UbVLaBss+g== + version "3.16.1" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.16.1.tgz#0e7ec928b3d0b1e1d952bce634c384fd56377317" + integrity sha512-X5BGTIDH8U6IQ1TIRP62YC36k+ULAa1d59BxlWvPUJ1NkW5L3FwcGfEzuVvGmhJFBu0YJ5Ge25tmRISqCmLiRQ== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" undefsafe@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== -unified-args@^9.0.0: - version "9.0.2" - resolved "https://registry.yarnpkg.com/unified-args/-/unified-args-9.0.2.tgz#0c14f555e73ee29c23f9a567942e29069f56e5a2" - integrity sha512-qSqryjoqfJSII4E4Z2Jx7MhXX2MuUIn6DsrlmL8UnWFdGtrWvEtvm7Rx5fKT5TPUz7q/Fb4oxwIHLCttvAuRLQ== +unified-args@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/unified-args/-/unified-args-10.0.0.tgz#95994c5558fea83ff07006cb560fd88cdcf31134" + integrity sha512-PqsqxwkXpGSLiMkbjNnKU33Ffm6gso6rAvz1TlBGzMBx3gpx7ewIhViBX8HEWmy0v7pebA5PM6RkRWWaYmtfYw== dependencies: "@types/text-table" "^0.2.0" - camelcase "^6.0.0" - chalk "^4.0.0" + camelcase "^7.0.0" + chalk "^5.0.0" chokidar "^3.0.0" fault "^2.0.0" json5 "^2.0.0" minimist "^1.0.0" text-table "^0.2.0" - unified-engine "^9.0.0" + unified-engine "^10.0.0" -unified-engine@^9.0.0: - version "9.0.4" - resolved "https://registry.yarnpkg.com/unified-engine/-/unified-engine-9.0.4.tgz#ee02b6a7f11e69a56f79cb8595065b8c3f02bda8" - integrity sha512-NFI+jC3DWZ23eBsWkOW2havz47DPG/DSyJEvBH+qA5cQHF6zlgiJYev7ksb/naOypZZ+cfhaCxCRo2BqrysYEw== +unified-engine@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/unified-engine/-/unified-engine-10.0.1.tgz#94f27f1f88660d9b5910595095e4b463ca18e389" + integrity sha512-lsj7VC8kNWhK87rGBhidklk4llgrEdJoOZHoQFbTZQ/fA22JqowUPM10bEf05eSZOR6UnUSrZ/mPWHrQsHGm7g== dependencies: - "@types/concat-stream" "^1.0.0" + "@types/concat-stream" "^2.0.0" "@types/debug" "^4.0.0" "@types/is-empty" "^1.0.0" - "@types/js-yaml" "^4.0.0" - "@types/node" "^16.0.0" + "@types/node" "^18.0.0" "@types/unist" "^2.0.0" concat-stream "^2.0.0" debug "^4.0.0" fault "^2.0.0" - glob "^7.0.0" + glob "^8.0.0" ignore "^5.0.0" is-buffer "^2.0.0" is-empty "^1.0.0" is-plain-obj "^4.0.0" - js-yaml "^4.0.0" - load-plugin "^4.0.0" - parse-json "^5.0.0" + load-plugin "^5.0.0" + parse-json "^6.0.0" to-vfile "^7.0.0" trough "^2.0.0" unist-util-inspect "^7.0.0" vfile-message "^3.0.0" vfile-reporter "^7.0.0" vfile-statistics "^2.0.0" + yaml "^2.0.0" unified@^10.0.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.0.tgz#4e65eb38fc2448b1c5ee573a472340f52b9346fe" - integrity sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g== + version "10.1.2" + resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df" + integrity sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q== dependencies: "@types/unist" "^2.0.0" bail "^2.0.0" @@ -4015,9 +4796,9 @@ unist-util-is@^5.0.0: integrity sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ== unist-util-stringify-position@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz#d517d2883d74d0daa0b565adc3d10a02b4a8cde9" - integrity sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA== + version "3.0.2" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz#5c6aa07c90b1deffd9153be170dce628a869a447" + integrity sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg== dependencies: "@types/unist" "^2.0.0" @@ -4048,6 +4829,11 @@ universalify@^0.1.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +unpipe@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + update-notifier@5.1.0, update-notifier@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" @@ -4068,43 +4854,44 @@ update-notifier@5.1.0, update-notifier@^5.1.0: semver-diff "^3.1.1" xdg-basedir "^4.0.0" -url-join@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7" - integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA== +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url-join@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/url-join/-/url-join-5.0.0.tgz#c2f1e5cbd95fa91082a93b58a1f42fecb4bdbcf1" + integrity sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA== url-parse-lax@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + integrity sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ== dependencies: prepend-http "^2.0.0" util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -uuid@8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== uvu@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.2.tgz#c145e7f4b5becf80099cf22fd8a4a05f0112b2c0" - integrity sha512-m2hLe7I2eROhh+tm3WE5cTo/Cv3WQA7Oc9f7JB6uWv+/zVKvfAm53bMyOoGOSZeQ7Ov2Fu9pLhFr7p07bnT20w== + version "0.5.4" + resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.4.tgz#5a37482ade580b7d817569e0b2c013712857293c" + integrity sha512-x1CyUjcP9VKaNPhjeB3FIc/jqgLsz2Q9LFhRzUTu/jnaaHILEGNuE0XckQonl8ISLcwyk9I2EZvWlYsQnwxqvQ== dependencies: dequal "^2.0.0" diff "^5.0.0" kleur "^4.0.3" sade "^1.7.3" - totalist "^2.0.0" + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== validate-npm-package-license@^3.0.1: version "3.0.4" @@ -4115,17 +4902,17 @@ validate-npm-package-license@^3.0.1: spdx-expression-parse "^3.0.0" vfile-message@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.0.2.tgz#db7eaebe7fecb853010f2ef1664427f52baf8f74" - integrity sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww== + version "3.1.2" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.2.tgz#a2908f64d9e557315ec9d7ea3a910f658ac05f7d" + integrity sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA== dependencies: "@types/unist" "^2.0.0" unist-util-stringify-position "^3.0.0" vfile-reporter@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-7.0.2.tgz#2b3bfafb428581e72073c4337acdf82912385356" - integrity sha512-1bYxpyhl8vhAICiKR59vYyZHIOWsF7P1nV6xjaz3ZWAyOQDQhR4DjlOZo14+PiV9oLEWIrolvGHs0/2Bnaw5Vw== + version "7.0.4" + resolved "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-7.0.4.tgz#f5a91c7420c7b2d6bed6f64719069545d47a22cd" + integrity sha512-4cWalUnLrEnbeUQ+hARG5YZtaHieVK3Jp4iG5HslttkVl+MHunSGNAIrODOTLbtjWsNZJRMCkL66AhvZAYuJ9A== dependencies: "@types/supports-color" "^8.0.0" string-width "^5.0.0" @@ -4149,35 +4936,59 @@ vfile-statistics@^2.0.0: vfile-message "^3.0.0" vfile@^5.0.0, vfile@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.2.0.tgz#a32a646ff9251c274dbe8675644a39031025b369" - integrity sha512-ftCpb6pU8Jrzcqku8zE6N3Gi4/RkDhRwEXSWudzZzA2eEOn/cBpsfk9aulCUR+j1raRSAykYQap9u6j6rhUaCA== + version "5.3.4" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.4.tgz#bbb8c96b956693bbf70b2c67fdb5781dff769b93" + integrity sha512-KI+7cnst03KbEyN1+JE504zF5bJBZa+J+CrevLeyIMq0aPU681I2rQ5p4PlnQ6exFtWiUrg26QUdFMnAKR6PIw== dependencies: "@types/unist" "^2.0.0" is-buffer "^2.0.0" unist-util-stringify-position "^3.0.0" vfile-message "^3.0.0" +vm2@^3.9.8: + version "3.9.9" + resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.9.tgz#c0507bc5fbb99388fad837d228badaaeb499ddc5" + integrity sha512-xwTm7NLh/uOjARRBs8/95H0e8fT3Ukw5D/JJWhxMbhKzNh1Nu981jQKvkep9iKYNxzlVrdzD0mlBGkDKZWprlw== + dependencies: + acorn "^8.7.0" + acorn-walk "^8.2.0" + +walk-up-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-1.0.0.tgz#d4745e893dd5fd0dbb58dd0a4c6a33d9c9fec53e" + integrity sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg== + wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== dependencies: defaults "^1.0.3" webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + which@^1.2.14: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -4199,14 +5010,19 @@ widest-line@^3.1.0: dependencies: string-width "^4.0.0" -windows-release@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-4.0.0.tgz#4725ec70217d1bf6e02c7772413b29cdde9ec377" - integrity sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg== +wildcard-match@5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/wildcard-match/-/wildcard-match-5.1.2.tgz#66b438001391674d8599b45da051e0bd9f33cd2a" + integrity sha512-qNXwI591Z88c8bWxp+yjV60Ch4F8Riawe3iGxbzquhy8Xs9m+0+SLFBGb/0yCTIDElawtaImC37fYZ+dr32KqQ== + +windows-release@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-5.0.1.tgz#d1f7cd1f25660ba05cac6359711844dce909a8ed" + integrity sha512-y1xFdFvdMiDXI3xiOhMbJwt1Y7dUxidha0CWPs1NgjZIjZANTcX7+7bMqNjuezhzb8s5JGEiBAbQjQQYYy7ulw== dependencies: - execa "^4.0.2" + execa "^5.1.1" -word-wrap@^1.0.3: +word-wrap@^1.0.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== @@ -4214,7 +5030,7 @@ word-wrap@^1.0.3: wordwrap@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== wrap-ansi@^7.0.0: version "7.0.0" @@ -4225,10 +5041,19 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.0.1.tgz#2101e861777fec527d0ea90c57c6b03aac56a5b3" + integrity sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== write-file-atomic@^3.0.0: version "3.0.3" @@ -4245,6 +5070,11 @@ xdg-basedir@^4.0.0: resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== +xregexp@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943" + integrity sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA== + xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" @@ -4255,17 +5085,32 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@1.10.2, yaml@^1.10.0: +yaml@^1.10.0: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yargs-parser@20.2.9, yargs-parser@^20.2.2, yargs-parser@^20.2.3: +yaml@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.1.1.tgz#1e06fb4ca46e60d9da07e4f786ea370ed3c3cfec" + integrity sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw== + +yargs-parser@21.0.1: + version "21.0.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" + integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== + +yargs-parser@^20.2.2, yargs-parser@^20.2.3: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==