From eb2a2bc381d46b2a61842037c0f1fe264754a1ed Mon Sep 17 00:00:00 2001 From: Dmitriy Grachev Date: Wed, 27 Aug 2025 20:10:01 +0300 Subject: [PATCH 1/3] feature added pnpm-lock.yaml support --- src/detectPackageManager.ts | 12 +++++----- src/getPackageResolution.ts | 44 ++++++++++++++++++++++++++++++++++++- src/makePatch.ts | 5 ++++- 3 files changed, 53 insertions(+), 8 deletions(-) diff --git a/src/detectPackageManager.ts b/src/detectPackageManager.ts index c7bb7559..fbcff003 100644 --- a/src/detectPackageManager.ts +++ b/src/detectPackageManager.ts @@ -4,12 +4,12 @@ import chalk from "chalk" import process from "process" import findWorkspaceRoot from "find-yarn-workspace-root" -export type PackageManager = "yarn" | "npm" | "npm-shrinkwrap" +export type PackageManager = "yarn" | "npm" | "npm-shrinkwrap" | "pnpm" function printNoYarnLockfileError() { console.log(` ${chalk.red.bold("**ERROR**")} ${chalk.red( - `The --use-yarn option was specified but there is no yarn.lock file`, + "The --use-yarn option was specified but there is no yarn.lock file", )} `) } @@ -17,10 +17,7 @@ ${chalk.red.bold("**ERROR**")} ${chalk.red( function printNoLockfilesError() { console.log(` ${chalk.red.bold("**ERROR**")} ${chalk.red( - `No package-lock.json, npm-shrinkwrap.json, or yarn.lock file. - -You must use either npm@>=5, yarn, or npm-shrinkwrap to manage this project's -dependencies.`, + "No package-lock.json, npm-shrinkwrap.json, yarn.lock, or pnpm-lock.yaml file.\n\nYou must use either npm@>=5, yarn, pnpm, or npm-shrinkwrap to manage this project's dependencies.", )} `) } @@ -48,6 +45,7 @@ export const detectPackageManager = ( join(appRootPath, "npm-shrinkwrap.json"), ) const yarnLockExists = fs.existsSync(join(appRootPath, "yarn.lock")) + const pnpmLockExists = fs.existsSync(join(process.cwd(), "pnpm-lock.yaml")) if ((packageLockExists || shrinkWrapExists) && yarnLockExists) { if (overridePackageManager) { return overridePackageManager @@ -62,6 +60,8 @@ export const detectPackageManager = ( } else { return shrinkWrapExists ? "npm-shrinkwrap" : "npm" } + } else if (pnpmLockExists) { + return "pnpm" } else if (yarnLockExists || findWorkspaceRoot()) { return "yarn" } else { diff --git a/src/getPackageResolution.ts b/src/getPackageResolution.ts index a046e7f9..c85a96dd 100644 --- a/src/getPackageResolution.ts +++ b/src/getPackageResolution.ts @@ -92,6 +92,44 @@ export function getPackageResolution({ } return resolution + } else if (packageManager === "pnpm") { + const lockFilePath = join(process.cwd(), "pnpm-lock.yaml") + if (!existsSync(lockFilePath)) { + throw new Error("Can't find pnpm-lock.yaml file") + } + const lockFileString = readFileSync(lockFilePath).toString() + let appLockFile + try { + appLockFile = yaml.parse(lockFileString) + } catch (e) { + console.log(e) + throw new Error("Could not parse pnpm-lock.yaml file") + } + // pnpm v6+: packages: { '/pkg@version': { ... } } + const installedVersion = getPackageVersion( + join(resolve(appPath, packageDetails.path), "package.json"), + ) + const packages = appLockFile.packages || {} + // Try to find the entry for the package + const entryKey = Object.keys(packages).find((key) => { + // поддержка ключей: '/pkg@version', 'pkg@version', '/@scope/pkg@version', '@scope/pkg@version', с/без (react@...) в конце + const match = key.match(/^\/?((@[^/]+\/)?[^@]+)@([^()]+)(?:\(.*\))?$/) + if (!match) { + return false + } + const [, name, , version] = match + return ( + name === packageDetails.name && + coerceSemVer(version) === coerceSemVer(installedVersion) + ) + }) + if (!entryKey) { + throw new Error( + `\`${packageDetails.pathSpecifier}\`'s installed version is ${installedVersion} but a pnpm-lock.yaml entry for it couldn't be found. Your lockfile is likely to be corrupt or you forgot to reinstall your packages.`, + ) + } + const pkg = packages[entryKey] + return pkg.resolved || pkg.version || installedVersion } else { const lockfile = require(join( appPath, @@ -128,11 +166,15 @@ if (require.main === module) { console.log(`Can't find package ${process.argv[2]}`) process.exit(1) } + const useYarn = process.argv.includes("--use-yarn") console.log( getPackageResolution({ appPath: process.cwd(), packageDetails, - packageManager: detectPackageManager(process.cwd(), null), + packageManager: detectPackageManager( + process.cwd(), + useYarn ? "yarn" : null, + ), }), ) } diff --git a/src/makePatch.ts b/src/makePatch.ts index 7e008eb3..8ce6e4a8 100644 --- a/src/makePatch.ts +++ b/src/makePatch.ts @@ -358,7 +358,10 @@ export function makePatch({ outPath, gzipSync( JSON.stringify({ - error: { message: e.message, stack: e.stack }, + error: { + message: e instanceof Error ? e.message : String(e), + stack: e instanceof Error ? e.stack : "", + }, patch: diffResult.stdout.toString(), }), ), From ea9dfdf384928137a0062305d6b63a10e134a532 Mon Sep 17 00:00:00 2001 From: Dmitriy Grachev Date: Wed, 27 Aug 2025 20:10:47 +0300 Subject: [PATCH 2/3] updated dependencies --- package.json | 7 +- tsconfig.json | 2 +- yarn.lock | 7821 +++++++++++++++++++++++++------------------------ 3 files changed, 3924 insertions(+), 3906 deletions(-) diff --git a/package.json b/package.json index b74f8260..bc405675 100644 --- a/package.json +++ b/package.json @@ -53,8 +53,9 @@ "@types/fs-extra": "^9.0.0", "@types/jest": "^24.0.11", "@types/json-stable-stringify": "^1.0.34", - "@types/minimist": "^1.2.2", - "@types/node": "^12.0.0", + "@types/lodash": "^4.17.20", + "@types/minimist": "^1.2.5", + "@types/node": "^24.3.0", "@types/rimraf": "^2.0.2", "@types/semver": "^7.5.0", "@types/tmp": "^0.0.34", @@ -68,7 +69,7 @@ "ts-jest": "^24.0.0", "ts-node": "8.0.3", "tslint": "^5.14.0", - "typescript": "^4.2.2" + "typescript": "^5.9.2" }, "dependencies": { "@yarnpkg/lockfile": "^1.1.0", diff --git a/tsconfig.json b/tsconfig.json index 567f9c01..2c786648 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,7 +2,7 @@ "compilerOptions": { "target": "es2015", "module": "commonjs", - "lib": ["es2015", "es2016", "es2017"], + "lib": ["es2015", "es2016", "es2017", "esnext"], "strict": true, "esModuleInterop": true, "outDir": "dist", diff --git a/yarn.lock b/yarn.lock index f38c3f09..554a174b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,6055 +1,6072 @@ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. # yarn lockfile v1 - "@babel/code-frame@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" - integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== +version "7.0.0" +resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" +integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== dependencies: - "@babel/highlight" "^7.0.0" +"@babel/highlight" "^7.0.0" "@babel/core@^7.1.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.0.tgz#248fd6874b7d755010bfe61f557461d4f446d9e9" - integrity sha512-Dzl7U0/T69DFOTwqz/FJdnOSWS57NpjNfCwMKHABr589Lg8uX1RrlBIJ7L5Dubt/xkLsx0xH5EBFzlBVes1ayA== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.4.0" - "@babel/helpers" "^7.4.0" - "@babel/parser" "^7.4.0" - "@babel/template" "^7.4.0" - "@babel/traverse" "^7.4.0" - "@babel/types" "^7.4.0" - convert-source-map "^1.1.0" - debug "^4.1.0" - json5 "^2.1.0" - lodash "^4.17.11" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" +version "7.4.0" +resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.0.tgz#248fd6874b7d755010bfe61f557461d4f446d9e9" +integrity sha512-Dzl7U0/T69DFOTwqz/FJdnOSWS57NpjNfCwMKHABr589Lg8uX1RrlBIJ7L5Dubt/xkLsx0xH5EBFzlBVes1ayA== + dependencies: +"@babel/code-frame" "^7.0.0" +"@babel/generator" "^7.4.0" +"@babel/helpers" "^7.4.0" +"@babel/parser" "^7.4.0" +"@babel/template" "^7.4.0" +"@babel/traverse" "^7.4.0" +"@babel/types" "^7.4.0" +convert-source-map "^1.1.0" +debug "^4.1.0" +json5 "^2.1.0" +lodash "^4.17.11" +resolve "^1.3.2" +semver "^5.4.1" +source-map "^0.5.0" "@babel/generator@^7.0.0", "@babel/generator@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.0.tgz#c230e79589ae7a729fd4631b9ded4dc220418196" - integrity sha512-/v5I+a1jhGSKLgZDcmAUZ4K/VePi43eRkUs3yePW1HB1iANOD5tqJXwGSG4BZhSksP8J9ejSlwGeTiiOFZOrXQ== +version "7.4.0" +resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.0.tgz#c230e79589ae7a729fd4631b9ded4dc220418196" +integrity sha512-/v5I+a1jhGSKLgZDcmAUZ4K/VePi43eRkUs3yePW1HB1iANOD5tqJXwGSG4BZhSksP8J9ejSlwGeTiiOFZOrXQ== dependencies: - "@babel/types" "^7.4.0" - jsesc "^2.5.1" - lodash "^4.17.11" - source-map "^0.5.0" - trim-right "^1.0.1" +"@babel/types" "^7.4.0" +jsesc "^2.5.1" +lodash "^4.17.11" +source-map "^0.5.0" +trim-right "^1.0.1" "@babel/helper-function-name@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" - integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== +version "7.1.0" +resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" +integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== dependencies: - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" +"@babel/helper-get-function-arity" "^7.0.0" +"@babel/template" "^7.1.0" +"@babel/types" "^7.0.0" "@babel/helper-get-function-arity@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" - integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== +version "7.0.0" +resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" +integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== dependencies: - "@babel/types" "^7.0.0" +"@babel/types" "^7.0.0" "@babel/helper-plugin-utils@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" - integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== +version "7.0.0" +resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" +integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== "@babel/helper-split-export-declaration@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.0.tgz#571bfd52701f492920d63b7f735030e9a3e10b55" - integrity sha512-7Cuc6JZiYShaZnybDmfwhY4UYHzI6rlqhWjaIqbsJGsIqPimEYy5uh3akSRLMg65LSdSEnJ8a8/bWQN6u2oMGw== +version "7.4.0" +resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.0.tgz#571bfd52701f492920d63b7f735030e9a3e10b55" +integrity sha512-7Cuc6JZiYShaZnybDmfwhY4UYHzI6rlqhWjaIqbsJGsIqPimEYy5uh3akSRLMg65LSdSEnJ8a8/bWQN6u2oMGw== dependencies: - "@babel/types" "^7.4.0" +"@babel/types" "^7.4.0" "@babel/helpers@^7.4.0": - version "7.4.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.4.2.tgz#3bdfa46a552ca77ef5a0f8551be5f0845ae989be" - integrity sha512-gQR1eQeroDzFBikhrCccm5Gs2xBjZ57DNjGbqTaHo911IpmSxflOQWMAHPw/TXk8L3isv7s9lYzUkexOeTQUYg== +version "7.4.2" +resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.4.2.tgz#3bdfa46a552ca77ef5a0f8551be5f0845ae989be" +integrity sha512-gQR1eQeroDzFBikhrCccm5Gs2xBjZ57DNjGbqTaHo911IpmSxflOQWMAHPw/TXk8L3isv7s9lYzUkexOeTQUYg== dependencies: - "@babel/template" "^7.4.0" - "@babel/traverse" "^7.4.0" - "@babel/types" "^7.4.0" +"@babel/template" "^7.4.0" +"@babel/traverse" "^7.4.0" +"@babel/types" "^7.4.0" "@babel/highlight@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" - integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw== +version "7.0.0" +resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" +integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw== dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" +chalk "^2.0.0" +esutils "^2.0.2" +js-tokens "^4.0.0" "@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.0": - version "7.4.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.2.tgz#b4521a400cb5a871eab3890787b4bc1326d38d91" - integrity sha512-9fJTDipQFvlfSVdD/JBtkiY0br9BtfvW2R8wo6CX/Ej2eMuV0gWPk1M67Mt3eggQvBqYW1FCEk8BN7WvGm/g5g== +version "7.4.2" +resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.2.tgz#b4521a400cb5a871eab3890787b4bc1326d38d91" +integrity sha512-9fJTDipQFvlfSVdD/JBtkiY0br9BtfvW2R8wo6CX/Ej2eMuV0gWPk1M67Mt3eggQvBqYW1FCEk8BN7WvGm/g5g== "@babel/plugin-syntax-object-rest-spread@^7.0.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" - integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== +version "7.2.0" +resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" +integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" +"@babel/helper-plugin-utils" "^7.0.0" "@babel/runtime@7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0.tgz#adeb78fedfc855aa05bc041640f3f6f98e85424c" - integrity sha512-7hGhzlcmg01CvH1EHdSPVXYX1aJ8KCEyz6I9xYIi/asDtzBPMyMhVibhM/K6g/5qnKBwjZtp10bNZIEFTRW1MA== +version "7.0.0" +resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0.tgz#adeb78fedfc855aa05bc041640f3f6f98e85424c" +integrity sha512-7hGhzlcmg01CvH1EHdSPVXYX1aJ8KCEyz6I9xYIi/asDtzBPMyMhVibhM/K6g/5qnKBwjZtp10bNZIEFTRW1MA== dependencies: - regenerator-runtime "^0.12.0" +regenerator-runtime "^0.12.0" "@babel/template@^7.0.0", "@babel/template@^7.1.0", "@babel/template@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.0.tgz#12474e9c077bae585c5d835a95c0b0b790c25c8b" - integrity sha512-SOWwxxClTTh5NdbbYZ0BmaBVzxzTh2tO/TeLTbF6MO6EzVhHTnff8CdBXx3mEtazFBoysmEM6GU/wF+SuSx4Fw== +version "7.4.0" +resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.0.tgz#12474e9c077bae585c5d835a95c0b0b790c25c8b" +integrity sha512-SOWwxxClTTh5NdbbYZ0BmaBVzxzTh2tO/TeLTbF6MO6EzVhHTnff8CdBXx3mEtazFBoysmEM6GU/wF+SuSx4Fw== dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.4.0" - "@babel/types" "^7.4.0" +"@babel/code-frame" "^7.0.0" +"@babel/parser" "^7.4.0" +"@babel/types" "^7.4.0" "@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.0.tgz#14006967dd1d2b3494cdd650c686db9daf0ddada" - integrity sha512-/DtIHKfyg2bBKnIN+BItaIlEg5pjAnzHOIQe5w+rHAw/rg9g0V7T4rqPX8BJPfW11kt3koyjAnTNwCzb28Y1PA== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.4.0" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.4.0" - "@babel/parser" "^7.4.0" - "@babel/types" "^7.4.0" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.11" +version "7.4.0" +resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.0.tgz#14006967dd1d2b3494cdd650c686db9daf0ddada" +integrity sha512-/DtIHKfyg2bBKnIN+BItaIlEg5pjAnzHOIQe5w+rHAw/rg9g0V7T4rqPX8BJPfW11kt3koyjAnTNwCzb28Y1PA== + dependencies: +"@babel/code-frame" "^7.0.0" +"@babel/generator" "^7.4.0" +"@babel/helper-function-name" "^7.1.0" +"@babel/helper-split-export-declaration" "^7.4.0" +"@babel/parser" "^7.4.0" +"@babel/types" "^7.4.0" +debug "^4.1.0" +globals "^11.1.0" +lodash "^4.17.11" "@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.0.tgz#670724f77d24cce6cc7d8cf64599d511d164894c" - integrity sha512-aPvkXyU2SPOnztlgo8n9cEiXW755mgyvueUPcpStqdzoSPm0fjO0vQBjLkt3JKJW7ufikfcnMTTPsN1xaTsBPA== +version "7.4.0" +resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.0.tgz#670724f77d24cce6cc7d8cf64599d511d164894c" +integrity sha512-aPvkXyU2SPOnztlgo8n9cEiXW755mgyvueUPcpStqdzoSPm0fjO0vQBjLkt3JKJW7ufikfcnMTTPsN1xaTsBPA== dependencies: - esutils "^2.0.2" - lodash "^4.17.11" - to-fast-properties "^2.0.0" +esutils "^2.0.2" +lodash "^4.17.11" +to-fast-properties "^2.0.0" "@cnakazawa/watch@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz#099139eaec7ebf07a27c1786a3ff64f39464d2ef" - integrity sha512-r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA== +version "1.0.3" +resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz#099139eaec7ebf07a27c1786a3ff64f39464d2ef" +integrity sha512-r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA== dependencies: - exec-sh "^0.3.2" - minimist "^1.2.0" +exec-sh "^0.3.2" +minimist "^1.2.0" "@jest/console@^24.3.0": - version "24.3.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.3.0.tgz#7bd920d250988ba0bf1352c4493a48e1cb97671e" - integrity sha512-NaCty/OOei6rSDcbPdMiCbYCI0KGFGPgGO6B09lwWt5QTxnkuhKYET9El5u5z1GAcSxkQmSMtM63e24YabCWqA== +version "24.3.0" +resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.3.0.tgz#7bd920d250988ba0bf1352c4493a48e1cb97671e" +integrity sha512-NaCty/OOei6rSDcbPdMiCbYCI0KGFGPgGO6B09lwWt5QTxnkuhKYET9El5u5z1GAcSxkQmSMtM63e24YabCWqA== dependencies: - "@jest/source-map" "^24.3.0" - "@types/node" "*" - chalk "^2.0.1" - slash "^2.0.0" +"@jest/source-map" "^24.3.0" +"@types/node" "*" +chalk "^2.0.1" +slash "^2.0.0" "@jest/core@^24.5.0": - version "24.5.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.5.0.tgz#2cefc6a69e9ebcae1da8f7c75f8a257152ba1ec0" - integrity sha512-RDZArRzAs51YS7dXG1pbXbWGxK53rvUu8mCDYsgqqqQ6uSOaTjcVyBl2Jce0exT2rSLk38ca7az7t2f3b0/oYQ== - dependencies: - "@jest/console" "^24.3.0" - "@jest/reporters" "^24.5.0" - "@jest/test-result" "^24.5.0" - "@jest/transform" "^24.5.0" - "@jest/types" "^24.5.0" - ansi-escapes "^3.0.0" - chalk "^2.0.1" - exit "^0.1.2" - graceful-fs "^4.1.15" - jest-changed-files "^24.5.0" - jest-config "^24.5.0" - jest-haste-map "^24.5.0" - jest-message-util "^24.5.0" - jest-regex-util "^24.3.0" - jest-resolve-dependencies "^24.5.0" - jest-runner "^24.5.0" - jest-runtime "^24.5.0" - jest-snapshot "^24.5.0" - jest-util "^24.5.0" - jest-validate "^24.5.0" - jest-watcher "^24.5.0" - micromatch "^3.1.10" - p-each-series "^1.0.0" - pirates "^4.0.1" - realpath-native "^1.1.0" - rimraf "^2.5.4" - strip-ansi "^5.0.0" +version "24.5.0" +resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.5.0.tgz#2cefc6a69e9ebcae1da8f7c75f8a257152ba1ec0" +integrity sha512-RDZArRzAs51YS7dXG1pbXbWGxK53rvUu8mCDYsgqqqQ6uSOaTjcVyBl2Jce0exT2rSLk38ca7az7t2f3b0/oYQ== + dependencies: +"@jest/console" "^24.3.0" +"@jest/reporters" "^24.5.0" +"@jest/test-result" "^24.5.0" +"@jest/transform" "^24.5.0" +"@jest/types" "^24.5.0" +ansi-escapes "^3.0.0" +chalk "^2.0.1" +exit "^0.1.2" +graceful-fs "^4.1.15" +jest-changed-files "^24.5.0" +jest-config "^24.5.0" +jest-haste-map "^24.5.0" +jest-message-util "^24.5.0" +jest-regex-util "^24.3.0" +jest-resolve-dependencies "^24.5.0" +jest-runner "^24.5.0" +jest-runtime "^24.5.0" +jest-snapshot "^24.5.0" +jest-util "^24.5.0" +jest-validate "^24.5.0" +jest-watcher "^24.5.0" +micromatch "^3.1.10" +p-each-series "^1.0.0" +pirates "^4.0.1" +realpath-native "^1.1.0" +rimraf "^2.5.4" +strip-ansi "^5.0.0" "@jest/environment@^24.5.0": - version "24.5.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.5.0.tgz#a2557f7808767abea3f9e4cc43a172122a63aca8" - integrity sha512-tzUHR9SHjMXwM8QmfHb/EJNbF0fjbH4ieefJBvtwO8YErLTrecc1ROj0uo2VnIT6SlpEGZnvdCK6VgKYBo8LsA== +version "24.5.0" +resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.5.0.tgz#a2557f7808767abea3f9e4cc43a172122a63aca8" +integrity sha512-tzUHR9SHjMXwM8QmfHb/EJNbF0fjbH4ieefJBvtwO8YErLTrecc1ROj0uo2VnIT6SlpEGZnvdCK6VgKYBo8LsA== dependencies: - "@jest/fake-timers" "^24.5.0" - "@jest/transform" "^24.5.0" - "@jest/types" "^24.5.0" - "@types/node" "*" - jest-mock "^24.5.0" +"@jest/fake-timers" "^24.5.0" +"@jest/transform" "^24.5.0" +"@jest/types" "^24.5.0" +"@types/node" "*" +jest-mock "^24.5.0" "@jest/fake-timers@^24.5.0": - version "24.5.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.5.0.tgz#4a29678b91fd0876144a58f8d46e6c62de0266f0" - integrity sha512-i59KVt3QBz9d+4Qr4QxsKgsIg+NjfuCjSOWj3RQhjF5JNy+eVJDhANQ4WzulzNCHd72srMAykwtRn5NYDGVraw== +version "24.5.0" +resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.5.0.tgz#4a29678b91fd0876144a58f8d46e6c62de0266f0" +integrity sha512-i59KVt3QBz9d+4Qr4QxsKgsIg+NjfuCjSOWj3RQhjF5JNy+eVJDhANQ4WzulzNCHd72srMAykwtRn5NYDGVraw== dependencies: - "@jest/types" "^24.5.0" - "@types/node" "*" - jest-message-util "^24.5.0" - jest-mock "^24.5.0" +"@jest/types" "^24.5.0" +"@types/node" "*" +jest-message-util "^24.5.0" +jest-mock "^24.5.0" "@jest/reporters@^24.5.0": - version "24.5.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.5.0.tgz#9363a210d0daa74696886d9cb294eb8b3ad9b4d9" - integrity sha512-vfpceiaKtGgnuC3ss5czWOihKOUSyjJA4M4udm6nH8xgqsuQYcyDCi4nMMcBKsHXWgz9/V5G7iisnZGfOh1w6Q== - dependencies: - "@jest/environment" "^24.5.0" - "@jest/test-result" "^24.5.0" - "@jest/transform" "^24.5.0" - "@jest/types" "^24.5.0" - chalk "^2.0.1" - exit "^0.1.2" - glob "^7.1.2" - istanbul-api "^2.1.1" - istanbul-lib-coverage "^2.0.2" - istanbul-lib-instrument "^3.0.1" - istanbul-lib-source-maps "^3.0.1" - jest-haste-map "^24.5.0" - jest-resolve "^24.5.0" - jest-runtime "^24.5.0" - jest-util "^24.5.0" - jest-worker "^24.4.0" - node-notifier "^5.2.1" - slash "^2.0.0" - source-map "^0.6.0" - string-length "^2.0.0" +version "24.5.0" +resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.5.0.tgz#9363a210d0daa74696886d9cb294eb8b3ad9b4d9" +integrity sha512-vfpceiaKtGgnuC3ss5czWOihKOUSyjJA4M4udm6nH8xgqsuQYcyDCi4nMMcBKsHXWgz9/V5G7iisnZGfOh1w6Q== + dependencies: +"@jest/environment" "^24.5.0" +"@jest/test-result" "^24.5.0" +"@jest/transform" "^24.5.0" +"@jest/types" "^24.5.0" +chalk "^2.0.1" +exit "^0.1.2" +glob "^7.1.2" +istanbul-api "^2.1.1" +istanbul-lib-coverage "^2.0.2" +istanbul-lib-instrument "^3.0.1" +istanbul-lib-source-maps "^3.0.1" +jest-haste-map "^24.5.0" +jest-resolve "^24.5.0" +jest-runtime "^24.5.0" +jest-util "^24.5.0" +jest-worker "^24.4.0" +node-notifier "^5.2.1" +slash "^2.0.0" +source-map "^0.6.0" +string-length "^2.0.0" "@jest/source-map@^24.3.0": - version "24.3.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.3.0.tgz#563be3aa4d224caf65ff77edc95cd1ca4da67f28" - integrity sha512-zALZt1t2ou8le/crCeeiRYzvdnTzaIlpOWaet45lNSqNJUnXbppUUFR4ZUAlzgDmKee4Q5P/tKXypI1RiHwgag== +version "24.3.0" +resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.3.0.tgz#563be3aa4d224caf65ff77edc95cd1ca4da67f28" +integrity sha512-zALZt1t2ou8le/crCeeiRYzvdnTzaIlpOWaet45lNSqNJUnXbppUUFR4ZUAlzgDmKee4Q5P/tKXypI1RiHwgag== dependencies: - callsites "^3.0.0" - graceful-fs "^4.1.15" - source-map "^0.6.0" +callsites "^3.0.0" +graceful-fs "^4.1.15" +source-map "^0.6.0" "@jest/test-result@^24.5.0": - version "24.5.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.5.0.tgz#ab66fb7741a04af3363443084e72ea84861a53f2" - integrity sha512-u66j2vBfa8Bli1+o3rCaVnVYa9O8CAFZeqiqLVhnarXtreSXG33YQ6vNYBogT7+nYiFNOohTU21BKiHlgmxD5A== +version "24.5.0" +resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.5.0.tgz#ab66fb7741a04af3363443084e72ea84861a53f2" +integrity sha512-u66j2vBfa8Bli1+o3rCaVnVYa9O8CAFZeqiqLVhnarXtreSXG33YQ6vNYBogT7+nYiFNOohTU21BKiHlgmxD5A== dependencies: - "@jest/console" "^24.3.0" - "@jest/types" "^24.5.0" - "@types/istanbul-lib-coverage" "^1.1.0" +"@jest/console" "^24.3.0" +"@jest/types" "^24.5.0" +"@types/istanbul-lib-coverage" "^1.1.0" "@jest/transform@^24.5.0": - version "24.5.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.5.0.tgz#6709fc26db918e6af63a985f2cc3c464b4cf99d9" - integrity sha512-XSsDz1gdR/QMmB8UCKlweAReQsZrD/DK7FuDlNo/pE8EcKMrfi2kqLRk8h8Gy/PDzgqJj64jNEzOce9pR8oj1w== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^24.5.0" - babel-plugin-istanbul "^5.1.0" - chalk "^2.0.1" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.1.15" - jest-haste-map "^24.5.0" - jest-regex-util "^24.3.0" - jest-util "^24.5.0" - micromatch "^3.1.10" - realpath-native "^1.1.0" - slash "^2.0.0" - source-map "^0.6.1" - write-file-atomic "2.4.1" +version "24.5.0" +resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.5.0.tgz#6709fc26db918e6af63a985f2cc3c464b4cf99d9" +integrity sha512-XSsDz1gdR/QMmB8UCKlweAReQsZrD/DK7FuDlNo/pE8EcKMrfi2kqLRk8h8Gy/PDzgqJj64jNEzOce9pR8oj1w== + dependencies: +"@babel/core" "^7.1.0" +"@jest/types" "^24.5.0" +babel-plugin-istanbul "^5.1.0" +chalk "^2.0.1" +convert-source-map "^1.4.0" +fast-json-stable-stringify "^2.0.0" +graceful-fs "^4.1.15" +jest-haste-map "^24.5.0" +jest-regex-util "^24.3.0" +jest-util "^24.5.0" +micromatch "^3.1.10" +realpath-native "^1.1.0" +slash "^2.0.0" +source-map "^0.6.1" +write-file-atomic "2.4.1" "@jest/types@^24.5.0": - version "24.5.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.5.0.tgz#feee214a4d0167b0ca447284e95a57aa10b3ee95" - integrity sha512-kN7RFzNMf2R8UDadPOl6ReyI+MT8xfqRuAnuVL+i4gwjv/zubdDK+EDeLHYwq1j0CSSR2W/MmgaRlMZJzXdmVA== +version "24.5.0" +resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.5.0.tgz#feee214a4d0167b0ca447284e95a57aa10b3ee95" +integrity sha512-kN7RFzNMf2R8UDadPOl6ReyI+MT8xfqRuAnuVL+i4gwjv/zubdDK+EDeLHYwq1j0CSSR2W/MmgaRlMZJzXdmVA== dependencies: - "@types/istanbul-lib-coverage" "^1.1.0" - "@types/yargs" "^12.0.9" +"@types/istanbul-lib-coverage" "^1.1.0" +"@types/yargs" "^12.0.9" "@nodelib/fs.scandir@2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" - integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== +version "2.1.4" +resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" +integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== dependencies: - "@nodelib/fs.stat" "2.0.4" - run-parallel "^1.1.9" +"@nodelib/fs.stat" "2.0.4" +run-parallel "^1.1.9" "@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655" - integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== +version "2.0.4" +resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655" +integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== "@nodelib/fs.walk@^1.2.3": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063" - integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== +version "1.2.6" +resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063" +integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== dependencies: - "@nodelib/fs.scandir" "2.1.4" - fastq "^1.6.0" +"@nodelib/fs.scandir" "2.1.4" +fastq "^1.6.0" "@samverschueren/stream-to-observable@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f" - integrity sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg== +version "0.3.0" +resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f" +integrity sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg== dependencies: - any-observable "^0.3.0" +any-observable "^0.3.0" "@samverschueren/stream-to-observable@^0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301" - integrity sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ== +version "0.3.1" +resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301" +integrity sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ== dependencies: - any-observable "^0.3.0" +any-observable "^0.3.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== +version "0.14.0" +resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" +integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== "@sindresorhus/is@^2.0.0": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-2.1.1.tgz#ceff6a28a5b4867c2dd4a1ba513de278ccbe8bb1" - integrity sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg== +version "2.1.1" +resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-2.1.1.tgz#ceff6a28a5b4867c2dd4a1ba513de278ccbe8bb1" +integrity sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg== "@sindresorhus/is@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.0.0.tgz#2ff674e9611b45b528896d820d3d7a812de2f0e4" - integrity sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ== +version "4.0.0" +resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.0.0.tgz#2ff674e9611b45b528896d820d3d7a812de2f0e4" +integrity sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ== "@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== +version "1.1.2" +resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" +integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== dependencies: - defer-to-connect "^1.0.1" +defer-to-connect "^1.0.1" "@szmarczak/http-timer@^4.0.0": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152" - integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== +version "4.0.5" +resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152" +integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== dependencies: - defer-to-connect "^2.0.0" +defer-to-connect "^2.0.0" "@types/app-root-path@^1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@types/app-root-path/-/app-root-path-1.2.4.tgz#a78b703282b32ac54de768f5512ecc3569919dc7" +version "1.2.4" +resolved "https://registry.yarnpkg.com/@types/app-root-path/-/app-root-path-1.2.4.tgz#a78b703282b32ac54de768f5512ecc3569919dc7" "@types/babel__core@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.0.tgz#710f2487dda4dcfd010ca6abb2b4dc7394365c51" - integrity sha512-wJTeJRt7BToFx3USrCDs2BhEi4ijBInTQjOIukj6a/5tEkwpFMVZ+1ppgmE+Q/FQyc5P/VWUbx7I9NELrKruHA== +version "7.1.0" +resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.0.tgz#710f2487dda4dcfd010ca6abb2b4dc7394365c51" +integrity sha512-wJTeJRt7BToFx3USrCDs2BhEi4ijBInTQjOIukj6a/5tEkwpFMVZ+1ppgmE+Q/FQyc5P/VWUbx7I9NELrKruHA== dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" +"@babel/parser" "^7.1.0" +"@babel/types" "^7.0.0" +"@types/babel__generator" "*" +"@types/babel__template" "*" +"@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.0.2.tgz#d2112a6b21fad600d7674274293c85dce0cb47fc" - integrity sha512-NHcOfab3Zw4q5sEE2COkpfXjoE7o+PmqD9DQW4koUT3roNxwziUdXGnRndMat/LJNUtePwn1TlP4do3uoe3KZQ== +version "7.0.2" +resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.0.2.tgz#d2112a6b21fad600d7674274293c85dce0cb47fc" +integrity sha512-NHcOfab3Zw4q5sEE2COkpfXjoE7o+PmqD9DQW4koUT3roNxwziUdXGnRndMat/LJNUtePwn1TlP4do3uoe3KZQ== dependencies: - "@babel/types" "^7.0.0" +"@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307" - integrity sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg== - dependencies: +version "7.0.2" +resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307" +integrity sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg== +dependencies: "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" +"@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.0.6" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.6.tgz#328dd1a8fc4cfe3c8458be9477b219ea158fd7b2" - integrity sha512-XYVgHF2sQ0YblLRMLNPB3CkFMewzFmlDsH/TneZFHUXDlABQgh88uOxuez7ZcXxayLFrqLwtDH1t+FmlFwNZxw== +version "7.0.6" +resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.6.tgz#328dd1a8fc4cfe3c8458be9477b219ea158fd7b2" +integrity sha512-XYVgHF2sQ0YblLRMLNPB3CkFMewzFmlDsH/TneZFHUXDlABQgh88uOxuez7ZcXxayLFrqLwtDH1t+FmlFwNZxw== dependencies: - "@babel/types" "^7.3.0" +"@babel/types" "^7.3.0" "@types/cacheable-request@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" - integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ== +version "6.0.1" +resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" +integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ== dependencies: - "@types/http-cache-semantics" "*" - "@types/keyv" "*" - "@types/node" "*" - "@types/responselike" "*" +"@types/http-cache-semantics" "*" +"@types/keyv" "*" +"@types/node" "*" +"@types/responselike" "*" "@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== +version "1.1.1" +resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" +integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== "@types/cross-spawn@^6.0.0": - version "6.0.2" - resolved "https://registry.yarnpkg.com/@types/cross-spawn/-/cross-spawn-6.0.2.tgz#168309de311cd30a2b8ae720de6475c2fbf33ac7" - integrity sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw== +version "6.0.2" +resolved "https://registry.yarnpkg.com/@types/cross-spawn/-/cross-spawn-6.0.2.tgz#168309de311cd30a2b8ae720de6475c2fbf33ac7" +integrity sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw== dependencies: - "@types/node" "*" +"@types/node" "*" "@types/events@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" - integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== +version "3.0.0" +resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" +integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== "@types/fs-extra@^9.0.0": - version "9.0.13" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" - integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== +version "9.0.13" +resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" +integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== dependencies: - "@types/node" "*" +"@types/node" "*" "@types/glob@*": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" - integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== +version "7.1.1" +resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" +integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== dependencies: - "@types/events" "*" - "@types/minimatch" "*" - "@types/node" "*" +"@types/events" "*" +"@types/minimatch" "*" +"@types/node" "*" "@types/http-cache-semantics@*": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" - integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== +version "4.0.0" +resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" +integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== "@types/istanbul-lib-coverage@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.0.tgz#2cc2ca41051498382b43157c8227fea60363f94a" - integrity sha512-ohkhb9LehJy+PA40rDtGAji61NCgdtKLAlFoYp4cnuuQEswwdK3vz9SOIkkyc3wrk8dzjphQApNs56yyXLStaQ== +version "1.1.0" +resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.0.tgz#2cc2ca41051498382b43157c8227fea60363f94a" +integrity sha512-ohkhb9LehJy+PA40rDtGAji61NCgdtKLAlFoYp4cnuuQEswwdK3vz9SOIkkyc3wrk8dzjphQApNs56yyXLStaQ== "@types/jest-diff@*": - version "20.0.1" - resolved "https://registry.yarnpkg.com/@types/jest-diff/-/jest-diff-20.0.1.tgz#35cc15b9c4f30a18ef21852e255fdb02f6d59b89" - integrity sha512-yALhelO3i0hqZwhjtcr6dYyaLoCHbAMshwtj6cGxTvHZAKXHsYGdff6E8EPw3xLKY0ELUTQ69Q1rQiJENnccMA== +version "20.0.1" +resolved "https://registry.yarnpkg.com/@types/jest-diff/-/jest-diff-20.0.1.tgz#35cc15b9c4f30a18ef21852e255fdb02f6d59b89" +integrity sha512-yALhelO3i0hqZwhjtcr6dYyaLoCHbAMshwtj6cGxTvHZAKXHsYGdff6E8EPw3xLKY0ELUTQ69Q1rQiJENnccMA== "@types/jest@^24.0.11": - version "24.0.11" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-24.0.11.tgz#1f099bea332c228ea6505a88159bfa86a5858340" - integrity sha512-2kLuPC5FDnWIDvaJBzsGTBQaBbnDweznicvK7UGYzlIJP4RJR2a4A/ByLUXEyEgag6jz8eHdlWExGDtH3EYUXQ== +version "24.0.11" +resolved "https://registry.yarnpkg.com/@types/jest/-/jest-24.0.11.tgz#1f099bea332c228ea6505a88159bfa86a5858340" +integrity sha512-2kLuPC5FDnWIDvaJBzsGTBQaBbnDweznicvK7UGYzlIJP4RJR2a4A/ByLUXEyEgag6jz8eHdlWExGDtH3EYUXQ== dependencies: - "@types/jest-diff" "*" +"@types/jest-diff" "*" "@types/json-stable-stringify@^1.0.34": - version "1.0.34" - resolved "https://registry.yarnpkg.com/@types/json-stable-stringify/-/json-stable-stringify-1.0.34.tgz#c0fb25e4d957e0ee2e497c1f553d7f8bb668fd75" - integrity sha512-s2cfwagOQAS8o06TcwKfr9Wx11dNGbH2E9vJz1cqV+a/LOyhWNLUNd6JSRYNzvB4d29UuJX2M0Dj9vE1T8fRXw== +version "1.0.34" +resolved "https://registry.yarnpkg.com/@types/json-stable-stringify/-/json-stable-stringify-1.0.34.tgz#c0fb25e4d957e0ee2e497c1f553d7f8bb668fd75" +integrity sha512-s2cfwagOQAS8o06TcwKfr9Wx11dNGbH2E9vJz1cqV+a/LOyhWNLUNd6JSRYNzvB4d29UuJX2M0Dj9vE1T8fRXw== "@types/keyv@*", "@types/keyv@^3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" - integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== +version "3.1.1" +resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" +integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== dependencies: - "@types/node" "*" +"@types/node" "*" + +"@types/lodash@^4.17.20": +version "4.17.20" +resolved "https://npm.vinteo.com/repository/npm-proxy/@types/lodash/-/lodash-4.17.20.tgz#1ca77361d7363432d29f5e55950d9ec1e1c6ea93" +integrity sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA== "@types/minimatch@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== +version "3.0.3" +resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" +integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== "@types/minimist@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.0.tgz#69a23a3ad29caf0097f06eda59b361ee2f0639f6" +version "1.2.0" +resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.0.tgz#69a23a3ad29caf0097f06eda59b361ee2f0639f6" + +"@types/minimist@^1.2.5": +version "1.2.5" +resolved "https://npm.vinteo.com/repository/npm-proxy/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" +integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== -"@types/minimist@^1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" - integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== +"@types/node@*": +version "12.20.55" +resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" +integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== -"@types/node@*", "@types/node@^12.0.0": - version "12.20.55" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" - integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== +"@types/node@^24.3.0": +version "24.3.0" +resolved "https://npm.vinteo.com/repository/npm-proxy/@types/node/-/node-24.3.0.tgz#89b09f45cb9a8ee69466f18ee5864e4c3eb84dec" +integrity sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow== + dependencies: +undici-types "~7.10.0" "@types/normalize-package-data@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" - integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== +version "2.4.0" +resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" +integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== "@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== +version "4.0.0" +resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" +integrity sha512-// oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== "@types/responselike@*": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" - integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== +version "1.0.0" +resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" +integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== dependencies: - "@types/node" "*" +"@types/node" "*" "@types/rimraf@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-2.0.2.tgz#7f0fc3cf0ff0ad2a99bb723ae1764f30acaf8b6e" - integrity sha512-Hm/bnWq0TCy7jmjeN5bKYij9vw5GrDFWME4IuxV08278NtU/VdGbzsBohcCUJ7+QMqmUq5hpRKB39HeQWJjztQ== +version "2.0.2" +resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-2.0.2.tgz#7f0fc3cf0ff0ad2a99bb723ae1764f30acaf8b6e" +integrity sha512-Hm/bnWq0TCy7jmjeN5bKYij9vw5GrDFWME4IuxV08278NtU/VdGbzsBohcCUJ7+QMqmUq5hpRKB39HeQWJjztQ== dependencies: - "@types/glob" "*" - "@types/node" "*" +"@types/glob" "*" +"@types/node" "*" "@types/semver@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" - integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== +version "7.5.0" +resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" +integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== "@types/stack-utils@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" - integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== +version "1.0.1" +resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" +integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== "@types/tmp@^0.0.34": - version "0.0.34" - resolved "https://registry.yarnpkg.com/@types/tmp/-/tmp-0.0.34.tgz#4d01c0afce0ac9be316c5fc52b6407c6fc8cd440" - integrity sha512-Tx7JYeYR+pkAnDQjN1Cj43KuOuUvyybZHl+fAezReXuH/SQoxLhsuPvHZH/SA4XtrBEhaTcbb5gVc1WQcjQgdg== +version "0.0.34" +resolved "https://registry.yarnpkg.com/@types/tmp/-/tmp-0.0.34.tgz#4d01c0afce0ac9be316c5fc52b6407c6fc8cd440" +integrity sha512-Tx7JYeYR+pkAnDQjN1Cj43KuOuUvyybZHl+fAezReXuH/SQoxLhsuPvHZH/SA4XtrBEhaTcbb5gVc1WQcjQgdg== "@types/yargs@^12.0.2", "@types/yargs@^12.0.9": - version "12.0.10" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.10.tgz#17a8ec65cd8e88f51b418ceb271af18d3137df67" - integrity sha512-WsVzTPshvCSbHThUduGGxbmnwcpkgSctHGHTqzWyFg4lYAuV5qXlyFPOsP3OWqCINfmg/8VXP+zJaa4OxEsBQQ== +version "12.0.10" +resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.10.tgz#17a8ec65cd8e88f51b418ceb271af18d3137df67" +integrity sha512-WsVzTPshvCSbHThUduGGxbmnwcpkgSctHGHTqzWyFg4lYAuV5qXlyFPOsP3OWqCINfmg/8VXP+zJaa4OxEsBQQ== "@yarnpkg/lockfile@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" - integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== +version "1.1.0" +resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" +integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== abab@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f" - integrity sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w== +version "2.0.0" +resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f" +integrity sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w== acorn-globals@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.0.tgz#e3b6f8da3c1552a95ae627571f7dd6923bb54103" - integrity sha512-hMtHj3s5RnuhvHPowpBYvJVj3rAar82JiDQHvGs1zO0l10ocX/xEdBShNHTJaboucJUsScghp74pH3s7EnHHQw== +version "4.3.0" +resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.0.tgz#e3b6f8da3c1552a95ae627571f7dd6923bb54103" +integrity sha512-hMtHj3s5RnuhvHPowpBYvJVj3rAar82JiDQHvGs1zO0l10ocX/xEdBShNHTJaboucJUsScghp74pH3s7EnHHQw== dependencies: - acorn "^6.0.1" - acorn-walk "^6.0.1" +acorn "^6.0.1" +acorn-walk "^6.0.1" acorn-walk@^6.0.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913" - integrity sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw== +version "6.1.1" +resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913" +integrity sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw== acorn@^5.5.3: - version "5.7.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" - integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== +version "5.7.3" +resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" +integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== acorn@^6.0.1: - version "6.0.5" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.5.tgz#81730c0815f3f3b34d8efa95cb7430965f4d887a" - integrity sha512-i33Zgp3XWtmZBMNvCr4azvOFeWVw1Rk6p3hfi3LUDvIFraOMywb1kAtrbi+med14m4Xfpqm3zRZMT+c0FNE7kg== +version "6.0.5" +resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.5.tgz#81730c0815f3f3b34d8efa95cb7430965f4d887a" +integrity sha512-i33Zgp3XWtmZBMNvCr4azvOFeWVw1Rk6p3hfi3LUDvIFraOMywb1kAtrbi+med14m4Xfpqm3zRZMT+c0FNE7kg== aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== +version "3.1.0" +resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" +integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" +clean-stack "^2.0.0" +indent-string "^4.0.0" ajv@^6.5.5: - version "6.6.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.6.2.tgz#caceccf474bf3fc3ce3b147443711a24063cc30d" - integrity sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g== +version "6.6.2" +resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.6.2.tgz#caceccf474bf3fc3ce3b147443711a24063cc30d" +integrity sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g== dependencies: - fast-deep-equal "^2.0.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" +fast-deep-equal "^2.0.1" +fast-json-stable-stringify "^2.0.0" +json-schema-traverse "^0.4.1" +uri-js "^4.2.2" ansi-align@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" - integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== +version "3.0.0" +resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" +integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== dependencies: - string-width "^3.0.0" +string-width "^3.0.0" ansi-escapes@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" - integrity sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw== +version "3.1.0" +resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" +integrity sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw== ansi-escapes@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== +version "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.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.0.tgz#a4ce2b33d6b214b7950d8595c212f12ac9cc569d" - integrity sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg== +version "4.3.0" +resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.0.tgz#a4ce2b33d6b214b7950d8595c212f12ac9cc569d" +integrity sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg== dependencies: - type-fest "^0.8.1" +type-fest "^0.8.1" ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" +version "2.1.1" +resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" +version "3.0.0" +resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" ansi-regex@^4.0.0, 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.0" +resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" +integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== +version "5.0.0" +resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" +integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" +version "2.2.1" +resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - dependencies: +version "3.2.1" +resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" +dependencies: color-convert "^1.9.0" ansi-styles@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== +version "4.3.0" +resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" +integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: - color-convert "^2.0.1" +color-convert "^2.0.1" ansi-styles@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== +version "4.2.1" +resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" +integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== dependencies: - "@types/color-name" "^1.1.1" - color-convert "^2.0.1" +"@types/color-name" "^1.1.1" +color-convert "^2.0.1" any-observable@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" - integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== +version "0.3.0" +resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" +integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== any-observable@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.5.1.tgz#ab7d49ff64ebe6dd3ae26760a3f5a881e8db791e" - integrity sha512-8zv01bgDOp9PTmRTNCAHTw64TFP2rvlX4LvtNJLachaXY+AjmIvLT47fABNPCiIe89hKiSCo2n5zmPqI9CElPA== +version "0.5.1" +resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.5.1.tgz#ab7d49ff64ebe6dd3ae26760a3f5a881e8db791e" +integrity sha512-8zv01bgDOp9PTmRTNCAHTw64TFP2rvlX4LvtNJLachaXY+AjmIvLT47fABNPCiIe89hKiSCo2n5zmPqI9CElPA== anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== +version "2.0.0" +resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" +integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" +micromatch "^3.1.4" +normalize-path "^2.1.1" append-transform@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" - integrity sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw== +version "1.0.0" +resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" +integrity sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw== dependencies: default-require-extensions "^2.0.0" arg@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.0.tgz#583c518199419e0037abb74062c37f8519e575f0" - integrity sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg== +version "4.1.0" +resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.0.tgz#583c518199419e0037abb74062c37f8519e575f0" +integrity sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg== argparse@^1.0.7: - version "1.0.9" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" - dependencies: +version "1.0.9" +resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" +dependencies: sprintf-js "~1.0.2" arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= +version "4.0.0" +resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" +integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== +version "1.1.0" +resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" +integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +version "3.1.0" +resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" +integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= array-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" +version "1.0.0" +resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - dependencies: +version "1.0.2" +resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" +dependencies: array-uniq "^1.0.1" 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== +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-uniq@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.2.tgz#5fcc373920775723cfd64d65c64bef53bf9eba6d" +version "1.0.2" +resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.2.tgz#5fcc373920775723cfd64d65c64bef53bf9eba6d" array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" +version "1.0.3" +resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= +version "0.3.2" +resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" +integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" +version "1.0.1" +resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" asn1@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" +version "0.2.3" +resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" +version "1.0.0" +resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= +version "1.0.0" +resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" +integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== +version "1.0.0" +resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" +integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== async-exit-hook@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" - integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== +version "2.0.1" +resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" +integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== async-limiter@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" - integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== +version "1.0.0" +resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" +integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== async@^2.6.1: - version "2.6.2" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381" - integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg== +version "2.6.2" +resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381" +integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg== dependencies: - lodash "^4.17.11" +lodash "^4.17.11" asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" +version "0.4.0" +resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" atob@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== +version "2.1.2" +resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" +integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= +version "0.7.0" +resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" +integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" - integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== +version "1.8.0" +resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" +integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== babel-code-frame@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" - dependencies: +version "6.22.0" +resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" +dependencies: chalk "^1.1.0" - esutils "^2.0.2" - js-tokens "^3.0.0" +esutils "^2.0.2" +js-tokens "^3.0.0" babel-jest@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.5.0.tgz#0ea042789810c2bec9065f7c8ab4dc18e1d28559" - integrity sha512-0fKCXyRwxFTJL0UXDJiT2xYxO9Lu2vBd9n+cC+eDjESzcVG3s2DRGAxbzJX21fceB1WYoBjAh8pQ83dKcl003g== - dependencies: - "@jest/transform" "^24.5.0" - "@jest/types" "^24.5.0" - "@types/babel__core" "^7.1.0" - babel-plugin-istanbul "^5.1.0" - babel-preset-jest "^24.3.0" - chalk "^2.4.2" - slash "^2.0.0" +version "24.5.0" +resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.5.0.tgz#0ea042789810c2bec9065f7c8ab4dc18e1d28559" +integrity sha512-0fKCXyRwxFTJL0UXDJiT2xYxO9Lu2vBd9n+cC+eDjESzcVG3s2DRGAxbzJX21fceB1WYoBjAh8pQ83dKcl003g== + dependencies: +"@jest/transform" "^24.5.0" +"@jest/types" "^24.5.0" +"@types/babel__core" "^7.1.0" +babel-plugin-istanbul "^5.1.0" +babel-preset-jest "^24.3.0" +chalk "^2.4.2" +slash "^2.0.0" babel-plugin-istanbul@^5.1.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.1.tgz#7981590f1956d75d67630ba46f0c22493588c893" - integrity sha512-RNNVv2lsHAXJQsEJ5jonQwrJVWK8AcZpG1oxhnjCUaAjL7xahYLANhPUZbzEQHjKy1NMYUwn+0NPKQc8iSY4xQ== +version "5.1.1" +resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.1.tgz#7981590f1956d75d67630ba46f0c22493588c893" +integrity sha512-RNNVv2lsHAXJQsEJ5jonQwrJVWK8AcZpG1oxhnjCUaAjL7xahYLANhPUZbzEQHjKy1NMYUwn+0NPKQc8iSY4xQ== dependencies: - find-up "^3.0.0" - istanbul-lib-instrument "^3.0.0" - test-exclude "^5.0.0" +find-up "^3.0.0" +istanbul-lib-instrument "^3.0.0" +test-exclude "^5.0.0" babel-plugin-jest-hoist@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.3.0.tgz#f2e82952946f6e40bb0a75d266a3790d854c8b5b" - integrity sha512-nWh4N1mVH55Tzhx2isvUN5ebM5CDUvIpXPZYMRazQughie/EqGnbR+czzoQlhUmJG9pPJmYDRhvocotb2THl1w== +version "24.3.0" +resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.3.0.tgz#f2e82952946f6e40bb0a75d266a3790d854c8b5b" +integrity sha512-nWh4N1mVH55Tzhx2isvUN5ebM5CDUvIpXPZYMRazQughie/EqGnbR+czzoQlhUmJG9pPJmYDRhvocotb2THl1w== dependencies: - "@types/babel__traverse" "^7.0.6" +"@types/babel__traverse" "^7.0.6" babel-preset-jest@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.3.0.tgz#db88497e18869f15b24d9c0e547d8e0ab950796d" - integrity sha512-VGTV2QYBa/Kn3WCOKdfS31j9qomaXSgJqi65B6o05/1GsJyj9LVhSljM9ro4S+IBGj/ENhNBuH9bpqzztKAQSw== +version "24.3.0" +resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.3.0.tgz#db88497e18869f15b24d9c0e547d8e0ab950796d" +integrity sha512-VGTV2QYBa/Kn3WCOKdfS31j9qomaXSgJqi65B6o05/1GsJyj9LVhSljM9ro4S+IBGj/ENhNBuH9bpqzztKAQSw== dependencies: - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - babel-plugin-jest-hoist "^24.3.0" +"@babel/plugin-syntax-object-rest-spread" "^7.0.0" +babel-plugin-jest-hoist "^24.3.0" balanced-match@^0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" +version "0.4.2" +resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" +version "0.11.2" +resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" +integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: +cache-base "^1.0.1" +class-utils "^0.3.5" +component-emitter "^1.2.1" +define-property "^1.0.0" +isobject "^3.0.1" +mixin-deep "^1.2.0" +pascalcase "^0.1.1" bcrypt-pbkdf@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" - dependencies: +version "1.0.1" +resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" +dependencies: tweetnacl "^0.14.3" boxen@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.0.0.tgz#64fe9b16066af815f51057adcc800c3730120854" - integrity sha512-5bvsqw+hhgUi3oYGK0Vf4WpIkyemp60WBInn7+WNfoISzAqk/HX4L7WNROq38E6UR/y3YADpv6pEm4BfkeEAdA== - dependencies: - ansi-align "^3.0.0" - camelcase "^6.2.0" - chalk "^4.1.0" - cli-boxes "^2.2.1" - string-width "^4.2.0" - type-fest "^0.20.2" - widest-line "^3.1.0" - wrap-ansi "^7.0.0" +version "5.0.0" +resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.0.0.tgz#64fe9b16066af815f51057adcc800c3730120854" +integrity sha512-5bvsqw+hhgUi3oYGK0Vf4WpIkyemp60WBInn7+WNfoISzAqk/HX4L7WNROq38E6UR/y3YADpv6pEm4BfkeEAdA== + dependencies: +ansi-align "^3.0.0" +camelcase "^6.2.0" +chalk "^4.1.0" +cli-boxes "^2.2.1" +string-width "^4.2.0" +type-fest "^0.20.2" +widest-line "^3.1.0" +wrap-ansi "^7.0.0" brace-expansion@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" - dependencies: +version "1.1.7" +resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" +dependencies: balanced-match "^0.4.1" - concat-map "0.0.1" +concat-map "0.0.1" braces@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" +version "2.3.2" +resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" +integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: +arr-flatten "^1.1.0" +array-unique "^0.3.2" +extend-shallow "^2.0.1" +fill-range "^4.0.0" +isobject "^3.0.1" +repeat-element "^1.1.2" +snapdragon "^0.8.1" +snapdragon-node "^2.0.1" +split-string "^3.0.2" +to-regex "^3.0.1" braces@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== +version "3.0.2" +resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" +integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: - fill-range "^7.0.1" +fill-range "^7.0.1" browser-process-hrtime@^0.1.2: - version "0.1.3" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" - integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw== +version "0.1.3" +resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" +integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw== browser-resolve@^1.11.3: - version "1.11.3" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" - integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== +version "1.11.3" +resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" +integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== dependencies: - resolve "1.1.7" +resolve "1.1.7" bs-logger@0.x: version "0.2.6" - resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" - integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== +resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" +integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== dependencies: - fast-json-stable-stringify "2.x" +fast-json-stable-stringify "2.x" bser@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" - dependencies: +version "2.0.0" +resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" +dependencies: node-int64 "^0.4.0" buffer-from@1.x: version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== +resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" +integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== buffer-from@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531" +version "1.0.0" +resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531" builtin-modules@^1.0.0, builtin-modules@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" +version "1.1.1" +resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" builtins@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" - integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= +version "1.0.3" +resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" +integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" +version "1.0.1" +resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" +integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: +collection-visit "^1.0.0" +component-emitter "^1.2.1" +get-value "^2.0.6" +has-value "^1.0.0" +isobject "^3.0.1" +set-value "^2.0.0" +to-object-path "^0.3.0" +union-value "^1.0.0" +unset-value "^1.0.0" cacheable-lookup@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz#87be64a18b925234875e10a9bb1ebca4adce6b38" - integrity sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg== +version "2.0.1" +resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz#87be64a18b925234875e10a9bb1ebca4adce6b38" +integrity sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg== dependencies: - "@types/keyv" "^3.1.1" - keyv "^4.0.0" +"@types/keyv" "^3.1.1" +keyv "^4.0.0" cacheable-request@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.0.0.tgz#4a1727414e02ac4af82560c4da1b61daa3fa2b63" - integrity sha512-2N7AmszH/WPPpl5Z3XMw1HAP+8d+xugnKQAeKvxFZ/04dbT/CAznqwbl+7eSr3HkwdepNwtb2yx3CAMQWvG01Q== - dependencies: - clone-response "^1.0.2" - get-stream "^4.0.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^1.0.1" - normalize-url "^3.1.0" - responselike "^1.0.2" +version "6.0.0" +resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.0.0.tgz#4a1727414e02ac4af82560c4da1b61daa3fa2b63" +integrity sha512-2N7AmszH/WPPpl5Z3XMw1HAP+8d+xugnKQAeKvxFZ/04dbT/CAznqwbl+7eSr3HkwdepNwtb2yx3CAMQWvG01Q== + dependencies: +clone-response "^1.0.2" +get-stream "^4.0.0" +http-cache-semantics "^4.0.0" +keyv "^3.0.0" +lowercase-keys "^1.0.1" +normalize-url "^3.1.0" +responselike "^1.0.2" cacheable-request@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.1.tgz#062031c2856232782ed694a257fa35da93942a58" - integrity sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^4.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^2.0.0" +version "7.0.1" +resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.1.tgz#062031c2856232782ed694a257fa35da93942a58" +integrity sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw== + dependencies: +clone-response "^1.0.2" +get-stream "^5.1.0" +http-cache-semantics "^4.0.0" +keyv "^4.0.0" +lowercase-keys "^2.0.0" +normalize-url "^4.1.0" +responselike "^2.0.0" caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: +version "2.0.0" +resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" +integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= +dependencies: callsites "^2.0.0" caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: +version "2.0.0" +resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" +integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= +dependencies: caller-callsite "^2.0.0" callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" +version "2.0.0" +resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" callsites@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.0.0.tgz#fb7eb569b72ad7a45812f93fd9430a3e410b3dd3" - integrity sha512-tWnkwu9YEq2uzlBDI4RcLn8jrFvF9AOi8PxDNU3hZZjJcjkcRAq3vCI+vZcg1SuxISDYe86k9VZFwAxDiJGoAw== +version "3.0.0" +resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.0.0.tgz#fb7eb569b72ad7a45812f93fd9430a3e410b3dd3" +integrity sha512-tWnkwu9YEq2uzlBDI4RcLn8jrFvF9AOi8PxDNU3hZZjJcjkcRAq3vCI+vZcg1SuxISDYe86k9VZFwAxDiJGoAw== callsites@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== +version "3.1.0" +resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" +integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camelcase-keys@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" - integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== +version "6.2.2" +resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" +integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== dependencies: - camelcase "^5.3.1" - map-obj "^4.0.0" - quick-lru "^4.0.1" +camelcase "^5.3.1" +map-obj "^4.0.0" +quick-lru "^4.0.1" camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" +version "4.1.0" +resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" camelcase@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.2.0.tgz#e7522abda5ed94cc0489e1b8466610e88404cf45" - integrity sha512-IXFsBS2pC+X0j0N/GE7Dm7j3bsEBp+oTpb7F50dwEVX7rf3IgwO9XatnegTsDtniKCUtEJH4fSU6Asw7uoVLfQ== +version "5.2.0" +resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.2.0.tgz#e7522abda5ed94cc0489e1b8466610e88404cf45" +integrity sha512-IXFsBS2pC+X0j0N/GE7Dm7j3bsEBp+oTpb7F50dwEVX7rf3IgwO9XatnegTsDtniKCUtEJH4fSU6Asw7uoVLfQ== camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== +version "5.3.1" +resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" +integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== camelcase@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" - integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== +version "6.2.0" +resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" +integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== capture-exit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" - integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== +version "2.0.0" +resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" +integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== dependencies: - rsvp "^4.8.4" +rsvp "^4.8.4" caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" +version "0.12.0" +resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - dependencies: +version "1.1.3" +resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" +dependencies: ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" +escape-string-regexp "^1.0.2" +has-ansi "^2.0.0" +strip-ansi "^3.0.0" +supports-color "^2.0.0" chalk@^2.0.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== +version "2.4.2" +resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" +integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" +ansi-styles "^3.2.1" +escape-string-regexp "^1.0.5" +supports-color "^5.3.0" chalk@^2.0.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65" - dependencies: +version "2.3.2" +resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65" +dependencies: ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" +escape-string-regexp "^1.0.5" +supports-color "^5.3.0" chalk@^4.0.0, chalk@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== - dependencies: +version "4.1.0" +resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" +integrity sha512-qwx12AxXe2Q5xQ43Ac// I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== +dependencies: ansi-styles "^4.1.0" - supports-color "^7.1.0" +supports-color "^7.1.0" chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== +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" +ansi-styles "^4.1.0" +supports-color "^7.1.0" chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== +version "0.7.0" +resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" +integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== 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== +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.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.7.0.tgz#6d01b3696c59915b6ce057e4aa4adfc2fa25f5ef" - integrity sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog== +version "3.7.0" +resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.7.0.tgz#6d01b3696c59915b6ce057e4aa4adfc2fa25f5ef" +integrity sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog== class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== +version "0.3.6" +resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" +integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" +arr-union "^3.1.0" +define-property "^0.2.5" +isobject "^3.0.0" +static-extend "^0.1.1" clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== +version "2.2.0" +resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" +integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== cli-boxes@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" - integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== +version "2.2.1" +resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" +integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== cli-cursor@^2.0.0, cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - dependencies: +version "2.1.0" +resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" +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== +version "3.1.0" +resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" +integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== dependencies: - restore-cursor "^3.1.0" +restore-cursor "^3.1.0" cli-truncate@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" - dependencies: +version "0.2.1" +resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" +dependencies: slice-ansi "0.0.4" - string-width "^1.0.1" +string-width "^1.0.1" cli-width@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" +version "2.1.0" +resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" 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== +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== cliui@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" - integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== +version "4.1.0" +resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" +integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi "^2.0.0" +string-width "^2.1.1" +strip-ansi "^4.0.0" +wrap-ansi "^2.0.0" 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= - dependencies: +version "1.0.2" +resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" +integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= +dependencies: mimic-response "^1.0.0" co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" +version "4.6.0" +resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" +version "1.1.0" +resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: +version "1.0.0" +resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" +integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= +dependencies: map-visit "^1.0.0" - object-visit "^1.0.0" +object-visit "^1.0.0" color-convert@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" - dependencies: +version "1.9.1" +resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" +dependencies: color-name "^1.1.1" color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== +version "2.0.1" +resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" +integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: - color-name "~1.1.4" +color-name "~1.1.4" color-name@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.2.tgz#5c8ab72b64bd2215d617ae9559ebb148475cf98d" +version "1.1.2" +resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.2.tgz#5c8ab72b64bd2215d617ae9559ebb148475cf98d" color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +version "1.1.4" +resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" +integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828" - integrity sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w== +version "1.0.7" +resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828" +integrity sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w== dependencies: - delayed-stream "~1.0.0" +delayed-stream "~1.0.0" commander@^2.12.1, commander@^2.14.1, commander@~2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" - integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== +version "2.19.0" +resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" +integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== commander@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" - dependencies: +version "2.9.0" +resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" +dependencies: graceful-readlink ">= 1.0.0" compare-versions@^3.2.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.4.0.tgz#e0747df5c9cb7f054d6d3dc3e1dbc444f9e92b26" - integrity sha512-tK69D7oNXXqUW3ZNo/z7NXTEz22TCF0pTE+YF9cxvaAM9XnkLo1fV621xCLrRR6aevJlKxExkss0vWqUCUpqdg== +version "3.4.0" +resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.4.0.tgz#e0747df5c9cb7f054d6d3dc3e1dbc444f9e92b26" +integrity sha512-tK69D7oNXXqUW3ZNo/z7NXTEz22TCF0pTE+YF9cxvaAM9XnkLo1fV621xCLrRR6aevJlKxExkss0vWqUCUpqdg== component-emitter@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= +version "1.2.1" +resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" +integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" +version "0.0.1" +resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" configstore@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" - integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== +version "5.0.1" +resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" +integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== dependencies: - dot-prop "^5.2.0" - graceful-fs "^4.1.2" - make-dir "^3.0.0" - unique-string "^2.0.0" - write-file-atomic "^3.0.0" - xdg-basedir "^4.0.0" +dot-prop "^5.2.0" +graceful-fs "^4.1.2" +make-dir "^3.0.0" +unique-string "^2.0.0" +write-file-atomic "^3.0.0" +xdg-basedir "^4.0.0" convert-source-map@^1.1.0, convert-source-map@^1.4.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" +version "1.5.0" +resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= +version "0.1.1" +resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" +integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= +version "1.0.2" +resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" +integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= cosmiconfig@^5.0.2, cosmiconfig@^5.0.7: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.1.0.tgz#6c5c35e97f37f985061cdf653f114784231185cf" - integrity sha512-kCNPvthka8gvLtzAxQXvWo4FxqRB+ftRZyPZNuab5ngvM9Y7yw7hbEysglptLgpkGX9nAOKTBVkHUAe8xtYR6Q== +version "5.1.0" +resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.1.0.tgz#6c5c35e97f37f985061cdf653f114784231185cf" +integrity sha512-kCNPvthka8gvLtzAxQXvWo4FxqRB+ftRZyPZNuab5ngvM9Y7yw7hbEysglptLgpkGX9nAOKTBVkHUAe8xtYR6Q== dependencies: import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.9.0" - lodash.get "^4.4.2" - parse-json "^4.0.0" +is-directory "^0.3.1" +js-yaml "^3.9.0" +lodash.get "^4.4.2" +parse-json "^4.0.0" cosmiconfig@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" - integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== +version "7.0.0" +resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" +integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== dependencies: - "@types/parse-json" "^4.0.0" +"@types/parse-json" "^4.0.0" import-fresh "^3.2.1" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.10.0" +parse-json "^5.0.0" +path-type "^4.0.0" +yaml "^1.10.0" cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== +version "6.0.5" +resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" +integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" +nice-try "^1.0.4" +path-key "^2.0.1" +semver "^5.5.0" +shebang-command "^1.2.0" +which "^1.2.9" 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== +version "7.0.3" +resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" +integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" +path-key "^3.1.0" +shebang-command "^2.0.0" +which "^2.0.1" crypto-random-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" - integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== +version "2.0.0" +resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" +integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": - version "0.3.2" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.2.tgz#b8036170c79f07a90ff2f16e22284027a243848b" +version "0.3.2" +resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.2.tgz#b8036170c79f07a90ff2f16e22284027a243848b" cssstyle@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.1.1.tgz#18b038a9c44d65f7a8e428a653b9f6fe42faf5fb" - integrity sha512-364AI1l/M5TYcFH83JnOH/pSqgaNnKmYgKrm0didZMGKWjQB60dymwWy1rKUgL3J1ffdq9xVi2yGLHdSjjSNog== +version "1.1.1" +resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.1.1.tgz#18b038a9c44d65f7a8e428a653b9f6fe42faf5fb" +integrity sha512-364AI1l/M5TYcFH83JnOH/pSqgaNnKmYgKrm0didZMGKWjQB60dymwWy1rKUgL3J1ffdq9xVi2yGLHdSjjSNog== dependencies: - cssom "0.3.x" +cssom "0.3.x" dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - dependencies: +version "1.14.1" +resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" +dependencies: assert-plus "^1.0.0" data-urls@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" - integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== +version "1.1.0" +resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" +integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== dependencies: - abab "^2.0.0" - whatwg-mimetype "^2.2.0" - whatwg-url "^7.0.0" +abab "^2.0.0" +whatwg-mimetype "^2.2.0" +whatwg-url "^7.0.0" date-fns@^1.27.2: - version "1.28.4" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.28.4.tgz#7938aec34ba31fc8bd134d2344bc2e0bbfd95165" +version "1.28.4" +resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.28.4.tgz#7938aec34ba31fc8bd134d2344bc2e0bbfd95165" debug@^2.2.0: - version "2.6.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.6.tgz#a9fa6fbe9ca43cf1e79f73b75c0189cbb7d6db5a" - dependencies: +version "2.6.6" +resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.6.tgz#a9fa6fbe9ca43cf1e79f73b75c0189cbb7d6db5a" +dependencies: ms "0.7.3" debug@^2.3.3: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== +version "2.6.9" +resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" +integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: - ms "2.0.0" +ms "2.0.0" debug@^3.1.0: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== +version "3.2.6" +resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" +integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: - ms "^2.1.1" +ms "^2.1.1" debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== +version "4.1.1" +resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" +integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== dependencies: - ms "^2.1.1" +ms "^2.1.1" 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= +version "1.1.0" +resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" +integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" +decamelize "^1.1.0" +map-obj "^1.0.0" decamelize@^1.1.0, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= +version "1.2.0" +resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" +integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= 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= +version "0.2.0" +resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" +integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= 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= - dependencies: +version "3.3.0" +resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" +integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= +dependencies: mimic-response "^1.0.0" decompress-response@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-5.0.0.tgz#7849396e80e3d1eba8cb2f75ef4930f76461cb0f" - integrity sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw== +version "5.0.0" +resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-5.0.0.tgz#7849396e80e3d1eba8cb2f75ef4930f76461cb0f" +integrity sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw== dependencies: - mimic-response "^2.0.0" +mimic-response "^2.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= +version "0.7.0" +resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" +integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= 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== +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.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" +version "0.1.3" +resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" default-require-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7" - integrity sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc= - dependencies: +version "2.0.0" +resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7" +integrity sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc= +dependencies: strip-bom "^3.0.0" defer-to-connect@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.0.2.tgz#4bae758a314b034ae33902b5aac25a8dd6a8633e" - integrity sha512-k09hcQcTDY+cwgiwa6PYKLm3jlagNzQ+RSvhjzESOGOx+MNOuXkxTfEvPrO1IOQ81tArCFYQgi631clB70RpQw== +version "1.0.2" +resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.0.2.tgz#4bae758a314b034ae33902b5aac25a8dd6a8633e" +integrity sha512-k09hcQcTDY+cwgiwa6PYKLm3jlagNzQ+RSvhjzESOGOx+MNOuXkxTfEvPrO1IOQ81tArCFYQgi631clB70RpQw== defer-to-connect@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" - integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== +version "2.0.1" +resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" +integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== define-properties@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== +version "1.1.3" +resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" +integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== dependencies: - object-keys "^1.0.12" +object-keys "^1.0.12" define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: +version "0.2.5" +resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" +integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= +dependencies: is-descriptor "^0.1.0" define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: +version "1.0.0" +resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" +integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= +dependencies: is-descriptor "^1.0.0" define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== +version "2.0.2" +resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" +integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" +is-descriptor "^1.0.2" +isobject "^3.0.1" del@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" - integrity sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU= - dependencies: +version "3.0.0" +resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" +integrity sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU= +dependencies: globby "^6.1.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - p-map "^1.1.1" - pify "^3.0.0" - rimraf "^2.2.8" +is-path-cwd "^1.0.0" +is-path-in-cwd "^1.0.0" +p-map "^1.1.1" +pify "^3.0.0" +rimraf "^2.2.8" del@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/del/-/del-6.0.0.tgz#0b40d0332cea743f1614f818be4feb717714c952" - integrity sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ== - dependencies: - globby "^11.0.1" - graceful-fs "^4.2.4" - is-glob "^4.0.1" - is-path-cwd "^2.2.0" - is-path-inside "^3.0.2" - p-map "^4.0.0" - rimraf "^3.0.2" - slash "^3.0.0" +version "6.0.0" +resolved "https://registry.yarnpkg.com/del/-/del-6.0.0.tgz#0b40d0332cea743f1614f818be4feb717714c952" +integrity sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ== + dependencies: +globby "^11.0.1" +graceful-fs "^4.2.4" +is-glob "^4.0.1" +is-path-cwd "^2.2.0" +is-path-inside "^3.0.2" +p-map "^4.0.0" +rimraf "^3.0.2" +slash "^3.0.0" delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" +version "1.0.0" +resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" detect-newline@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" - integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= +version "2.1.0" +resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" +integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= diff-sequences@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.3.0.tgz#0f20e8a1df1abddaf4d9c226680952e64118b975" - integrity sha512-xLqpez+Zj9GKSnPWS0WZw1igGocZ+uua8+y+5dDNTT934N3QuY1sp2LkHzwiaYQGz60hMq0pjAshdeXm5VUOEw== +version "24.3.0" +resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.3.0.tgz#0f20e8a1df1abddaf4d9c226680952e64118b975" +integrity sha512-xLqpez+Zj9GKSnPWS0WZw1igGocZ+uua8+y+5dDNTT934N3QuY1sp2LkHzwiaYQGz60hMq0pjAshdeXm5VUOEw== diff@^3.1.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" +version "3.5.0" +resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" diff@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" +version "3.2.0" +resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== +version "3.0.1" +resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" +integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: - path-type "^4.0.0" +path-type "^4.0.0" domexception@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" - integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== +version "1.0.1" +resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" +integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== dependencies: - webidl-conversions "^4.0.2" +webidl-conversions "^4.0.2" dot-prop@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" - integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== +version "5.2.0" +resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" +integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== dependencies: - is-obj "^2.0.0" +is-obj "^2.0.0" dot-prop@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" - integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== +version "6.0.1" +resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" +integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== dependencies: - is-obj "^2.0.0" +is-obj "^2.0.0" duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" +version "0.1.4" +resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" ecc-jsbn@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" - dependencies: +version "0.1.1" +resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" +dependencies: jsbn "~0.1.0" elegant-spinner@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" +version "1.0.1" +resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== +version "7.0.3" +resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" +integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +version "8.0.0" +resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" +integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== end-of-stream@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" - integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== +version "1.4.1" +resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" +integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== dependencies: - once "^1.4.0" +once "^1.4.0" error-ex@^1.3.1: - 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: +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" es-abstract@^1.5.1: - version "1.13.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" - integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== +version "1.13.0" +resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" +integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== dependencies: - es-to-primitive "^1.2.0" - function-bind "^1.1.1" - has "^1.0.3" - is-callable "^1.1.4" - is-regex "^1.0.4" - object-keys "^1.0.12" +es-to-primitive "^1.2.0" +function-bind "^1.1.1" +has "^1.0.3" +is-callable "^1.1.4" +is-regex "^1.0.4" +object-keys "^1.0.12" es-to-primitive@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" - integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== - dependencies: +version "1.2.0" +resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" +integrity sha512-qZryBOJjV// LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== +dependencies: is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" +is-date-object "^1.0.1" +is-symbol "^1.0.2" escape-goat@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" - integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== +version "2.1.1" +resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" +integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== escape-goat@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-3.0.0.tgz#e8b5fb658553fe8a3c4959c316c6ebb8c842b19c" - integrity sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw== +version "3.0.0" +resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-3.0.0.tgz#e8b5fb658553fe8a3c4959c316c6ebb8c842b19c" +integrity sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw== escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.4, 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" +version "1.0.5" +resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +version "4.0.0" +resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" +integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== escodegen@^1.9.1: - version "1.11.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.0.tgz#b27a9389481d5bfd5bec76f7bb1eb3f8f4556589" - integrity sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw== - dependencies: - esprima "^3.1.3" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: +version "1.11.0" +resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.0.tgz#b27a9389481d5bfd5bec76f7bb1eb3f8f4556589" +integrity sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw== + dependencies: +esprima "^3.1.3" +estraverse "^4.2.0" +esutils "^2.0.2" +optionator "^0.8.1" +optionalDependencies: source-map "~0.6.1" esprima@^3.1.1, esprima@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" +version "3.1.3" +resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== +version "4.0.1" +resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" +integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== estraverse@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= +version "4.2.0" +resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" +integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" +version "2.0.2" +resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" exec-sh@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.2.tgz#6738de2eb7c8e671d0366aea0b0db8c6f7d7391b" - integrity sha512-9sLAvzhI5nc8TpuQUh4ahMdCrWT00wPWz7j47/emR5+2qEfoZP5zzUXvx+vdx+H6ohhnsYC31iX04QLYJK8zTg== +version "0.3.2" +resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.2.tgz#6738de2eb7c8e671d0366aea0b0db8c6f7d7391b" +integrity sha512-9sLAvzhI5nc8TpuQUh4ahMdCrWT00wPWz7j47/emR5+2qEfoZP5zzUXvx+vdx+H6ohhnsYC31iX04QLYJK8zTg== execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" +version "1.0.0" +resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" +integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: +cross-spawn "^6.0.0" +get-stream "^4.0.0" +is-stream "^1.1.0" +npm-run-path "^2.0.0" +p-finally "^1.0.0" +signal-exit "^3.0.0" +strip-eof "^1.0.0" execa@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376" - integrity sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" +version "5.0.0" +resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376" +integrity sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ== + dependencies: +cross-spawn "^7.0.3" +get-stream "^6.0.0" +human-signals "^2.1.0" +is-stream "^2.0.0" +merge-stream "^2.0.0" +npm-run-path "^4.0.1" +onetime "^5.1.2" +signal-exit "^3.0.3" +strip-final-newline "^2.0.0" exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= +version "0.1.2" +resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" +integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: +version "2.1.4" +resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" +integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= +dependencies: debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" +define-property "^0.2.5" +extend-shallow "^2.0.1" +posix-character-classes "^0.1.0" +regex-not "^1.0.0" +snapdragon "^0.8.1" +to-regex "^3.0.1" expect@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-24.5.0.tgz#492fb0df8378d8474cc84b827776b069f46294ed" - integrity sha512-p2Gmc0CLxOgkyA93ySWmHFYHUPFIHG6XZ06l7WArWAsrqYVaVEkOU5NtT5i68KUyGKbkQgDCkiT65bWmdoL6Bw== +version "24.5.0" +resolved "https://registry.yarnpkg.com/expect/-/expect-24.5.0.tgz#492fb0df8378d8474cc84b827776b069f46294ed" +integrity sha512-p2Gmc0CLxOgkyA93ySWmHFYHUPFIHG6XZ06l7WArWAsrqYVaVEkOU5NtT5i68KUyGKbkQgDCkiT65bWmdoL6Bw== dependencies: - "@jest/types" "^24.5.0" - ansi-styles "^3.2.0" - jest-get-type "^24.3.0" - jest-matcher-utils "^24.5.0" - jest-message-util "^24.5.0" - jest-regex-util "^24.3.0" +"@jest/types" "^24.5.0" +ansi-styles "^3.2.0" +jest-get-type "^24.3.0" +jest-matcher-utils "^24.5.0" +jest-message-util "^24.5.0" +jest-regex-util "^24.3.0" extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: +version "2.0.1" +resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" +integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= +dependencies: is-extendable "^0.1.0" extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: +version "3.0.2" +resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" +integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= +dependencies: assign-symbols "^1.0.0" - is-extendable "^1.0.1" +is-extendable "^1.0.1" extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== +version "3.0.2" +resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" +integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== external-editor@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" - integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA== +version "3.0.3" +resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" +integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA== dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" +chardet "^0.7.0" +iconv-lite "^0.4.24" +tmp "^0.0.33" extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" +version "2.0.4" +resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" +integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: +array-unique "^0.3.2" +define-property "^1.0.0" +expand-brackets "^2.1.4" +extend-shallow "^2.0.1" +fragment-cache "^0.2.1" +regex-not "^1.0.0" +snapdragon "^0.8.1" +to-regex "^3.0.1" extsprintf@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" +version "1.0.2" +resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= +version "2.0.1" +resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" +integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= fast-glob@^3.1.1: - version "3.2.5" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" - integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== +version "3.2.5" +resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" +integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.0" - merge2 "^1.3.0" - micromatch "^4.0.2" - picomatch "^2.2.1" +"@nodelib/fs.stat" "^2.0.2" +"@nodelib/fs.walk" "^1.2.3" +glob-parent "^5.1.0" +merge2 "^1.3.0" +micromatch "^4.0.2" +picomatch "^2.2.1" fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= +version "2.0.0" +resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" +integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= fast-levenshtein@~2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" +version "2.0.6" +resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" fastq@^1.6.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz#bb9fb955a07130a918eb63c1f5161cc32a5d0858" - integrity sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g== +version "1.11.0" +resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz#bb9fb955a07130a918eb63c1f5161cc32a5d0858" +integrity sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g== dependencies: - reusify "^1.0.4" +reusify "^1.0.4" fb-watchman@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" - dependencies: +version "2.0.0" +resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" +dependencies: bser "^2.0.0" figures@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" - dependencies: +version "1.7.0" +resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" +dependencies: escape-string-regexp "^1.0.5" - object-assign "^4.1.0" +object-assign "^4.1.0" figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - dependencies: +version "2.0.0" +resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" +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== +version "3.2.0" +resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" +integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== dependencies: - escape-string-regexp "^1.0.5" +escape-string-regexp "^1.0.5" fileset@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" - integrity sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA= +version "2.0.3" +resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" +integrity sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA= dependencies: - glob "^7.0.3" - minimatch "^3.0.3" +glob "^7.0.3" +minimatch "^3.0.3" fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= +version "4.0.0" +resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" +integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" +extend-shallow "^2.0.1" +is-number "^3.0.0" +repeat-string "^1.6.1" +to-regex-range "^2.1.0" fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== +version "7.0.1" +resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" +integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: - to-regex-range "^5.0.1" +to-regex-range "^5.0.1" find-parent-dir@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54" +version "0.3.0" +resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54" 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== +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" +locate-path "^3.0.0" find-up@^4.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" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== +version "4.1.0" +resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" +integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" +locate-path "^5.0.0" +path-exists "^4.0.0" find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== +version "5.0.0" +resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" +integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" +locate-path "^6.0.0" +path-exists "^4.0.0" find-yarn-workspace-root@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd" - integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ== +version "2.0.0" +resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd" +integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ== dependencies: - micromatch "^4.0.2" +micromatch "^4.0.2" fn-name@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fn-name/-/fn-name-2.0.1.tgz#5214d7537a4d06a4a301c0cc262feb84188002e7" - integrity sha1-UhTXU3pNBqSjAcDMJi/rhBiAAuc= +version "2.0.1" +resolved "https://registry.yarnpkg.com/fn-name/-/fn-name-2.0.1.tgz#5214d7537a4d06a4a301c0cc262feb84188002e7" +integrity sha1-UhTXU3pNBqSjAcDMJi/rhBiAAuc= -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" +for-in@^1.0 {.2 }: +version "1.0.2" +resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" +version "0.6.1" +resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== +version "2.3.3" +resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" +integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" +asynckit "^0.4.0" +combined-stream "^1.0.6" +mime-types "^2.1.12" fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: +version "0.2.1" +resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" +integrity sha1-QpD60n8T6Jvn8zeZxrxaCr// DRk= +dependencies: map-cache "^0.2.2" fs-extra@^10.0.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" - integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== +version "10.1.0" +resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" +integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" +graceful-fs "^4.2.0" +jsonfile "^6.0.1" +universalify "^2.0.0" fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" +version "1.0.0" +resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 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== +version "1.1.1" +resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" +integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== g-status@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/g-status/-/g-status-2.0.2.tgz#270fd32119e8fc9496f066fe5fe88e0a6bc78b97" - integrity sha512-kQoE9qH+T1AHKgSSD0Hkv98bobE90ILQcXAF4wvGgsr7uFqNvwmh8j+Lq3l0RVt3E3HjSbv2B9biEGcEtpHLCA== +version "2.0.2" +resolved "https://registry.yarnpkg.com/g-status/-/g-status-2.0.2.tgz#270fd32119e8fc9496f066fe5fe88e0a6bc78b97" +integrity sha512-kQoE9qH+T1AHKgSSD0Hkv98bobE90ILQcXAF4wvGgsr7uFqNvwmh8j+Lq3l0RVt3E3HjSbv2B9biEGcEtpHLCA== dependencies: - arrify "^1.0.1" - matcher "^1.0.0" - simple-git "^1.85.0" +arrify "^1.0.1" +matcher "^1.0.0" +simple-git "^1.85.0" get-caller-file@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" +version "1.0.2" +resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" get-own-enumerable-property-symbols@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz#b877b49a5c16aefac3655f2ed2ea5b684df8d203" - integrity sha512-CIJYJC4GGF06TakLg8z4GQKvDsx9EMspVxOYih7LerEL/WosUnFIww45CGfxfeKHqlg3twgUrYRT1O3WQqjGCg== +version "3.0.0" +resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz#b877b49a5c16aefac3655f2ed2ea5b684df8d203" +integrity sha512-CIJYJC4GGF06TakLg8z4GQKvDsx9EMspVxOYih7LerEL/WosUnFIww45CGfxfeKHqlg3twgUrYRT1O3WQqjGCg== get-stdin@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" - integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== +version "6.0.0" +resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" +integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== get-stream@^4.0.0, get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== +version "4.1.0" +resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" +integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== dependencies: - pump "^3.0.0" +pump "^3.0.0" get-stream@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" - integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== +version "5.1.0" +resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" +integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== dependencies: - pump "^3.0.0" +pump "^3.0.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== +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" +pump "^3.0.0" get-stream@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" - integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== +version "6.0.0" +resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" +integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= +version "2.0.6" +resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" +integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - dependencies: +version "0.1.7" +resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" +dependencies: assert-plus "^1.0.0" github-url-from-git@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/github-url-from-git/-/github-url-from-git-1.5.0.tgz#f985fedcc0a9aa579dc88d7aff068d55cc6251a0" - integrity sha1-+YX+3MCpqledyI16/waNVcxiUaA= +version "1.5.0" +resolved "https://registry.yarnpkg.com/github-url-from-git/-/github-url-from-git-1.5.0.tgz#f985fedcc0a9aa579dc88d7aff068d55cc6251a0" +integrity sha1-+YX+3MCpqledyI16/waNVcxiUaA= glob-parent@^5.1.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" - integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== +version "5.1.1" +resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" +integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== dependencies: - is-glob "^4.0.1" +is-glob "^4.0.1" glob@^7.0.3, glob@^7.0.5, glob@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" - dependencies: +version "7.1.1" +resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" +dependencies: fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.2" - once "^1.3.0" - path-is-absolute "^1.0.0" +inflight "^1.0.4" +inherits "2" +minimatch "^3.0.2" +once "^1.3.0" +path-is-absolute "^1.0.0" glob@^7.1.2, glob@^7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" - integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== +version "7.1.3" +resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" +integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" +fs.realpath "^1.0.0" +inflight "^1.0.4" +inherits "2" +minimatch "^3.0.4" +once "^1.3.0" +path-is-absolute "^1.0.0" global-dirs@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz#acdf3bb6685bcd55cb35e8a052266569e9469201" - integrity sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A== +version "2.0.1" +resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz#acdf3bb6685bcd55cb35e8a052266569e9469201" +integrity sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A== dependencies: - ini "^1.3.5" +ini "^1.3.5" global-dirs@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" - integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== +version "3.0.0" +resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" +integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== dependencies: - ini "2.0.0" +ini "2.0.0" globals@^11.1.0: - version "11.11.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.11.0.tgz#dcf93757fa2de5486fbeed7118538adf789e9c2e" - integrity sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw== +version "11.11.0" +resolved "https://registry.yarnpkg.com/globals/-/globals-11.11.0.tgz#dcf93757fa2de5486fbeed7118538adf789e9c2e" +integrity sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw== globby@^11.0.1: - version "11.0.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.2.tgz#1af538b766a3b540ebfb58a32b2e2d5897321d83" - integrity sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og== +version "11.0.2" +resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.2.tgz#1af538b766a3b540ebfb58a32b2e2d5897321d83" +integrity sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og== 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" +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" globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= +version "6.1.0" +resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" +integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" +array-union "^1.0.1" +glob "^7.0.3" +object-assign "^4.0.1" +pify "^2.0.0" +pinkie-promise "^2.0.0" got@^10.6.0: - version "10.7.0" - resolved "https://registry.yarnpkg.com/got/-/got-10.7.0.tgz#62889dbcd6cca32cd6a154cc2d0c6895121d091f" - integrity sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg== - dependencies: - "@sindresorhus/is" "^2.0.0" - "@szmarczak/http-timer" "^4.0.0" - "@types/cacheable-request" "^6.0.1" - cacheable-lookup "^2.0.0" - cacheable-request "^7.0.1" - decompress-response "^5.0.0" - duplexer3 "^0.1.4" - get-stream "^5.0.0" - lowercase-keys "^2.0.0" - mimic-response "^2.1.0" - p-cancelable "^2.0.0" - p-event "^4.0.0" - responselike "^2.0.0" - to-readable-stream "^2.0.0" - type-fest "^0.10.0" +version "10.7.0" +resolved "https://registry.yarnpkg.com/got/-/got-10.7.0.tgz#62889dbcd6cca32cd6a154cc2d0c6895121d091f" +integrity sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg== + dependencies: +"@sindresorhus/is" "^2.0.0" +"@szmarczak/http-timer" "^4.0.0" +"@types/cacheable-request" "^6.0.1" +cacheable-lookup "^2.0.0" +cacheable-request "^7.0.1" +decompress-response "^5.0.0" +duplexer3 "^0.1.4" +get-stream "^5.0.0" +lowercase-keys "^2.0.0" +mimic-response "^2.1.0" +p-cancelable "^2.0.0" +p-event "^4.0.0" +responselike "^2.0.0" +to-readable-stream "^2.0.0" +type-fest "^0.10.0" got@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" +version "9.6.0" +resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" +integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: +"@sindresorhus/is" "^0.14.0" +"@szmarczak/http-timer" "^1.1.2" +cacheable-request "^6.0.0" +decompress-response "^3.3.0" +duplexer3 "^0.1.4" +get-stream "^4.1.0" +lowercase-keys "^1.0.1" +mimic-response "^1.0.1" +p-cancelable "^1.0.0" +to-readable-stream "^1.0.0" +url-parse-lax "^3.0.0" graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== +version "4.2.10" +resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" +integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== "graceful-readlink@>= 1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" +version "1.0.1" +resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" growly@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" +version "1.3.0" +resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" handlebars@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.1.tgz#6e4e41c18ebe7719ae4d38e5aca3d32fa3dd23d3" - integrity sha512-3Zhi6C0euYZL5sM0Zcy7lInLXKQ+YLcF/olbN010mzGQ4XVm50JeyBnMqofHh696GrciGruC7kCcApPDJvVgwA== - dependencies: - neo-async "^2.6.0" - optimist "^0.6.1" - source-map "^0.6.1" - optionalDependencies: +version "4.1.1" +resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.1.tgz#6e4e41c18ebe7719ae4d38e5aca3d32fa3dd23d3" +integrity sha512-3Zhi6C0euYZL5sM0Zcy7lInLXKQ+YLcF/olbN010mzGQ4XVm50JeyBnMqofHh696GrciGruC7kCcApPDJvVgwA== + dependencies: +neo-async "^2.6.0" +optimist "^0.6.1" +source-map "^0.6.1" +optionalDependencies: uglify-js "^3.1.4" har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= +version "2.0.0" +resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" +integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= har-validator@~5.1.0: - version "5.1.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== +version "5.1.3" +resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" +integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== dependencies: - ajv "^6.5.5" - har-schema "^2.0.0" +ajv "^6.5.5" +har-schema "^2.0.0" hard-rejection@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" - integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== +version "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-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: +version "2.0.0" +resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" +dependencies: ansi-regex "^2.0.0" has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" +version "3.0.0" +resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 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== +version "4.0.0" +resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" +integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= +version "1.0.0" +resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" +integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: +version "0.3.1" +resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" +integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= +dependencies: get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" +has-values "^0.1.4" +isobject "^2.0.0" has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: +version "1.0.0" +resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" +integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= +dependencies: get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" +has-values "^1.0.0" +isobject "^3.0.0" has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= +version "0.1.4" +resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" +integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: +version "1.0.0" +resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" +integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= +dependencies: is-number "^3.0.0" - kind-of "^4.0.0" +kind-of "^4.0.0" has-yarn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" - integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== +version "2.1.0" +resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" +integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== has@^1.0.1, has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== +version "1.0.3" +resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" +integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: - function-bind "^1.1.1" +function-bind "^1.1.1" hosted-git-info@^2.1.4: - version "2.4.2" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.2.tgz#0076b9f46a270506ddbaaea56496897460612a67" +version "2.4.2" +resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.2.tgz#0076b9f46a270506ddbaaea56496897460612a67" hosted-git-info@^3.0.6, hosted-git-info@^3.0.7: - version "3.0.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d" - integrity sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw== +version "3.0.8" +resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d" +integrity sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw== dependencies: - lru-cache "^6.0.0" +lru-cache "^6.0.0" html-encoding-sniffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" - integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== +version "1.0.2" +resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" +integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== dependencies: - whatwg-encoding "^1.0.1" +whatwg-encoding "^1.0.1" http-cache-semantics@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz#495704773277eeef6e43f9ab2c2c7d259dda25c5" - integrity sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew== +version "4.0.3" +resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz#495704773277eeef6e43f9ab2c2c7d259dda25c5" +integrity sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew== http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: +version "1.2.0" +resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" +integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= +dependencies: assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" +jsprim "^1.2.2" +sshpk "^1.7.0" 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== +version "2.1.0" +resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" +integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== husky@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/husky/-/husky-1.3.1.tgz#26823e399300388ca2afff11cfa8a86b0033fae0" - integrity sha512-86U6sVVVf4b5NYSZ0yvv88dRgBSSXXmHaiq5pP4KDj5JVzdwKgBjEtUPOm8hcoytezFwbU+7gotXNhpHdystlg== - dependencies: - cosmiconfig "^5.0.7" - execa "^1.0.0" - find-up "^3.0.0" - get-stdin "^6.0.0" - is-ci "^2.0.0" - pkg-dir "^3.0.0" - please-upgrade-node "^3.1.1" - read-pkg "^4.0.1" - run-node "^1.0.0" - slash "^2.0.0" +version "1.3.1" +resolved "https://registry.yarnpkg.com/husky/-/husky-1.3.1.tgz#26823e399300388ca2afff11cfa8a86b0033fae0" +integrity sha512-86U6sVVVf4b5NYSZ0yvv88dRgBSSXXmHaiq5pP4KDj5JVzdwKgBjEtUPOm8hcoytezFwbU+7gotXNhpHdystlg== + dependencies: +cosmiconfig "^5.0.7" +execa "^1.0.0" +find-up "^3.0.0" +get-stdin "^6.0.0" +is-ci "^2.0.0" +pkg-dir "^3.0.0" +please-upgrade-node "^3.1.1" +read-pkg "^4.0.1" +run-node "^1.0.0" +slash "^2.0.0" iconv-lite@0.4.13: - version "0.4.13" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" +version "0.4.13" +resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" 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== +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" +safer-buffer ">= 2.1.2 < 3" ignore-walk@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" - integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== +version "3.0.3" +resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" +integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== dependencies: - minimatch "^3.0.4" +minimatch "^3.0.4" ignore@^5.1.4: - version "5.1.8" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" - integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== +version "5.1.8" +resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" +integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= +version "2.0.0" +resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" +integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" +caller-path "^2.0.0" +resolve-from "^3.0.0" import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== +version "3.3.0" +resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" +integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" +parent-module "^1.0.0" +resolve-from "^4.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" +version "2.1.0" +resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: +version "2.0.0" +resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" +integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== +dependencies: pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" +resolve-cwd "^2.0.0" import-local@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" - integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== +version "3.0.2" +resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" +integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" +pkg-dir "^4.2.0" +resolve-cwd "^3.0.0" imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" +version "0.1.4" +resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" indent-string@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.1.0.tgz#08ff4334603388399b329e6b9538dc7a3cf5de7d" +version "3.1.0" +resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.1.0.tgz#08ff4334603388399b329e6b9538dc7a3cf5de7d" 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== +version "4.0.0" +resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" +integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - dependencies: +version "1.0.6" +resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" +dependencies: once "^1.3.0" - wrappy "1" +wrappy "1" inherits@2, inherits@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" +version "2.0.3" +resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" ini@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" - integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== +version "2.0.0" +resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" +integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== ini@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== +version "1.3.5" +resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" +integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== ini@~1.3.0: - version "1.3.4" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" +version "1.3.4" +resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" inquirer-autosubmit-prompt@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/inquirer-autosubmit-prompt/-/inquirer-autosubmit-prompt-0.2.0.tgz#a10f952af4f7bac9c43010e3e9e0891d7e8d15a1" - integrity sha512-mzNrusCk5L6kSzlN0Ioddn8yzrhYNLli+Sn2ZxMuLechMYAzakiFCIULxsxlQb5YKzthLGfrFACcWoAvM7p04Q== +version "0.2.0" +resolved "https://registry.yarnpkg.com/inquirer-autosubmit-prompt/-/inquirer-autosubmit-prompt-0.2.0.tgz#a10f952af4f7bac9c43010e3e9e0891d7e8d15a1" +integrity sha512-mzNrusCk5L6kSzlN0Ioddn8yzrhYNLli+Sn2ZxMuLechMYAzakiFCIULxsxlQb5YKzthLGfrFACcWoAvM7p04Q== dependencies: - chalk "^2.4.1" - inquirer "^6.2.1" - rxjs "^6.3.3" +chalk "^2.4.1" +inquirer "^6.2.1" +rxjs "^6.3.3" inquirer@^6.2.1: - version "6.2.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.2.tgz#46941176f65c9eb20804627149b743a218f25406" - integrity sha512-Z2rREiXA6cHRR9KBOarR3WuLlFzlIfAEIiB45ll5SSadMg7WqOh1MKEjjndfuH5ewXdixWCxqnVfGOQzPeiztA== - dependencies: - ansi-escapes "^3.2.0" - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.11" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.4.0" - string-width "^2.1.0" - strip-ansi "^5.0.0" - through "^2.3.6" +version "6.2.2" +resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.2.tgz#46941176f65c9eb20804627149b743a218f25406" +integrity sha512-Z2rREiXA6cHRR9KBOarR3WuLlFzlIfAEIiB45ll5SSadMg7WqOh1MKEjjndfuH5ewXdixWCxqnVfGOQzPeiztA== + dependencies: +ansi-escapes "^3.2.0" +chalk "^2.4.2" +cli-cursor "^2.1.0" +cli-width "^2.0.0" +external-editor "^3.0.3" +figures "^2.0.0" +lodash "^4.17.11" +mute-stream "0.0.7" +run-async "^2.2.0" +rxjs "^6.4.0" +string-width "^2.1.0" +strip-ansi "^5.0.0" +through "^2.3.6" inquirer@^7.0.0: - version "7.0.4" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.4.tgz#99af5bde47153abca23f5c7fc30db247f39da703" - integrity sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ== - dependencies: - ansi-escapes "^4.2.1" - chalk "^2.4.2" - cli-cursor "^3.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.15" - mute-stream "0.0.8" - run-async "^2.2.0" - rxjs "^6.5.3" - string-width "^4.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" +version "7.0.4" +resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.4.tgz#99af5bde47153abca23f5c7fc30db247f39da703" +integrity sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ== + dependencies: +ansi-escapes "^4.2.1" +chalk "^2.4.2" +cli-cursor "^3.1.0" +cli-width "^2.0.0" +external-editor "^3.0.3" +figures "^3.0.0" +lodash "^4.17.15" +mute-stream "0.0.8" +run-async "^2.2.0" +rxjs "^6.5.3" +string-width "^4.1.0" +strip-ansi "^5.1.0" +through "^2.3.6" inquirer@^7.3.3: - version "7.3.3" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" - integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.19" - mute-stream "0.0.8" - run-async "^2.4.0" - rxjs "^6.6.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" +version "7.3.3" +resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" +integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== + dependencies: +ansi-escapes "^4.2.1" +chalk "^4.1.0" +cli-cursor "^3.1.0" +cli-width "^3.0.0" +external-editor "^3.0.3" +figures "^3.0.0" +lodash "^4.17.19" +mute-stream "0.0.8" +run-async "^2.4.0" +rxjs "^6.6.0" +string-width "^4.1.0" +strip-ansi "^6.0.0" +through "^2.3.6" invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: +version "2.2.4" +resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" +integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns// LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== +dependencies: loose-envify "^1.0.0" invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" - integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== +version "2.0.0" +resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" +integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== ip-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-3.0.0.tgz#0a934694b4066558c46294244a23cc33116bf732" - integrity sha512-T8wDtjy+Qf2TAPDQmBp0eGKJ8GavlWlUnamr3wRn6vvdZlKVuJXXMlSncYFRYgVHOM3If5NR1H4+OvVQU9Idvg== +version "3.0.0" +resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-3.0.0.tgz#0a934694b4066558c46294244a23cc33116bf732" +integrity sha512-T8wDtjy+Qf2TAPDQmBp0eGKJ8GavlWlUnamr3wRn6vvdZlKVuJXXMlSncYFRYgVHOM3If5NR1H4+OvVQU9Idvg== is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: +version "0.1.6" +resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" +integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= +dependencies: kind-of "^3.0.2" is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== +version "1.0.0" +resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" +integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== dependencies: - kind-of "^6.0.0" +kind-of "^6.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" +version "0.2.1" +resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" is-buffer@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" +version "1.1.5" +resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - dependencies: +version "1.0.0" +resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" +dependencies: builtin-modules "^1.0.0" is-callable@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" - integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== +version "1.1.4" +resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" +integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== +version "2.0.0" +resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" +integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== dependencies: - ci-info "^2.0.0" +ci-info "^2.0.0" is-core-module@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" - integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== +version "2.2.0" +resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" +integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== dependencies: - has "^1.0.3" +has "^1.0.3" is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: +version "0.1.4" +resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" +integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= +dependencies: kind-of "^3.0.2" is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== +version "1.0.0" +resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" +integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== dependencies: - kind-of "^6.0.0" +kind-of "^6.0.0" is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= +version "1.0.1" +resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" +integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== +version "0.1.6" +resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" +integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" +is-accessor-descriptor "^0.1.6" +is-data-descriptor "^0.1.4" +kind-of "^5.0.0" is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== +version "1.0.2" +resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" +integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" +is-accessor-descriptor "^1.0.0" +is-data-descriptor "^1.0.0" +kind-of "^6.0.2" is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= +version "0.3.1" +resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" +integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= is-docker@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.0.0.tgz#2cb0df0e75e2d064fe1864c37cdeacb7b2dcf25b" - integrity sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ== +version "2.0.0" +resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.0.0.tgz#2cb0df0e75e2d064fe1864c37cdeacb7b2dcf25b" +integrity sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ== is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" +version "0.1.1" +resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== +version "1.0.1" +resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" +integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== dependencies: - is-plain-object "^2.0.4" +is-plain-object "^2.0.4" 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= +version "2.1.1" +resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" +integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - dependencies: +version "1.0.0" +resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" +dependencies: number-is-nan "^1.0.0" 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" +version "2.0.0" +resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 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== +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-generator-fn@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.0.0.tgz#038c31b774709641bda678b1f06a4e3227c10b3e" - integrity sha512-elzyIdM7iKoFHzcrndIqjYomImhxrFRnGP3galODoII4TB9gI7mZ+FnlLQmmjf27SxHS2gKEeyhX5/+YRS6H9g== +version "2.0.0" +resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.0.0.tgz#038c31b774709641bda678b1f06a4e3227c10b3e" +integrity sha512-elzyIdM7iKoFHzcrndIqjYomImhxrFRnGP3galODoII4TB9gI7mZ+FnlLQmmjf27SxHS2gKEeyhX5/+YRS6H9g== is-glob@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" - integrity sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A= - dependencies: +version "4.0.0" +resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" +integrity sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A= +dependencies: is-extglob "^2.1.1" is-glob@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== +version "4.0.1" +resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" +integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== dependencies: - is-extglob "^2.1.1" +is-extglob "^2.1.1" is-installed-globally@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" - integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== +version "0.3.2" +resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" +integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== dependencies: - global-dirs "^2.0.1" - is-path-inside "^3.0.1" +global-dirs "^2.0.1" +is-path-inside "^3.0.1" 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" - integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== +version "0.4.0" +resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" +integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== dependencies: - global-dirs "^3.0.0" - is-path-inside "^3.0.2" +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== +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-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== +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@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: +version "3.0.0" +resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" +integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= +dependencies: kind-of "^3.0.2" is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +version "7.0.0" +resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" +integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" +version "1.0.1" +resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== +version "2.0.0" +resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" +integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== is-observable@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" - integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== +version "1.1.0" +resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" +integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== dependencies: - symbol-observable "^1.1.0" +symbol-observable "^1.1.0" is-path-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" +version "1.0.0" +resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" is-path-cwd@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== +version "2.2.0" +resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" +integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== is-path-in-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" - dependencies: +version "1.0.0" +resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" +dependencies: is-path-inside "^1.0.0" is-path-inside@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" - dependencies: +version "1.0.0" +resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" +dependencies: path-is-inside "^1.0.1" is-path-inside@^3.0.1, is-path-inside@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" - integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== +version "3.0.2" +resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" +integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== 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= +version "1.1.0" +resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" +integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== +version "2.0.4" +resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" +integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: - isobject "^3.0.1" +isobject "^3.0.1" is-promise@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" +version "2.1.0" +resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= - dependencies: +version "1.0.4" +resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" +integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= +dependencies: has "^1.0.1" is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= +version "1.0.0" +resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" +integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= is-scoped@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-scoped/-/is-scoped-2.1.0.tgz#fef0713772658bdf5bee418608267ddae6d3566d" - integrity sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ== +version "2.1.0" +resolved "https://registry.yarnpkg.com/is-scoped/-/is-scoped-2.1.0.tgz#fef0713772658bdf5bee418608267ddae6d3566d" +integrity sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ== dependencies: - scoped-regex "^2.0.0" +scoped-regex "^2.0.0" is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" +version "1.1.0" +resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== +version "2.0.0" +resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" +integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== is-symbol@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" - integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== +version "1.0.2" +resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" +integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== dependencies: - has-symbols "^1.0.0" +has-symbols "^1.0.0" is-typedarray@^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" +version "1.0.0" +resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" is-url-superb@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-url-superb/-/is-url-superb-4.0.0.tgz#b54d1d2499bb16792748ac967aa3ecb41a33a8c2" - integrity sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA== +version "4.0.0" +resolved "https://registry.yarnpkg.com/is-url-superb/-/is-url-superb-4.0.0.tgz#b54d1d2499bb16792748ac967aa3ecb41a33a8c2" +integrity sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA== is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== +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: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" - integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== +version "2.1.1" +resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" +integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== is-yarn-global@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" - integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== +version "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@1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" +version "1.0.0" +resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" +version "2.0.0" +resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - dependencies: +version "2.1.0" +resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" +dependencies: isarray "1.0.0" isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= +version "3.0.1" +resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" +integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" +version "0.1.2" +resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" issue-regex@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/issue-regex/-/issue-regex-3.1.0.tgz#0671f094d6449c5b712fac3c9562aecb727d709e" - integrity sha512-0RHjbtw9QXeSYnIEY5Yrp2QZrdtz21xBDV9C/GIlY2POmgoS6a7qjkYS5siRKXScnuAj5/SPv1C3YForNCHTJA== +version "3.1.0" +resolved "https://registry.yarnpkg.com/issue-regex/-/issue-regex-3.1.0.tgz#0671f094d6449c5b712fac3c9562aecb727d709e" +integrity sha512-0RHjbtw9QXeSYnIEY5Yrp2QZrdtz21xBDV9C/GIlY2POmgoS6a7qjkYS5siRKXScnuAj5/SPv1C3YForNCHTJA== istanbul-api@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-2.1.1.tgz#194b773f6d9cbc99a9258446848b0f988951c4d0" - integrity sha512-kVmYrehiwyeBAk/wE71tW6emzLiHGjYIiDrc8sfyty4F8M02/lrgXSm+R1kXysmF20zArvmZXjlE/mg24TVPJw== - dependencies: - async "^2.6.1" - compare-versions "^3.2.1" - fileset "^2.0.3" - istanbul-lib-coverage "^2.0.3" - istanbul-lib-hook "^2.0.3" - istanbul-lib-instrument "^3.1.0" - istanbul-lib-report "^2.0.4" - istanbul-lib-source-maps "^3.0.2" - istanbul-reports "^2.1.1" - js-yaml "^3.12.0" - make-dir "^1.3.0" - minimatch "^3.0.4" - once "^1.4.0" +version "2.1.1" +resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-2.1.1.tgz#194b773f6d9cbc99a9258446848b0f988951c4d0" +integrity sha512-kVmYrehiwyeBAk/wE71tW6emzLiHGjYIiDrc8sfyty4F8M02/lrgXSm+R1kXysmF20zArvmZXjlE/mg24TVPJw== + dependencies: +async "^2.6.1" +compare-versions "^3.2.1" +fileset "^2.0.3" +istanbul-lib-coverage "^2.0.3" +istanbul-lib-hook "^2.0.3" +istanbul-lib-instrument "^3.1.0" +istanbul-lib-report "^2.0.4" +istanbul-lib-source-maps "^3.0.2" +istanbul-reports "^2.1.1" +js-yaml "^3.12.0" +make-dir "^1.3.0" +minimatch "^3.0.4" +once "^1.4.0" istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#0b891e5ad42312c2b9488554f603795f9a2211ba" - integrity sha512-dKWuzRGCs4G+67VfW9pBFFz2Jpi4vSp/k7zBcJ888ofV5Mi1g5CUML5GvMvV6u9Cjybftu+E8Cgp+k0dI1E5lw== +version "2.0.3" +resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#0b891e5ad42312c2b9488554f603795f9a2211ba" +integrity sha512-dKWuzRGCs4G+67VfW9pBFFz2Jpi4vSp/k7zBcJ888ofV5Mi1g5CUML5GvMvV6u9Cjybftu+E8Cgp+k0dI1E5lw== istanbul-lib-hook@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-2.0.3.tgz#e0e581e461c611be5d0e5ef31c5f0109759916fb" - integrity sha512-CLmEqwEhuCYtGcpNVJjLV1DQyVnIqavMLFHV/DP+np/g3qvdxu3gsPqYoJMXm15sN84xOlckFB3VNvRbf5yEgA== +version "2.0.3" +resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-2.0.3.tgz#e0e581e461c611be5d0e5ef31c5f0109759916fb" +integrity sha512-CLmEqwEhuCYtGcpNVJjLV1DQyVnIqavMLFHV/DP+np/g3qvdxu3gsPqYoJMXm15sN84xOlckFB3VNvRbf5yEgA== dependencies: - append-transform "^1.0.0" +append-transform "^1.0.0" istanbul-lib-instrument@^3.0.0, istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.1.0.tgz#a2b5484a7d445f1f311e93190813fa56dfb62971" - integrity sha512-ooVllVGT38HIk8MxDj/OIHXSYvH+1tq/Vb38s8ixt9GoJadXska4WkGY+0wkmtYCZNYtaARniH/DixUGGLZ0uA== - dependencies: - "@babel/generator" "^7.0.0" - "@babel/parser" "^7.0.0" - "@babel/template" "^7.0.0" - "@babel/traverse" "^7.0.0" - "@babel/types" "^7.0.0" - istanbul-lib-coverage "^2.0.3" - semver "^5.5.0" +version "3.1.0" +resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.1.0.tgz#a2b5484a7d445f1f311e93190813fa56dfb62971" +integrity sha512-ooVllVGT38HIk8MxDj/OIHXSYvH+1tq/Vb38s8ixt9GoJadXska4WkGY+0wkmtYCZNYtaARniH/DixUGGLZ0uA== + dependencies: +"@babel/generator" "^7.0.0" +"@babel/parser" "^7.0.0" +"@babel/template" "^7.0.0" +"@babel/traverse" "^7.0.0" +"@babel/types" "^7.0.0" +istanbul-lib-coverage "^2.0.3" +semver "^5.5.0" istanbul-lib-report@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.4.tgz#bfd324ee0c04f59119cb4f07dab157d09f24d7e4" - integrity sha512-sOiLZLAWpA0+3b5w5/dq0cjm2rrNdAfHWaGhmn7XEFW6X++IV9Ohn+pnELAl9K3rfpaeBfbmH9JU5sejacdLeA== +version "2.0.4" +resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.4.tgz#bfd324ee0c04f59119cb4f07dab157d09f24d7e4" +integrity sha512-sOiLZLAWpA0+3b5w5/dq0cjm2rrNdAfHWaGhmn7XEFW6X++IV9Ohn+pnELAl9K3rfpaeBfbmH9JU5sejacdLeA== dependencies: - istanbul-lib-coverage "^2.0.3" - make-dir "^1.3.0" - supports-color "^6.0.0" +istanbul-lib-coverage "^2.0.3" +make-dir "^1.3.0" +supports-color "^6.0.0" istanbul-lib-source-maps@^3.0.1, istanbul-lib-source-maps@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.2.tgz#f1e817229a9146e8424a28e5d69ba220fda34156" - integrity sha512-JX4v0CiKTGp9fZPmoxpu9YEkPbEqCqBbO3403VabKjH+NRXo72HafD5UgnjTEqHL2SAjaZK1XDuDOkn6I5QVfQ== +version "3.0.2" +resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.2.tgz#f1e817229a9146e8424a28e5d69ba220fda34156" +integrity sha512-JX4v0CiKTGp9fZPmoxpu9YEkPbEqCqBbO3403VabKjH+NRXo72HafD5UgnjTEqHL2SAjaZK1XDuDOkn6I5QVfQ== dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^2.0.3" - make-dir "^1.3.0" - rimraf "^2.6.2" - source-map "^0.6.1" +debug "^4.1.1" +istanbul-lib-coverage "^2.0.3" +make-dir "^1.3.0" +rimraf "^2.6.2" +source-map "^0.6.1" istanbul-reports@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.1.1.tgz#72ef16b4ecb9a4a7bd0e2001e00f95d1eec8afa9" - integrity sha512-FzNahnidyEPBCI0HcufJoSEoKykesRlFcSzQqjH9x0+LC8tnnE/p/90PBLu8iZTxr8yYZNyTtiAujUqyN+CIxw== +version "2.1.1" +resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.1.1.tgz#72ef16b4ecb9a4a7bd0e2001e00f95d1eec8afa9" +integrity sha512-FzNahnidyEPBCI0HcufJoSEoKykesRlFcSzQqjH9x0+LC8tnnE/p/90PBLu8iZTxr8yYZNyTtiAujUqyN+CIxw== dependencies: - handlebars "^4.1.0" +handlebars "^4.1.0" jest-changed-files@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.5.0.tgz#4075269ee115d87194fd5822e642af22133cf705" - integrity sha512-Ikl29dosYnTsH9pYa1Tv9POkILBhN/TLZ37xbzgNsZ1D2+2n+8oEZS2yP1BrHn/T4Rs4Ggwwbp/x8CKOS5YJOg== +version "24.5.0" +resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.5.0.tgz#4075269ee115d87194fd5822e642af22133cf705" +integrity sha512-Ikl29dosYnTsH9pYa1Tv9POkILBhN/TLZ37xbzgNsZ1D2+2n+8oEZS2yP1BrHn/T4Rs4Ggwwbp/x8CKOS5YJOg== dependencies: - "@jest/types" "^24.5.0" - execa "^1.0.0" - throat "^4.0.0" +"@jest/types" "^24.5.0" +execa "^1.0.0" +throat "^4.0.0" jest-cli@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.5.0.tgz#598139d3446d1942fb7dc93944b9ba766d756d4b" - integrity sha512-P+Jp0SLO4KWN0cGlNtC7JV0dW1eSFR7eRpoOucP2UM0sqlzp/bVHeo71Omonvigrj9AvCKy7NtQANtqJ7FXz8g== - dependencies: - "@jest/core" "^24.5.0" - "@jest/test-result" "^24.5.0" - "@jest/types" "^24.5.0" - chalk "^2.0.1" - exit "^0.1.2" +version "24.5.0" +resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.5.0.tgz#598139d3446d1942fb7dc93944b9ba766d756d4b" +integrity sha512-P+Jp0SLO4KWN0cGlNtC7JV0dW1eSFR7eRpoOucP2UM0sqlzp/bVHeo71Omonvigrj9AvCKy7NtQANtqJ7FXz8g== + dependencies: +"@jest/core" "^24.5.0" +"@jest/test-result" "^24.5.0" +"@jest/types" "^24.5.0" +chalk "^2.0.1" +exit "^0.1.2" import-local "^2.0.0" - is-ci "^2.0.0" - jest-config "^24.5.0" - jest-util "^24.5.0" - jest-validate "^24.5.0" - prompts "^2.0.1" - realpath-native "^1.1.0" - yargs "^12.0.2" +is-ci "^2.0.0" +jest-config "^24.5.0" +jest-util "^24.5.0" +jest-validate "^24.5.0" +prompts "^2.0.1" +realpath-native "^1.1.0" +yargs "^12.0.2" jest-config@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.5.0.tgz#404d1bc6bb81aed6bd1890d07e2dca9fbba2e121" - integrity sha512-t2UTh0Z2uZhGBNVseF8wA2DS2SuBiLOL6qpLq18+OZGfFUxTM7BzUVKyHFN/vuN+s/aslY1COW95j1Rw81huOQ== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^24.5.0" - babel-jest "^24.5.0" - chalk "^2.0.1" - glob "^7.1.1" - jest-environment-jsdom "^24.5.0" - jest-environment-node "^24.5.0" - jest-get-type "^24.3.0" - jest-jasmine2 "^24.5.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.5.0" - jest-util "^24.5.0" - jest-validate "^24.5.0" - micromatch "^3.1.10" - pretty-format "^24.5.0" - realpath-native "^1.1.0" +version "24.5.0" +resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.5.0.tgz#404d1bc6bb81aed6bd1890d07e2dca9fbba2e121" +integrity sha512-t2UTh0Z2uZhGBNVseF8wA2DS2SuBiLOL6qpLq18+OZGfFUxTM7BzUVKyHFN/vuN+s/aslY1COW95j1Rw81huOQ== + dependencies: +"@babel/core" "^7.1.0" +"@jest/types" "^24.5.0" +babel-jest "^24.5.0" +chalk "^2.0.1" +glob "^7.1.1" +jest-environment-jsdom "^24.5.0" +jest-environment-node "^24.5.0" +jest-get-type "^24.3.0" +jest-jasmine2 "^24.5.0" +jest-regex-util "^24.3.0" +jest-resolve "^24.5.0" +jest-util "^24.5.0" +jest-validate "^24.5.0" +micromatch "^3.1.10" +pretty-format "^24.5.0" +realpath-native "^1.1.0" jest-diff@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.5.0.tgz#a2d8627964bb06a91893c0fbcb28ab228c257652" - integrity sha512-mCILZd9r7zqL9Uh6yNoXjwGQx0/J43OD2vvWVKwOEOLZliQOsojXwqboubAQ+Tszrb6DHGmNU7m4whGeB9YOqw== +version "24.5.0" +resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.5.0.tgz#a2d8627964bb06a91893c0fbcb28ab228c257652" +integrity sha512-mCILZd9r7zqL9Uh6yNoXjwGQx0/J43OD2vvWVKwOEOLZliQOsojXwqboubAQ+Tszrb6DHGmNU7m4whGeB9YOqw== dependencies: - chalk "^2.0.1" - diff-sequences "^24.3.0" - jest-get-type "^24.3.0" - pretty-format "^24.5.0" +chalk "^2.0.1" +diff-sequences "^24.3.0" +jest-get-type "^24.3.0" +pretty-format "^24.5.0" jest-docblock@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.3.0.tgz#b9c32dac70f72e4464520d2ba4aec02ab14db5dd" - integrity sha512-nlANmF9Yq1dufhFlKG9rasfQlrY7wINJbo3q01tu56Jv5eBU5jirylhF2O5ZBnLxzOVBGRDz/9NAwNyBtG4Nyg== +version "24.3.0" +resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.3.0.tgz#b9c32dac70f72e4464520d2ba4aec02ab14db5dd" +integrity sha512-nlANmF9Yq1dufhFlKG9rasfQlrY7wINJbo3q01tu56Jv5eBU5jirylhF2O5ZBnLxzOVBGRDz/9NAwNyBtG4Nyg== dependencies: - detect-newline "^2.1.0" +detect-newline "^2.1.0" jest-each@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.5.0.tgz#da14d017a1b7d0f01fb458d338314cafe7f72318" - integrity sha512-6gy3Kh37PwIT5sNvNY2VchtIFOOBh8UCYnBlxXMb5sr5wpJUDPTUATX2Axq1Vfk+HWTMpsYPeVYp4TXx5uqUBw== +version "24.5.0" +resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.5.0.tgz#da14d017a1b7d0f01fb458d338314cafe7f72318" +integrity sha512-6gy3Kh37PwIT5sNvNY2VchtIFOOBh8UCYnBlxXMb5sr5wpJUDPTUATX2Axq1Vfk+HWTMpsYPeVYp4TXx5uqUBw== dependencies: - "@jest/types" "^24.5.0" - chalk "^2.0.1" - jest-get-type "^24.3.0" - jest-util "^24.5.0" - pretty-format "^24.5.0" +"@jest/types" "^24.5.0" +chalk "^2.0.1" +jest-get-type "^24.3.0" +jest-util "^24.5.0" +pretty-format "^24.5.0" jest-environment-jsdom@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.5.0.tgz#1c3143063e1374100f8c2723a8b6aad23b6db7eb" - integrity sha512-62Ih5HbdAWcsqBx2ktUnor/mABBo1U111AvZWcLKeWN/n/gc5ZvDBKe4Og44fQdHKiXClrNGC6G0mBo6wrPeGQ== +version "24.5.0" +resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.5.0.tgz#1c3143063e1374100f8c2723a8b6aad23b6db7eb" +integrity sha512-62Ih5HbdAWcsqBx2ktUnor/mABBo1U111AvZWcLKeWN/n/gc5ZvDBKe4Og44fQdHKiXClrNGC6G0mBo6wrPeGQ== dependencies: - "@jest/environment" "^24.5.0" - "@jest/fake-timers" "^24.5.0" - "@jest/types" "^24.5.0" - jest-mock "^24.5.0" - jest-util "^24.5.0" - jsdom "^11.5.1" +"@jest/environment" "^24.5.0" +"@jest/fake-timers" "^24.5.0" +"@jest/types" "^24.5.0" +jest-mock "^24.5.0" +jest-util "^24.5.0" +jsdom "^11.5.1" jest-environment-node@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.5.0.tgz#763eebdf529f75b60aa600c6cf8cb09873caa6ab" - integrity sha512-du6FuyWr/GbKLsmAbzNF9mpr2Iu2zWSaq/BNHzX+vgOcts9f2ayXBweS7RAhr+6bLp6qRpMB6utAMF5Ygktxnw== +version "24.5.0" +resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.5.0.tgz#763eebdf529f75b60aa600c6cf8cb09873caa6ab" +integrity sha512-du6FuyWr/GbKLsmAbzNF9mpr2Iu2zWSaq/BNHzX+vgOcts9f2ayXBweS7RAhr+6bLp6qRpMB6utAMF5Ygktxnw== dependencies: - "@jest/environment" "^24.5.0" - "@jest/fake-timers" "^24.5.0" - "@jest/types" "^24.5.0" - jest-mock "^24.5.0" - jest-util "^24.5.0" +"@jest/environment" "^24.5.0" +"@jest/fake-timers" "^24.5.0" +"@jest/types" "^24.5.0" +jest-mock "^24.5.0" +jest-util "^24.5.0" jest-get-type@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.3.0.tgz#582cfd1a4f91b5cdad1d43d2932f816d543c65da" - integrity sha512-HYF6pry72YUlVcvUx3sEpMRwXEWGEPlJ0bSPVnB3b3n++j4phUEoSPcS6GC0pPJ9rpyPSe4cb5muFo6D39cXow== +version "24.3.0" +resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.3.0.tgz#582cfd1a4f91b5cdad1d43d2932f816d543c65da" +integrity sha512-HYF6pry72YUlVcvUx3sEpMRwXEWGEPlJ0bSPVnB3b3n++j4phUEoSPcS6GC0pPJ9rpyPSe4cb5muFo6D39cXow== jest-haste-map@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.5.0.tgz#3f17d0c548b99c0c96ed2893f9c0ccecb2eb9066" - integrity sha512-mb4Yrcjw9vBgSvobDwH8QUovxApdimGcOkp+V1ucGGw4Uvr3VzZQBJhNm1UY3dXYm4XXyTW2G7IBEZ9pM2ggRQ== - dependencies: - "@jest/types" "^24.5.0" - fb-watchman "^2.0.0" - graceful-fs "^4.1.15" - invariant "^2.2.4" - jest-serializer "^24.4.0" - jest-util "^24.5.0" - jest-worker "^24.4.0" - micromatch "^3.1.10" - sane "^4.0.3" +version "24.5.0" +resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.5.0.tgz#3f17d0c548b99c0c96ed2893f9c0ccecb2eb9066" +integrity sha512-mb4Yrcjw9vBgSvobDwH8QUovxApdimGcOkp+V1ucGGw4Uvr3VzZQBJhNm1UY3dXYm4XXyTW2G7IBEZ9pM2ggRQ== + dependencies: +"@jest/types" "^24.5.0" +fb-watchman "^2.0.0" +graceful-fs "^4.1.15" +invariant "^2.2.4" +jest-serializer "^24.4.0" +jest-util "^24.5.0" +jest-worker "^24.4.0" +micromatch "^3.1.10" +sane "^4.0.3" jest-jasmine2@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.5.0.tgz#e6af4d7f73dc527d007cca5a5b177c0bcc29d111" - integrity sha512-sfVrxVcx1rNUbBeyIyhkqZ4q+seNKyAG6iM0S2TYBdQsXjoFDdqWFfsUxb6uXSsbimbXX/NMkJIwUZ1uT9+/Aw== - dependencies: +version "24.5.0" +resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.5.0.tgz#e6af4d7f73dc527d007cca5a5b177c0bcc29d111" +integrity sha512-sfVrxVcx1rNUbBeyIyhkqZ4q+seNKyAG6iM0S2TYBdQsXjoFDdqWFfsUxb6uXSsbimbXX/NMkJIwUZ1uT9+/Aw== +dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^24.5.0" - "@jest/test-result" "^24.5.0" - "@jest/types" "^24.5.0" - chalk "^2.0.1" - co "^4.6.0" - expect "^24.5.0" - is-generator-fn "^2.0.0" - jest-each "^24.5.0" - jest-matcher-utils "^24.5.0" - jest-message-util "^24.5.0" - jest-runtime "^24.5.0" - jest-snapshot "^24.5.0" - jest-util "^24.5.0" - pretty-format "^24.5.0" - throat "^4.0.0" +"@jest/environment" "^24.5.0" +"@jest/test-result" "^24.5.0" +"@jest/types" "^24.5.0" +chalk "^2.0.1" +co "^4.6.0" +expect "^24.5.0" +is-generator-fn "^2.0.0" +jest-each "^24.5.0" +jest-matcher-utils "^24.5.0" +jest-message-util "^24.5.0" +jest-runtime "^24.5.0" +jest-snapshot "^24.5.0" +jest-util "^24.5.0" +pretty-format "^24.5.0" +throat "^4.0.0" jest-leak-detector@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.5.0.tgz#21ae2b3b0da252c1171cd494f75696d65fb6fa89" - integrity sha512-LZKBjGovFRx3cRBkqmIg+BZnxbrLqhQl09IziMk3oeh1OV81Hg30RUIx885mq8qBv1PA0comB9bjKcuyNO1bCQ== +version "24.5.0" +resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.5.0.tgz#21ae2b3b0da252c1171cd494f75696d65fb6fa89" +integrity sha512-LZKBjGovFRx3cRBkqmIg+BZnxbrLqhQl09IziMk3oeh1OV81Hg30RUIx885mq8qBv1PA0comB9bjKcuyNO1bCQ== dependencies: - pretty-format "^24.5.0" +pretty-format "^24.5.0" jest-matcher-utils@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.5.0.tgz#5995549dcf09fa94406e89526e877b094dad8770" - integrity sha512-QM1nmLROjLj8GMGzg5VBra3I9hLpjMPtF1YqzQS3rvWn2ltGZLrGAO1KQ9zUCVi5aCvrkbS5Ndm2evIP9yZg1Q== +version "24.5.0" +resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.5.0.tgz#5995549dcf09fa94406e89526e877b094dad8770" +integrity sha512-QM1nmLROjLj8GMGzg5VBra3I9hLpjMPtF1YqzQS3rvWn2ltGZLrGAO1KQ9zUCVi5aCvrkbS5Ndm2evIP9yZg1Q== dependencies: - chalk "^2.0.1" - jest-diff "^24.5.0" - jest-get-type "^24.3.0" - pretty-format "^24.5.0" +chalk "^2.0.1" +jest-diff "^24.5.0" +jest-get-type "^24.3.0" +pretty-format "^24.5.0" jest-message-util@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.5.0.tgz#181420a65a7ef2e8b5c2f8e14882c453c6d41d07" - integrity sha512-6ZYgdOojowCGiV0D8WdgctZEAe+EcFU+KrVds+0ZjvpZurUW2/oKJGltJ6FWY2joZwYXN5VL36GPV6pNVRqRnQ== - dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/test-result" "^24.5.0" - "@jest/types" "^24.5.0" - "@types/stack-utils" "^1.0.1" - chalk "^2.0.1" - micromatch "^3.1.10" - slash "^2.0.0" - stack-utils "^1.0.1" +version "24.5.0" +resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.5.0.tgz#181420a65a7ef2e8b5c2f8e14882c453c6d41d07" +integrity sha512-6ZYgdOojowCGiV0D8WdgctZEAe+EcFU+KrVds+0ZjvpZurUW2/oKJGltJ6FWY2joZwYXN5VL36GPV6pNVRqRnQ== + dependencies: +"@babel/code-frame" "^7.0.0" +"@jest/test-result" "^24.5.0" +"@jest/types" "^24.5.0" +"@types/stack-utils" "^1.0.1" +chalk "^2.0.1" +micromatch "^3.1.10" +slash "^2.0.0" +stack-utils "^1.0.1" jest-mock@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.5.0.tgz#976912c99a93f2a1c67497a9414aa4d9da4c7b76" - integrity sha512-ZnAtkWrKf48eERgAOiUxVoFavVBziO2pAi2MfZ1+bGXVkDfxWLxU0//oJBkgwbsv6OAmuLBz4XFFqvCFMqnGUw== - dependencies: +version "24.5.0" +resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.5.0.tgz#976912c99a93f2a1c67497a9414aa4d9da4c7b76" +integrity sha512-ZnAtkWrKf48eERgAOiUxVoFavVBziO2pAi2MfZ1+bGXVkDfxWLxU0// oJBkgwbsv6OAmuLBz4XFFqvCFMqnGUw== +dependencies: "@jest/types" "^24.5.0" jest-pnp-resolver@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" - integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ== +version "1.2.1" +resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" +integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ== jest-regex-util@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.3.0.tgz#d5a65f60be1ae3e310d5214a0307581995227b36" - integrity sha512-tXQR1NEOyGlfylyEjg1ImtScwMq8Oh3iJbGTjN7p0J23EuVX1MA8rwU69K4sLbCmwzgCUbVkm0FkSF9TdzOhtg== +version "24.3.0" +resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.3.0.tgz#d5a65f60be1ae3e310d5214a0307581995227b36" +integrity sha512-tXQR1NEOyGlfylyEjg1ImtScwMq8Oh3iJbGTjN7p0J23EuVX1MA8rwU69K4sLbCmwzgCUbVkm0FkSF9TdzOhtg== jest-resolve-dependencies@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.5.0.tgz#1a0dae9cdd41349ca4a84148b3e78da2ba33fd4b" - integrity sha512-dRVM1D+gWrFfrq2vlL5P9P/i8kB4BOYqYf3S7xczZ+A6PC3SgXYSErX/ScW/469pWMboM1uAhgLF+39nXlirCQ== +version "24.5.0" +resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.5.0.tgz#1a0dae9cdd41349ca4a84148b3e78da2ba33fd4b" +integrity sha512-dRVM1D+gWrFfrq2vlL5P9P/i8kB4BOYqYf3S7xczZ+A6PC3SgXYSErX/ScW/469pWMboM1uAhgLF+39nXlirCQ== dependencies: - "@jest/types" "^24.5.0" - jest-regex-util "^24.3.0" - jest-snapshot "^24.5.0" +"@jest/types" "^24.5.0" +jest-regex-util "^24.3.0" +jest-snapshot "^24.5.0" jest-resolve@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.5.0.tgz#8c16ba08f60a1616c3b1cd7afb24574f50a24d04" - integrity sha512-ZIfGqLX1Rg8xJpQqNjdoO8MuxHV1q/i2OO1hLXjgCWFWs5bsedS8UrOdgjUqqNae6DXA+pCyRmdcB7lQEEbXew== +version "24.5.0" +resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.5.0.tgz#8c16ba08f60a1616c3b1cd7afb24574f50a24d04" +integrity sha512-ZIfGqLX1Rg8xJpQqNjdoO8MuxHV1q/i2OO1hLXjgCWFWs5bsedS8UrOdgjUqqNae6DXA+pCyRmdcB7lQEEbXew== dependencies: - "@jest/types" "^24.5.0" - browser-resolve "^1.11.3" - chalk "^2.0.1" - jest-pnp-resolver "^1.2.1" - realpath-native "^1.1.0" +"@jest/types" "^24.5.0" +browser-resolve "^1.11.3" +chalk "^2.0.1" +jest-pnp-resolver "^1.2.1" +realpath-native "^1.1.0" jest-runner@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.5.0.tgz#9be26ece4fd4ab3dfb528b887523144b7c5ffca8" - integrity sha512-oqsiS9TkIZV5dVkD+GmbNfWBRPIvxqmlTQ+AQUJUQ07n+4xTSDc40r+aKBynHw9/tLzafC00DIbJjB2cOZdvMA== - dependencies: - "@jest/console" "^24.3.0" - "@jest/environment" "^24.5.0" - "@jest/test-result" "^24.5.0" - "@jest/types" "^24.5.0" - chalk "^2.4.2" - exit "^0.1.2" - graceful-fs "^4.1.15" - jest-config "^24.5.0" - jest-docblock "^24.3.0" - jest-haste-map "^24.5.0" - jest-jasmine2 "^24.5.0" - jest-leak-detector "^24.5.0" - jest-message-util "^24.5.0" - jest-resolve "^24.5.0" - jest-runtime "^24.5.0" - jest-util "^24.5.0" - jest-worker "^24.4.0" - source-map-support "^0.5.6" - throat "^4.0.0" +version "24.5.0" +resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.5.0.tgz#9be26ece4fd4ab3dfb528b887523144b7c5ffca8" +integrity sha512-oqsiS9TkIZV5dVkD+GmbNfWBRPIvxqmlTQ+AQUJUQ07n+4xTSDc40r+aKBynHw9/tLzafC00DIbJjB2cOZdvMA== + dependencies: +"@jest/console" "^24.3.0" +"@jest/environment" "^24.5.0" +"@jest/test-result" "^24.5.0" +"@jest/types" "^24.5.0" +chalk "^2.4.2" +exit "^0.1.2" +graceful-fs "^4.1.15" +jest-config "^24.5.0" +jest-docblock "^24.3.0" +jest-haste-map "^24.5.0" +jest-jasmine2 "^24.5.0" +jest-leak-detector "^24.5.0" +jest-message-util "^24.5.0" +jest-resolve "^24.5.0" +jest-runtime "^24.5.0" +jest-util "^24.5.0" +jest-worker "^24.4.0" +source-map-support "^0.5.6" +throat "^4.0.0" jest-runtime@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.5.0.tgz#3a76e0bfef4db3896d5116e9e518be47ba771aa2" - integrity sha512-GTFHzfLdwpaeoDPilNpBrorlPoNZuZrwKKzKJs09vWwHo+9TOsIIuszK8cWOuKC7ss07aN1922Ge8fsGdsqCuw== - dependencies: - "@jest/console" "^24.3.0" - "@jest/environment" "^24.5.0" - "@jest/source-map" "^24.3.0" - "@jest/transform" "^24.5.0" - "@jest/types" "^24.5.0" - "@types/yargs" "^12.0.2" - chalk "^2.0.1" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.1.15" - jest-config "^24.5.0" - jest-haste-map "^24.5.0" - jest-message-util "^24.5.0" - jest-mock "^24.5.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.5.0" - jest-snapshot "^24.5.0" - jest-util "^24.5.0" - jest-validate "^24.5.0" - realpath-native "^1.1.0" - slash "^2.0.0" - strip-bom "^3.0.0" - yargs "^12.0.2" +version "24.5.0" +resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.5.0.tgz#3a76e0bfef4db3896d5116e9e518be47ba771aa2" +integrity sha512-GTFHzfLdwpaeoDPilNpBrorlPoNZuZrwKKzKJs09vWwHo+9TOsIIuszK8cWOuKC7ss07aN1922Ge8fsGdsqCuw== + dependencies: +"@jest/console" "^24.3.0" +"@jest/environment" "^24.5.0" +"@jest/source-map" "^24.3.0" +"@jest/transform" "^24.5.0" +"@jest/types" "^24.5.0" +"@types/yargs" "^12.0.2" +chalk "^2.0.1" +exit "^0.1.2" +glob "^7.1.3" +graceful-fs "^4.1.15" +jest-config "^24.5.0" +jest-haste-map "^24.5.0" +jest-message-util "^24.5.0" +jest-mock "^24.5.0" +jest-regex-util "^24.3.0" +jest-resolve "^24.5.0" +jest-snapshot "^24.5.0" +jest-util "^24.5.0" +jest-validate "^24.5.0" +realpath-native "^1.1.0" +slash "^2.0.0" +strip-bom "^3.0.0" +yargs "^12.0.2" jest-serializer@^24.4.0: - version "24.4.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.4.0.tgz#f70c5918c8ea9235ccb1276d232e459080588db3" - integrity sha512-k//0DtglVstc1fv+GY/VHDIjrtNjdYvYjMlbLUed4kxrE92sIUewOi5Hj3vrpB8CXfkJntRPDRjCrCvUhBdL8Q== +version "24.4.0" +resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.4.0.tgz#f70c5918c8ea9235ccb1276d232e459080588db3" +integrity sha512-k// 0DtglVstc1fv+GY/VHDIjrtNjdYvYjMlbLUed4kxrE92sIUewOi5Hj3vrpB8CXfkJntRPDRjCrCvUhBdL8Q== jest-snapshot@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.5.0.tgz#e5d224468a759fd19e36f01217aac912f500f779" - integrity sha512-eBEeJb5ROk0NcpodmSKnCVgMOo+Qsu5z9EDl3tGffwPzK1yV37mjGWF2YeIz1NkntgTzP+fUL4s09a0+0dpVWA== - dependencies: - "@babel/types" "^7.0.0" - "@jest/types" "^24.5.0" - chalk "^2.0.1" - expect "^24.5.0" - jest-diff "^24.5.0" - jest-matcher-utils "^24.5.0" - jest-message-util "^24.5.0" - jest-resolve "^24.5.0" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - pretty-format "^24.5.0" - semver "^5.5.0" +version "24.5.0" +resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.5.0.tgz#e5d224468a759fd19e36f01217aac912f500f779" +integrity sha512-eBEeJb5ROk0NcpodmSKnCVgMOo+Qsu5z9EDl3tGffwPzK1yV37mjGWF2YeIz1NkntgTzP+fUL4s09a0+0dpVWA== + dependencies: +"@babel/types" "^7.0.0" +"@jest/types" "^24.5.0" +chalk "^2.0.1" +expect "^24.5.0" +jest-diff "^24.5.0" +jest-matcher-utils "^24.5.0" +jest-message-util "^24.5.0" +jest-resolve "^24.5.0" +mkdirp "^0.5.1" +natural-compare "^1.4.0" +pretty-format "^24.5.0" +semver "^5.5.0" jest-util@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.5.0.tgz#9d9cb06d9dcccc8e7cc76df91b1635025d7baa84" - integrity sha512-Xy8JsD0jvBz85K7VsTIQDuY44s+hYJyppAhcsHsOsGisVtdhar6fajf2UOf2mEVEgh15ZSdA0zkCuheN8cbr1Q== - dependencies: - "@jest/console" "^24.3.0" - "@jest/fake-timers" "^24.5.0" - "@jest/source-map" "^24.3.0" - "@jest/test-result" "^24.5.0" - "@jest/types" "^24.5.0" - "@types/node" "*" - callsites "^3.0.0" - chalk "^2.0.1" - graceful-fs "^4.1.15" - is-ci "^2.0.0" - mkdirp "^0.5.1" - slash "^2.0.0" - source-map "^0.6.0" +version "24.5.0" +resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.5.0.tgz#9d9cb06d9dcccc8e7cc76df91b1635025d7baa84" +integrity sha512-Xy8JsD0jvBz85K7VsTIQDuY44s+hYJyppAhcsHsOsGisVtdhar6fajf2UOf2mEVEgh15ZSdA0zkCuheN8cbr1Q== + dependencies: +"@jest/console" "^24.3.0" +"@jest/fake-timers" "^24.5.0" +"@jest/source-map" "^24.3.0" +"@jest/test-result" "^24.5.0" +"@jest/types" "^24.5.0" +"@types/node" "*" +callsites "^3.0.0" +chalk "^2.0.1" +graceful-fs "^4.1.15" +is-ci "^2.0.0" +mkdirp "^0.5.1" +slash "^2.0.0" +source-map "^0.6.0" jest-validate@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.5.0.tgz#62fd93d81214c070bb2d7a55f329a79d8057c7de" - integrity sha512-gg0dYszxjgK2o11unSIJhkOFZqNRQbWOAB2/LOUdsd2LfD9oXiMeuee8XsT0iRy5EvSccBgB4h/9HRbIo3MHgQ== +version "24.5.0" +resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.5.0.tgz#62fd93d81214c070bb2d7a55f329a79d8057c7de" +integrity sha512-gg0dYszxjgK2o11unSIJhkOFZqNRQbWOAB2/LOUdsd2LfD9oXiMeuee8XsT0iRy5EvSccBgB4h/9HRbIo3MHgQ== dependencies: - "@jest/types" "^24.5.0" - camelcase "^5.0.0" - chalk "^2.0.1" - jest-get-type "^24.3.0" - leven "^2.1.0" - pretty-format "^24.5.0" +"@jest/types" "^24.5.0" +camelcase "^5.0.0" +chalk "^2.0.1" +jest-get-type "^24.3.0" +leven "^2.1.0" +pretty-format "^24.5.0" jest-watcher@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.5.0.tgz#da7bd9cb5967e274889b42078c8f501ae1c47761" - integrity sha512-/hCpgR6bg0nKvD3nv4KasdTxuhwfViVMHUATJlnGCD0r1QrmIssimPbmc5KfAQblAVxkD8xrzuij9vfPUk1/rA== - dependencies: - "@jest/test-result" "^24.5.0" - "@jest/types" "^24.5.0" - "@types/node" "*" - "@types/yargs" "^12.0.9" - ansi-escapes "^3.0.0" - chalk "^2.0.1" - jest-util "^24.5.0" - string-length "^2.0.0" +version "24.5.0" +resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.5.0.tgz#da7bd9cb5967e274889b42078c8f501ae1c47761" +integrity sha512-/hCpgR6bg0nKvD3nv4KasdTxuhwfViVMHUATJlnGCD0r1QrmIssimPbmc5KfAQblAVxkD8xrzuij9vfPUk1/rA== + dependencies: +"@jest/test-result" "^24.5.0" +"@jest/types" "^24.5.0" +"@types/node" "*" +"@types/yargs" "^12.0.9" +ansi-escapes "^3.0.0" +chalk "^2.0.1" +jest-util "^24.5.0" +string-length "^2.0.0" jest-worker@^24.4.0: - version "24.4.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.4.0.tgz#fbc452b0120bb5c2a70cdc88fa132b48eeb11dd0" - integrity sha512-BH9X/klG9vxwoO99ZBUbZFfV8qO0XNZ5SIiCyYK2zOuJBl6YJVAeNIQjcoOVNu4HGEHeYEKsUWws8kSlSbZ9YQ== +version "24.4.0" +resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.4.0.tgz#fbc452b0120bb5c2a70cdc88fa132b48eeb11dd0" +integrity sha512-BH9X/klG9vxwoO99ZBUbZFfV8qO0XNZ5SIiCyYK2zOuJBl6YJVAeNIQjcoOVNu4HGEHeYEKsUWws8kSlSbZ9YQ== dependencies: - "@types/node" "*" - merge-stream "^1.0.1" - supports-color "^6.1.0" +"@types/node" "*" +merge-stream "^1.0.1" +supports-color "^6.1.0" jest@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-24.5.0.tgz#38f11ae2c2baa2f86c2bc4d8a91d2b51612cd19a" - integrity sha512-lxL+Fq5/RH7inxxmfS2aZLCf8MsS+YCUBfeiNO6BWz/MmjhDGaIEA/2bzEf9q4Q0X+mtFHiinHFvQ0u+RvW/qQ== +version "24.5.0" +resolved "https://registry.yarnpkg.com/jest/-/jest-24.5.0.tgz#38f11ae2c2baa2f86c2bc4d8a91d2b51612cd19a" +integrity sha512-lxL+Fq5/RH7inxxmfS2aZLCf8MsS+YCUBfeiNO6BWz/MmjhDGaIEA/2bzEf9q4Q0X+mtFHiinHFvQ0u+RvW/qQ== dependencies: import-local "^2.0.0" - jest-cli "^24.5.0" +jest-cli "^24.5.0" jodid25519@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" - dependencies: +version "1.0.2" +resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" +dependencies: jsbn "~0.1.0" js-tokens@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" +version "3.0.1" +resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" 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== +version "4.0.0" +resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" +integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^3.12.0, js-yaml@^3.9.0: - version "3.13.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.0.tgz#38ee7178ac0eea2c97ff6d96fff4b18c7d8cf98e" - integrity sha512-pZZoSxcCYco+DIKBTimr67J6Hy+EYGZDY/HCWC+iAEA9h1ByhMXAIVUXMcMFpOCxQ/xjXmPI2MkDL5HRm5eFrQ== +version "3.13.0" +resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.0.tgz#38ee7178ac0eea2c97ff6d96fff4b18c7d8cf98e" +integrity sha512-pZZoSxcCYco+DIKBTimr67J6Hy+EYGZDY/HCWC+iAEA9h1ByhMXAIVUXMcMFpOCxQ/xjXmPI2MkDL5HRm5eFrQ== dependencies: - argparse "^1.0.7" - esprima "^4.0.0" +argparse "^1.0.7" +esprima "^4.0.0" js-yaml@^3.7.0: - version "3.8.4" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.4.tgz#520b4564f86573ba96662af85a8cafa7b4b5a6f6" - dependencies: +version "3.8.4" +resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.4.tgz#520b4564f86573ba96662af85a8cafa7b4b5a6f6" +dependencies: argparse "^1.0.7" - esprima "^3.1.1" +esprima "^3.1.1" jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" +version "0.1.1" +resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" jsdom@^11.5.1: - version "11.12.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" - integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw== - dependencies: - abab "^2.0.0" - acorn "^5.5.3" - acorn-globals "^4.1.0" - array-equal "^1.0.0" - cssom ">= 0.3.2 < 0.4.0" - cssstyle "^1.0.0" - data-urls "^1.0.0" - domexception "^1.0.1" - escodegen "^1.9.1" - html-encoding-sniffer "^1.0.2" - left-pad "^1.3.0" - nwsapi "^2.0.7" - parse5 "4.0.0" - pn "^1.1.0" - request "^2.87.0" - request-promise-native "^1.0.5" - sax "^1.2.4" - symbol-tree "^3.2.2" - tough-cookie "^2.3.4" - w3c-hr-time "^1.0.1" - webidl-conversions "^4.0.2" - whatwg-encoding "^1.0.3" - whatwg-mimetype "^2.1.0" - whatwg-url "^6.4.1" - ws "^5.2.0" - xml-name-validator "^3.0.0" +version "11.12.0" +resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" +integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw== + dependencies: +abab "^2.0.0" +acorn "^5.5.3" +acorn-globals "^4.1.0" +array-equal "^1.0.0" +cssom ">= 0.3.2 < 0.4.0" +cssstyle "^1.0.0" +data-urls "^1.0.0" +domexception "^1.0.1" +escodegen "^1.9.1" +html-encoding-sniffer "^1.0.2" +left-pad "^1.3.0" +nwsapi "^2.0.7" +parse5 "4.0.0" +pn "^1.1.0" +request "^2.87.0" +request-promise-native "^1.0.5" +sax "^1.2.4" +symbol-tree "^3.2.2" +tough-cookie "^2.3.4" +w3c-hr-time "^1.0.1" +webidl-conversions "^4.0.2" +whatwg-encoding "^1.0.3" +whatwg-mimetype "^2.1.0" +whatwg-url "^6.4.1" +ws "^5.2.0" +xml-name-validator "^3.0.0" jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +version "2.5.2" +resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" +integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 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= +version "3.0.0" +resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" +integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= 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== +version "3.0.1" +resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" +integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== +version "1.0.2" +resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" +integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +version "0.4.1" +resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" +integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" +version "0.2.3" +resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" json-stable-stringify@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz#e06f23128e0bbe342dc996ed5a19e28b57b580e0" - integrity sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g== +version "1.0.2" +resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz#e06f23128e0bbe342dc996ed5a19e28b57b580e0" +integrity sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g== dependencies: - jsonify "^0.0.1" +jsonify "^0.0.1" 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" +version "5.0.1" +resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" json5@2.x, json5@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" - integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== +version "2.1.0" +resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" +integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== dependencies: - minimist "^1.2.0" +minimist "^1.2.0" jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== +version "6.1.0" +resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" +integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== dependencies: - universalify "^2.0.0" - optionalDependencies: +universalify "^2.0.0" +optionalDependencies: graceful-fs "^4.1.6" jsonify@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" - integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== +version "0.0.1" +resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" +integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== jsprim@^1.2.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918" - dependencies: +version "1.4.0" +resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918" +dependencies: assert-plus "1.0.0" - extsprintf "1.0.2" - json-schema "0.2.3" - verror "1.3.6" +extsprintf "1.0.2" +json-schema "0.2.3" +verror "1.3.6" keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== +version "3.1.0" +resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" +integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== dependencies: - json-buffer "3.0.0" +json-buffer "3.0.0" keyv@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254" - integrity sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA== +version "4.0.3" +resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254" +integrity sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA== dependencies: - json-buffer "3.0.1" +json-buffer "3.0.1" kind-of@^3.0.2: - version "3.2.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.0.tgz#b58abe4d5c044ad33726a8c1525b48cf891bff07" - dependencies: +version "3.2.0" +resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.0.tgz#b58abe4d5c044ad33726a8c1525b48cf891bff07" +dependencies: is-buffer "^1.1.5" kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: +version "3.2.2" +resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" +integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= +dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: +version "4.0.0" +resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" +integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= +dependencies: is-buffer "^1.1.5" kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== +version "5.1.0" +resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" +integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== +version "6.0.2" +resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" +integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== kind-of@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +version "6.0.3" +resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" +integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== klaw-sync@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c" - integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ== +version "6.0.0" +resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c" +integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ== dependencies: - graceful-fs "^4.1.11" +graceful-fs "^4.1.11" kleur@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.2.tgz#83c7ec858a41098b613d5998a7b653962b504f68" - integrity sha512-3h7B2WRT5LNXOtQiAaWonilegHcPSf9nLVXlSTci8lu1dZUuui61+EsPEZqSVxY7rXYmB2DVKMQILxaO5WL61Q== +version "3.0.2" +resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.2.tgz#83c7ec858a41098b613d5998a7b653962b504f68" +integrity sha512-3h7B2WRT5LNXOtQiAaWonilegHcPSf9nLVXlSTci8lu1dZUuui61+EsPEZqSVxY7rXYmB2DVKMQILxaO5WL61Q== latest-version@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" - integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== +version "5.1.0" +resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" +integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== dependencies: - package-json "^6.3.0" +package-json "^6.3.0" lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" - integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== +version "2.0.0" +resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" +integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== dependencies: - invert-kv "^2.0.0" +invert-kv "^2.0.0" left-pad@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" - integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== +version "1.3.0" +resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" +integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== leven@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" +version "2.1.0" +resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - dependencies: +version "0.3.0" +resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" +dependencies: prelude-ls "~1.1.2" - type-check "~0.3.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.1.6" +resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" +integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= lint-staged@^8.1.5: - version "8.1.5" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-8.1.5.tgz#372476fe1a58b8834eb562ed4c99126bd60bdd79" - integrity sha512-e5ZavfnSLcBJE1BTzRTqw6ly8OkqVyO3GL2M6teSmTBYQ/2BuueD5GIt2RPsP31u/vjKdexUyDCxSyK75q4BDA== - dependencies: - chalk "^2.3.1" - commander "^2.14.1" - cosmiconfig "^5.0.2" - debug "^3.1.0" - dedent "^0.7.0" - del "^3.0.0" - execa "^1.0.0" - find-parent-dir "^0.3.0" - g-status "^2.0.2" - is-glob "^4.0.0" - is-windows "^1.0.2" - listr "^0.14.2" - listr-update-renderer "^0.5.0" - lodash "^4.17.11" - log-symbols "^2.2.0" - micromatch "^3.1.8" - npm-which "^3.0.1" - p-map "^1.1.1" - path-is-inside "^1.0.2" - pify "^3.0.0" - please-upgrade-node "^3.0.2" - staged-git-files "1.1.2" - string-argv "^0.0.2" - stringify-object "^3.2.2" - yup "^0.26.10" +version "8.1.5" +resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-8.1.5.tgz#372476fe1a58b8834eb562ed4c99126bd60bdd79" +integrity sha512-e5ZavfnSLcBJE1BTzRTqw6ly8OkqVyO3GL2M6teSmTBYQ/2BuueD5GIt2RPsP31u/vjKdexUyDCxSyK75q4BDA== + dependencies: +chalk "^2.3.1" +commander "^2.14.1" +cosmiconfig "^5.0.2" +debug "^3.1.0" +dedent "^0.7.0" +del "^3.0.0" +execa "^1.0.0" +find-parent-dir "^0.3.0" +g-status "^2.0.2" +is-glob "^4.0.0" +is-windows "^1.0.2" +listr "^0.14.2" +listr-update-renderer "^0.5.0" +lodash "^4.17.11" +log-symbols "^2.2.0" +micromatch "^3.1.8" +npm-which "^3.0.1" +p-map "^1.1.1" +path-is-inside "^1.0.2" +pify "^3.0.0" +please-upgrade-node "^3.0.2" +staged-git-files "1.1.2" +string-argv "^0.0.2" +stringify-object "^3.2.2" +yup "^0.26.10" listr-input@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/listr-input/-/listr-input-0.2.1.tgz#ce735c34530683580388fdf9462ecfebd3b66126" - integrity sha512-oa8iVG870qJq+OuuMK3DjGqFcwsK1SDu+kULp9kEq09TY231aideIZenr3lFOQdASpAr6asuyJBbX62/a3IIhg== +version "0.2.1" +resolved "https://registry.yarnpkg.com/listr-input/-/listr-input-0.2.1.tgz#ce735c34530683580388fdf9462ecfebd3b66126" +integrity sha512-oa8iVG870qJq+OuuMK3DjGqFcwsK1SDu+kULp9kEq09TY231aideIZenr3lFOQdASpAr6asuyJBbX62/a3IIhg== dependencies: - inquirer "^7.0.0" - inquirer-autosubmit-prompt "^0.2.0" - rxjs "^6.5.3" - through "^2.3.8" +inquirer "^7.0.0" +inquirer-autosubmit-prompt "^0.2.0" +rxjs "^6.5.3" +through "^2.3.8" listr-silent-renderer@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" +version "1.1.1" +resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" listr-update-renderer@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" - integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA== - dependencies: - chalk "^1.1.3" - cli-truncate "^0.2.1" - elegant-spinner "^1.0.1" - figures "^1.7.0" - indent-string "^3.0.0" - log-symbols "^1.0.2" - log-update "^2.3.0" - strip-ansi "^3.0.1" +version "0.5.0" +resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" +integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA== + dependencies: +chalk "^1.1.3" +cli-truncate "^0.2.1" +elegant-spinner "^1.0.1" +figures "^1.7.0" +indent-string "^3.0.0" +log-symbols "^1.0.2" +log-update "^2.3.0" +strip-ansi "^3.0.1" listr-verbose-renderer@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" - integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw== +version "0.5.0" +resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" +integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw== dependencies: - chalk "^2.4.1" - cli-cursor "^2.1.0" - date-fns "^1.27.2" - figures "^2.0.0" +chalk "^2.4.1" +cli-cursor "^2.1.0" +date-fns "^1.27.2" +figures "^2.0.0" listr@^0.14.2, listr@^0.14.3: - version "0.14.3" - resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" - integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== - dependencies: - "@samverschueren/stream-to-observable" "^0.3.0" - is-observable "^1.1.0" - is-promise "^2.1.0" - is-stream "^1.1.0" - listr-silent-renderer "^1.1.1" - listr-update-renderer "^0.5.0" - listr-verbose-renderer "^0.5.0" - p-map "^2.0.0" - rxjs "^6.3.3" +version "0.14.3" +resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" +integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== + dependencies: +"@samverschueren/stream-to-observable" "^0.3.0" +is-observable "^1.1.0" +is-promise "^2.1.0" +is-stream "^1.1.0" +listr-silent-renderer "^1.1.1" +listr-update-renderer "^0.5.0" +listr-verbose-renderer "^0.5.0" +p-map "^2.0.0" +rxjs "^6.3.3" 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= - dependencies: +version "4.0.0" +resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" +integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= +dependencies: graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" +parse-json "^4.0.0" +pify "^3.0.0" +strip-bom "^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== +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" +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" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== +version "5.0.0" +resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" +integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: - p-locate "^4.1.0" +p-locate "^4.1.0" locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== +version "6.0.0" +resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" +integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: - p-locate "^5.0.0" +p-locate "^5.0.0" lodash.get@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= +version "4.4.2" +resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" +integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= lodash.isequal@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= +version "4.5.0" +resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" +integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= +version "4.7.0" +resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" +integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= lodash.zip@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.zip/-/lodash.zip-4.2.0.tgz#ec6662e4896408ed4ab6c542a3990b72cc080020" - integrity sha1-7GZi5IlkCO1KtsVCo5kLcswIACA= +version "4.2.0" +resolved "https://registry.yarnpkg.com/lodash.zip/-/lodash.zip-4.2.0.tgz#ec6662e4896408ed4ab6c542a3990b72cc080020" +integrity sha1-7GZi5IlkCO1KtsVCo5kLcswIACA= lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11: - version "4.17.11" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" - integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== +version "4.17.11" +resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" +integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== lodash@^4.17.15: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== +version "4.17.15" +resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" +integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== lodash@^4.17.19: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +version "4.17.21" +resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" +integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== log-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" - dependencies: +version "1.0.2" +resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" +dependencies: chalk "^1.0.0" log-symbols@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" - integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== +version "2.2.0" +resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" +integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== dependencies: - chalk "^2.0.1" +chalk "^2.0.1" log-symbols@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" - integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== +version "4.0.0" +resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" +integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== dependencies: - chalk "^4.0.0" +chalk "^4.0.0" log-update@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" - integrity sha1-iDKP19HOeTiykoN0bwsbwSayRwg= - dependencies: +version "2.3.0" +resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" +integrity sha1-iDKP19HOeTiykoN0bwsbwSayRwg= +dependencies: ansi-escapes "^3.0.0" - cli-cursor "^2.0.0" - wrap-ansi "^3.0.1" +cli-cursor "^2.0.0" +wrap-ansi "^3.0.1" loose-envify@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" - dependencies: +version "1.3.1" +resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" +dependencies: js-tokens "^3.0.0" lowercase-keys@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" +version "1.0.0" +resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== +version "1.0.1" +resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" +integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== +version "2.0.0" +resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" +integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== +version "6.0.0" +resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" +integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: - yallist "^4.0.0" +yallist "^4.0.0" make-dir@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== +version "1.3.0" +resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" +integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== dependencies: - pify "^3.0.0" +pify "^3.0.0" make-dir@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.2.tgz#04a1acbf22221e1d6ef43559f43e05a90dbb4392" - integrity sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w== +version "3.0.2" +resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.2.tgz#04a1acbf22221e1d6ef43559f43e05a90dbb4392" +integrity sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w== dependencies: - semver "^6.0.0" +semver "^6.0.0" make-error@1.x: version "1.3.5" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" - integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== +resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" +integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== make-error@^1.1.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.4.tgz#19978ed575f9e9545d2ff8c13e33b5d18a67d535" +version "1.3.4" +resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.4.tgz#19978ed575f9e9545d2ff8c13e33b5d18a67d535" makeerror@1.0.x: - version "1.0.11" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" - dependencies: +version "1.0.11" +resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" +dependencies: tmpl "1.0.x" map-age-cleaner@^0.1.1, map-age-cleaner@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== +version "0.1.3" +resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" +integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== dependencies: - p-defer "^1.0.0" +p-defer "^1.0.0" map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= +version "0.2.2" +resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" +integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= map-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" +version "1.0.1" +resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" map-obj@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.1.0.tgz#b91221b542734b9f14256c0132c897c5d7256fd5" - integrity sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g== +version "4.1.0" +resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.1.0.tgz#b91221b542734b9f14256c0132c897c5d7256fd5" +integrity sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g== map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: +version "1.0.0" +resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" +integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= +dependencies: object-visit "^1.0.0" matcher@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/matcher/-/matcher-1.1.1.tgz#51d8301e138f840982b338b116bb0c09af62c1c2" - integrity sha512-+BmqxWIubKTRKNWx/ahnCkk3mG8m7OturVlqq6HiojGJTd5hVYbgZm6WzcYPCoB+KBT4Vd6R7WSRG2OADNaCjg== +version "1.1.1" +resolved "https://registry.yarnpkg.com/matcher/-/matcher-1.1.1.tgz#51d8301e138f840982b338b116bb0c09af62c1c2" +integrity sha512-+BmqxWIubKTRKNWx/ahnCkk3mG8m7OturVlqq6HiojGJTd5hVYbgZm6WzcYPCoB+KBT4Vd6R7WSRG2OADNaCjg== dependencies: - escape-string-regexp "^1.0.4" +escape-string-regexp "^1.0.4" mem@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.2.0.tgz#5ee057680ed9cb8dad8a78d820f9a8897a102025" - integrity sha512-5fJxa68urlY0Ir8ijatKa3eRz5lwXnRCTvo9+TbTGAuTFJOwpGcY0X05moBd0nW45965Njt4CDI2GFQoG8DvqA== +version "4.2.0" +resolved "https://registry.yarnpkg.com/mem/-/mem-4.2.0.tgz#5ee057680ed9cb8dad8a78d820f9a8897a102025" +integrity sha512-5fJxa68urlY0Ir8ijatKa3eRz5lwXnRCTvo9+TbTGAuTFJOwpGcY0X05moBd0nW45965Njt4CDI2GFQoG8DvqA== dependencies: - map-age-cleaner "^0.1.1" - mimic-fn "^2.0.0" - p-is-promise "^2.0.0" +map-age-cleaner "^0.1.1" +mimic-fn "^2.0.0" +p-is-promise "^2.0.0" mem@^6.0.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/mem/-/mem-6.1.1.tgz#ea110c2ebc079eca3022e6b08c85a795e77f6318" - integrity sha512-Ci6bIfq/UgcxPTYa8dQQ5FY3BzKkT894bwXWXxC/zqs0XgMO2cT20CGkOqda7gZNkmK5VP4x89IGZ6K7hfbn3Q== +version "6.1.1" +resolved "https://registry.yarnpkg.com/mem/-/mem-6.1.1.tgz#ea110c2ebc079eca3022e6b08c85a795e77f6318" +integrity sha512-Ci6bIfq/UgcxPTYa8dQQ5FY3BzKkT894bwXWXxC/zqs0XgMO2cT20CGkOqda7gZNkmK5VP4x89IGZ6K7hfbn3Q== dependencies: - map-age-cleaner "^0.1.3" - mimic-fn "^3.0.0" +map-age-cleaner "^0.1.3" +mimic-fn "^3.0.0" meow@^8.1.0: - version "8.1.2" - resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" - integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== - dependencies: - "@types/minimist" "^1.2.0" - camelcase-keys "^6.2.2" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "4.1.0" - normalize-package-data "^3.0.0" - read-pkg-up "^7.0.1" - redent "^3.0.0" - trim-newlines "^3.0.0" - type-fest "^0.18.0" - yargs-parser "^20.2.3" +version "8.1.2" +resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" +integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== + dependencies: +"@types/minimist" "^1.2.0" +camelcase-keys "^6.2.2" +decamelize-keys "^1.1.0" +hard-rejection "^2.1.0" +minimist-options "4.1.0" +normalize-package-data "^3.0.0" +read-pkg-up "^7.0.1" +redent "^3.0.0" +trim-newlines "^3.0.0" +type-fest "^0.18.0" +yargs-parser "^20.2.3" merge-stream@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" - integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE= - dependencies: +version "1.0.1" +resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" +integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE= +dependencies: readable-stream "^2.0.1" merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== +version "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: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== +version "1.4.1" +resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" +integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" +version "3.1.10" +resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" +integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: +arr-diff "^4.0.0" +array-unique "^0.3.2" +braces "^2.3.1" +define-property "^2.0.2" +extend-shallow "^3.0.2" +extglob "^2.0.4" +fragment-cache "^0.2.1" +kind-of "^6.0.2" +nanomatch "^1.2.9" +object.pick "^1.3.0" +regex-not "^1.0.0" +snapdragon "^0.8.1" +to-regex "^3.0.2" micromatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" - integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== +version "4.0.2" +resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" +integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== dependencies: - braces "^3.0.1" - picomatch "^2.0.5" +braces "^3.0.1" +picomatch "^2.0.5" mime-db@~1.27.0: - version "1.27.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" +version "1.27.0" +resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" mime-db@~1.37.0: - version "1.37.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8" - integrity sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg== +version "1.37.0" +resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8" +integrity sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg== mime-types@^2.1.12: - version "2.1.15" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" - dependencies: +version "2.1.15" +resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" +dependencies: mime-db "~1.27.0" mime-types@~2.1.19: - version "2.1.21" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96" - integrity sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg== +version "2.1.21" +resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96" +integrity sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg== dependencies: - mime-db "~1.37.0" +mime-db "~1.37.0" mimic-fn@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" +version "1.1.0" +resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" mimic-fn@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.0.0.tgz#0913ff0b121db44ef5848242c38bbb35d44cabde" - integrity sha512-jbex9Yd/3lmICXwYT6gA/j2mNQGU48wCh/VzRd+/Y/PjYQtlg1gLMdZqvu9s/xH7qKvngxRObl56XZR609IMbA== +version "2.0.0" +resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.0.0.tgz#0913ff0b121db44ef5848242c38bbb35d44cabde" +integrity sha512-jbex9Yd/3lmICXwYT6gA/j2mNQGU48wCh/VzRd+/Y/PjYQtlg1gLMdZqvu9s/xH7qKvngxRObl56XZR609IMbA== mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +version "2.1.0" +resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" +integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== mimic-fn@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" - integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== +version "3.1.0" +resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" +integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== 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" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== +version "1.0.1" +resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" +integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== mimic-response@^2.0.0, mimic-response@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" - integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== +version "2.1.0" +resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" +integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== min-indent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.0.tgz#cfc45c37e9ec0d8f0a0ec3dd4ef7f7c3abe39256" - integrity sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY= +version "1.0.0" +resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.0.tgz#cfc45c37e9ec0d8f0a0ec3dd4ef7f7c3abe39256" +integrity sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY= minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - dependencies: +version "3.0.4" +resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" +dependencies: brace-expansion "^1.1.7" minimist-options@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" - integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== +version "4.1.0" +resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" +integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - kind-of "^6.0.3" +arrify "^1.0.1" +is-plain-obj "^1.1.0" +kind-of "^6.0.3" minimist@0.0.8, minimist@~0.0.1: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" +version "0.0.8" +resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" minimist@^1.1.1, minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" +version "1.2.0" +resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" minimist@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== +version "1.2.6" +resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" +integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== mixin-deep@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" - integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ== +version "1.3.1" +resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" +integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ== dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" +for-in "^1.0.2" { + is-extendable +} "^1.0.1" mkdirp@0.x, mkdirp@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - dependencies: +version "0.5.1" +resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" +dependencies: minimist "0.0.8" ms@0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.3.tgz#708155a5e44e33f5fd0fc53e81d0d40a91be1fff" +version "0.7.3" +resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.3.tgz#708155a5e44e33f5fd0fc53e81d0d40a91be1fff" ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= +version "2.0.0" +resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" +integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= ms@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== +version "2.1.1" +resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" +integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" +version "0.0.7" +resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== +version "0.0.8" +resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" +integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" +version "1.2.13" +resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" +integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: +arr-diff "^4.0.0" +array-unique "^0.3.2" +define-property "^2.0.2" +extend-shallow "^3.0.2" +fragment-cache "^0.2.1" +is-windows "^1.0.2" +kind-of "^6.0.2" +object.pick "^1.3.0" +regex-not "^1.0.0" +snapdragon "^0.8.1" +to-regex "^3.0.1" natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" +version "1.4.0" +resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" neo-async@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" - integrity sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA== +version "2.6.0" +resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" +integrity sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA== 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== +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== dependencies: - type-fest "^0.4.1" +type-fest "^0.4.1" nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== +version "1.0.5" +resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" +integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" +version "0.4.0" +resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" 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= +version "1.0.0" +resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" +integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= node-notifier@^5.2.1: - version "5.3.0" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.3.0.tgz#c77a4a7b84038733d5fb351aafd8a268bfe19a01" - integrity sha512-AhENzCSGZnZJgBARsUjnQ7DnZbzyP+HxlVXuD0xqAnvL8q+OqtSX7lGg9e8nHzwXkMMXNdVeqq4E2M3EUAqX6Q== +version "5.3.0" +resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.3.0.tgz#c77a4a7b84038733d5fb351aafd8a268bfe19a01" +integrity sha512-AhENzCSGZnZJgBARsUjnQ7DnZbzyP+HxlVXuD0xqAnvL8q+OqtSX7lGg9e8nHzwXkMMXNdVeqq4E2M3EUAqX6Q== dependencies: - growly "^1.3.0" - semver "^5.5.0" - shellwords "^0.1.1" - which "^1.3.0" +growly "^1.3.0" +semver "^5.5.0" +shellwords "^0.1.1" +which "^1.3.0" normalize-package-data@^2.3.2: - version "2.3.8" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.8.tgz#d819eda2a9dedbd1ffa563ea4071d936782295bb" - dependencies: +version "2.3.8" +resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.8.tgz#d819eda2a9dedbd1ffa563ea4071d936782295bb" +dependencies: hosted-git-info "^2.1.4" - is-builtin-module "^1.0.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" +is-builtin-module "^1.0.0" +semver "2 || 3 || 4 || 5" +validate-npm-package-license "^3.0.1" normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== +version "2.5.0" +resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" +integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" +hosted-git-info "^2.1.4" +resolve "^1.10.0" +semver "2 || 3 || 4 || 5" +validate-npm-package-license "^3.0.1" normalize-package-data@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.0.tgz#1f8a7c423b3d2e85eb36985eaf81de381d01301a" - integrity sha512-6lUjEI0d3v6kFrtgA/lOx4zHCWULXsFNIjHolnZCKCTLA6m/G625cdn3O7eNmT0iD3jfo6HZ9cdImGZwf21prw== +version "3.0.0" +resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.0.tgz#1f8a7c423b3d2e85eb36985eaf81de381d01301a" +integrity sha512-6lUjEI0d3v6kFrtgA/lOx4zHCWULXsFNIjHolnZCKCTLA6m/G625cdn3O7eNmT0iD3jfo6HZ9cdImGZwf21prw== dependencies: - hosted-git-info "^3.0.6" - resolve "^1.17.0" - semver "^7.3.2" - validate-npm-package-license "^3.0.1" +hosted-git-info "^3.0.6" +resolve "^1.17.0" +semver "^7.3.2" +validate-npm-package-license "^3.0.1" normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - dependencies: +version "2.1.1" +resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" +dependencies: remove-trailing-separator "^1.0.1" normalize-url@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== +version "3.3.0" +resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" +integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== normalize-url@^4.1.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" - integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== +version "4.5.0" +resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" +integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== np@^7.4.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/np/-/np-7.4.0.tgz#de33e07159c8d4065f42c280a7605deb88fcaf6a" - integrity sha512-woJn5Bodg0/VDyUWx5EHIsi+8QlKSows0AVRBt47PG++cJAVE6jQFXcXDFDBMqY5PueFc4w0SA3gxqPklk6oGg== - dependencies: - "@samverschueren/stream-to-observable" "^0.3.1" - any-observable "^0.5.1" - async-exit-hook "^2.0.1" - chalk "^4.1.0" - cosmiconfig "^7.0.0" - del "^6.0.0" - escape-goat "^3.0.0" - escape-string-regexp "^4.0.0" - execa "^5.0.0" - github-url-from-git "^1.5.0" - has-yarn "^2.1.0" - hosted-git-info "^3.0.7" - ignore-walk "^3.0.3" +version "7.4.0" +resolved "https://registry.yarnpkg.com/np/-/np-7.4.0.tgz#de33e07159c8d4065f42c280a7605deb88fcaf6a" +integrity sha512-woJn5Bodg0/VDyUWx5EHIsi+8QlKSows0AVRBt47PG++cJAVE6jQFXcXDFDBMqY5PueFc4w0SA3gxqPklk6oGg== + dependencies: +"@samverschueren/stream-to-observable" "^0.3.1" +any-observable "^0.5.1" +async-exit-hook "^2.0.1" +chalk "^4.1.0" +cosmiconfig "^7.0.0" +del "^6.0.0" +escape-goat "^3.0.0" +escape-string-regexp "^4.0.0" +execa "^5.0.0" +github-url-from-git "^1.5.0" +has-yarn "^2.1.0" +hosted-git-info "^3.0.7" +ignore-walk "^3.0.3" import-local "^3.0.2" - inquirer "^7.3.3" - is-installed-globally "^0.3.2" - is-interactive "^1.0.0" - is-scoped "^2.1.0" - issue-regex "^3.1.0" - listr "^0.14.3" - listr-input "^0.2.1" - log-symbols "^4.0.0" - meow "^8.1.0" - minimatch "^3.0.4" - new-github-release-url "^1.0.0" - npm-name "^6.0.1" - onetime "^5.1.2" - open "^7.3.0" - ow "^0.21.0" - p-memoize "^4.0.1" - p-timeout "^4.1.0" - pkg-dir "^5.0.0" - read-pkg-up "^7.0.1" - rxjs "^6.6.3" - semver "^7.3.4" - split "^1.0.1" - symbol-observable "^3.0.0" - terminal-link "^2.1.1" - update-notifier "^5.0.1" +inquirer "^7.3.3" +is-installed-globally "^0.3.2" +is-interactive "^1.0.0" +is-scoped "^2.1.0" +issue-regex "^3.1.0" +listr "^0.14.3" +listr-input "^0.2.1" +log-symbols "^4.0.0" +meow "^8.1.0" +minimatch "^3.0.4" +new-github-release-url "^1.0.0" +npm-name "^6.0.1" +onetime "^5.1.2" +open "^7.3.0" +ow "^0.21.0" +p-memoize "^4.0.1" +p-timeout "^4.1.0" +pkg-dir "^5.0.0" +read-pkg-up "^7.0.1" +rxjs "^6.6.3" +semver "^7.3.4" +split "^1.0.1" +symbol-observable "^3.0.0" +terminal-link "^2.1.1" +update-notifier "^5.0.1" npm-name@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/npm-name/-/npm-name-6.0.1.tgz#73e05b4cb6332766a6727b2635e247bb4107255b" - integrity sha512-fhKRvUAxaYzMEUZim4mXWyfFbVS+M1CbrCLdAo3txWzrctxKka/h+KaBW0O9Cz5uOM00Nldn2JLWhuwnyW3SUw== - dependencies: - got "^10.6.0" - is-scoped "^2.1.0" - is-url-superb "^4.0.0" - lodash.zip "^4.2.0" - org-regex "^1.0.0" - p-map "^3.0.0" - registry-auth-token "^4.0.0" - registry-url "^5.1.0" - validate-npm-package-name "^3.0.0" +version "6.0.1" +resolved "https://registry.yarnpkg.com/npm-name/-/npm-name-6.0.1.tgz#73e05b4cb6332766a6727b2635e247bb4107255b" +integrity sha512-fhKRvUAxaYzMEUZim4mXWyfFbVS+M1CbrCLdAo3txWzrctxKka/h+KaBW0O9Cz5uOM00Nldn2JLWhuwnyW3SUw== + dependencies: +got "^10.6.0" +is-scoped "^2.1.0" +is-url-superb "^4.0.0" +lodash.zip "^4.2.0" +org-regex "^1.0.0" +p-map "^3.0.0" +registry-auth-token "^4.0.0" +registry-url "^5.1.0" +validate-npm-package-name "^3.0.0" npm-path@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.3.tgz#15cff4e1c89a38da77f56f6055b24f975dfb2bbe" - dependencies: +version "2.0.3" +resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.3.tgz#15cff4e1c89a38da77f56f6055b24f975dfb2bbe" +dependencies: which "^1.2.10" npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - dependencies: +version "2.0.2" +resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" +dependencies: path-key "^2.0.0" 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== +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" +path-key "^3.0.0" npm-which@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa" - dependencies: +version "3.0.1" +resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa" +dependencies: commander "^2.9.0" - npm-path "^2.0.2" - which "^1.2.10" +npm-path "^2.0.2" +which "^1.2.10" number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" +version "1.0.1" +resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" nwsapi@^2.0.7: - version "2.0.9" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.0.9.tgz#77ac0cdfdcad52b6a1151a84e73254edc33ed016" - integrity sha512-nlWFSCTYQcHk/6A9FFnfhKc14c3aFhfdNBXgo8Qgi9QTBu/qg3Ww+Uiz9wMzXd1T8GFxPc2QIHB6Qtf2XFryFQ== +version "2.0.9" +resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.0.9.tgz#77ac0cdfdcad52b6a1151a84e73254edc33ed016" +integrity sha512-nlWFSCTYQcHk/6A9FFnfhKc14c3aFhfdNBXgo8Qgi9QTBu/qg3Ww+Uiz9wMzXd1T8GFxPc2QIHB6Qtf2XFryFQ== oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== +version "0.9.0" +resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" +integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== object-assign@^4.0.1, object-assign@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" +version "4.1.1" +resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: +version "0.1.0" +resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" +integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= +dependencies: copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" +define-property "^0.2.5" +kind-of "^3.0.3" object-keys@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" - integrity sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag== +version "1.0.12" +resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" +integrity sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag== object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: +version "1.0.1" +resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" +integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= +dependencies: isobject "^3.0.0" object.getownpropertydescriptors@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" - integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= - dependencies: +version "2.0.3" +resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" +integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= +dependencies: define-properties "^1.1.2" - es-abstract "^1.5.1" +es-abstract "^1.5.1" object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: +version "1.3.0" +resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" +integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= +dependencies: isobject "^3.0.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" - dependencies: +version "1.4.0" +resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" +dependencies: wrappy "1" onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - dependencies: +version "2.0.1" +resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" +dependencies: mimic-fn "^1.0.0" onetime@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" - integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== +version "5.1.0" +resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" +integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== dependencies: - mimic-fn "^2.1.0" +mimic-fn "^2.1.0" onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== +version "5.1.2" +resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" +integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: - mimic-fn "^2.1.0" +mimic-fn "^2.1.0" open@^7.3.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== +version "7.4.2" +resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" +integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== dependencies: - is-docker "^2.0.0" - is-wsl "^2.1.1" +is-docker "^2.0.0" +is-wsl "^2.1.1" optimist@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - dependencies: +version "0.6.1" +resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" +dependencies: minimist "~0.0.1" - wordwrap "~0.0.2" +wordwrap "~0.0.2" optionator@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - dependencies: +version "0.8.2" +resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" +dependencies: deep-is "~0.1.3" - fast-levenshtein "~2.0.4" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - wordwrap "~1.0.0" +fast-levenshtein "~2.0.4" +levn "~0.3.0" +prelude-ls "~1.1.2" +type-check "~0.3.2" +wordwrap "~1.0.0" org-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/org-regex/-/org-regex-1.0.0.tgz#67ebb9ab3cb124fea5841289d60b59434f041a59" - integrity sha512-7bqkxkEJwzJQUAlyYniqEZ3Ilzjh0yoa62c7gL6Ijxj5bEpPL+8IE1Z0PFj0ywjjXQcdrwR51g9MIcLezR0hKQ== +version "1.0.0" +resolved "https://registry.yarnpkg.com/org-regex/-/org-regex-1.0.0.tgz#67ebb9ab3cb124fea5841289d60b59434f041a59" +integrity sha512-7bqkxkEJwzJQUAlyYniqEZ3Ilzjh0yoa62c7gL6Ijxj5bEpPL+8IE1Z0PFj0ywjjXQcdrwR51g9MIcLezR0hKQ== os-locale@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" - integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== +version "3.1.0" +resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" +integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== dependencies: - execa "^1.0.0" - lcid "^2.0.0" - mem "^4.0.0" +execa "^1.0.0" +lcid "^2.0.0" +mem "^4.0.0" 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= +version "1.0.2" +resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" +integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= ow@^0.21.0: - version "0.21.0" - resolved "https://registry.yarnpkg.com/ow/-/ow-0.21.0.tgz#c2df2ad78d1bfc2ea9cdca311b7a6275258df621" - integrity sha512-dlsoDe39g7mhdsdrC1R/YwjT7yjVqE3svWwOlMGvN690waBkgEZBmKBdkmKvSt5/wZ6E0Jn/nIesPqMZOpPKqw== +version "0.21.0" +resolved "https://registry.yarnpkg.com/ow/-/ow-0.21.0.tgz#c2df2ad78d1bfc2ea9cdca311b7a6275258df621" +integrity sha512-dlsoDe39g7mhdsdrC1R/YwjT7yjVqE3svWwOlMGvN690waBkgEZBmKBdkmKvSt5/wZ6E0Jn/nIesPqMZOpPKqw== dependencies: - "@sindresorhus/is" "^4.0.0" - callsites "^3.1.0" - dot-prop "^6.0.1" - lodash.isequal "^4.5.0" - type-fest "^0.20.2" - vali-date "^1.0.0" +"@sindresorhus/is" "^4.0.0" +callsites "^3.1.0" +dot-prop "^6.0.1" +lodash.isequal "^4.5.0" +type-fest "^0.20.2" +vali-date "^1.0.0" 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== +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.0.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" - integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== +version "2.0.0" +resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" +integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= +version "1.0.0" +resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" +integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= p-each-series@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71" - integrity sha1-kw89Et0fUOdDRFeiLNbwSsatf3E= - dependencies: +version "1.0.0" +resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71" +integrity sha1-kw89Et0fUOdDRFeiLNbwSsatf3E= +dependencies: p-reduce "^1.0.0" p-event@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" - integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== +version "4.2.0" +resolved "https://registry.yarnpkg.com/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" +integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== dependencies: - p-timeout "^3.1.0" +p-timeout "^3.1.0" p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" +version "1.0.0" +resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" p-is-promise@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.0.0.tgz#7554e3d572109a87e1f3f53f6a7d85d1b194f4c5" - integrity sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg== +version "2.0.0" +resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.0.0.tgz#7554e3d572109a87e1f3f53f6a7d85d1b194f4c5" +integrity sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg== p-limit@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" - integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ== +version "2.2.0" +resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" +integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ== dependencies: - p-try "^2.0.0" +p-try "^2.0.0" p-limit@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" - integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== +version "2.2.2" +resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" +integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== dependencies: - p-try "^2.0.0" +p-try "^2.0.0" p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== +version "3.1.0" +resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" +integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: - yocto-queue "^0.1.0" +yocto-queue "^0.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== +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-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" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== +version "4.1.0" +resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" +integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: - p-limit "^2.2.0" +p-limit "^2.2.0" p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== +version "5.0.0" +resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" +integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: - p-limit "^3.0.2" +p-limit "^3.0.2" p-map@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.1.1.tgz#05f5e4ae97a068371bc2a5cc86bfbdbc19c4ae7a" +version "1.1.1" +resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.1.1.tgz#05f5e4ae97a068371bc2a5cc86bfbdbc19c4ae7a" p-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.0.0.tgz#be18c5a5adeb8e156460651421aceca56c213a50" - integrity sha512-GO107XdrSUmtHxVoi60qc9tUl/KkNKm+X2CF4P9amalpGxv5YqVPJNfSb0wcA+syCopkZvYYIzW8OVTQW59x/w== +version "2.0.0" +resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.0.0.tgz#be18c5a5adeb8e156460651421aceca56c213a50" +integrity sha512-GO107XdrSUmtHxVoi60qc9tUl/KkNKm+X2CF4P9amalpGxv5YqVPJNfSb0wcA+syCopkZvYYIzW8OVTQW59x/w== p-map@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" - integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== - dependencies: +version "3.0.0" +resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" +integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== +dependencies: aggregate-error "^3.0.0" p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== +version "4.0.0" +resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" +integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== dependencies: - aggregate-error "^3.0.0" +aggregate-error "^3.0.0" p-memoize@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/p-memoize/-/p-memoize-4.0.1.tgz#6f4231857fec10de2504611fe820c808fa8c5f8b" - integrity sha512-km0sP12uE0dOZ5qP+s7kGVf07QngxyG0gS8sYFvFWhqlgzOsSy+m71aUejf/0akxj5W7gE//2G74qTv6b4iMog== - dependencies: +version "4.0.1" +resolved "https://registry.yarnpkg.com/p-memoize/-/p-memoize-4.0.1.tgz#6f4231857fec10de2504611fe820c808fa8c5f8b" +integrity sha512-km0sP12uE0dOZ5qP+s7kGVf07QngxyG0gS8sYFvFWhqlgzOsSy+m71aUejf/0akxj5W7gE// 2G74qTv6b4iMog== +dependencies: mem "^6.0.1" - mimic-fn "^3.0.0" +mimic-fn "^3.0.0" p-reduce@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" - integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= +version "1.0.0" +resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" +integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= p-timeout@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" - integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== +version "3.2.0" +resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" +integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== dependencies: - p-finally "^1.0.0" +p-finally "^1.0.0" p-timeout@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-4.1.0.tgz#788253c0452ab0ffecf18a62dff94ff1bd09ca0a" - integrity sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw== +version "4.1.0" +resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-4.1.0.tgz#788253c0452ab0ffecf18a62dff94ff1bd09ca0a" +integrity sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw== p-try@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.1.0.tgz#c1a0f1030e97de018bb2c718929d2af59463e505" - integrity sha512-H2RyIJ7+A3rjkwKC2l5GGtU4H1vkxKCAGsWasNVd0Set+6i4znxbWy6/j16YDPJDWxhsgZiKAstMEP8wCdSpjA== +version "2.1.0" +resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.1.0.tgz#c1a0f1030e97de018bb2c718929d2af59463e505" +integrity sha512-H2RyIJ7+A3rjkwKC2l5GGtU4H1vkxKCAGsWasNVd0Set+6i4znxbWy6/j16YDPJDWxhsgZiKAstMEP8wCdSpjA== package-json@^6.3.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" - integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== +version "6.5.0" +resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" +integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== dependencies: - got "^9.6.0" - registry-auth-token "^4.0.0" - registry-url "^5.0.0" - semver "^6.2.0" +got "^9.6.0" +registry-auth-token "^4.0.0" +registry-url "^5.0.0" +semver "^6.2.0" parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== +version "1.0.1" +resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" +integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: - callsites "^3.0.0" +callsites "^3.0.0" 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= - dependencies: +version "4.0.0" +resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" +integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= +dependencies: error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" +json-parse-better-errors "^1.0.1" parse-json@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" - integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw== +version "5.0.0" +resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" +integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw== dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - lines-and-columns "^1.1.6" +"@babel/code-frame" "^7.0.0" +error-ex "^1.3.1" +json-parse-better-errors "^1.0.1" +lines-and-columns "^1.1.6" parse5@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" - integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== +version "4.0.0" +resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" +integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= +version "0.1.1" +resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" +integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" +version "3.0.0" +resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== +version "4.0.0" +resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" +integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 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" +version "1.0.1" +resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" path-is-inside@^1.0.1, path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" +version "1.0.2" +resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= +version "2.0.1" +resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" +integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= 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== +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.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" +version "1.0.5" +resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== +version "1.0.6" +resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" +integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== +version "3.0.0" +resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" +integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== dependencies: - pify "^3.0.0" +pify "^3.0.0" path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +version "4.0.0" +resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" +integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= +version "2.1.0" +resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" +integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= picomatch@^2.0.5, picomatch@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== +version "2.2.2" +resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" +integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== pify@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" +version "2.3.0" +resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 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= +version "3.0.0" +resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" +integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - dependencies: +version "2.0.1" +resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" +dependencies: pinkie "^2.0.0" pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" +version "2.0.4" +resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 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== +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" +node-modules-regexp "^1.0.0" pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== +version "3.0.0" +resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" +integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== dependencies: - find-up "^3.0.0" +find-up "^3.0.0" pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== +version "4.2.0" +resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" +integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: - find-up "^4.0.0" +find-up "^4.0.0" pkg-dir@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" - integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== +version "5.0.0" +resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" +integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== dependencies: - find-up "^5.0.0" +find-up "^5.0.0" please-upgrade-node@^3.0.2, please-upgrade-node@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz#ed320051dfcc5024fae696712c8288993595e8ac" - integrity sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ== +version "3.1.1" +resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz#ed320051dfcc5024fae696712c8288993595e8ac" +integrity sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ== dependencies: - semver-compare "^1.0.0" +semver-compare "^1.0.0" pn@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" - integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== +version "1.1.0" +resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" +integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= +version "0.1.1" +resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" +integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" +version "1.1.2" +resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 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= +version "2.0.0" +resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" +integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= prettier@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" - integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== +version "2.2.1" +resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" +integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== pretty-format@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.5.0.tgz#cc69a0281a62cd7242633fc135d6930cd889822d" - integrity sha512-/3RuSghukCf8Riu5Ncve0iI+BzVkbRU5EeUoArKARZobREycuH5O4waxvaNIloEXdb0qwgmEAed5vTpX1HNROQ== - dependencies: +version "24.5.0" +resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.5.0.tgz#cc69a0281a62cd7242633fc135d6930cd889822d" +integrity sha512-/3RuSghukCf8Riu5Ncve0iI+BzVkbRU5EeUoArKARZobREycuH5O4waxvaNIloEXdb0qwgmEAed5vTpX1HNROQ== +dependencies: "@jest/types" "^24.5.0" - ansi-regex "^4.0.0" - ansi-styles "^3.2.0" - react-is "^16.8.4" +ansi-regex "^4.0.0" +ansi-styles "^3.2.0" +react-is "^16.8.4" process-nextick-args@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" - integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== +version "2.0.0" +resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" +integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== prompts@^2.0.1: - version "2.0.4" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.0.4.tgz#179f9d4db3128b9933aa35f93a800d8fce76a682" - integrity sha512-HTzM3UWp/99A0gk51gAegwo1QRYA7xjcZufMNe33rCclFszUYAuHe1fIN/3ZmiHeGPkUsNaRyQm1hHOfM0PKxA== +version "2.0.4" +resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.0.4.tgz#179f9d4db3128b9933aa35f93a800d8fce76a682" +integrity sha512-HTzM3UWp/99A0gk51gAegwo1QRYA7xjcZufMNe33rCclFszUYAuHe1fIN/3ZmiHeGPkUsNaRyQm1hHOfM0PKxA== dependencies: - kleur "^3.0.2" - sisteransi "^1.0.0" +kleur "^3.0.2" +sisteransi "^1.0.0" property-expr@^1.5.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-1.5.1.tgz#22e8706894a0c8e28d58735804f6ba3a3673314f" - integrity sha512-CGuc0VUTGthpJXL36ydB6jnbyOf/rAHFvmVrJlH+Rg0DqqLFQGAP6hIaxD/G0OAmBJPhXDHuEJigrp0e0wFV6g== +version "1.5.1" +resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-1.5.1.tgz#22e8706894a0c8e28d58735804f6ba3a3673314f" +integrity sha512-CGuc0VUTGthpJXL36ydB6jnbyOf/rAHFvmVrJlH+Rg0DqqLFQGAP6hIaxD/G0OAmBJPhXDHuEJigrp0e0wFV6g== psl@^1.1.24, psl@^1.1.28: - version "1.1.31" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.31.tgz#e9aa86d0101b5b105cbe93ac6b784cd547276184" - integrity sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw== +version "1.1.31" +resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.31.tgz#e9aa86d0101b5b105cbe93ac6b784cd547276184" +integrity sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw== pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== +version "3.0.0" +resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" +integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" +end-of-stream "^1.1.0" +once "^1.3.1" punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" +version "1.4.1" +resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +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" - integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== +version "2.1.1" +resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" +integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== dependencies: - escape-goat "^2.0.0" +escape-goat "^2.0.0" qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== +version "6.5.2" +resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" +integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== queue-microtask@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.2.tgz#abf64491e6ecf0f38a6502403d4cda04f372dfd3" - integrity sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg== +version "1.2.2" +resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.2.tgz#abf64491e6ecf0f38a6502403d4cda04f372dfd3" +integrity sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg== quick-lru@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" - integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== +version "4.0.1" +resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" +integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== randomstring@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/randomstring/-/randomstring-1.1.5.tgz#6df0628f75cbd5932930d9fe3ab4e956a18518c3" - dependencies: +version "1.1.5" +resolved "https://registry.yarnpkg.com/randomstring/-/randomstring-1.1.5.tgz#6df0628f75cbd5932930d9fe3ab4e956a18518c3" +dependencies: array-uniq "1.0.2" rc@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== +version "1.2.8" +resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" +integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" +deep-extend "^0.6.0" +ini "~1.3.0" +minimist "^1.2.0" +strip-json-comments "~2.0.1" react-is@^16.8.4: - version "16.8.5" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.5.tgz#c54ac229dd66b5afe0de5acbe47647c3da692ff8" - integrity sha512-sudt2uq5P/2TznPV4Wtdi+Lnq3yaYW8LfvPKLM9BKD8jJNBkxMVyB0C9/GmVhLw7Jbdmndk/73n7XQGeN9A3QQ== +version "16.8.5" +resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.5.tgz#c54ac229dd66b5afe0de5acbe47647c3da692ff8" +integrity sha512-sudt2uq5P/2TznPV4Wtdi+Lnq3yaYW8LfvPKLM9BKD8jJNBkxMVyB0C9/GmVhLw7Jbdmndk/73n7XQGeN9A3QQ== read-pkg-up@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" - integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA== +version "4.0.0" +resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" +integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA== dependencies: - find-up "^3.0.0" - read-pkg "^3.0.0" +find-up "^3.0.0" +read-pkg "^3.0.0" read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== +version "7.0.1" +resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" +integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" +find-up "^4.1.0" +read-pkg "^5.2.0" +type-fest "^0.8.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= - dependencies: +version "3.0.0" +resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" +integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= +dependencies: load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" +normalize-package-data "^2.3.2" +path-type "^3.0.0" read-pkg@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237" - integrity sha1-ljYlN48+HE1IyFhytabsfV0JMjc= - dependencies: +version "4.0.1" +resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237" +integrity sha1-ljYlN48+HE1IyFhytabsfV0JMjc= +dependencies: normalize-package-data "^2.3.2" - parse-json "^4.0.0" - pify "^3.0.0" +parse-json "^4.0.0" +pify "^3.0.0" read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== +version "5.2.0" +resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" +integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" +"@types/normalize-package-data" "^2.4.0" +normalize-package-data "^2.5.0" +parse-json "^5.0.0" +type-fest "^0.6.0" readable-stream@^2.0.1: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" +version "2.3.6" +resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" +integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== + dependencies: +core-util-is "~1.0.0" +inherits "~2.0.3" +isarray "~1.0.0" +process-nextick-args "~2.0.0" +safe-buffer "~5.1.1" +string_decoder "~1.1.1" +util-deprecate "~1.0.1" realpath-native@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" - integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA== - dependencies: +version "1.1.0" +resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" +integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA== +dependencies: util.promisify "^1.0.0" redent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" - integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== +version "3.0.0" +resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" +integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== dependencies: - indent-string "^4.0.0" - strip-indent "^3.0.0" +indent-string "^4.0.0" +strip-indent "^3.0.0" regenerator-runtime@^0.12.0: - version "0.12.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" - integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== +version "0.12.1" +resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" +integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== +version "1.0.2" +resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" +integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" +extend-shallow "^3.0.2" +safe-regex "^1.1.0" registry-auth-token@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.1.1.tgz#40a33be1e82539460f94328b0f7f0f84c16d9479" - integrity sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA== +version "4.1.1" +resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.1.1.tgz#40a33be1e82539460f94328b0f7f0f84c16d9479" +integrity sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA== dependencies: - rc "^1.2.8" +rc "^1.2.8" registry-url@^5.0.0, registry-url@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" - integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== +version "5.1.0" +resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" +integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== dependencies: - rc "^1.2.8" +rc "^1.2.8" remove-trailing-separator@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz#615ebb96af559552d4bf4057c8436d486ab63cc4" +version "1.0.1" +resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz#615ebb96af559552d4bf4057c8436d486ab63cc4" repeat-element@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" +version "1.1.2" +resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" +version "1.6.1" +resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" request-promise-core@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6" - integrity sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY= - dependencies: +version "1.1.1" +resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6" +integrity sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY= +dependencies: lodash "^4.13.1" request-promise-native@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.5.tgz#5281770f68e0c9719e5163fd3fab482215f4fda5" - integrity sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU= - dependencies: +version "1.0.5" +resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.5.tgz#5281770f68e0c9719e5163fd3fab482215f4fda5" +integrity sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU= +dependencies: request-promise-core "1.1.1" - stealthy-require "^1.1.0" - tough-cookie ">=2.3.3" +stealthy-require "^1.1.0" +tough-cookie ">=2.3.3" request@^2.87.0: - version "2.88.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" - integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.0" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.4.3" - tunnel-agent "^0.6.0" - uuid "^3.3.2" +version "2.88.0" +resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" +integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== + dependencies: +aws-sign2 "~0.7.0" +aws4 "^1.8.0" +caseless "~0.12.0" +combined-stream "~1.0.6" +extend "~3.0.2" +forever-agent "~0.6.1" +form-data "~2.3.2" +har-validator "~5.1.0" +http-signature "~1.2.0" +is-typedarray "~1.0.0" +isstream "~0.1.2" +json-stringify-safe "~5.0.1" +mime-types "~2.1.19" +oauth-sign "~0.9.0" +performance-now "^2.1.0" +qs "~6.5.2" +safe-buffer "^5.1.2" +tough-cookie "~2.4.3" +tunnel-agent "^0.6.0" +uuid "^3.3.2" require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" +version "2.1.1" +resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" +version "1.0.1" +resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: +version "2.0.0" +resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" +integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= +dependencies: resolve-from "^3.0.0" resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== +version "3.0.0" +resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" +integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== dependencies: - resolve-from "^5.0.0" +resolve-from "^5.0.0" resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= +version "3.0.0" +resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" +integrity sha1-six699nWiBvItuZTM17rywoYh0g= resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +version "4.0.0" +resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" +integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== +version "5.0.0" +resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" +integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= +version "0.2.1" +resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" +integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= resolve@1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" +version "1.1.7" +resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" resolve@1.x: version "1.9.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.9.0.tgz#a14c6fdfa8f92a7df1d996cb7105fa744658ea06" - integrity sha512-TZNye00tI67lwYvzxCxHGjwTNlUV70io54/Ed4j6PscB8xVfuBJpRenI/o6dVk0cY0PYTY27AgCoGGxRnYuItQ== +resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.9.0.tgz#a14c6fdfa8f92a7df1d996cb7105fa744658ea06" +integrity sha512-TZNye00tI67lwYvzxCxHGjwTNlUV70io54/Ed4j6PscB8xVfuBJpRenI/o6dVk0cY0PYTY27AgCoGGxRnYuItQ== dependencies: - path-parse "^1.0.6" +path-parse "^1.0.6" resolve@^1.10.0: - version "1.15.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" - integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== +version "1.15.1" +resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" +integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== dependencies: - path-parse "^1.0.6" +path-parse "^1.0.6" resolve@^1.17.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== +version "1.20.0" +resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" +integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" +is-core-module "^2.2.0" +path-parse "^1.0.6" resolve@^1.3.2: - version "1.3.3" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5" - dependencies: +version "1.3.3" +resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5" +dependencies: path-parse "^1.0.5" responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: +version "1.0.2" +resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" +integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= +dependencies: lowercase-keys "^1.0.0" responselike@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" - integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== +version "2.0.0" +resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" +integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== dependencies: - lowercase-keys "^2.0.0" +lowercase-keys "^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" - dependencies: +version "2.0.0" +resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" +dependencies: onetime "^2.0.0" - signal-exit "^3.0.2" +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== +version "3.1.0" +resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" +integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" +onetime "^5.1.0" +signal-exit "^3.0.2" ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== +version "0.1.15" +resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" +integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +version "1.0.4" +resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" +integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rimraf@^2.2.8: - version "2.6.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" - dependencies: +version "2.6.1" +resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" +dependencies: glob "^7.0.5" rimraf@^2.5.4, rimraf@^2.6.3: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== +version "2.6.3" +resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" +integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== dependencies: - glob "^7.1.3" +glob "^7.1.3" rimraf@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" - dependencies: +version "2.6.2" +resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" +dependencies: glob "^7.0.5" rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== +version "3.0.2" +resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" +integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: - glob "^7.1.3" +glob "^7.1.3" rsvp@^4.8.4: - version "4.8.4" - resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.4.tgz#b50e6b34583f3dd89329a2f23a8a2be072845911" - integrity sha512-6FomvYPfs+Jy9TfXmBpBuMWNH94SgCsZmJKcanySzgNNP6LjWxBvyLTa9KaMfDDM5oxRfrKDB0r/qeRsLwnBfA== +version "4.8.4" +resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.4.tgz#b50e6b34583f3dd89329a2f23a8a2be072845911" +integrity sha512-6FomvYPfs+Jy9TfXmBpBuMWNH94SgCsZmJKcanySzgNNP6LjWxBvyLTa9KaMfDDM5oxRfrKDB0r/qeRsLwnBfA== run-async@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" - dependencies: +version "2.3.0" +resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" +dependencies: is-promise "^2.1.0" run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== +version "2.4.1" +resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" +integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== run-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e" - integrity sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A== +version "1.0.0" +resolved "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e" +integrity sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A== run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== +version "1.2.0" +resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" +integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: - queue-microtask "^1.2.2" +queue-microtask "^1.2.2" rxjs@^6.3.3, rxjs@^6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.4.0.tgz#f3bb0fe7bda7fb69deac0c16f17b50b0b8790504" - integrity sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw== +version "6.4.0" +resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.4.0.tgz#f3bb0fe7bda7fb69deac0c16f17b50b0b8790504" +integrity sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw== dependencies: - tslib "^1.9.0" +tslib "^1.9.0" rxjs@^6.5.3: - version "6.5.4" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c" - integrity sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q== +version "6.5.4" +resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c" +integrity sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q== dependencies: - tslib "^1.9.0" +tslib "^1.9.0" rxjs@^6.6.0, rxjs@^6.6.3: - version "6.6.6" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.6.tgz#14d8417aa5a07c5e633995b525e1e3c0dec03b70" - integrity sha512-/oTwee4N4iWzAMAL9xdGKjkEHmIwupR3oXbQjCKywF1BeFohswF3vZdogbmEF6pZkOsXTzWkrZszrWpQTByYVg== - dependencies: +version "6.6.6" +resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.6.tgz#14d8417aa5a07c5e633995b525e1e3c0dec03b70" +integrity sha512-/oTwee4N4iWzAMAL9xdGKjkEHmIwupR3oXbQjCKywF1BeFohswF3vZdogbmEF6pZkOsXTzWkrZszrWpQTByYVg== +dependencies: tslib "^1.9.0" safe-buffer@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" +version "5.0.1" +resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +version "5.1.2" +resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" +integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: +version "1.1.0" +resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" +integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= +dependencies: ret "~0.1.10" "safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== +version "2.1.2" +resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" +integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sane@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" - integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== - dependencies: - "@cnakazawa/watch" "^1.0.3" - anymatch "^2.0.0" - capture-exit "^2.0.0" - exec-sh "^0.3.2" - execa "^1.0.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" +version "4.1.0" +resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" +integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: +"@cnakazawa/watch" "^1.0.3" +anymatch "^2.0.0" +capture-exit "^2.0.0" +exec-sh "^0.3.2" +execa "^1.0.0" +fb-watchman "^2.0.0" +micromatch "^3.1.4" +minimist "^1.1.1" +walker "~1.0.5" sax@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== +version "1.2.4" +resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" +integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== scoped-regex@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/scoped-regex/-/scoped-regex-2.1.0.tgz#7b9be845d81fd9d21d1ec97c61a0b7cf86d2015f" - integrity sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ== +version "2.1.0" +resolved "https://registry.yarnpkg.com/scoped-regex/-/scoped-regex-2.1.0.tgz#7b9be845d81fd9d21d1ec97c61a0b7cf86d2015f" +integrity sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ== semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= +version "1.0.0" +resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" +integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= semver-diff@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" - integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== +version "3.1.1" +resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" +integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== dependencies: - semver "^6.3.0" +semver "^6.3.0" "semver@2 || 3 || 4 || 5", semver@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" +version "5.3.0" +resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" semver@^5.4.1, semver@^5.5, semver@^5.5.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" - integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== +version "5.6.0" +resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" +integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +version "6.3.0" +resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" +integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== semver@^7.3.2, semver@^7.3.4: - version "7.3.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" - integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== +version "7.3.4" +resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" +integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== dependencies: - lru-cache "^6.0.0" +lru-cache "^6.0.0" semver@^7.5.3: - version "7.5.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e" - integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ== +version "7.5.3" +resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e" +integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ== dependencies: - lru-cache "^6.0.0" +lru-cache "^6.0.0" set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" +version "2.0.0" +resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" set-value@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" - integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE= - dependencies: +version "0.4.3" +resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" +integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE= +dependencies: extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.1" - to-object-path "^0.3.0" +is-extendable "^0.1.1" +is-plain-object "^2.0.1" +to-object-path "^0.3.0" set-value@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" - integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg== +version "2.0.0" +resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" +integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg== dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" +extend-shallow "^2.0.1" +is-extendable "^0.1.1" +is-plain-object "^2.0.3" +split-string "^3.0.1" shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - dependencies: +version "1.2.0" +resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" +dependencies: shebang-regex "^1.0.0" shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== +version "2.0.0" +resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" +integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: - shebang-regex "^3.0.0" +shebang-regex "^3.0.0" shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" +version "1.0.0" +resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +version "3.0.0" +resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" +integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" - integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== +version "0.1.1" +resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" +integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" +version "3.0.2" +resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" signal-exit@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== +version "3.0.3" +resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" +integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== simple-git@^1.85.0: - version "1.110.0" - resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-1.110.0.tgz#54eb179089d055a7783d32399246cebc9d9933e9" - integrity sha512-UYY0rQkknk0P5eb+KW+03F4TevZ9ou0H+LoGaj7iiVgpnZH4wdj/HTViy/1tNNkmIPcmtxuBqXWiYt2YwlRKOQ== +version "1.110.0" +resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-1.110.0.tgz#54eb179089d055a7783d32399246cebc9d9933e9" +integrity sha512-UYY0rQkknk0P5eb+KW+03F4TevZ9ou0H+LoGaj7iiVgpnZH4wdj/HTViy/1tNNkmIPcmtxuBqXWiYt2YwlRKOQ== dependencies: - debug "^4.0.1" +debug "^4.0.1" sisteransi@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.0.tgz#77d9622ff909080f1c19e5f4a1df0c1b0a27b88c" - integrity sha512-N+z4pHB4AmUv0SjveWRd6q1Nj5w62m5jodv+GD8lvmbY/83T/rpbJGZOnK5T149OldDj4Db07BSv9xY4K6NTPQ== +version "1.0.0" +resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.0.tgz#77d9622ff909080f1c19e5f4a1df0c1b0a27b88c" +integrity sha512-N+z4pHB4AmUv0SjveWRd6q1Nj5w62m5jodv+GD8lvmbY/83T/rpbJGZOnK5T149OldDj4Db07BSv9xY4K6NTPQ== slash@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== +version "2.0.0" +resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" +integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +version "3.0.0" +resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" +integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== slice-ansi@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" +version "0.0.4" +resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== +version "2.1.1" +resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" +integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" +define-property "^1.0.0" +isobject "^3.0.0" +snapdragon-util "^3.0.1" snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== +version "3.0.1" +resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" +integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== dependencies: - kind-of "^3.2.0" +kind-of "^3.2.0" snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" +version "0.8.2" +resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" +integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: +base "^0.11.1" +debug "^2.2.0" +define-property "^0.2.5" +extend-shallow "^2.0.1" +map-cache "^0.2.2" +source-map "^0.5.6" +source-map-resolve "^0.5.0" +use "^3.1.0" source-map-resolve@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== +version "0.5.2" +resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" +integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== dependencies: - atob "^2.1.1" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" +atob "^2.1.1" +decode-uri-component "^0.2.0" +resolve-url "^0.2.1" +source-map-url "^0.4.0" +urix "^0.1.0" source-map-support@^0.5.6: - version "0.5.9" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f" - integrity sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA== +version "0.5.9" +resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f" +integrity sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA== dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" +buffer-from "^1.0.0" +source-map "^0.6.0" source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= +version "0.4.0" +resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" +integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= source-map@^0.5.0, source-map@^0.5.6: - version "0.5.6" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" +version "0.5.6" +resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" 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" +version "0.6.1" +resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" spdx-correct@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" - dependencies: +version "1.0.2" +resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" +dependencies: spdx-license-ids "^1.0.2" spdx-expression-parse@~1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" +version "1.0.4" +resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" spdx-license-ids@^1.0.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" +version "1.2.2" +resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== +version "3.1.0" +resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" +integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== dependencies: - extend-shallow "^3.0.0" +extend-shallow "^3.0.0" split@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" - integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== +version "1.0.1" +resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" +integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== dependencies: - through "2" +through "2" sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" +version "1.0.3" +resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" sshpk@^1.7.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.0.tgz#ff2a3e4fd04497555fed97b39a0fd82fafb3a33c" - dependencies: +version "1.13.0" +resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.0.tgz#ff2a3e4fd04497555fed97b39a0fd82fafb3a33c" +dependencies: asn1 "~0.2.3" - assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" - optionalDependencies: +assert-plus "^1.0.0" +dashdash "^1.12.0" +getpass "^0.1.1" +optionalDependencies: bcrypt-pbkdf "^1.0.0" - ecc-jsbn "~0.1.1" - jodid25519 "^1.0.0" - jsbn "~0.1.0" - tweetnacl "~0.14.0" +ecc-jsbn "~0.1.1" +jodid25519 "^1.0.0" +jsbn "~0.1.0" +tweetnacl "~0.14.0" stack-utils@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" - integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA== +version "1.0.2" +resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" +integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA== staged-git-files@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-1.1.2.tgz#4326d33886dc9ecfa29a6193bf511ba90a46454b" - integrity sha512-0Eyrk6uXW6tg9PYkhi/V/J4zHp33aNyi2hOCmhFLqLTIhbgqWn5jlSzI+IU0VqrZq6+DbHcabQl/WP6P3BG0QA== +version "1.1.2" +resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-1.1.2.tgz#4326d33886dc9ecfa29a6193bf511ba90a46454b" +integrity sha512-0Eyrk6uXW6tg9PYkhi/V/J4zHp33aNyi2hOCmhFLqLTIhbgqWn5jlSzI+IU0VqrZq6+DbHcabQl/WP6P3BG0QA== static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: +version "0.1.2" +resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" +integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= +dependencies: define-property "^0.2.5" - object-copy "^0.1.0" +object-copy "^0.1.0" stealthy-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" - integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= +version "1.1.1" +resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" +integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= string-argv@^0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.0.2.tgz#dac30408690c21f3c3630a3ff3a05877bdcbd736" - integrity sha1-2sMECGkMIfPDYwo/86BYd73L1zY= +version "0.0.2" +resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.0.2.tgz#dac30408690c21f3c3630a3ff3a05877bdcbd736" +integrity sha1-2sMECGkMIfPDYwo/86BYd73L1zY= string-length@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" - integrity sha1-1A27aGo6zpYMHP/KVivyxF+DY+0= - dependencies: +version "2.0.0" +resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" +integrity sha1-1A27aGo6zpYMHP/KVivyxF+DY+0= +dependencies: astral-regex "^1.0.0" - strip-ansi "^4.0.0" +strip-ansi "^4.0.0" string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - dependencies: +version "1.0.2" +resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" +dependencies: code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" +is-fullwidth-code-point "^1.0.0" +strip-ansi "^3.0.0" string-width@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" - dependencies: +version "2.0.0" +resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" +dependencies: is-fullwidth-code-point "^2.0.0" - strip-ansi "^3.0.0" +strip-ansi "^3.0.0" string-width@^2.1.0, string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - dependencies: +version "2.1.1" +resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" +dependencies: is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" +strip-ansi "^4.0.0" string-width@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== +version "3.1.0" +resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" +integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" +emoji-regex "^7.0.1" +is-fullwidth-code-point "^2.0.0" +strip-ansi "^5.1.0" string-width@^4.0.0, string-width@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== +version "4.2.0" +resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" +integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" +emoji-regex "^8.0.0" +is-fullwidth-code-point "^3.0.0" +strip-ansi "^6.0.0" string-width@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.1.tgz#1933ce1f470973d224368009bd1316cad81d5f4f" - integrity sha512-LL0OLyN6AnfV9xqGQpDBwedT2Rt63737LxvsRxbcwpa2aIeynBApG2Sm//F3TaLHIR1aJBN52DWklc06b94o5Q== - dependencies: +version "4.2.1" +resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.1.tgz#1933ce1f470973d224368009bd1316cad81d5f4f" +integrity sha512-LL0OLyN6AnfV9xqGQpDBwedT2Rt63737LxvsRxbcwpa2aIeynBApG2Sm// F3TaLHIR1aJBN52DWklc06b94o5Q== +dependencies: emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" +is-fullwidth-code-point "^3.0.0" +strip-ansi "^6.0.0" string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== +version "1.1.1" +resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" +integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: - safe-buffer "~5.1.0" +safe-buffer "~5.1.0" stringify-object@^3.2.2: - version "3.3.0" - resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" - integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== +version "3.3.0" +resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" +integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== dependencies: - get-own-enumerable-property-symbols "^3.0.0" - is-obj "^1.0.1" - is-regexp "^1.0.0" +get-own-enumerable-property-symbols "^3.0.0" +is-obj "^1.0.1" +is-regexp "^1.0.0" strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - dependencies: +version "3.0.1" +resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" +dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - dependencies: +version "4.0.0" +resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" +dependencies: ansi-regex "^3.0.0" strip-ansi@^5.0.0, strip-ansi@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== +version "5.2.0" +resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" +integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== dependencies: - ansi-regex "^4.1.0" +ansi-regex "^4.1.0" strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== +version "6.0.0" +resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" +integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== dependencies: - ansi-regex "^5.0.0" +ansi-regex "^5.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" +version "3.0.0" +resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" +version "1.0.0" +resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 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== +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-indent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" - integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== +version "3.0.0" +resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" +integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== dependencies: - min-indent "^1.0.0" +min-indent "^1.0.0" 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" +version "2.0.1" +resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" +version "2.0.0" +resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" supports-color@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0" - dependencies: +version "5.3.0" +resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0" +dependencies: has-flag "^3.0.0" supports-color@^6.0.0, supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: +version "6.1.0" +resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" +integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx// XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== +dependencies: has-flag "^3.0.0" supports-color@^7.0.0, supports-color@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== +version "7.1.0" +resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" +integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== dependencies: - has-flag "^4.0.0" +has-flag "^4.0.0" supports-hyperlinks@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47" - integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA== +version "2.1.0" +resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47" +integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA== dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" +has-flag "^4.0.0" +supports-color "^7.0.0" symbol-observable@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" - integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== +version "1.2.0" +resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" +integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== symbol-observable@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-3.0.0.tgz#eea8f6478c651018e059044268375c408c15c533" - integrity sha512-6tDOXSHiVjuCaasQSWTmHUWn4PuG7qa3+1WT031yTc/swT7+rLiw3GOrFxaH1E3lLP09dH3bVuVDf2gK5rxG3Q== +version "3.0.0" +resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-3.0.0.tgz#eea8f6478c651018e059044268375c408c15c533" +integrity sha512-6tDOXSHiVjuCaasQSWTmHUWn4PuG7qa3+1WT031yTc/swT7+rLiw3GOrFxaH1E3lLP09dH3bVuVDf2gK5rxG3Q== symbol-tree@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" +version "3.2.2" +resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" synchronous-promise@^2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/synchronous-promise/-/synchronous-promise-2.0.6.tgz#de76e0ea2b3558c1e673942e47e714a930fa64aa" - integrity sha512-TyOuWLwkmtPL49LHCX1caIwHjRzcVd62+GF6h8W/jHOeZUFHpnd2XJDVuUlaTaLPH1nuu2M69mfHr5XbQJnf/g== +version "2.0.6" +resolved "https://registry.yarnpkg.com/synchronous-promise/-/synchronous-promise-2.0.6.tgz#de76e0ea2b3558c1e673942e47e714a930fa64aa" +integrity sha512-TyOuWLwkmtPL49LHCX1caIwHjRzcVd62+GF6h8W/jHOeZUFHpnd2XJDVuUlaTaLPH1nuu2M69mfHr5XbQJnf/g== terminal-link@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== +version "2.1.1" +resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" +integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" +ansi-escapes "^4.2.1" +supports-hyperlinks "^2.0.0" test-exclude@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.1.0.tgz#6ba6b25179d2d38724824661323b73e03c0c1de1" - integrity sha512-gwf0S2fFsANC55fSeSqpb8BYk6w3FDvwZxfNjeF6FRgvFa43r+7wRiA/Q0IxoRU37wB/LE8IQ4221BsNucTaCA== +version "5.1.0" +resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.1.0.tgz#6ba6b25179d2d38724824661323b73e03c0c1de1" +integrity sha512-gwf0S2fFsANC55fSeSqpb8BYk6w3FDvwZxfNjeF6FRgvFa43r+7wRiA/Q0IxoRU37wB/LE8IQ4221BsNucTaCA== dependencies: - arrify "^1.0.1" - minimatch "^3.0.4" - read-pkg-up "^4.0.0" - require-main-filename "^1.0.1" +arrify "^1.0.1" +minimatch "^3.0.4" +read-pkg-up "^4.0.0" +require-main-filename "^1.0.1" throat@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" - integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= +version "4.1.0" +resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" +integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= through@2, through@^2.3.6, through@^2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" +version "2.3.8" +resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== +version "0.0.33" +resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" +integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== dependencies: - os-tmpdir "~1.0.2" +os-tmpdir "~1.0.2" tmpl@1.0.x: - version "1.0.4" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" +version "1.0.4" +resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= +version "2.0.0" +resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" +integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: +version "0.3.0" +resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" +integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= +dependencies: kind-of "^3.0.2" to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== +version "1.0.0" +resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" +integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== to-readable-stream@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-2.1.0.tgz#82880316121bea662cdc226adb30addb50cb06e8" - integrity sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w== +version "2.1.0" +resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-2.1.0.tgz#82880316121bea662cdc226adb30addb50cb06e8" +integrity sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w== to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: +version "2.1.1" +resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" +integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= +dependencies: is-number "^3.0.0" - repeat-string "^1.6.1" +repeat-string "^1.6.1" to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== +version "5.0.1" +resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" +integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: - is-number "^7.0.0" +is-number "^7.0.0" to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== +version "3.0.2" +resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" +integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" +define-property "^2.0.2" +extend-shallow "^3.0.2" +regex-not "^1.0.2" +safe-regex "^1.1.0" toposort@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" - integrity sha1-riF2gXXRVZ1IvvNUILL0li8JwzA= +version "2.0.2" +resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" +integrity sha1-riF2gXXRVZ1IvvNUILL0li8JwzA= tough-cookie@>=2.3.3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.0.tgz#d2bceddebde633153ff20a52fa844a0dc71dacef" - integrity sha512-LHMvg+RBP/mAVNqVbOX8t+iJ+tqhBA/t49DuI7+IDAWHrASnesqSu1vWbKB7UrE2yk+HMFUBMadRGMkB4VCfog== +version "3.0.0" +resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.0.tgz#d2bceddebde633153ff20a52fa844a0dc71dacef" +integrity sha512-LHMvg+RBP/mAVNqVbOX8t+iJ+tqhBA/t49DuI7+IDAWHrASnesqSu1vWbKB7UrE2yk+HMFUBMadRGMkB4VCfog== dependencies: - ip-regex "^3.0.0" - psl "^1.1.28" - punycode "^2.1.1" +ip-regex "^3.0.0" +psl "^1.1.28" +punycode "^2.1.1" tough-cookie@^2.3.4: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== +version "2.5.0" +resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" +integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== dependencies: - psl "^1.1.28" - punycode "^2.1.1" +psl "^1.1.28" +punycode "^2.1.1" tough-cookie@~2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" - integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== +version "2.4.3" +resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" +integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== dependencies: - psl "^1.1.24" - punycode "^1.4.1" +psl "^1.1.24" +punycode "^1.4.1" tr46@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" - integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= - dependencies: +version "1.0.1" +resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" +integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= +dependencies: punycode "^2.1.0" trim-newlines@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30" - integrity sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA== +version "3.0.0" +resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30" +integrity sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA== trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" +version "1.0.1" +resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" ts-jest@^24.0.0: - version "24.0.0" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-24.0.0.tgz#3f26bf2ec1fa584863a5a9c29bd8717d549efbf6" - integrity sha512-o8BO3TkMREpAATaFTrXkovMsCpBl2z4NDBoLJuWZcJJj1ijI49UnvDMfVpj+iogn/Jl8Pbhuei5nc/Ti+frEHw== - dependencies: - bs-logger "0.x" - buffer-from "1.x" - fast-json-stable-stringify "2.x" - json5 "2.x" - make-error "1.x" - mkdirp "0.x" - resolve "1.x" - semver "^5.5" - yargs-parser "10.x" +version "24.0.0" +resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-24.0.0.tgz#3f26bf2ec1fa584863a5a9c29bd8717d549efbf6" +integrity sha512-o8BO3TkMREpAATaFTrXkovMsCpBl2z4NDBoLJuWZcJJj1ijI49UnvDMfVpj+iogn/Jl8Pbhuei5nc/Ti+frEHw== + dependencies: +bs-logger "0.x" +buffer-from "1.x" +fast-json-stable-stringify "2.x" +json5 "2.x" +make-error "1.x" +mkdirp "0.x" +resolve "1.x" +semver "^5.5" +yargs-parser "10.x" ts-node@8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.0.3.tgz#aa60b836a24dafd8bf21b54766841a232fdbc641" - integrity sha512-2qayBA4vdtVRuDo11DEFSsD/SFsBXQBRZZhbRGSIkmYmVkWjULn/GGMdG10KVqkaGndljfaTD8dKjWgcejO8YA== +version "8.0.3" +resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.0.3.tgz#aa60b836a24dafd8bf21b54766841a232fdbc641" +integrity sha512-2qayBA4vdtVRuDo11DEFSsD/SFsBXQBRZZhbRGSIkmYmVkWjULn/GGMdG10KVqkaGndljfaTD8dKjWgcejO8YA== dependencies: - arg "^4.1.0" - diff "^3.1.0" - make-error "^1.1.1" - source-map-support "^0.5.6" - yn "^3.0.0" +arg "^4.1.0" +diff "^3.1.0" +make-error "^1.1.1" +source-map-support "^0.5.6" +yn "^3.0.0" tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" - integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== +version "1.9.3" +resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" +integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== tslint@^5.14.0: - version "5.14.0" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.14.0.tgz#be62637135ac244fc9b37ed6ea5252c9eba1616e" - integrity sha512-IUla/ieHVnB8Le7LdQFRGlVJid2T/gaJe5VkjzRVSRR6pA2ODYrnfR1hmxi+5+au9l50jBwpbBL34txgv4NnTQ== - dependencies: - babel-code-frame "^6.22.0" - builtin-modules "^1.1.1" - chalk "^2.3.0" - commander "^2.12.1" - diff "^3.2.0" - glob "^7.1.1" - js-yaml "^3.7.0" - minimatch "^3.0.4" - mkdirp "^0.5.1" - resolve "^1.3.2" - semver "^5.3.0" - tslib "^1.8.0" - tsutils "^2.29.0" +version "5.14.0" +resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.14.0.tgz#be62637135ac244fc9b37ed6ea5252c9eba1616e" +integrity sha512-IUla/ieHVnB8Le7LdQFRGlVJid2T/gaJe5VkjzRVSRR6pA2ODYrnfR1hmxi+5+au9l50jBwpbBL34txgv4NnTQ== + dependencies: +babel-code-frame "^6.22.0" +builtin-modules "^1.1.1" +chalk "^2.3.0" +commander "^2.12.1" +diff "^3.2.0" +glob "^7.1.1" +js-yaml "^3.7.0" +minimatch "^3.0.4" +mkdirp "^0.5.1" +resolve "^1.3.2" +semver "^5.3.0" +tslib "^1.8.0" +tsutils "^2.29.0" tsutils@^2.29.0: - version "2.29.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" - integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== +version "2.29.0" +resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" +integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== dependencies: - tslib "^1.8.1" +tslib "^1.8.1" tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - dependencies: +version "0.6.0" +resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" +dependencies: safe-buffer "^5.0.1" tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" +version "0.14.5" +resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - dependencies: +version "0.3.2" +resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" +dependencies: prelude-ls "~1.1.2" type-fest@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.10.0.tgz#7f06b2b9fbfc581068d1341ffabd0349ceafc642" - integrity sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw== +version "0.10.0" +resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.10.0.tgz#7f06b2b9fbfc581068d1341ffabd0349ceafc642" +integrity sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw== type-fest@^0.18.0: - version "0.18.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" - integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== +version "0.18.1" +resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" +integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== type-fest@^0.20.2: - version "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== +version "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.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== +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" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== +version "0.6.0" +resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" +integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== +version "0.8.1" +resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" +integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== 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" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: +version "3.1.5" +resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" +integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr// H6V+0DvJ3OQ19S979M0laLfX8rm82Q== +dependencies: is-typedarray "^1.0.0" -typescript@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.2.tgz#1450f020618f872db0ea17317d16d8da8ddb8c4c" - integrity sha512-tbb+NVrLfnsJy3M59lsDgrzWIflR4d4TIUjz+heUnHZwdF7YsrMTKoRERiIvI2lvBG95dfpLxB21WZhys1bgaQ== +typescript@^5.9.2: +version "5.9.2" +resolved "https://npm.vinteo.com/repository/npm-proxy/typescript/-/typescript-5.9.2.tgz#d93450cddec5154a2d5cabe3b8102b83316fb2a6" +integrity sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A== uglify-js@^3.1.4: - version "3.5.2" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.5.2.tgz#dc0c7ac2da0a4b7d15e84266818ff30e82529474" - integrity sha512-imog1WIsi9Yb56yRt5TfYVxGmnWs3WSGU73ieSOlMVFwhJCA9W8fqFFMMj4kgDqiS/80LGdsYnWL7O9UcjEBlg== +version "3.5.2" +resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.5.2.tgz#dc0c7ac2da0a4b7d15e84266818ff30e82529474" +integrity sha512-imog1WIsi9Yb56yRt5TfYVxGmnWs3WSGU73ieSOlMVFwhJCA9W8fqFFMMj4kgDqiS/80LGdsYnWL7O9UcjEBlg== dependencies: - commander "~2.19.0" - source-map "~0.6.1" +commander "~2.19.0" +source-map "~0.6.1" + +undici-types@~7.10.0: +version "7.10.0" +resolved "https://npm.vinteo.com/repository/npm-proxy/undici-types/-/undici-types-7.10.0.tgz#4ac2e058ce56b462b056e629cc6a02393d3ff350" +integrity sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag== union-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" - integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ= - dependencies: +version "1.0.0" +resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" +integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ= +dependencies: arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^0.4.3" +get-value "^2.0.6" +is-extendable "^0.1.1" +set-value "^0.4.3" unique-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" - integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== +version "2.0.0" +resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" +integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== dependencies: - crypto-random-string "^2.0.0" +crypto-random-string "^2.0.0" universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== +version "2.0.0" +resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" +integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: +version "1.0.0" +resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" +integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= +dependencies: has-value "^0.3.1" - isobject "^3.0.0" +isobject "^3.0.0" update-notifier@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" - integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== - dependencies: - boxen "^5.0.0" - chalk "^4.1.0" - configstore "^5.0.1" - has-yarn "^2.1.0" +version "5.1.0" +resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" +integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== + dependencies: +boxen "^5.0.0" +chalk "^4.1.0" +configstore "^5.0.1" +has-yarn "^2.1.0" import-lazy "^2.1.0" - is-ci "^2.0.0" - is-installed-globally "^0.4.0" - is-npm "^5.0.0" - is-yarn-global "^0.3.0" - latest-version "^5.1.0" - pupa "^2.1.1" - semver "^7.3.4" - semver-diff "^3.1.1" - xdg-basedir "^4.0.0" +is-ci "^2.0.0" +is-installed-globally "^0.4.0" +is-npm "^5.0.0" +is-yarn-global "^0.3.0" +latest-version "^5.1.0" +pupa "^2.1.1" +semver "^7.3.4" +semver-diff "^3.1.1" +xdg-basedir "^4.0.0" uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== +version "4.2.2" +resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" +integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== dependencies: - punycode "^2.1.0" +punycode "^2.1.0" urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= +version "0.1.0" +resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" +integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= 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= - dependencies: +version "3.0.0" +resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" +integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= +dependencies: prepend-http "^2.0.0" use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== +version "3.1.1" +resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" +integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== 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= +version "1.0.2" +resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" +integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= util.promisify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" - integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== +version "1.0.0" +resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" +integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.3" +define-properties "^1.1.2" +object.getownpropertydescriptors "^2.0.3" uuid@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" - integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== +version "3.3.2" +resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" +integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== vali-date@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6" - integrity sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY= +version "1.0.0" +resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6" +integrity sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY= validate-npm-package-license@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" - dependencies: +version "3.0.1" +resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" +dependencies: spdx-correct "~1.0.0" - spdx-expression-parse "~1.0.0" +spdx-expression-parse "~1.0.0" validate-npm-package-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" - integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= - dependencies: +version "3.0.0" +resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" +integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= +dependencies: builtins "^1.0.3" verror@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" - dependencies: +version "1.3.6" +resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" +dependencies: extsprintf "1.0.2" w3c-hr-time@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" - integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU= +version "1.0.1" +resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" +integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU= dependencies: - browser-process-hrtime "^0.1.2" +browser-process-hrtime "^0.1.2" walker@~1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" - dependencies: +version "1.0.7" +resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" +dependencies: makeerror "1.0.x" webidl-conversions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" - integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== +version "4.0.2" +resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" +integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== whatwg-encoding@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz#3c6c451a198ee7aec55b1ec61d0920c67801a5f4" - dependencies: +version "1.0.1" +resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz#3c6c451a198ee7aec55b1ec61d0920c67801a5f4" +dependencies: iconv-lite "0.4.13" whatwg-encoding@^1.0.3: - version "1.0.5" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== +version "1.0.5" +resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" +integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== dependencies: - iconv-lite "0.4.24" +iconv-lite "0.4.24" whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== +version "2.3.0" +resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" +integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== whatwg-url@^6.4.1: - version "6.5.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" - integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ== +version "6.5.0" +resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" +integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ== dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" +lodash.sortby "^4.7.0" +tr46 "^1.0.1" +webidl-conversions "^4.0.2" whatwg-url@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd" - integrity sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ== +version "7.0.0" +resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd" +integrity sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ== dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" +lodash.sortby "^4.7.0" +tr46 "^1.0.1" +webidl-conversions "^4.0.2" which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" +version "2.0.0" +resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" which@^1.2.10, which@^1.2.9: - version "1.2.14" - resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" - dependencies: +version "1.2.14" +resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" +dependencies: isexe "^2.0.0" which@^1.3.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== +version "1.3.1" +resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" +integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: - isexe "^2.0.0" +isexe "^2.0.0" which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== +version "2.0.2" +resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" +integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: - isexe "^2.0.0" +isexe "^2.0.0" widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== +version "3.1.0" +resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" +integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== dependencies: - string-width "^4.0.0" +string-width "^4.0.0" wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" +version "0.0.3" +resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" +version "1.0.0" +resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - dependencies: +version "2.1.0" +resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" +dependencies: string-width "^1.0.1" - strip-ansi "^3.0.1" +strip-ansi "^3.0.1" wrap-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" - integrity sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo= - dependencies: +version "3.0.1" +resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" +integrity sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo= +dependencies: string-width "^2.1.1" - strip-ansi "^4.0.0" +strip-ansi "^4.0.0" wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== +version "7.0.0" +resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" +integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" +ansi-styles "^4.0.0" +string-width "^4.1.0" +strip-ansi "^6.0.0" wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" +version "1.0.2" +resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" write-file-atomic@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.1.tgz#d0b05463c188ae804396fd5ab2a370062af87529" - integrity sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg== +version "2.4.1" +resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.1.tgz#d0b05463c188ae804396fd5ab2a370062af87529" +integrity sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg== dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" +graceful-fs "^4.1.11" +imurmurhash "^0.1.4" +signal-exit "^3.0.2" write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== +version "3.0.3" +resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" +integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" +imurmurhash "^0.1.4" +is-typedarray "^1.0.0" +signal-exit "^3.0.2" +typedarray-to-buffer "^3.1.5" ws@^5.2.0: - version "5.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" - integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== +version "5.2.2" +resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" +integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== dependencies: - async-limiter "~1.0.0" +async-limiter "~1.0.0" xdg-basedir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" - integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== +version "4.0.0" +resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" +integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== +version "3.0.0" +resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" +integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== "y18n@^3.2.1 || ^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== +version "4.0.0" +resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" +integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +version "4.0.0" +resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" +integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yaml@^1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" - integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== +version "1.10.0" +resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" +integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== yaml@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.2.tgz#ec551ef37326e6d42872dad1970300f8eb83a073" - integrity sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA== +version "2.2.2" +resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.2.tgz#ec551ef37326e6d42872dad1970300f8eb83a073" +integrity sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA== yargs-parser@10.x: version "10.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" - integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== +resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" +integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== dependencies: - camelcase "^4.1.0" +camelcase "^4.1.0" yargs-parser@^11.1.1: - version "11.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" - integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== +version "11.1.1" +resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" +integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" +camelcase "^5.0.0" +decamelize "^1.2.0" yargs-parser@^20.2.3: - version "20.2.6" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.6.tgz#69f920addf61aafc0b8b89002f5d66e28f2d8b20" - integrity sha512-AP1+fQIWSM/sMiET8fyayjx/J+JmTPt2Mr0FkrgqB4todtfa53sOsrSAcIrJRD5XS20bKUwaDIuMkWKCEiQLKA== +version "20.2.6" +resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.6.tgz#69f920addf61aafc0b8b89002f5d66e28f2d8b20" +integrity sha512-AP1+fQIWSM/sMiET8fyayjx/J+JmTPt2Mr0FkrgqB4todtfa53sOsrSAcIrJRD5XS20bKUwaDIuMkWKCEiQLKA== yargs@^12.0.2: - version "12.0.5" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" - integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== - dependencies: - cliui "^4.0.0" - decamelize "^1.2.0" - find-up "^3.0.0" - get-caller-file "^1.0.1" - os-locale "^3.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1 || ^4.0.0" - yargs-parser "^11.1.1" +version "12.0.5" +resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" +integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== + dependencies: +cliui "^4.0.0" +decamelize "^1.2.0" +find-up "^3.0.0" +get-caller-file "^1.0.1" +os-locale "^3.0.0" +require-directory "^2.1.1" +require-main-filename "^1.0.1" +set-blocking "^2.0.0" +string-width "^2.0.0" +which-module "^2.0.0" +y18n "^3.2.1 || ^4.0.0" +yargs-parser "^11.1.1" yn@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.0.0.tgz#0073c6b56e92aed652fbdfd62431f2d6b9a7a091" - integrity sha512-+Wo/p5VRfxUgBUGy2j/6KX2mj9AYJWOHuhMjMcbBFc3y54o9/4buK1ksBvuiK01C3kby8DH9lSmJdSxw+4G/2Q== +version "3.0.0" +resolved "https://registry.yarnpkg.com/yn/-/yn-3.0.0.tgz#0073c6b56e92aed652fbdfd62431f2d6b9a7a091" +integrity sha512-+Wo/p5VRfxUgBUGy2j/6KX2mj9AYJWOHuhMjMcbBFc3y54o9/4buK1ksBvuiK01C3kby8DH9lSmJdSxw+4G/2Q== yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== +version "0.1.0" +resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" +integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== yup@^0.26.10: - version "0.26.10" - resolved "https://registry.yarnpkg.com/yup/-/yup-0.26.10.tgz#3545839663289038faf25facfc07e11fd67c0cb1" - integrity sha512-keuNEbNSnsOTOuGCt3UJW69jDE3O4P+UHAakO7vSeFMnjaitcmlbij/a3oNb9g1Y1KvSKH/7O1R2PQ4m4TRylw== - dependencies: - "@babel/runtime" "7.0.0" - fn-name "~2.0.1" - lodash "^4.17.10" - property-expr "^1.5.0" - synchronous-promise "^2.0.5" - toposort "^2.0.2" +version "0.26.10" +resolved "https://registry.yarnpkg.com/yup/-/yup-0.26.10.tgz#3545839663289038faf25facfc07e11fd67c0cb1" +integrity sha512-keuNEbNSnsOTOuGCt3UJW69jDE3O4P+UHAakO7vSeFMnjaitcmlbij/a3oNb9g1Y1KvSKH/7O1R2PQ4m4TRylw== + dependencies: +"@babel/runtime" "7.0.0" +fn-name "~2.0.1" +lodash "^4.17.10" +property-expr "^1.5.0" +synchronous-promise "^2.0.5" +toposort "^2.0.2" From 127871eb566a8e816b47786a18c40b629b957535 Mon Sep 17 00:00:00 2001 From: Dmitriy Grachev Date: Wed, 27 Aug 2025 20:21:38 +0300 Subject: [PATCH 3/3] added dist temporarilly --- dist/PackageDetails.js | 126 ++++++ dist/PackageDetails.test.js | 294 +++++++++++++ dist/applyPatches.js | 414 ++++++++++++++++++ dist/assertNever.js | 7 + dist/coerceSemVer.js | 12 + dist/createIssue.js | 115 +++++ dist/createIssue.test.js | 28 ++ dist/detectPackageManager.js | 65 +++ dist/filterFiles.js | 16 + dist/getAppRootPath.js | 22 + dist/getPackageResolution.js | 151 +++++++ dist/getPackageVersion.js | 8 + dist/getPackageVersion.test.js | 70 +++ dist/hash.js | 26 ++ dist/index.js | 201 +++++++++ dist/makePatch.js | 437 +++++++++++++++++++ dist/makeRegExp.js | 28 ++ dist/packageIsDevDependency.js | 14 + dist/packageIsDevDependency.test.js | 32 ++ dist/patch/apply.js | 251 +++++++++++ dist/patch/parse.js | 335 ++++++++++++++ dist/patch/parse.test.js | 174 ++++++++ dist/patch/read.js | 48 ++ dist/patch/read.test.js | 190 ++++++++ dist/patch/reverse.js | 97 ++++ dist/patchFs.js | 56 +++ dist/path.js | 17 + dist/rebase.js | 147 +++++++ dist/resolveRelativeFileDependencies.js | 20 + dist/resolveRelativeFileDependencies.test.js | 22 + dist/spawnSafe.js | 28 ++ dist/stateFile.js | 71 +++ 32 files changed, 3522 insertions(+) create mode 100644 dist/PackageDetails.js create mode 100644 dist/PackageDetails.test.js create mode 100644 dist/applyPatches.js create mode 100644 dist/assertNever.js create mode 100644 dist/coerceSemVer.js create mode 100644 dist/createIssue.js create mode 100644 dist/createIssue.test.js create mode 100644 dist/detectPackageManager.js create mode 100644 dist/filterFiles.js create mode 100644 dist/getAppRootPath.js create mode 100644 dist/getPackageResolution.js create mode 100644 dist/getPackageVersion.js create mode 100644 dist/getPackageVersion.test.js create mode 100644 dist/hash.js create mode 100644 dist/index.js create mode 100644 dist/makePatch.js create mode 100644 dist/makeRegExp.js create mode 100644 dist/packageIsDevDependency.js create mode 100644 dist/packageIsDevDependency.test.js create mode 100644 dist/patch/apply.js create mode 100644 dist/patch/parse.js create mode 100644 dist/patch/parse.test.js create mode 100644 dist/patch/read.js create mode 100644 dist/patch/read.test.js create mode 100644 dist/patch/reverse.js create mode 100644 dist/patchFs.js create mode 100644 dist/path.js create mode 100644 dist/rebase.js create mode 100644 dist/resolveRelativeFileDependencies.js create mode 100644 dist/resolveRelativeFileDependencies.test.js create mode 100644 dist/spawnSafe.js create mode 100644 dist/stateFile.js diff --git a/dist/PackageDetails.js b/dist/PackageDetails.js new file mode 100644 index 00000000..d2976e93 --- /dev/null +++ b/dist/PackageDetails.js @@ -0,0 +1,126 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parseNameAndVersion = parseNameAndVersion; +exports.getPackageDetailsFromPatchFilename = getPackageDetailsFromPatchFilename; +exports.getPatchDetailsFromCliString = getPatchDetailsFromCliString; +const path_1 = require("./path"); +function parseNameAndVersion(str) { + const parts = str + .split("+") + .map((s) => s.trim()) + .filter(Boolean); + if (parts.length === 0) { + return null; + } + if (parts.length === 1) { + return { packageName: str }; + } + const versionIndex = parts.findIndex((part) => part.match(/^\d+\.\d+\.\d+.*$/)); + if (versionIndex === -1) { + const [scope, name] = parts; + return { packageName: `${scope}/${name}` }; + } + const nameParts = parts.slice(0, versionIndex); + let packageName; + switch (nameParts.length) { + case 0: + return null; + case 1: + packageName = nameParts[0]; + break; + case 2: + const [scope, name] = nameParts; + packageName = `${scope}/${name}`; + break; + default: + return null; + } + const version = parts[versionIndex]; + const sequenceParts = parts.slice(versionIndex + 1); + if (sequenceParts.length === 0) { + return { packageName, version }; + } + // expect sequenceParts[0] to be a number, strip leading 0s + const sequenceNumber = parseInt(sequenceParts[0].replace(/^0+/, ""), 10); + if (isNaN(sequenceNumber)) { + return null; + } + switch (sequenceParts.length) { + case 1: { + return { packageName, version, sequenceNumber }; + } + case 2: { + return { + packageName, + version, + sequenceName: sequenceParts[1], + sequenceNumber, + }; + } + default: { + return null; + } + } + return null; +} +function getPackageDetailsFromPatchFilename(patchFilename) { + const parts = patchFilename + .replace(/(\.dev)?\.patch$/, "") + .split("++") + .map(parseNameAndVersion) + .filter((x) => x !== null); + if (parts.length === 0) { + return null; + } + const lastPart = parts[parts.length - 1]; + if (!lastPart.version) { + return null; + } + return { + name: lastPart.packageName, + version: lastPart.version, + path: (0, path_1.join)("node_modules", parts.map(({ packageName: name }) => name).join("/node_modules/")), + patchFilename, + pathSpecifier: parts.map(({ packageName: name }) => name).join("/"), + humanReadablePathSpecifier: parts + .map(({ packageName: name }) => name) + .join(" => "), + isNested: parts.length > 1, + packageNames: parts.map(({ packageName: name }) => name), + isDevOnly: patchFilename.endsWith(".dev.patch"), + sequenceName: lastPart.sequenceName, + sequenceNumber: lastPart.sequenceNumber, + }; +} +function getPatchDetailsFromCliString(specifier) { + const parts = specifier.split("/"); + const packageNames = []; + let scope = null; + for (let i = 0; i < parts.length; i++) { + if (parts[i].startsWith("@")) { + if (scope) { + return null; + } + scope = parts[i]; + } + else { + if (scope) { + packageNames.push(`${scope}/${parts[i]}`); + scope = null; + } + else { + packageNames.push(parts[i]); + } + } + } + const path = (0, path_1.join)("node_modules", packageNames.join("/node_modules/")); + return { + packageNames, + path, + name: packageNames[packageNames.length - 1], + humanReadablePathSpecifier: packageNames.join(" => "), + isNested: packageNames.length > 1, + pathSpecifier: specifier, + }; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZURldGFpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvUGFja2FnZURldGFpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFtQkEsa0RBcUVDO0FBRUQsZ0ZBcUNDO0FBRUQsb0VBbUNDO0FBcEtELGlDQUE2QjtBQW1CN0IsU0FBZ0IsbUJBQW1CLENBQ2pDLEdBQVc7SUFPWCxNQUFNLEtBQUssR0FBRyxHQUFHO1NBQ2QsS0FBSyxDQUFDLEdBQUcsQ0FBQztTQUNWLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3BCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNsQixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdkIsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUE7SUFDN0IsQ0FBQztJQUNELE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQ2hDLENBQUE7SUFDRCxJQUFJLFlBQVksS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFBO1FBQzNCLE9BQU8sRUFBRSxXQUFXLEVBQUUsR0FBRyxLQUFLLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQTtJQUM1QyxDQUFDO0lBQ0QsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDOUMsSUFBSSxXQUFXLENBQUE7SUFDZixRQUFRLFNBQVMsQ0FBQyxN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Q3pDLEtBQUssR0FBRyxJQUFJLENBQUE7WUFDZCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUM3QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxJQUFBLFdBQUksRUFBQyxjQUFjLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUE7SUFFdEUsT0FBTztRQUNMLFlBQVk7UUFDWixJQUFJO1FBQ0osSUFBSSxFQUFFLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUMzQywwQkFBMEIsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNyRCxRQUFRLEVBQUUsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQ2pDLGFBQWEsRUFBRSxTQUFTO0tBQ3pCLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgam9pbiB9IGZyb20gXCIuL3BhdGhcIlxuXG5leHBvcnQgaW50ZXJmYWNlIFBhY2thZ2VEZXRhaWxzIHtcbiAgaHVtYW5SZWFkYWJsZVBhdGhTcGVjaWZpZXI6IHN0cmluZ1xuICBwYXRoU3BlY2lmaWVyOiBzdHJpbmdcbiAgcGF0aDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICBpc05lc3RlZDogYm9vbGVhblxuICBwYWNrYWdlTmFtZXM6IHN0cmluZ1tdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF0Y2hlZFBhY2thZ2VEZXRhaWxzIGV4dGVuZHMgUGFja2FnZURldGFpbHMge1xuICB2ZXJzaW9uOiBzdHJpbmdcbiAgcGF0Y2hGaWxlbmFtZTogc3RyaW5nXG4gIGlzRGV2T25seTogYm9vbGVhblxuICBzZXF1ZW5jZU5hbWU/OiBzdHJpbmdcbiAgc2VxdWVuY2VOdW1iZXI/OiBudW1iZXJcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTmFtZUFuZFZlcnNpb24oXG4gIHN0cjogc3RyaW5nLFxuKToge1xuICBwYWNrYWdlTmFtZTogc3RyaW5nXG4gIHZlcnNpb24/OiBzdHJpbmdcbiAgc2VxdWVuY2VOYW1lPzogc3RyaW5nXG4gIHNlcXVlbmNlTnVtYmVyPzogbnVtYmVyXG59IHwgbnVsbCB7XG4gIGNvbnN0IHBhcnRzID0gc3RyXG4gICAgLnNwbGl0KFwiK1wiKVxuICAgIC5tYXAoKHMpID0+IHMudHJpbSgpKVxuICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgaWYgKHBhcnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgaWYgKHBhcnRzLmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiB7IHBhY2thZ2VOYW1lOiBzdHIgfVxuICB9XG4gIGNvbnN0IHZlcnNpb25JbmRleCA9IHBhcnRzLmZpbmRJbmRleCgocGFydCkgPT5cbiAgICBwYXJ0Lm1hdGNoKC9eXFxkK1xcLlxcZCtcXC5cXGQrLiokLyksXG4gIClcbiAgaWYgKHZlcnNpb25JbmRleCA9PT0gLTEpIHtcbiAgICBjb25zdCBbc2NvcGUsIG5hbWVdID0gcGFydHNcbiAgICByZXR1cm4geyBwYWNrYWdlTmFtZTogYCR7c2NvcGV9LyR7bmFtZX1gIH1cbiAgfVxuICBjb25zdCBuYW1lUGFydHMgPSBwYXJ0cy5zbGljZSgwLCB2ZXJzaW9uSW5kZXgpXG4gIGxldCBwYWNrYWdlTmFtZVxuICBzd2l0Y2ggKG5hbWVQYXJ0cy5sZW5ndGgpIHtcbiAgICBjYXNlIDA6XG4gICAgICByZXR1cm4gbnVsbFxuICAgIGNhc2UgMTpcbiAgICAgIHBhY2thZ2VOYW1lID0gbmFtZVBhcnRzWzBdXG4gICAgICBicmVha1xuICAgIGNhc2UgMjpcbiAgICAgIGNvbnN0IFtzY29wZSwgbmFtZV0gPSBuYW1lUGFydHNcbiAgICAgIHBhY2thZ2VOYW1lID0gYCR7c2NvcGV9LyR7bmFtZX1gXG4gICAgICBicmVha1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3QgdmVyc2lvbiA9IHBhcnRzW3ZlcnNpb25JbmRleF1cbiAgY29uc3Qgc2VxdWVuY2VQYXJ0cyA9IHBhcnRzLnNsaWNlKHZlcnNpb25JbmRleCArIDEpXG4gIGlmIChzZXF1ZW5jZVBhcnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB7IHBhY2thZ2VOYW1lLCB2ZXJzaW9uIH1cbiAgfVxuXG4gIC8vIGV4cGVjdCBzZXF1ZW5jZVBhcnRzWzBdIHRvIGJlIGEgbnVtYmVyLCBzdHJpcCBsZWFkaW5nIDBzXG4gIGNvbnN0IHNlcXVlbmNlTnVtYmVyID0gcGFyc2VJbnQoc2VxdWVuY2VQYXJ0c1swXS5yZXBsYWNlKC9eMCsvLCBcIlwiKSwgMTApXG4gIGlmIChpc05hTihzZXF1ZW5jZU51bWJlcikpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIHN3aXRjaCAoc2VxdWVuY2VQYXJ0cy5sZW5ndGgpIHtcbiAgICBjYXNlIDE6IHtcbiAgICAgIHJldHVybiB7IHBhY2thZ2VOYW1lLCB2ZXJzaW9uLCBzZXF1ZW5jZU51bWJlciB9XG4gICAgfVxuICAgIGNhc2UgMjoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGFja2FnZU5hbWUsXG4gICAgICAgIHZlcnNpb24sXG4gICAgICAgIHNlcXVlbmNlTmFtZTogc2VxdWVuY2VQYXJ0c1sxXSxcbiAgICAgICAgc2VxdWVuY2VOdW1iZXIsXG4gICAgICB9XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWNrYWdlRGV0YWlsc0Zyb21QYXRjaEZpbGVuYW1lKFxuICBwYXRjaEZpbGVuYW1lOiBzdHJpbmcsXG4pOiBQYXRjaGVkUGFja2FnZURldGFpbHMgfCBudWxsIHtcbiAgY29uc3QgcGFydHMgPSBwYXRjaEZpbGVuYW1lXG4gICAgLnJlcGxhY2UoLyhcXC5kZXYpP1xcLnBhdGNoJC8sIFwiXCIpXG4gICAgLnNwbGl0KFwiKytcIilcbiAgICAubWFwKHBhcnNlTmFtZUFuZFZlcnNpb24pXG4gICAgLmZpbHRlcigoeCk6IHggaXMgTm9uTnVsbGFibGU8dHlwZW9mIHg+ID0+IHggIT09IG51bGwpXG5cbiAgaWYgKHBhcnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBjb25zdCBsYXN0UGFydCA9IHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdXG5cbiAgaWYgKCFsYXN0UGFydC52ZXJzaW9uKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbmFtZTogbGFzdFBhcnQucGFja2FnZU5hbWUsXG4gICAgdmVyc2lvbjogbGFzdFBhcnQudmVyc2lvbixcbiAgICBwYXRoOiBqb2luKFxuICAgICAgXCJub2RlX21vZHVsZXNcIixcbiAgICAgIHBhcnRzLm1hcCgoeyBwYWNrYWdlTmFtZTogbmFtZSB9KSA9PiBuYW1lKS5qb2luKFwiL25vZGVfbW9kdWxlcy9cIiksXG4gICAgKSxcbiAgICBwYXRjaEZpbGVuYW1lLFxuICAgIHBhdGhTcGVjaWZpZXI6IHBhcnRzLm1hcCgoeyBwYWNrYWdlTmFtZTogbmFtZSB9KSA9PiBuYW1lKS5qb2luKFwiL1wiKSxcbiAgICBodW1hblJlYWRhYmxlUGF0aFNwZWNpZmllcjogcGFydHNcbiAgICAgIC5tYXAoKHsgcGFja2FnZU5hbWU6IG5hbWUgfSkgPT4gbmFtZSlcbiAgICAgIC5qb2luKFwiID0+IFwiKSxcbiAgICBpc05lc3RlZDogcGFydHMubGVuZ3RoID4gMSxcbiAgICBwYWNrYWdlTmFtZXM6IHBhcnRzLm1hcCgoeyBwYWNrYWdlTmFtZTogbmFtZSB9KSA9PiBuYW1lKSxcbiAgICBpc0Rldk9ubHk6IHBhdGNoRmlsZW5hbWUuZW5kc1dpdGgoXCIuZGV2LnBhdGNoXCIpLFxuICAgIHNlcXVlbmNlTmFtZTogbGFzdFBhcnQuc2VxdWVuY2VOYW1lLFxuICAgIHNlcXVlbmNlTnVtYmVyOiBsYXN0UGFydC5zZXF1ZW5jZU51bWJlcixcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGF0Y2hEZXRhaWxzRnJvbUNsaVN0cmluZyhcbiAgc3BlY2lmaWVyOiBzdHJpbmcsXG4pOiBQYWNrYWdlRGV0YWlscyB8IG51bGwge1xuICBjb25zdCBwYXJ0cyA9IHNwZWNpZmllci5zcGxpdChcIi9cIilcblxuICBjb25zdCBwYWNrYWdlTmFtZXMgPSBbXVxuXG4gIGxldCBzY29wZTogc3RyaW5nIHwgbnVsbCA9IG51bGxcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBhcnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHBhcnRzW2ldLnN0YXJ0c1dpdGgoXCJAXCIpKSB7XG4gICAgICBpZiAoc2NvcGUpIHtcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cbiAgICAgIHNjb3BlID0gcGFydHNbaV1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHNjb3BlKSB7XG4gICAgICAgIHBhY2thZ2VOYW1lcy5wdXNoKGAke3Njb3BlfS8ke3BhcnRzW2ldfWApXG4gICAgICAgIHNjb3BlID0gbnVsbFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFja2FnZU5hbWVzLnB1c2gocGFydHNbaV0pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcGF0aCA9IGpvaW4oXCJub2RlX21vZHVsZXNcIiwgcGFja2FnZU5hbWVzLmpvaW4oXCIvbm9kZV9tb2R1bGVzL1wiKSlcblxuICByZXR1cm4ge1xuICAgIHBhY2thZ2VOYW1lcyxcbiAgICBwYXRoLFxuICAgIG5hbWU6IHBhY2thZ2VOYW1lc1twYWNrYWdlTmFtZXMubGVuZ3RoIC0gMV0sXG4gICAgaHVtYW5SZWFkYWJsZVBhdGhTcGVjaWZpZXI6IHBhY2thZ2VOYW1lcy5qb2luKFwiID0+IFwiKSxcbiAgICBpc05lc3RlZDogcGFja2FnZU5hbWVzLmxlbmd0aCA+IDEsXG4gICAgcGF0aFNwZWNpZmllcjogc3BlY2lmaWVyLFxuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/dist/PackageDetails.test.js b/dist/PackageDetails.test.js new file mode 100644 index 00000000..d413c6d7 --- /dev/null +++ b/dist/PackageDetails.test.js @@ -0,0 +1,294 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const PackageDetails_1 = require("./PackageDetails"); +describe("getPackageDetailsFromPatchFilename", () => { + it("parses new-style patch filenames", () => { + expect((0, PackageDetails_1.getPackageDetailsFromPatchFilename)("banana++apple+0.4.2.patch")) + .toMatchInlineSnapshot(` +Object { + "humanReadablePathSpecifier": "banana => apple", + "isDevOnly": false, + "isNested": true, + "name": "apple", + "packageNames": Array [ + "banana", + "apple", + ], + "patchFilename": "banana++apple+0.4.2.patch", + "path": "node_modules/banana/node_modules/apple", + "pathSpecifier": "banana/apple", + "sequenceName": undefined, + "sequenceNumber": undefined, + "version": "0.4.2", +} +`); + expect((0, PackageDetails_1.getPackageDetailsFromPatchFilename)("@types+banana++@types+apple++@mollusc+man+0.4.2-banana-tree.patch")).toMatchInlineSnapshot(` +Object { + "humanReadablePathSpecifier": "@types/banana => @types/apple => @mollusc/man", + "isDevOnly": false, + "isNested": true, + "name": "@mollusc/man", + "packageNames": Array [ + "@types/banana", + "@types/apple", + "@mollusc/man", + ], + "patchFilename": "@types+banana++@types+apple++@mollusc+man+0.4.2-banana-tree.patch", + "path": "node_modules/@types/banana/node_modules/@types/apple/node_modules/@mollusc/man", + "pathSpecifier": "@types/banana/@types/apple/@mollusc/man", + "sequenceName": undefined, + "sequenceNumber": undefined, + "version": "0.4.2-banana-tree", +} +`); + expect((0, PackageDetails_1.getPackageDetailsFromPatchFilename)("@types+banana.patch++hello+0.4.2-banana-tree.patch")).toMatchInlineSnapshot(` +Object { + "humanReadablePathSpecifier": "@types/banana.patch => hello", + "isDevOnly": false, + "isNested": true, + "name": "hello", + "packageNames": Array [ + "@types/banana.patch", + "hello", + ], + "patchFilename": "@types+banana.patch++hello+0.4.2-banana-tree.patch", + "path": "node_modules/@types/banana.patch/node_modules/hello", + "pathSpecifier": "@types/banana.patch/hello", + "sequenceName": undefined, + "sequenceNumber": undefined, + "version": "0.4.2-banana-tree", +} +`); + expect((0, PackageDetails_1.getPackageDetailsFromPatchFilename)("@types+banana.patch++hello+0.4.2-banana-tree.dev.patch")).toMatchInlineSnapshot(` +Object { + "humanReadablePathSpecifier": "@types/banana.patch => hello", + "isDevOnly": true, + "isNested": true, + "name": "hello", + "packageNames": Array [ + "@types/banana.patch", + "hello", + ], + "patchFilename": "@types+banana.patch++hello+0.4.2-banana-tree.dev.patch", + "path": "node_modules/@types/banana.patch/node_modules/hello", + "pathSpecifier": "@types/banana.patch/hello", + "sequenceName": undefined, + "sequenceNumber": undefined, + "version": "0.4.2-banana-tree", +} +`); + }); + it("works for ordered patches", () => { + expect((0, PackageDetails_1.getPackageDetailsFromPatchFilename)("left-pad+1.3.0+02+world")) + .toMatchInlineSnapshot(` +Object { + "humanReadablePathSpecifier": "left-pad", + "isDevOnly": false, + "isNested": false, + "name": "left-pad", + "packageNames": Array [ + "left-pad", + ], + "patchFilename": "left-pad+1.3.0+02+world", + "path": "node_modules/left-pad", + "pathSpecifier": "left-pad", + "sequenceName": "world", + "sequenceNumber": 2, + "version": "1.3.0", +} +`); + expect((0, PackageDetails_1.getPackageDetailsFromPatchFilename)("@microsoft/api-extractor+2.0.0+01+FixThing")).toMatchInlineSnapshot(` +Object { + "humanReadablePathSpecifier": "@microsoft/api-extractor", + "isDevOnly": false, + "isNested": false, + "name": "@microsoft/api-extractor", + "packageNames": Array [ + "@microsoft/api-extractor", + ], + "patchFilename": "@microsoft/api-extractor+2.0.0+01+FixThing", + "path": "node_modules/@microsoft/api-extractor", + "pathSpecifier": "@microsoft/api-extractor", + "sequenceName": "FixThing", + "sequenceNumber": 1, + "version": "2.0.0", +} +`); + }); +}); +describe("getPatchDetailsFromCliString", () => { + it("handles a minimal package name", () => { + expect((0, PackageDetails_1.getPatchDetailsFromCliString)("patch-package")).toMatchInlineSnapshot(` +Object { + "humanReadablePathSpecifier": "patch-package", + "isNested": false, + "name": "patch-package", + "packageNames": Array [ + "patch-package", + ], + "path": "node_modules/patch-package", + "pathSpecifier": "patch-package", +} +`); + }); + it("handles a scoped package name", () => { + expect((0, PackageDetails_1.getPatchDetailsFromCliString)("@david/patch-package")).toMatchInlineSnapshot(` +Object { + "humanReadablePathSpecifier": "@david/patch-package", + "isNested": false, + "name": "@david/patch-package", + "packageNames": Array [ + "@david/patch-package", + ], + "path": "node_modules/@david/patch-package", + "pathSpecifier": "@david/patch-package", +} +`); + }); + it("handles a nested package name", () => { + expect((0, PackageDetails_1.getPatchDetailsFromCliString)("david/patch-package")).toMatchInlineSnapshot(` +Object { + "humanReadablePathSpecifier": "david => patch-package", + "isNested": true, + "name": "patch-package", + "packageNames": Array [ + "david", + "patch-package", + ], + "path": "node_modules/david/node_modules/patch-package", + "pathSpecifier": "david/patch-package", +} +`); + }); + it("handles a nested package name with scopes", () => { + expect((0, PackageDetails_1.getPatchDetailsFromCliString)("@david/patch-package/banana")).toMatchInlineSnapshot(` +Object { + "humanReadablePathSpecifier": "@david/patch-package => banana", + "isNested": true, + "name": "banana", + "packageNames": Array [ + "@david/patch-package", + "banana", + ], + "path": "node_modules/@david/patch-package/node_modules/banana", + "pathSpecifier": "@david/patch-package/banana", +} +`); + expect((0, PackageDetails_1.getPatchDetailsFromCliString)("@david/patch-package/@david/banana")).toMatchInlineSnapshot(` +Object { + "humanReadablePathSpecifier": "@david/patch-package => @david/banana", + "isNested": true, + "name": "@david/banana", + "packageNames": Array [ + "@david/patch-package", + "@david/banana", + ], + "path": "node_modules/@david/patch-package/node_modules/@david/banana", + "pathSpecifier": "@david/patch-package/@david/banana", +} +`); + expect((0, PackageDetails_1.getPatchDetailsFromCliString)("david/patch-package/@david/banana")).toMatchInlineSnapshot(` +Object { + "humanReadablePathSpecifier": "david => patch-package => @david/banana", + "isNested": true, + "name": "@david/banana", + "packageNames": Array [ + "david", + "patch-package", + "@david/banana", + ], + "path": "node_modules/david/node_modules/patch-package/node_modules/@david/banana", + "pathSpecifier": "david/patch-package/@david/banana", +} +`); + }); +}); +describe("parseNameAndVersion", () => { + it("works for good-looking names", () => { + expect((0, PackageDetails_1.parseNameAndVersion)("lodash+2.3.4")).toMatchInlineSnapshot(` +Object { + "packageName": "lodash", + "version": "2.3.4", +} +`); + expect((0, PackageDetails_1.parseNameAndVersion)("patch-package+2.0.0-alpha.3")) + .toMatchInlineSnapshot(` +Object { + "packageName": "patch-package", + "version": "2.0.0-alpha.3", +} +`); + }); + it("works for scoped package names", () => { + expect((0, PackageDetails_1.parseNameAndVersion)("@react-spring+rafz+2.0.0-alpha.3")) + .toMatchInlineSnapshot(` +Object { + "packageName": "@react-spring/rafz", + "version": "2.0.0-alpha.3", +} +`); + expect((0, PackageDetails_1.parseNameAndVersion)("@microsoft+api-extractor+2.2.3")) + .toMatchInlineSnapshot(` +Object { + "packageName": "@microsoft/api-extractor", + "version": "2.2.3", +} +`); + }); + it("works for ordered patches", () => { + expect((0, PackageDetails_1.parseNameAndVersion)("patch-package+2.0.0+01")) + .toMatchInlineSnapshot(` +Object { + "packageName": "patch-package", + "sequenceNumber": 1, + "version": "2.0.0", +} +`); + expect((0, PackageDetails_1.parseNameAndVersion)("@react-spring+rafz+2.0.0-alpha.3+23")) + .toMatchInlineSnapshot(` +Object { + "packageName": "@react-spring/rafz", + "sequenceNumber": 23, + "version": "2.0.0-alpha.3", +} +`); + expect((0, PackageDetails_1.parseNameAndVersion)("@microsoft+api-extractor+2.0.0+001")) + .toMatchInlineSnapshot(` +Object { + "packageName": "@microsoft/api-extractor", + "sequenceNumber": 1, + "version": "2.0.0", +} +`); + }); + it("works for ordered patches with names", () => { + expect((0, PackageDetails_1.parseNameAndVersion)("patch-package+2.0.0+021+FixImportantThing")) + .toMatchInlineSnapshot(` +Object { + "packageName": "patch-package", + "sequenceName": "FixImportantThing", + "sequenceNumber": 21, + "version": "2.0.0", +} +`); + expect((0, PackageDetails_1.parseNameAndVersion)("@react-spring+rafz+2.0.0-alpha.3+000023+Foo")) + .toMatchInlineSnapshot(` +Object { + "packageName": "@react-spring/rafz", + "sequenceName": "Foo", + "sequenceNumber": 23, + "version": "2.0.0-alpha.3", +} +`); + expect((0, PackageDetails_1.parseNameAndVersion)("@microsoft+api-extractor+2.0.0+001+Bar")) + .toMatchInlineSnapshot(` +Object { + "packageName": "@microsoft/api-extractor", + "sequenceName": "Bar", + "sequenceNumber": 1, + "version": "2.0.0", +} +`); + }); +}); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZURldGFpbHMudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9QYWNrYWdlRGV0YWlscy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscURBSXlCO0FBRXpCLFFBQVEsQ0FBQyxvQ0FBb0MsRUFBRSxHQUFHLEVBQUU7SUFDbEQsRUFBRSxDQUFDLGtDQUFrQyxFQUFFLEdBQUcsRUFBRTtRQUMxQyxNQUFNLENBQUMsSUFBQSxtREFBa0MsRUFBQywyQkFBMkIsQ0FBQyxDQUFDO2FBQ3BFLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztDQWlCNUIsQ0FBQyxDQUFBO1FBRUUsTUFBTSxDQUNKLElBQUEsbURBQWtDLEVBQ2hDLG1FQUFtRSxDQUNwRSxDQUNGLENBQUMscUJBQXFCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQWtCM0IsQ0FBQyxDQUFBO1FBRUUsTUFBTSxDQUNKLElBQUEsbURBQWtDLEVBQ2hDLG9EQUFvRCxDQUNyRCxDQUNGLENBQUMscUJBQXFCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBaUIzQixDQUFDLENBQUE7UUFFRSxNQUFNLENBQ0osSUFBQSxtREFBa0MsRUFDaEMsd0RBQXdELENBQ3pELENBQ0YsQ0FBQyxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FpQjNCLENBQUMsQ0FBQTtJQUNBLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLDJCQUEyQixFQUFFLEdBQUcsRUFBRTtRQUNuQyxNQUFNLENBQUMsSUFBQSxtREFBa0MsRUFBQyx5QkFBeUIsQ0FBQyxDQUFDO2FBQ2xFLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0NBZ0I1QixDQUFDLENBQUE7UUFFRSxNQUFNLENBQ0osSUFBQSxtREFBa0MsRUFDaEMsNENBQTRDLENBQzdDLENBQ0YsQ0FBQyxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztDQWdCM0IsQ0FBQyxDQUFBO0lBQ0EsQ0FBQyxDQUFDLENBQUE7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OztDQU81QixDQUFDLENBQUE7UUFDRSxNQUFNLENBQUMsSUFBQSxvQ0FBbUIsRUFBQyw2Q0FBNkMsQ0FBQyxDQUFDO2FBQ3ZFLHFCQUFxQixDQUFDOzs7Ozs7O0NBTzVCLENBQUMsQ0FBQTtRQUNFLE1BQU0sQ0FBQyxJQUFBLG9DQUFtQixFQUFDLHdDQUF3QyxDQUFDLENBQUM7YUFDbEUscUJBQXFCLENBQUM7Ozs7Ozs7Q0FPNUIsQ0FBQyxDQUFBO0lBQ0EsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGdldFBhY2thZ2VEZXRhaWxzRnJvbVBhdGNoRmlsZW5hbWUsXG4gIGdldFBhdGNoRGV0YWlsc0Zyb21DbGlTdHJpbmcsXG4gIHBhcnNlTmFtZUFuZFZlcnNpb24sXG59IGZyb20gXCIuL1BhY2thZ2VEZXRhaWxzXCJcblxuZGVzY3JpYmUoXCJnZXRQYWNrYWdlRGV0YWlsc0Zyb21QYXRjaEZpbGVuYW1lXCIsICgpID0+IHtcbiAgaXQoXCJwYXJzZXMgbmV3LXN0eWxlIHBhdGNoIGZpbGVuYW1lc1wiLCAoKSA9PiB7XG4gICAgZXhwZWN0KGdldFBhY2thZ2VEZXRhaWxzRnJvbVBhdGNoRmlsZW5hbWUoXCJiYW5hbmErK2FwcGxlKzAuNC4yLnBhdGNoXCIpKVxuICAgICAgLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG5PYmplY3Qge1xuICBcImh1bWFuUmVhZGFibGVQYXRoU3BlY2lmaWVyXCI6IFwiYmFuYW5hID0+IGFwcGxlXCIsXG4gIFwiaXNEZXZPbmx5XCI6IGZhbHNlLFxuICBcImlzTmVzdGVkXCI6IHRydWUsXG4gIFwibmFtZVwiOiBcImFwcGxlXCIsXG4gIFwicGFja2FnZU5hbWVzXCI6IEFycmF5IFtcbiAgICBcImJhbmFuYVwiLFxuICAgIFwiYXBwbGVcIixcbiAgXSxcbiAgXCJwYXRjaEZpbGVuYW1lXCI6IFwiYmFuYW5hKythcHBsZSswLjQuMi5wYXRjaFwiLFxuICBcInBhdGhcIjogXCJub2RlX21vZHVsZXMvYmFuYW5hL25vZGVfbW9kdWxlcy9hcHBsZVwiLFxuICBcInBhdGhTcGVjaWZpZXJcIjogXCJiYW5hbmEvYXBwbGVcIixcbiAgXCJzZXF1ZW5jZU5hbWVcIjogdW5kZWZpbmVkLFxuICBcInNlcXVlbmNlTnVtYmVyXCI6IHVuZGVmaW5lZCxcbiAgXCJ2ZXJzaW9uXCI6IFwiMC40LjJcIixcbn1cbmApXG5cbiAgICBleHBlY3QoXG4gICAgICBnZXRQYWNrYWdlRGV0YWlsc0Zyb21QYXRjaEZpbGVuYW1lKFxuICAgICAgICBcIkB0eXBlcytiYW5hbmErK0B0eXBlcythcHBsZSsrQG1vbGx1c2MrbWFuKzAuNC4yLWJhbmFuYS10cmVlLnBhdGNoXCIsXG4gICAgICApLFxuICAgICkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbk9iamVjdCB7XG4gIFwiaHVtYW5SZWFkYWJsZVBhdGhTcGVjaWZpZXJcIjogXCJAdHlwZXMvYmFuYW5hID0+IEB0eXBlcy9hcHBsZSA9PiBAbW9sbHVzYy9tYW5cIixcbiAgXCJpc0Rldk9ubHlcIjogZmFsc2UsXG4gIFwiaXNOZXN0ZWRcIjogdHJ1ZSxcbiAgXCJuYW1lXCI6IFwiQG1vbGx1c2MvbWFuXCIsXG4gIFwicGFja2FnZU5hbWVzXCI6IEFycmF5IFtcbiAgICBcIkB0eXBlcy9iYW5hbmFcIixcbiAgICBcIkB0eXBlcy9hcHBsZVwiLFxuICAgIFwiQG1vbGx1c2MvbWFuXCIsXG4gIF0sXG4gIFwicGF0Y2hGaWxlbmFtZVwiOiBcIkB0eXBlcytiYW5hbmErK0B0eXBlcythcHBsZSsrQG1vbGx1c2MrbWFuKzAuNC4yLWJhbmFuYS10cmVlLnBhdGNoXCIsXG4gIFwicGF0aFwiOiBcIm5vZGVfbW9kdWxlcy9AdHlwZXMvYmFuYW5hL25vZGVfbW9kdWxlcy9AdHlwZXMvYXBwbGUvbm9kZV9tb2R1bGVzL0Btb2xsdXNjL21hblwiLFxuICBcInBhdGhTcGVjaWZpZXJcIjogXCJAdHlwZXMvYmFuYW5hL0B0eXBlcy9hcHBsZS9AbW9sbHVzYy9tYW5cIixcbiAgXCJzZXF1ZW5jZU5hbWVcIjogdW5kZWZpbmVkLFxuICBcInNlcXVlbmNlTnVtYmVyXCI6IHVuZGVmaW5lZCxcbiAgXCJ2ZXJzaW9uXCI6IFwiMC40LjItYmFuYW5hLXRyZWVcIixcbn1cbmApXG5cbiAgICBleHBlY3QoXG4gICAgICBnZXRQYWNrYWdlRGV0YWlsc0Zyb21QYXRjaEZpbGVuYW1lKFxuICAgICAgICBcIkB0eXBlcytiYW5hbmEucGF0Y2grK2hlbGxvKzAuNC4yLWJhbmFuYS10cmVlLnBhdGNoXCIsXG4gICAgICApLFxuICAgICkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbk9iamVjdCB7XG4gIFwiaHVtYW5SZWFkYWJsZVBhdGhTcGVjaWZpZXJcIjogXCJAdHlwZXMvYmFuYW5hLnBhdGNoID0+IGhlbGxvXCIsXG4gIFwiaXNEZXZPbmx5XCI6IGZhbHNlLFxuICBcImlzTmVzdGVkXCI6IHRydWUsXG4gIFwibmFtZVwiOiBcImhlbGxvXCIsXG4gIFwicGFja2FnZU5hbWVzXCI6IEFycmF5IFtcbiAgICBcIkB0eXBlcy9iYW5hbmEucGF0Y2hcIixcbiAgICBcImhlbGxvXCIsXG4gIF0sXG4gIFwicGF0Y2hGaWxlbmFtZVwiOiBcIkB0eXBlcytiYW5hbmEucGF0Y2grK2hlbGxvKzAuNC4yLWJhbmFuYS10cmVlLnBhdGNoXCIsXG4gIFwicGF0aFwiOiBcIm5vZGVfbW9kdWxlcy9AdHlwZXMvYmFuYW5hLnBhdGNoL25vZGVfbW9kdWxlcy9oZWxsb1wiLFxuICBcInBhdGhTcGVjaWZpZXJcIjogXCJAdHlwZXMvYmFuYW5hLnBhdGNoL2hlbGxvXCIsXG4gIFwic2VxdWVuY2VOYW1lXCI6IHVuZGVmaW5lZCxcbiAgXCJzZXF1ZW5jZU51bWJlclwiOiB1bmRlZmluZWQsXG4gIFwidmVyc2lvblwiOiBcIjAuNC4yLWJhbmFuYS10cmVlXCIsXG59XG5gKVxuXG4gICAgZXhwZWN0KFxuICAgICAgZ2V0UGFja2FnZURldGFpbHNGcm9tUGF0Y2hGaWxlbmFtZShcbiAgICAgICAgXCJAdHlwZXMrYmFuYW5hLnBhdGNoKytoZWxsbyswLjQuMi1iYW5hbmEtdHJlZS5kZXYucGF0Y2hcIixcbiAgICAgICksXG4gICAgKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuT2JqZWN0IHtcbiAgXCJodW1hblJlYWRhYmxlUGF0aFNwZWNpZmllclwiOiBcIkB0eXBlcy9iYW5hbmEucGF0Y2ggPT4gaGVsbG9cIixcbiAgXCJpc0Rldk9ubHlcIjogdHJ1ZSxcbiAgXCJpc05lc3RlZFwiOiB0cnVlLFxuICBcIm5hbWVcIjogXCJoZWxsb1wiLFxuICBcInBhY2thZ2VOYW1lc1wiOiBBcnJheSBbXG4gICAgXCJAdHlwZXMvYmFuYW5hLnBhdGNoXCIsXG4gICAgXCJoZWxsb1wiLFxuICBdLFxuICBcInBhdGNoRmlsZW5hbWVcIjogXCJAdHlwZXMrYmFuYW5hLnBhdGNoKytoZWxsbyswLjQuMi1iYW5hbmEtdHJlZS5kZXYucGF0Y2hcIixcbiAgXCJwYXRoXCI6IFwibm9kZV9tb2R1bGVzL0B0eXBlcy9iYW5hbmEucGF0Y2gvbm9kZV9tb2R1bGVzL2hlbGxvXCIsXG4gIFwicGF0aFNwZWNpZmllclwiOiBcIkB0eXBlcy9iYW5hbmEucGF0Y2gvaGVsbG9cIixcbiAgXCJzZXF1ZW5jZU5hbWVcIjogdW5kZWZpbmVkLFxuICBcInNlcXVlbmNlTnVtYmVyXCI6IHVuZGVmaW5lZCxcbiAgXCJ2ZXJzaW9uXCI6IFwiMC40LjItYmFuYW5hLXRyZWVcIixcbn1cbmApXG4gIH0pXG5cbiAgaXQoXCJ3b3JrcyBmb3Igb3JkZXJlZCBwYXRjaGVzXCIsICgpID0+IHtcbiAgICBleHBlY3QoZ2V0UGFja2FnZURldGFpbHNGcm9tUGF0Y2hGaWxlbmFtZShcImxlZnQtcGFkKzEuMy4wKzAyK3dvcmxkXCIpKVxuICAgICAgLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG5PYmplY3Qge1xuICBcImh1bWFuUmVhZGFibGVQYXRoU3BlY2lmaWVyXCI6IFwibGVmdC1wYWRcIixcbiAgXCJpc0Rldk9ubHlcIjogZmFsc2UsXG4gIFwiaXNOZXN0ZWRcIjogZmFsc2UsXG4gIFwibmFtZVwiOiBcImxlZnQtcGFkXCIsXG4gIFwicGFja2FnZU5hbWVzXCI6IEFycmF5IFtcbiAgICBcImxlZnQtcGFkXCIsXG4gIF0sXG4gIFwicGF0Y2hGaWxlbmFtZVwiOiBcImxlZnQtcGFkKzEuMy4wKzAyK3dvcmxkXCIsXG4gIFwicGF0aFwiOiBcIm5vZGVfbW9kdWxlcy9sZWZ0LXBhZFwiLFxuICBcInBhdGhTcGVjaWZpZXJcIjogXCJsZWZ0LXBhZFwiLFxuICBcInNlcXVlbmNlTmFtZVwiOiBcIndvcmxkXCIsXG4gIFwic2VxdWVuY2VOdW1iZXJcIjogMixcbiAgXCJ2ZXJzaW9uXCI6IFwiMS4zLjBcIixcbn1cbmApXG5cbiAgICBleHBlY3QoXG4gICAgICBnZXRQYWNrYWdlRGV0YWlsc0Zyb21QYXRjaEZpbGVuYW1lKFxuICAgICAgICBcIkBtaWNyb3NvZnQvYXBpLWV4dHJhY3RvcisyLjAuMCswMStGaXhUaGluZ1wiLFxuICAgICAgKSxcbiAgICApLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG5PYmplY3Qge1xuICBcImh1bWFuUmVhZGFibGVQYXRoU3BlY2lmaWVyXCI6IFwiQG1pY3Jvc29mdC9hcGktZXh0cmFjdG9yXCIsXG4gIFwiaXNEZXZPbmx5XCI6IGZhbHNlLFxuICBcImlzTmVzdGVkXCI6IGZhbHNlLFxuICBcIm5hbWVcIjogXCJAbWljcm9zb2Z0L2FwaS1leHRyYWN0b3JcIixcbiAgXCJwYWNrYWdlTmFtZXNcIjogQXJyYXkgW1xuICAgIFwiQG1pY3Jvc29mdC9hcGktZXh0cmFjdG9yXCIsXG4gIF0sXG4gIFwicGF0Y2hGaWxlbmFtZVwiOiBcIkBtaWNyb3NvZnQvYXBpLWV4dHJhY3RvcisyLjAuMCswMStGaXhUaGluZ1wiLFxuICBcInBhdGhcIjogXCJub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcGktZXh0cmFjdG9yXCIsXG4gIFwicGF0aFNwZWNpZmllclwiOiBcIkBtaWNyb3NvZnQvYXBpLWV4dHJhY3RvclwiLFxuICBcInNlcXVlbmNlTmFtZVwiOiBcIkZpeFRoaW5nXCIsXG4gIFwic2VxdWVuY2VOdW1iZXJcIjogMSxcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wLjBcIixcbn1cbmApXG4gIH0pXG59KVxuXG5kZXNjcmliZShcImdldFBhdGNoRGV0YWlsc0Zyb21DbGlTdHJpbmdcIiwgKCkgPT4ge1xuICBpdChcImhhbmRsZXMgYSBtaW5pbWFsIHBhY2thZ2UgbmFtZVwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KGdldFBhdGNoRGV0YWlsc0Zyb21DbGlTdHJpbmcoXCJwYXRjaC1wYWNrYWdlXCIpKS50b01hdGNoSW5saW5lU25hcHNob3QoXG4gICAgICBgXG5PYmplY3Qge1xuICBcImh1bWFuUmVhZGFibGVQYXRoU3BlY2lmaWVyXCI6IFwicGF0Y2gtcGFja2FnZVwiLFxuICBcImlzTmVzdGVkXCI6IGZhbHNlLFxuICBcIm5hbWVcIjogXCJwYXRjaC1wYWNrYWdlXCIsXG4gIFwicGFja2FnZU5hbWVzXCI6IEFycmF5IFtcbiAgICBcInBhdGNoLXBhY2thZ2VcIixcbiAgXSxcbiAgXCJwYXRoXCI6IFwibm9kZV9tb2R1bGVzL3BhdGNoLXBhY2thZ2VcIixcbiAgXCJwYXRoU3BlY2lmaWVyXCI6IFwicGF0Y2gtcGFja2FnZVwiLFxufVxuYCxcbiAgICApXG4gIH0pXG5cbiAgaXQoXCJoYW5kbGVzIGEgc2NvcGVkIHBhY2thZ2UgbmFtZVwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgZ2V0UGF0Y2hEZXRhaWxzRnJvbUNsaVN0cmluZyhcIkBkYXZpZC9wYXRjaC1wYWNrYWdlXCIpLFxuICAgICkudG9NYXRjaElubGluZVNuYXBzaG90KFxuICAgICAgYFxuT2JqZWN0IHtcbiAgXCJodW1hblJlYWRhYmxlUGF0aFNwZWNpZmllclwiOiBcIkBkYXZpZC9wYXRjaC1wYWNrYWdlXCIsXG4gIFwiaXNOZXN0ZWRcIjogZmFsc2UsXG4gIFwibmFtZVwiOiBcIkBkYXZpZC9wYXRjaC1wYWNrYWdlXCIsXG4gIFwicGFja2FnZU5hbWVzXCI6IEFycmF5IFtcbiAgICBcIkBkYXZpZC9wYXRjaC1wYWNrYWdlXCIsXG4gIF0sXG4gIFwicGF0aFwiOiBcIm5vZGVfbW9kdWxlcy9AZGF2aWQvcGF0Y2gtcGFja2FnZVwiLFxuICBcInBhdGhTcGVjaWZpZXJcIjogXCJAZGF2aWQvcGF0Y2gtcGFja2FnZVwiLFxufVxuYCxcbiAgICApXG4gIH0pXG5cbiAgaXQoXCJoYW5kbGVzIGEgbmVzdGVkIHBhY2thZ2UgbmFtZVwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgZ2V0UGF0Y2hEZXRhaWxzRnJvbUNsaVN0cmluZyhcImRhdmlkL3BhdGNoLXBhY2thZ2VcIiksXG4gICAgKS50b01hdGNoSW5saW5lU25hcHNob3QoXG4gICAgICBgXG5PYmplY3Qge1xuICBcImh1bWFuUmVhZGFibGVQYXRoU3BlY2lmaWVyXCI6IFwiZGF2aWQgPT4gcGF0Y2gtcGFja2FnZVwiLFxuICBcImlzTmVzdGVkXCI6IHRydWUsXG4gIFwibmFtZVwiOiBcInBhdGNoLXBhY2thZ2VcIixcbiAgXCJwYWNrYWdlTmFtZXNcIjogQXJyYXkgW1xuICAgIFwiZGF2aWRcIixcbiAgICBcInBhdGNoLXBhY2thZ2VcIixcbiAgXSxcbiAgXCJwYXRoXCI6IFwibm9kZV9tb2R1bGVzL2RhdmlkL25vZGVfbW9kdWxlcy9wYXRjaC1wYWNrYWdlXCIsXG4gIFwicGF0aFNwZWNpZmllclwiOiBcImRhdmlkL3BhdGNoLXBhY2thZ2VcIixcbn1cbmAsXG4gICAgKVxuICB9KVxuXG4gIGl0KFwiaGFuZGxlcyBhIG5lc3RlZCBwYWNrYWdlIG5hbWUgd2l0aCBzY29wZXNcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIGdldFBhdGNoRGV0YWlsc0Zyb21DbGlTdHJpbmcoXCJAZGF2aWQvcGF0Y2gtcGFja2FnZS9iYW5hbmFcIiksXG4gICAgKS50b01hdGNoSW5saW5lU25hcHNob3QoXG4gICAgICBgXG5PYmplY3Qge1xuICBcImh1bWFuUmVhZGFibGVQYXRoU3BlY2lmaWVyXCI6IFwiQGRhdmlkL3BhdGNoLXBhY2thZ2UgPT4gYmFuYW5hXCIsXG4gIFwiaXNOZXN0ZWRcIjogdHJ1ZSxcbiAgXCJuYW1lXCI6IFwiYmFuYW5hXCIsXG4gIFwicGFja2FnZU5hbWVzXCI6IEFycmF5IFtcbiAgICBcIkBkYXZpZC9wYXRjaC1wYWNrYWdlXCIsXG4gICAgXCJiYW5hbmFcIixcbiAgXSxcbiAgXCJwYXRoXCI6IFwibm9kZV9tb2R1bGVzL0BkYXZpZC9wYXRjaC1wYWNrYWdlL25vZGVfbW9kdWxlcy9iYW5hbmFcIixcbiAgXCJwYXRoU3BlY2lmaWVyXCI6IFwiQGRhdmlkL3BhdGNoLXBhY2thZ2UvYmFuYW5hXCIsXG59XG5gLFxuICAgIClcblxuICAgIGV4cGVjdChcbiAgICAgIGdldFBhdGNoRGV0YWlsc0Zyb21DbGlTdHJpbmcoXCJAZGF2aWQvcGF0Y2gtcGFja2FnZS9AZGF2aWQvYmFuYW5hXCIpLFxuICAgICkudG9NYXRjaElubGluZVNuYXBzaG90KFxuICAgICAgYFxuT2JqZWN0IHtcbiAgXCJodW1hblJlYWRhYmxlUGF0aFNwZWNpZmllclwiOiBcIkBkYXZpZC9wYXRjaC1wYWNrYWdlID0+IEBkYXZpZC9iYW5hbmFcIixcbiAgXCJpc05lc3RlZFwiOiB0cnVlLFxuICBcIm5hbWVcIjogXCJAZGF2aWQvYmFuYW5hXCIsXG4gIFwicGFja2FnZU5hbWVzXCI6IEFycmF5IFtcbiAgICBcIkBkYXZpZC9wYXRjaC1wYWNrYWdlXCIsXG4gICAgXCJAZGF2aWQvYmFuYW5hXCIsXG4gIF0sXG4gIFwicGF0aFwiOiBcIm5vZGVfbW9kdWxlcy9AZGF2aWQvcGF0Y2gtcGFja2FnZS9ub2RlX21vZHVsZXMvQGRhdmlkL2JhbmFuYVwiLFxuICBcInBhdGhTcGVjaWZpZXJcIjogXCJAZGF2aWQvcGF0Y2gtcGFja2FnZS9AZGF2aWQvYmFuYW5hXCIsXG59XG5gLFxuICAgIClcblxuICAgIGV4cGVjdChcbiAgICAgIGdldFBhdGNoRGV0YWlsc0Zyb21DbGlTdHJpbmcoXCJkYXZpZC9wYXRjaC1wYWNrYWdlL0BkYXZpZC9iYW5hbmFcIiksXG4gICAgKS50b01hdGNoSW5saW5lU25hcHNob3QoXG4gICAgICBgXG5PYmplY3Qge1xuICBcImh1bWFuUmVhZGFibGVQYXRoU3BlY2lmaWVyXCI6IFwiZGF2aWQgPT4gcGF0Y2gtcGFja2FnZSA9PiBAZGF2aWQvYmFuYW5hXCIsXG4gIFwiaXNOZXN0ZWRcIjogdHJ1ZSxcbiAgXCJuYW1lXCI6IFwiQGRhdmlkL2JhbmFuYVwiLFxuICBcInBhY2thZ2VOYW1lc1wiOiBBcnJheSBbXG4gICAgXCJkYXZpZFwiLFxuICAgIFwicGF0Y2gtcGFja2FnZVwiLFxuICAgIFwiQGRhdmlkL2JhbmFuYVwiLFxuICBdLFxuICBcInBhdGhcIjogXCJub2RlX21vZHVsZXMvZGF2aWQvbm9kZV9tb2R1bGVzL3BhdGNoLXBhY2thZ2Uvbm9kZV9tb2R1bGVzL0BkYXZpZC9iYW5hbmFcIixcbiAgXCJwYXRoU3BlY2lmaWVyXCI6IFwiZGF2aWQvcGF0Y2gtcGFja2FnZS9AZGF2aWQvYmFuYW5hXCIsXG59XG5gLFxuICAgIClcbiAgfSlcbn0pXG5cbmRlc2NyaWJlKFwicGFyc2VOYW1lQW5kVmVyc2lvblwiLCAoKSA9PiB7XG4gIGl0KFwid29ya3MgZm9yIGdvb2QtbG9va2luZyBuYW1lc1wiLCAoKSA9PiB7XG4gICAgZXhwZWN0KHBhcnNlTmFtZUFuZFZlcnNpb24oXCJsb2Rhc2grMi4zLjRcIikpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG5PYmplY3Qge1xuICBcInBhY2thZ2VOYW1lXCI6IFwibG9kYXNoXCIsXG4gIFwidmVyc2lvblwiOiBcIjIuMy40XCIsXG59XG5gKVxuICAgIGV4cGVjdChwYXJzZU5hbWVBbmRWZXJzaW9uKFwicGF0Y2gtcGFja2FnZSsyLjAuMC1hbHBoYS4zXCIpKVxuICAgICAgLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG5PYmplY3Qge1xuICBcInBhY2thZ2VOYW1lXCI6IFwicGF0Y2gtcGFja2FnZVwiLFxuICBcInZlcnNpb25cIjogXCIyLjAuMC1hbHBoYS4zXCIsXG59XG5gKVxuICB9KVxuICBpdChcIndvcmtzIGZvciBzY29wZWQgcGFja2FnZSBuYW1lc1wiLCAoKSA9PiB7XG4gICAgZXhwZWN0KHBhcnNlTmFtZUFuZFZlcnNpb24oXCJAcmVhY3Qtc3ByaW5nK3JhZnorMi4wLjAtYWxwaGEuM1wiKSlcbiAgICAgIC50b01hdGNoSW5saW5lU25hcHNob3QoYFxuT2JqZWN0IHtcbiAgXCJwYWNrYWdlTmFtZVwiOiBcIkByZWFjdC1zcHJpbmcvcmFmelwiLFxuICBcInZlcnNpb25cIjogXCIyLjAuMC1hbHBoYS4zXCIsXG59XG5gKVxuICAgIGV4cGVjdChwYXJzZU5hbWVBbmRWZXJzaW9uKFwiQG1pY3Jvc29mdCthcGktZXh0cmFjdG9yKzIuMi4zXCIpKVxuICAgICAgLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG5PYmplY3Qge1xuICBcInBhY2thZ2VOYW1lXCI6IFwiQG1pY3Jvc29mdC9hcGktZXh0cmFjdG9yXCIsXG4gIFwidmVyc2lvblwiOiBcIjIuMi4zXCIsXG59XG5gKVxuICB9KVxuICBpdChcIndvcmtzIGZvciBvcmRlcmVkIHBhdGNoZXNcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChwYXJzZU5hbWVBbmRWZXJzaW9uKFwicGF0Y2gtcGFja2FnZSsyLjAuMCswMVwiKSlcbiAgICAgIC50b01hdGNoSW5saW5lU25hcHNob3QoYFxuT2JqZWN0IHtcbiAgXCJwYWNrYWdlTmFtZVwiOiBcInBhdGNoLXBhY2thZ2VcIixcbiAgXCJzZXF1ZW5jZU51bWJlclwiOiAxLFxuICBcInZlcnNpb25cIjogXCIyLjAuMFwiLFxufVxuYClcbiAgICBleHBlY3QocGFyc2VOYW1lQW5kVmVyc2lvbihcIkByZWFjdC1zcHJpbmcrcmFmeisyLjAuMC1hbHBoYS4zKzIzXCIpKVxuICAgICAgLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG5PYmplY3Qge1xuICBcInBhY2thZ2VOYW1lXCI6IFwiQHJlYWN0LXNwcmluZy9yYWZ6XCIsXG4gIFwic2VxdWVuY2VOdW1iZXJcIjogMjMsXG4gIFwidmVyc2lvblwiOiBcIjIuMC4wLWFscGhhLjNcIixcbn1cbmApXG4gICAgZXhwZWN0KHBhcnNlTmFtZUFuZFZlcnNpb24oXCJAbWljcm9zb2Z0K2FwaS1leHRyYWN0b3IrMi4wLjArMDAxXCIpKVxuICAgICAgLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG5PYmplY3Qge1xuICBcInBhY2thZ2VOYW1lXCI6IFwiQG1pY3Jvc29mdC9hcGktZXh0cmFjdG9yXCIsXG4gIFwic2VxdWVuY2VOdW1iZXJcIjogMSxcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wLjBcIixcbn1cbmApXG4gIH0pXG5cbiAgaXQoXCJ3b3JrcyBmb3Igb3JkZXJlZCBwYXRjaGVzIHdpdGggbmFtZXNcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChwYXJzZU5hbWVBbmRWZXJzaW9uKFwicGF0Y2gtcGFja2FnZSsyLjAuMCswMjErRml4SW1wb3J0YW50VGhpbmdcIikpXG4gICAgICAudG9NYXRjaElubGluZVNuYXBzaG90KGBcbk9iamVjdCB7XG4gIFwicGFja2FnZU5hbWVcIjogXCJwYXRjaC1wYWNrYWdlXCIsXG4gIFwic2VxdWVuY2VOYW1lXCI6IFwiRml4SW1wb3J0YW50VGhpbmdcIixcbiAgXCJzZXF1ZW5jZU51bWJlclwiOiAyMSxcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wLjBcIixcbn1cbmApXG4gICAgZXhwZWN0KHBhcnNlTmFtZUFuZFZlcnNpb24oXCJAcmVhY3Qtc3ByaW5nK3JhZnorMi4wLjAtYWxwaGEuMyswMDAwMjMrRm9vXCIpKVxuICAgICAgLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG5PYmplY3Qge1xuICBcInBhY2thZ2VOYW1lXCI6IFwiQHJlYWN0LXNwcmluZy9yYWZ6XCIsXG4gIFwic2VxdWVuY2VOYW1lXCI6IFwiRm9vXCIsXG4gIFwic2VxdWVuY2VOdW1iZXJcIjogMjMsXG4gIFwidmVyc2lvblwiOiBcIjIuMC4wLWFscGhhLjNcIixcbn1cbmApXG4gICAgZXhwZWN0KHBhcnNlTmFtZUFuZFZlcnNpb24oXCJAbWljcm9zb2Z0K2FwaS1leHRyYWN0b3IrMi4wLjArMDAxK0JhclwiKSlcbiAgICAgIC50b01hdGNoSW5saW5lU25hcHNob3QoYFxuT2JqZWN0IHtcbiAgXCJwYWNrYWdlTmFtZVwiOiBcIkBtaWNyb3NvZnQvYXBpLWV4dHJhY3RvclwiLFxuICBcInNlcXVlbmNlTmFtZVwiOiBcIkJhclwiLFxuICBcInNlcXVlbmNlTnVtYmVyXCI6IDEsXG4gIFwidmVyc2lvblwiOiBcIjIuMC4wXCIsXG59XG5gKVxuICB9KVxufSlcbiJdfQ== \ No newline at end of file diff --git a/dist/applyPatches.js b/dist/applyPatches.js new file mode 100644 index 00000000..6f56aaf3 --- /dev/null +++ b/dist/applyPatches.js @@ -0,0 +1,414 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.applyPatchesForApp = applyPatchesForApp; +exports.applyPatchesForPackage = applyPatchesForPackage; +exports.applyPatch = applyPatch; +const chalk_1 = __importDefault(require("chalk")); +const fs_1 = require("fs"); +const fs_extra_1 = require("fs-extra"); +const path_1 = require("path"); +const semver_1 = __importDefault(require("semver")); +const hash_1 = require("./hash"); +const makePatch_1 = require("./makePatch"); +const packageIsDevDependency_1 = require("./packageIsDevDependency"); +const apply_1 = require("./patch/apply"); +const read_1 = require("./patch/read"); +const reverse_1 = require("./patch/reverse"); +const patchFs_1 = require("./patchFs"); +const path_2 = require("./path"); +const stateFile_1 = require("./stateFile"); +class PatchApplicationError extends Error { + constructor(msg) { + super(msg); + } +} +function getInstalledPackageVersion({ appPath, path, pathSpecifier, isDevOnly, patchFilename, }) { + const packageDir = (0, path_2.join)(appPath, path); + if (!(0, fs_extra_1.existsSync)(packageDir)) { + if (process.env.NODE_ENV === "production" && isDevOnly) { + return null; + } + let err = `${chalk_1.default.red("Error:")} Patch file found for package ${path_1.posix.basename(pathSpecifier)}` + ` which is not present at ${(0, path_2.relative)(".", packageDir)}`; + if (!isDevOnly && process.env.NODE_ENV === "production") { + err += ` + + If this package is a dev dependency, rename the patch file to + + ${chalk_1.default.bold(patchFilename.replace(".patch", ".dev.patch"))} +`; + } + throw new PatchApplicationError(err); + } + const { version } = require((0, path_2.join)(packageDir, "package.json")); + // normalize version for `npm ci` + const result = semver_1.default.valid(version); + if (result === null) { + throw new PatchApplicationError(`${chalk_1.default.red("Error:")} Version string '${version}' cannot be parsed from ${(0, path_2.join)(packageDir, "package.json")}`); + } + return result; +} +function logPatchApplication(patchDetails) { + const sequenceString = patchDetails.sequenceNumber != null + ? ` (${patchDetails.sequenceNumber}${patchDetails.sequenceName ? " " + patchDetails.sequenceName : ""})` + : ""; + console.log(`${chalk_1.default.bold(patchDetails.pathSpecifier)}@${patchDetails.version}${sequenceString} ${chalk_1.default.green("✔")}`); +} +function applyPatchesForApp({ appPath, reverse, patchDir, shouldExitWithError, shouldExitWithWarning, bestEffort, }) { + const patchesDirectory = (0, path_2.join)(appPath, patchDir); + const groupedPatches = (0, patchFs_1.getGroupedPatches)(patchesDirectory); + if (groupedPatches.numPatchFiles === 0) { + console.log(chalk_1.default.blueBright("No patch files found")); + return; + } + const errors = []; + const warnings = [...groupedPatches.warnings]; + for (const patches of Object.values(groupedPatches.pathSpecifierToPatchFiles)) { + applyPatchesForPackage({ + patches, + appPath, + patchDir, + reverse, + warnings, + errors, + bestEffort, + }); + } + for (const warning of warnings) { + console.log(warning); + } + for (const error of errors) { + console.log(error); + } + const problemsSummary = []; + if (warnings.length) { + problemsSummary.push(chalk_1.default.yellow(`${warnings.length} warning(s)`)); + } + if (errors.length) { + problemsSummary.push(chalk_1.default.red(`${errors.length} error(s)`)); + } + if (problemsSummary.length) { + console.log("---"); + console.log("patch-package finished with", problemsSummary.join(", ") + "."); + } + if (errors.length && shouldExitWithError) { + process.exit(1); + } + if (warnings.length && shouldExitWithWarning) { + process.exit(1); + } + process.exit(0); +} +function applyPatchesForPackage({ patches, appPath, patchDir, reverse, warnings, errors, bestEffort, }) { + const pathSpecifier = patches[0].pathSpecifier; + const state = patches.length > 1 ? (0, stateFile_1.getPatchApplicationState)(patches[0]) : null; + const unappliedPatches = patches.slice(0); + const appliedPatches = []; + // if there are multiple patches to apply, we can't rely on the reverse-patch-dry-run behavior to make this operation + // idempotent, so instead we need to check the state file to see whether we have already applied any of the patches + // todo: once this is battle tested we might want to use the same approach for single patches as well, but it's not biggie since the dry run thing is fast + if (unappliedPatches && state) { + for (let i = 0; i < state.patches.length; i++) { + const patchThatWasApplied = state.patches[i]; + if (!patchThatWasApplied.didApply) { + break; + } + const patchToApply = unappliedPatches[0]; + const currentPatchHash = (0, hash_1.hashFile)((0, path_2.join)(appPath, patchDir, patchToApply.patchFilename)); + if (patchThatWasApplied.patchContentHash === currentPatchHash) { + // this patch was applied we can skip it + appliedPatches.push(unappliedPatches.shift()); + } + else { + console.log(chalk_1.default.red("Error:"), `The patches for ${chalk_1.default.bold(pathSpecifier)} have changed.`, `You should reinstall your node_modules folder to make sure the package is up to date`); + process.exit(1); + } + } + } + if (reverse && state) { + // if we are reversing the patches we need to make the unappliedPatches array + // be the reversed version of the appliedPatches array. + // The applied patches array should then be empty because it is used differently + // when outputting the state file. + unappliedPatches.length = 0; + unappliedPatches.push(...appliedPatches); + unappliedPatches.reverse(); + appliedPatches.length = 0; + } + if (appliedPatches.length) { + // some patches have already been applied + appliedPatches.forEach(logPatchApplication); + } + if (!unappliedPatches.length) { + return; + } + let failedPatch = null; + packageLoop: for (const patchDetails of unappliedPatches) { + try { + const { name, version, path, isDevOnly, patchFilename } = patchDetails; + const installedPackageVersion = getInstalledPackageVersion({ + appPath, + path, + pathSpecifier, + isDevOnly: isDevOnly || + // check for direct-dependents in prod + (process.env.NODE_ENV === "production" && + (0, packageIsDevDependency_1.packageIsDevDependency)({ + appPath, + patchDetails, + })), + patchFilename, + }); + if (!installedPackageVersion) { + // it's ok we're in production mode and this is a dev only package + console.log(`Skipping dev-only ${chalk_1.default.bold(pathSpecifier)}@${version} ${chalk_1.default.blue("✔")}`); + continue; + } + if (applyPatch({ + patchFilePath: (0, path_2.join)(appPath, patchDir, patchFilename), + reverse, + patchDetails, + patchDir, + cwd: process.cwd(), + bestEffort, + })) { + appliedPatches.push(patchDetails); + // yay patch was applied successfully + // print warning if version mismatch + if (installedPackageVersion !== version) { + warnings.push(createVersionMismatchWarning({ + packageName: name, + actualVersion: installedPackageVersion, + originalVersion: version, + pathSpecifier, + path, + })); + } + logPatchApplication(patchDetails); + } + else if (patches.length > 1) { + (0, makePatch_1.logPatchSequenceError)({ patchDetails }); + // in case the package has multiple patches, we need to break out of this inner loop + // because we don't want to apply more patches on top of the broken state + failedPatch = patchDetails; + break packageLoop; + } + else if (installedPackageVersion === version) { + // completely failed to apply patch + // TODO: propagate useful error messages from patch application + errors.push(createBrokenPatchFileError({ + packageName: name, + patchFilename, + pathSpecifier, + path, + })); + break packageLoop; + } + else { + errors.push(createPatchApplicationFailureError({ + packageName: name, + actualVersion: installedPackageVersion, + originalVersion: version, + patchFilename, + path, + pathSpecifier, + })); + // in case the package has multiple patches, we need to break out of this inner loop + // because we don't want to apply more patches on top of the broken state + break packageLoop; + } + } + catch (error) { + if (error instanceof PatchApplicationError) { + errors.push(error.message); + } + else { + errors.push(createUnexpectedError({ + filename: patchDetails.patchFilename, + error: error, + })); + } + // in case the package has multiple patches, we need to break out of this inner loop + // because we don't want to apply more patches on top of the broken state + break packageLoop; + } + } + if (patches.length > 1) { + if (reverse) { + if (!state) { + throw new Error("unexpected state: no state file found while reversing"); + } + // if we removed all the patches that were previously applied we can delete the state file + if (appliedPatches.length === patches.length) { + (0, stateFile_1.clearPatchApplicationState)(patches[0]); + } + else { + // We failed while reversing patches and some are still in the applied state. + // We need to update the state file to reflect that. + // appliedPatches is currently the patches that were successfully reversed, in the order they were reversed + // So we need to find the index of the last reversed patch in the original patches array + // and then remove all the patches after that. Sorry for the confusing code. + const lastReversedPatchIndex = patches.indexOf(appliedPatches[appliedPatches.length - 1]); + if (lastReversedPatchIndex === -1) { + throw new Error("unexpected state: failed to find last reversed patch in original patches array"); + } + (0, stateFile_1.savePatchApplicationState)({ + packageDetails: patches[0], + patches: patches.slice(0, lastReversedPatchIndex).map((patch) => ({ + didApply: true, + patchContentHash: (0, hash_1.hashFile)((0, path_2.join)(appPath, patchDir, patch.patchFilename)), + patchFilename: patch.patchFilename, + })), + isRebasing: false, + }); + } + } + else { + const nextState = appliedPatches.map((patch) => ({ + didApply: true, + patchContentHash: (0, hash_1.hashFile)((0, path_2.join)(appPath, patchDir, patch.patchFilename)), + patchFilename: patch.patchFilename, + })); + if (failedPatch) { + nextState.push({ + didApply: false, + patchContentHash: (0, hash_1.hashFile)((0, path_2.join)(appPath, patchDir, failedPatch.patchFilename)), + patchFilename: failedPatch.patchFilename, + }); + } + (0, stateFile_1.savePatchApplicationState)({ + packageDetails: patches[0], + patches: nextState, + isRebasing: !!failedPatch, + }); + } + if (failedPatch) { + process.exit(1); + } + } +} +function applyPatch({ patchFilePath, reverse, patchDetails, patchDir, cwd, bestEffort, }) { + const patch = (0, read_1.readPatch)({ + patchFilePath, + patchDetails, + patchDir, + }); + const forward = reverse ? (0, reverse_1.reversePatch)(patch) : patch; + try { + if (!bestEffort) { + (0, apply_1.executeEffects)(forward, { dryRun: true, cwd, bestEffort: false }); + } + const errors = bestEffort ? [] : undefined; + (0, apply_1.executeEffects)(forward, { dryRun: false, cwd, bestEffort, errors }); + if (errors === null || errors === void 0 ? void 0 : errors.length) { + console.log("Saving errors to", chalk_1.default.cyan.bold("./patch-package-errors.log")); + (0, fs_1.writeFileSync)("patch-package-errors.log", errors.join("\n\n")); + process.exit(0); + } + } + catch (e) { + try { + const backward = reverse ? patch : (0, reverse_1.reversePatch)(patch); + (0, apply_1.executeEffects)(backward, { + dryRun: true, + cwd, + bestEffort: false, + }); + } + catch (e) { + return false; + } + } + return true; +} +function createVersionMismatchWarning({ packageName, actualVersion, originalVersion, pathSpecifier, path, }) { + return ` +${chalk_1.default.yellow("Warning:")} patch-package detected a patch file version mismatch + + Don't worry! This is probably fine. The patch was still applied + successfully. Here's the deets: + + Patch file created for + + ${packageName}@${chalk_1.default.bold(originalVersion)} + + applied to + + ${packageName}@${chalk_1.default.bold(actualVersion)} + + At path + + ${path} + + This warning is just to give you a heads-up. There is a small chance of + breakage even though the patch was applied successfully. Make sure the package + still behaves like you expect (you wrote tests, right?) and then run + + ${chalk_1.default.bold(`patch-package ${pathSpecifier}`)} + + to update the version in the patch file name and make this warning go away. +`; +} +function createBrokenPatchFileError({ packageName, patchFilename, path, pathSpecifier, }) { + return ` +${chalk_1.default.red.bold("**ERROR**")} ${chalk_1.default.red(`Failed to apply patch for package ${chalk_1.default.bold(packageName)} at path`)} + + ${path} + + This error was caused because patch-package cannot apply the following patch file: + + patches/${patchFilename} + + Try removing node_modules and trying again. If that doesn't work, maybe there was + an accidental change made to the patch file? Try recreating it by manually + editing the appropriate files and running: + + patch-package ${pathSpecifier} + + If that doesn't work, then it's a bug in patch-package, so please submit a bug + report. Thanks! + + https://github.com/ds300/patch-package/issues + +`; +} +function createPatchApplicationFailureError({ packageName, actualVersion, originalVersion, patchFilename, path, pathSpecifier, }) { + return ` +${chalk_1.default.red.bold("**ERROR**")} ${chalk_1.default.red(`Failed to apply patch for package ${chalk_1.default.bold(packageName)} at path`)} + + ${path} + + This error was caused because ${chalk_1.default.bold(packageName)} has changed since you + made the patch file for it. This introduced conflicts with your patch, + just like a merge conflict in Git when separate incompatible changes are + made to the same piece of code. + + Maybe this means your patch file is no longer necessary, in which case + hooray! Just delete it! + + Otherwise, you need to generate a new patch file. + + To generate a new one, just repeat the steps you made to generate the first + one. + + i.e. manually make the appropriate file changes, then run + + patch-package ${pathSpecifier} + + Info: + Patch file: patches/${patchFilename} + Patch was made for version: ${chalk_1.default.green.bold(originalVersion)} + Installed version: ${chalk_1.default.red.bold(actualVersion)} +`; +} +function createUnexpectedError({ filename, error, }) { + return ` +${chalk_1.default.red.bold("**ERROR**")} ${chalk_1.default.red(`Failed to apply patch file ${chalk_1.default.bold(filename)}`)} + +${error.stack} + + `; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHlQYXRjaGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FwcGx5UGF0Y2hlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQTZGQSxnREFxRUM7QUFFRCx3REEwT0M7QUFFRCxnQ0FrREM7QUFsY0Qsa0RBQXlCO0FBQ3pCLDJCQUFrQztBQUNsQyx1Q0FBcUM7QUFDckMsK0JBQTRCO0FBQzVCLG9EQUEyQjtBQUMzQixpQ0FBaUM7QUFDakMsMkNBQW1EO0FBRW5ELHFFQUFpRTtBQUNqRSx5Q0FBOEM7QUFDOUMsdUNBQXdDO0FBQ3hDLDZDQUE4QztBQUM5Qyx1Q0FBNkM7QUFDN0MsaUNBQXVDO0FBQ3ZDLDJDQUtvQjtBQUVwQixNQUFNLHFCQUFzQixTQUFRLEtBQUs7SUFDdkMsWUFBWSxHQUFXO1FBQ3JCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNaLENBQUM7Q0FDRjtBQUVELFNBQVMsMEJBQTBCLENBQUMsRUFDbEMsT0FBTyxFQUNQLElBQUksRUFDSixhQUFhLEVBQ2IsU0FBUyxFQUNULGFBQWEsR0FPZDtJQUNDLE1BQU0sVUFBVSxHQUFHLElBQUEsV0FBSSxFQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUN0QyxJQUFJLENBQUMsSUFBQSxxQkFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDNUIsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsS0FBSyxZQUFZLElBQUksU0FBUyxFQUFFLENBQUM7WUFDdkQsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO1FBRUQsSUFBSSxHQUFHLEdBQ0wsR0FBRyxlQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxpQ0FBaUMsWUFBSyxDQUFDLFFBQVEsQ0FDbkUsYUFBYSxDQUNkLEVBQUUsR0FBRyw0QkFBNEIsSUFBQSxlQUFRLEVBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUE7UUFFL0QsSUFBSSxDQUFDLFNBQVMsSUFBSSxPQUFP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ZUFBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO3lCQUMxQyxlQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7Q0FDckQsQ0FBQTtBQUNELENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUFDLEVBQzdCLFFBQVEsRUFDUixLQUFLLEdBSU47SUFDQyxPQUFPO0VBQ1AsZUFBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksZUFBSyxDQUFDLEdBQUcsQ0FDdEMsOEJBQThCLGVBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FDckQ7O0VBRUQsS0FBSyxDQUFDLEtBQUs7O0dBRVYsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCJcbmltcG9ydCB7IHdyaXRlRmlsZVN5bmMgfSBmcm9tIFwiZnNcIlxuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgeyBwb3NpeCB9IGZyb20gXCJwYXRoXCJcbmltcG9ydCBzZW12ZXIgZnJvbSBcInNlbXZlclwiXG5pbXBvcnQgeyBoYXNoRmlsZSB9IGZyb20gXCIuL2hhc2hcIlxuaW1wb3J0IHsgbG9nUGF0Y2hTZXF1ZW5jZUVycm9yIH0gZnJvbSBcIi4vbWFrZVBhdGNoXCJcbmltcG9ydCB7IFBhY2thZ2VEZXRhaWxzLCBQYXRjaGVkUGFja2FnZURldGFpbHMgfSBmcm9tIFwiLi9QYWNrYWdlRGV0YWlsc1wiXG5pbXBvcnQgeyBwYWNrYWdlSXNEZXZEZXBlbmRlbmN5IH0gZnJvbSBcIi4vcGFja2FnZUlzRGV2RGVwZW5kZW5jeVwiXG5pbXBvcnQgeyBleGVjdXRlRWZmZWN0cyB9IGZyb20gXCIuL3BhdGNoL2FwcGx5XCJcbmltcG9ydCB7IHJlYWRQYXRjaCB9IGZyb20gXCIuL3BhdGNoL3JlYWRcIlxuaW1wb3J0IHsgcmV2ZXJzZVBhdGNoIH0gZnJvbSBcIi4vcGF0Y2gvcmV2ZXJzZVwiXG5pbXBvcnQgeyBnZXRHcm91cGVkUGF0Y2hlcyB9IGZyb20gXCIuL3BhdGNoRnNcIlxuaW1wb3J0IHsgam9pbiwgcmVsYXRpdmUgfSBmcm9tIFwiLi9wYXRoXCJcbmltcG9ydCB7XG4gIGNsZWFyUGF0Y2hBcHBsaWNhdGlvblN0YXRlLFxuICBnZXRQYXRjaEFwcGxpY2F0aW9uU3RhdGUsXG4gIFBhdGNoU3RhdGUsXG4gIHNhdmVQYXRjaEFwcGxpY2F0aW9uU3RhdGUsXG59IGZyb20gXCIuL3N0YXRlRmlsZVwiXG5cbmNsYXNzIFBhdGNoQXBwbGljYXRpb25FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtc2cpXG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0SW5zdGFsbGVkUGFja2FnZVZlcnNpb24oe1xuICBhcHBQYXRoLFxuICBwYXRoLFxuICBwYXRoU3BlY2lmaWVyLFxuICBpc0Rldk9ubHksXG4gIHBhdGNoRmlsZW5hbWUsXG59OiB7XG4gIGFwcFBhdGg6IHN0cmluZ1xuICBwYXRoOiBzdHJpbmdcbiAgcGF0aFNwZWNpZmllcjogc3RyaW5nXG4gIGlzRGV2T25seTogYm9vbGVhblxuICBwYXRjaEZpbGVuYW1lOiBzdHJpbmdcbn0pOiBudWxsIHwgc3RyaW5nIHtcbiAgY29uc3QgcGFja2FnZURpciA9IGpvaW4oYXBwUGF0aCwgcGF0aClcbiAgaWYgKCFleGlzdHNTeW5jKHBhY2thZ2VEaXIpKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiAmJiBpc0Rldk9ubHkpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgbGV0IGVyciA9XG4gICAgICBgJHtjaGFsay5yZWQoXCJFcnJvcjpcIil9IFBhdGNoIGZpbGUgZm91bmQgZm9yIHBhY2thZ2UgJHtwb3NpeC5iYXNlbmFtZShcbiAgICAgICAgcGF0aFNwZWNpZmllcixcbiAgICAgICl9YCArIGAgd2hpY2ggaXMgbm90IHByZXNlbnQgYXQgJHtyZWxhdGl2ZShcIi5cIiwgcGFja2FnZURpcil9YFxuXG4gICAgaWYgKCFpc0Rldk9ubHkgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICBlcnIgKz0gYFxuXG4gIElmIHRoaXMgcGFja2FnZSBpcyBhIGRldiBkZXBlbmRlbmN5LCByZW5hbWUgdGhlIHBhdGNoIGZpbGUgdG9cbiAgXG4gICAgJHtjaGFsay5ib2xkKHBhdGNoRmlsZW5hbWUucmVwbGFjZShcIi5wYXRjaFwiLCBcIi5kZXYucGF0Y2hcIikpfVxuYFxuICAgIH1cbiAgICB0aHJvdyBuZXcgUGF0Y2hBcHBsaWNhdGlvbkVycm9yKGVycilcbiAgfVxuXG4gIGNvbnN0IHsgdmVyc2lvbiB9ID0gcmVxdWlyZShqb2luKHBhY2thZ2VEaXIsIFwicGFja2FnZS5qc29uXCIpKVxuICAvLyBub3JtYWxpemUgdmVyc2lvbiBmb3IgYG5wbSBjaWBcbiAgY29uc3QgcmVzdWx0ID0gc2VtdmVyLnZhbGlkKHZlcnNpb24pXG4gIGlmIChyZXN1bHQgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgUGF0Y2hBcHBsaWNhdGlvbkVycm9yKFxuICAgICAgYCR7Y2hhbGsucmVkKFxuICAgICAgICBcIkVycm9yOlwiLFxuICAgICAgKX0gVmVyc2lvbiBzdHJpbmcgJyR7dmVyc2lvbn0nIGNhbm5vdCBiZSBwYXJzZWQgZnJvbSAke2pvaW4oXG4gICAgICAgIHBhY2thZ2VEaXIsXG4gICAgICAgIFwicGFja2FnZS5qc29uXCIsXG4gICAgICApfWAsXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdCBhcyBzdHJpbmdcbn1cblxuZnVuY3Rpb24gbG9nUGF0Y2hBcHBsaWNhdGlvbihwYXRjaERldGFpbHM6IFBhdGNoZWRQYWNrYWdlRGV0YWlscykge1xuICBjb25zdCBzZXF1ZW5jZVN0cmluZyA9XG4gICAgcGF0Y2hEZXRhaWxzLnNlcXVlbmNlTnVtYmVyICE9IG51bGxcbiAgICAgID8gYCAoJHtwYXRjaERldGFpbHMuc2VxdWVuY2VOdW1iZXJ9JHtcbiAgICAgICAgICBwYXRjaERldGFpbHMuc2VxdWVuY2VOYW1lID8gXCIgXCIgKyBwYXRjaERldGFpbHMuc2VxdWVuY2VOYW1lIDogXCJcIlxuICAgICAgICB9KWBcbiAgICAgIDogXCJcIlxuICBjb25zb2xlLmxvZyhcbiAgICBgJHtjaGFsay5ib2xkKHBhdGNoRGV0YWlscy5wYXRoU3BlY2lmaWVyKX1AJHtcbiAgICAgIHBhdGNoRGV0YWlscy52ZXJzaW9uXG4gICAgfSR7c2VxdWVuY2VTdHJpbmd9ICR7Y2hhbGsuZ3JlZW4oXCLinJRcIil9YCxcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlQYXRjaGVzRm9yQXBwKHtcbiAgYXBwUGF0aCxcbiAgcmV2ZXJzZSxcbiAgcGF0Y2hEaXIsXG4gIHNob3VsZEV4aXRXaXRoRXJyb3IsXG4gIHNob3VsZEV4aXRXaXRoV2FybmluZyxcbiAgYmVzdEVmZm9ydCxcbn06IHtcbiAgYXBwUGF0aDogc3RyaW5nXG4gIHJldmVyc2U6IGJvb2xlYW5cbiAgcGF0Y2hEaXI6IHN0cmluZ1xuICBzaG91bGRFeGl0V2l0aEVycm9yOiBib29sZWFuXG4gIHNob3VsZEV4aXRXaXRoV2FybmluZzogYm9vbGVhblxuICBiZXN0RWZmb3J0OiBib29sZWFuXG59KTogdm9pZCB7XG4gIGNvbnN0IHBhdGNoZXNEaXJlY3RvcnkgPSBqb2luKGFwcFBhdGgsIHBhdGNoRGlyKVxuICBjb25zdCBncm91cGVkUGF0Y2hlcyA9IGdldEdyb3VwZWRQYXRjaGVzKHBhdGNoZXNEaXJlY3RvcnkpXG5cbiAgaWYgKGdyb3VwZWRQYXRjaGVzLm51bVBhdGNoRmlsZXMgPT09IDApIHtcbiAgICBjb25zb2xlLmxvZyhjaGFsay5ibHVlQnJpZ2h0KFwiTm8gcGF0Y2ggZmlsZXMgZm91bmRcIikpXG4gICAgcmV0dXJuXG4gIH1cblxuICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW11cbiAgY29uc3Qgd2FybmluZ3M6IHN0cmluZ1tdID0gWy4uLmdyb3VwZWRQYXRjaGVzLndhcm5pbmdzXVxuXG4gIGZvciAoY29uc3QgcGF0Y2hlcyBvZiBPYmplY3QudmFsdWVzKFxuICAgIGdyb3VwZWRQYXRjaGVzLnBhdGhTcGVjaWZpZXJUb1BhdGNoRmlsZXMsXG4gICkpIHtcbiAgICBhcHBseVBhdGNoZXNGb3JQYWNrYWdlKHtcbiAgICAgIHBhdGNoZXMsXG4gICAgICBhcHBQYXRoLFxuICAgICAgcGF0Y2hEaXIsXG4gICAgICByZXZlcnNlLFxuICAgICAgd2FybmluZ3MsXG4gICAgICBlcnJvcnMsXG4gICAgICBiZXN0RWZmb3J0LFxuICAgIH0pXG4gIH1cblxuICBmb3IgKGNvbnN0IHdhcm5pbmcgb2Ygd2FybmluZ3MpIHtcbiAgICBjb25zb2xlLmxvZyh3YXJuaW5nKVxuICB9XG4gIGZvciAoY29uc3QgZXJyb3Igb2YgZXJyb3JzKSB7XG4gICAgY29uc29sZS5sb2coZXJyb3IpXG4gIH1cblxuICBjb25zdCBwcm9ibGVtc1N1bW1hcnkgPSBbXVxuICBpZiAod2FybmluZ3MubGVuZ3RoKSB7XG4gICAgcHJvYmxlbXNTdW1tYXJ5LnB1c2goY2hhbGsueWVsbG93KGAke3dhcm5pbmdzLmxlbmd0aH0gd2FybmluZyhzKWApKVxuICB9XG4gIGlmIChlcnJvcnMubGVuZ3RoKSB7XG4gICAgcHJvYmxlbXNTdW1tYXJ5LnB1c2goY2hhbGsucmVkKGAke2Vycm9ycy5sZW5ndGh9IGVycm9yKHMpYCkpXG4gIH1cblxuICBpZiAocHJvYmxlbXNTdW1tYXJ5Lmxlbmd0aCkge1xuICAgIGNvbnNvbGUubG9nKFwiLS0tXCIpXG4gICAgY29uc29sZS5sb2coXCJwYXRjaC1wYWNrYWdlIGZpbmlzaGVkIHdpdGhcIiwgcHJvYmxlbXNTdW1tYXJ5LmpvaW4oXCIsIFwiKSArIFwiLlwiKVxuICB9XG5cbiAgaWYgKGVycm9ycy5sZW5ndGggJiYgc2hvdWxkRXhpdFdpdGhFcnJvcikge1xuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9XG5cbiAgaWYgKHdhcm5pbmdzLmxlbmd0aCAmJiBzaG91bGRFeGl0V2l0aFdhcm5pbmcpIHtcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfVxuXG4gIHByb2Nlc3MuZXhpdCgwKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlQYXRjaGVzRm9yUGFja2FnZSh7XG4gIHBhdGNoZXMsXG4gIGFwcFBhdGgsXG4gIHBhdGNoRGlyLFxuICByZXZlcnNlLFxuICB3YXJuaW5ncyxcbiAgZXJyb3JzLFxuICBiZXN0RWZmb3J0LFxufToge1xuICBwYXRjaGVzOiBQYXRjaGVkUGFja2FnZURldGFpbHNbXVxuICBhcHBQYXRoOiBzdHJpbmdcbiAgcGF0Y2hEaXI6IHN0cmluZ1xuICByZXZlcnNlOiBib29sZWFuXG4gIHdhcm5pbmdzOiBzdHJpbmdbXVxuICBlcnJvcnM6IHN0cmluZ1tdXG4gIGJlc3RFZmZvcnQ6IGJvb2xlYW5cbn0pIHtcbiAgY29uc3QgcGF0aFNwZWNpZmllciA9IHBhdGNoZXNbMF0ucGF0aFNwZWNpZmllclxuICBjb25zdCBzdGF0ZSA9IHBhdGNoZXMubGVuZ3RoID4gMSA/IGdldFBhdGNoQXBwbGljYXRpb25TdGF0ZShwYXRjaGVzWzBdKSA6IG51bGxcbiAgY29uc3QgdW5hcHBsaWVkUGF0Y2hlcyA9IHBhdGNoZXMuc2xpY2UoMClcbiAgY29uc3QgYXBwbGllZFBhdGNoZXM6IFBhdGNoZWRQYWNrYWdlRGV0YWlsc1tdID0gW11cbiAgLy8gaWYgdGhlcmUgYXJlIG11bHRpcGxlIHBhdGNoZXMgdG8gYXBwbHksIHdlIGNhbid0IHJlbHkgb24gdGhlIHJldmVyc2UtcGF0Y2gtZHJ5LXJ1biBiZWhhdmlvciB0byBtYWtlIHRoaXMgb3BlcmF0aW9uXG4gIC8vIGlkZW1wb3RlbnQsIHNvIGluc3RlYWQgd2UgbmVlZCB0byBjaGVjayB0aGUgc3RhdGUgZmlsZSB0byBzZWUgd2hldGhlciB3ZSBoYXZlIGFscmVhZHkgYXBwbGllZCBhbnkgb2YgdGhlIHBhdGNoZXNcbiAgLy8gdG9kbzogb25jZSB0aGlzIGlzIGJhdHRsZSB0ZXN0ZWQgd2UgbWlnaHQgd2FudCB0byB1c2UgdGhlIHNhbWUgYXBwcm9hY2ggZm9yIHNpbmdsZSBwYXRjaGVzIGFzIHdlbGwsIGJ1dCBpdCdzIG5vdCBiaWdnaWUgc2luY2UgdGhlIGRyeSBydW4gdGhpbmcgaXMgZmFzdFxuICBpZiAodW5hcHBsaWVkUGF0Y2hlcyAmJiBzdGF0ZSkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RhdGUucGF0Y2hlcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgcGF0Y2hUaGF0V2FzQXBwbGllZCA9IHN0YXRlLnBhdGNoZXNbaV1cbiAgICAgIGlmICghcGF0Y2hUaGF0V2FzQXBwbGllZC5kaWRBcHBseSkge1xuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgY29uc3QgcGF0Y2hUb0FwcGx5ID0gdW5hcHBsaWVkUGF0Y2hlc1swXVxuICAgICAgY29uc3QgY3VycmVudFBhdGNoSGFzaCA9IGhhc2hGaWxlKFxuICAgICAgICBqb2luKGFwcFBhdGgsIHBhdGNoRGlyLCBwYXRjaFRvQXBwbHkucGF0Y2hGaWxlbmFtZSksXG4gICAgICApXG4gICAgICBpZiAocGF0Y2hUaGF0V2FzQXBwbGllZC5wYXRjaENvbnRlbnRIYXNoID09PSBjdXJyZW50UGF0Y2hIYXNoKSB7XG4gICAgICAgIC8vIHRoaXMgcGF0Y2ggd2FzIGFwcGxpZWQgd2UgY2FuIHNraXAgaXRcbiAgICAgICAgYXBwbGllZFBhdGNoZXMucHVzaCh1bmFwcGxpZWRQYXRjaGVzLnNoaWZ0KCkhKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgY2hhbGsucmVkKFwiRXJyb3I6XCIpLFxuICAgICAgICAgIGBUaGUgcGF0Y2hlcyBmb3IgJHtjaGFsay5ib2xkKHBhdGhTcGVjaWZpZXIpfSBoYXZlIGNoYW5nZWQuYCxcbiAgICAgICAgICBgWW91IHNob3VsZCByZWluc3RhbGwgeW91ciBub2RlX21vZHVsZXMgZm9sZGVyIHRvIG1ha2Ugc3VyZSB0aGUgcGFja2FnZSBpcyB1cCB0byBkYXRlYCxcbiAgICAgICAgKVxuICAgICAgICBwcm9jZXNzLmV4aXQoMSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAocmV2ZXJzZSAmJiBzdGF0ZSkge1xuICAgIC8vIGlmIHdlIGFyZSByZXZlcnNpbmcgdGhlIHBhdGNoZXMgd2UgbmVlZCB0byBtYWtlIHRoZSB1bmFwcGxpZWRQYXRjaGVzIGFycmF5XG4gICAgLy8gYmUgdGhlIHJldmVyc2VkIHZlcnNpb24gb2YgdGhlIGFwcGxpZWRQYXRjaGVzIGFycmF5LlxuICAgIC8vIFRoZSBhcHBsaWVkIHBhdGNoZXMgYXJyYXkgc2hvdWxkIHRoZW4gYmUgZW1wdHkgYmVjYXVzZSBpdCBpcyB1c2VkIGRpZmZlcmVudGx5XG4gICAgLy8gd2hlbiBvdXRwdXR0aW5nIHRoZSBzdGF0ZSBmaWxlLlxuICAgIHVuYXBwbGllZFBhdGNoZXMubGVuZ3RoID0gMFxuICAgIHVuYXBwbGllZFBhdGNoZXMucHVzaCguLi5hcHBsaWVkUGF0Y2hlcylcbiAgICB1bmFwcGxpZWRQYXRjaGVzLnJldmVyc2UoKVxuICAgIGFwcGxpZWRQYXRjaGVzLmxlbmd0aCA9IDBcbiAgfVxuICBpZiAoYXBwbGllZFBhdGNoZXMubGVuZ3RoKSB7XG4gICAgLy8gc29tZSBwYXRjaGVzIGhhdmUgYWxyZWFkeSBiZWVuIGFwcGxpZWRcbiAgICBhcHBsaWVkUGF0Y2hlcy5mb3JFYWNoKGxvZ1BhdGNoQXBwbGljYXRpb24pXG4gIH1cbiAgaWYgKCF1bmFwcGxpZWRQYXRjaGVzLmxlbmd0aCkge1xuICAgIHJldHVyblxuICB9XG4gIGxldCBmYWlsZWRQYXRjaDogUGF0Y2hlZFBhY2thZ2VEZXRhaWxzIHwgbnVsbCA9IG51bGxcbiAgcGFja2FnZUxvb3A6IGZvciAoY29uc3QgcGF0Y2hEZXRhaWxzIG9mIHVuYXBwbGllZFBhdGNoZXMpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgeyBuYW1lLCB2ZXJzaW9uLCBwYXRoLCBpc0Rldk9ubHksIHBhdGNoRmlsZW5hbWUgfSA9IHBhdGNoRGV0YWlsc1xuXG4gICAgICBjb25zdCBpbnN0YWxsZWRQYWNrYWdlVmVyc2lvbiA9IGdldEluc3RhbGxlZFBhY2thZ2VWZXJzaW9uKHtcbiAgICAgICAgYXBwUGF0aCxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgcGF0aFNwZWNpZmllcixcbiAgICAgICAgaXNEZXZPbmx5OlxuICAgICAgICAgIGlzRGV2T25seSB8fFxuICAgICAgICAgIC8vIGNoZWNrIGZvciBkaXJlY3QtZGVwZW5kZW50cyBpbiBwcm9kXG4gICAgICAgICAgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiAmJlxuICAgICAgICAgICAgcGFja2FnZUlzRGV2RGVwZW5kZW5jeSh7XG4gICAgICAgICAgICAgIGFwcFBhdGgsXG4gICAgICAgICAgICAgIHBhdGNoRGV0YWlscyxcbiAgICAgICAgICAgIH0pKSxcbiAgICAgICAgcGF0Y2hGaWxlbmFtZSxcbiAgICAgIH0pXG4gICAgICBpZiAoIWluc3RhbGxlZFBhY2thZ2VWZXJzaW9uKSB7XG4gICAgICAgIC8vIGl0J3Mgb2sgd2UncmUgaW4gcHJvZHVjdGlvbiBtb2RlIGFuZCB0aGlzIGlzIGEgZGV2IG9ubHkgcGFja2FnZVxuICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICBgU2tpcHBpbmcgZGV2LW9ubHkgJHtjaGFsay5ib2xkKFxuICAgICAgICAgICAgcGF0aFNwZWNpZmllcixcbiAgICAgICAgICApfUAke3ZlcnNpb259ICR7Y2hhbGsuYmx1ZShcIuKclFwiKX1gLFxuICAgICAgICApXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgYXBwbHlQYXRjaCh7XG4gICAgICAgICAgcGF0Y2hGaWxlUGF0aDogam9pbihhcHBQYXRoLCBwYXRjaERpciwgcGF0Y2hGaWxlbmFtZSkgYXMgc3RyaW5nLFxuICAgICAgICAgIHJldmVyc2UsXG4gICAgICAgICAgcGF0Y2hEZXRhaWxzLFxuICAgICAgICAgIHBhdGNoRGlyLFxuICAgICAgICAgIGN3ZDogcHJvY2Vzcy5jd2QoKSxcbiAgICAgICAgICBiZXN0RWZmb3J0LFxuICAgICAgICB9KVxuICAgICAgKSB7XG4gICAgICAgIGFwcGxpZWRQYXRjaGVzLnB1c2gocGF0Y2hEZXRhaWxzKVxuICAgICAgICAvLyB5YXkgcGF0Y2ggd2FzIGFwcGxpZWQgc3VjY2Vzc2Z1bGx5XG4gICAgICAgIC8vIHByaW50IHdhcm5pbmcgaWYgdmVyc2lvbiBtaXNtYXRjaFxuICAgICAgICBpZiAoaW5zdGFsbGVkUGFja2FnZVZlcnNpb24gIT09IHZlcnNpb24pIHtcbiAgICAgICAgICB3YXJuaW5ncy5wdXNoKFxuICAgICAgICAgICAgY3JlYXRlVmVyc2lvbk1pc21hdGNoV2FybmluZyh7XG4gICAgICAgICAgICAgIHBhY2thZ2VOYW1lOiBuYW1lLFxuICAgICAgICAgICAgICBhY3R1YWxWZXJzaW9uOiBpbnN0YWxsZWRQYWNrYWdlVmVyc2lvbixcbiAgICAgICAgICAgICAgb3JpZ2luYWxWZXJzaW9uOiB2ZXJzaW9uLFxuICAgICAgICAgICAgICBwYXRoU3BlY2lmaWVyLFxuICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIGxvZ1BhdGNoQXBwbGljYXRpb24ocGF0Y2hEZXRhaWxzKVxuICAgICAgfSBlbHNlIGlmIChwYXRjaGVzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgbG9nUGF0Y2hTZXF1ZW5jZUVycm9yKHsgcGF0Y2hEZXRhaWxzIH0pXG4gICAgICAgIC8vIGluIGNhc2UgdGhlIHBhY2thZ2UgaGFzIG11bHRpcGxlIHBhdGNoZXMsIHdlIG5lZWQgdG8gYnJlYWsgb3V0IG9mIHRoaXMgaW5uZXIgbG9vcFxuICAgICAgICAvLyBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8gYXBwbHkgbW9yZSBwYXRjaGVzIG9uIHRvcCBvZiB0aGUgYnJva2VuIHN0YXRlXG4gICAgICAgIGZhaWxlZFBhdGNoID0gcGF0Y2hEZXRhaWxzXG4gICAgICAgIGJyZWFrIHBhY2thZ2VMb29wXG4gICAgICB9IGVsc2UgaWYgKGluc3RhbGxlZFBhY2thZ2VWZXJzaW9uID09PSB2ZXJzaW9uKSB7XG4gICAgICAgIC8vIGNvbXBsZXRlbHkgZmFpbGVkIHRvIGFwcGx5IHBhdGNoXG4gICAgICAgIC8vIFRPRE86IHByb3BhZ2F0ZSB1c2VmdWwgZXJyb3IgbWVzc2FnZXMgZnJvbSBwYXRjaCBhcHBsaWNhdGlvblxuICAgICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgICBjcmVhdGVCcm9rZW5QYXRjaEZpbGVFcnJvcih7XG4gICAgICAgICAgICBwYWNrYWdlTmFtZTogbmFtZSxcbiAgICAgICAgICAgIHBhdGNoRmlsZW5hbWUsXG4gICAgICAgICAgICBwYXRoU3BlY2lmaWVyLFxuICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgICBicmVhayBwYWNrYWdlTG9vcFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICAgY3JlYXRlUGF0Y2hBcHBsaWNhdGlvbkZhaWx1cmVFcnJvcih7XG4gICAgICAgICAgICBwYWNrYWdlTmFtZTogbmFtZSxcbiAgICAgICAgICAgIGFjdHVhbFZlcnNpb246IGluc3RhbGxlZFBhY2thZ2VWZXJzaW9uLFxuICAgICAgICAgICAgb3JpZ2luYWxWZXJzaW9uOiB2ZXJzaW9uLFxuICAgICAgICAgICAgcGF0Y2hGaWxlbmFtZSxcbiAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICBwYXRoU3BlY2lmaWVyLFxuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICAgIC8vIGluIGNhc2UgdGhlIHBhY2thZ2UgaGFzIG11bHRpcGxlIHBhdGNoZXMsIHdlIG5lZWQgdG8gYnJlYWsgb3V0IG9mIHRoaXMgaW5uZXIgbG9vcFxuICAgICAgICAvLyBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8gYXBwbHkgbW9yZSBwYXRjaGVzIG9uIHRvcCBvZiB0aGUgYnJva2VuIHN0YXRlXG4gICAgICAgIGJyZWFrIHBhY2thZ2VMb29wXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIFBhdGNoQXBwbGljYXRpb25FcnJvcikge1xuICAgICAgICBlcnJvcnMucHVzaChlcnJvci5tZXNzYWdlKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICAgY3JlYXRlVW5leHBlY3RlZEVycm9yKHtcbiAgICAgICAgICAgIGZpbGVuYW1lOiBwYXRjaERldGFpbHMucGF0Y2hGaWxlbmFtZSxcbiAgICAgICAgICAgIGVycm9yOiBlcnJvciBhcyBFcnJvcixcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgLy8gaW4gY2FzZSB0aGUgcGFja2FnZSBoYXMgbXVsdGlwbGUgcGF0Y2hlcywgd2UgbmVlZCB0byBicmVhayBvdXQgb2YgdGhpcyBpbm5lciBsb29wXG4gICAgICAvLyBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8gYXBwbHkgbW9yZSBwYXRjaGVzIG9uIHRvcCBvZiB0aGUgYnJva2VuIHN0YXRlXG4gICAgICBicmVhayBwYWNrYWdlTG9vcFxuICAgIH1cbiAgfVxuXG4gIGlmIChwYXRjaGVzLmxlbmd0aCA+IDEpIHtcbiAgICBpZiAocmV2ZXJzZSkge1xuICAgICAgaWYgKCFzdGF0ZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1bmV4cGVjdGVkIHN0YXRlOiBubyBzdGF0ZSBmaWxlIGZvdW5kIHdoaWxlIHJldmVyc2luZ1wiKVxuICAgICAgfVxuICAgICAgLy8gaWYgd2UgcmVtb3ZlZCBhbGwgdGhlIHBhdGNoZXMgdGhhdCB3ZXJlIHByZXZpb3VzbHkgYXBwbGllZCB3ZSBjYW4gZGVsZXRlIHRoZSBzdGF0ZSBmaWxlXG4gICAgICBpZiAoYXBwbGllZFBhdGNoZXMubGVuZ3RoID09PSBwYXRjaGVzLmxlbmd0aCkge1xuICAgICAgICBjbGVhclBhdGNoQXBwbGljYXRpb25TdGF0ZShwYXRjaGVzWzBdKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gV2UgZmFpbGVkIHdoaWxlIHJldmVyc2luZyBwYXRjaGVzIGFuZCBzb21lIGFyZSBzdGlsbCBpbiB0aGUgYXBwbGllZCBzdGF0ZS5cbiAgICAgICAgLy8gV2UgbmVlZCB0byB1cGRhdGUgdGhlIHN0YXRlIGZpbGUgdG8gcmVmbGVjdCB0aGF0LlxuICAgICAgICAvLyBhcHBsaWVkUGF0Y2hlcyBpcyBjdXJyZW50bHkgdGhlIHBhdGNoZXMgdGhhdCB3ZXJlIHN1Y2Nlc3NmdWxseSByZXZlcnNlZCwgaW4gdGhlIG9yZGVyIHRoZXkgd2VyZSByZXZlcnNlZFxuICAgICAgICAvLyBTbyB3ZSBuZWVkIHRvIGZpbmQgdGhlIGluZGV4IG9mIHRoZSBsYXN0IHJldmVyc2VkIHBhdGNoIGluIHRoZSBvcmlnaW5hbCBwYXRjaGVzIGFycmF5XG4gICAgICAgIC8vIGFuZCB0aGVuIHJlbW92ZSBhbGwgdGhlIHBhdGNoZXMgYWZ0ZXIgdGhhdC4gU29ycnkgZm9yIHRoZSBjb25mdXNpbmcgY29kZS5cbiAgICAgICAgY29uc3QgbGFzdFJldmVyc2VkUGF0Y2hJbmRleCA9IHBhdGNoZXMuaW5kZXhPZihcbiAgICAgICAgICBhcHBsaWVkUGF0Y2hlc1thcHBsaWVkUGF0Y2hlcy5sZW5ndGggLSAxXSxcbiAgICAgICAgKVxuICAgICAgICBpZiAobGFzdFJldmVyc2VkUGF0Y2hJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBcInVuZXhwZWN0ZWQgc3RhdGU6IGZhaWxlZCB0byBmaW5kIGxhc3QgcmV2ZXJzZWQgcGF0Y2ggaW4gb3JpZ2luYWwgcGF0Y2hlcyBhcnJheVwiLFxuICAgICAgICAgIClcbiAgICAgICAgfVxuXG4gICAgICAgIHNhdmVQYXRjaEFwcGxpY2F0aW9uU3RhdGUoe1xuICAgICAgICAgIHBhY2thZ2VEZXRhaWxzOiBwYXRjaGVzWzBdLFxuICAgICAgICAgIHBhdGNoZXM6IHBhdGNoZXMuc2xpY2UoMCwgbGFzdFJldmVyc2VkUGF0Y2hJbmRleCkubWFwKChwYXRjaCkgPT4gKHtcbiAgICAgICAgICAgIGRpZEFwcGx5OiB0cnVlLFxuICAgICAgICAgICAgcGF0Y2hDb250ZW50SGFzaDogaGFzaEZpbGUoXG4gICAgICAgICAgICAgIGpvaW4oYXBwUGF0aCwgcGF0Y2hEaXIsIHBhdGNoLnBhdGNoRmlsZW5hbWUpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHBhdGNoRmlsZW5hbWU6IHBhdGNoLnBhdGNoRmlsZW5hbWUsXG4gICAgICAgICAgfSkpLFxuICAgICAgICAgIGlzUmViYXNpbmc6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBuZXh0U3RhdGUgPSBhcHBsaWVkUGF0Y2hlcy5tYXAoXG4gICAgICAgIChwYXRjaCk6IFBhdGNoU3RhdGUgPT4gKHtcbiAgICAgICAgICBkaWRBcHBseTogdHJ1ZSxcbiAgICAgICAgICBwYXRjaENvbnRlbnRIYXNoOiBoYXNoRmlsZShcbiAgICAgICAgICAgIGpvaW4oYXBwUGF0aCwgcGF0Y2hEaXIsIHBhdGNoLnBhdGNoRmlsZW5hbWUpLFxuICAgICAgICAgICksXG4gICAgICAgICAgcGF0Y2hGaWxlbmFtZTogcGF0Y2gucGF0Y2hGaWxlbmFtZSxcbiAgICAgICAgfSksXG4gICAgICApXG5cbiAgICAgIGlmIChmYWlsZWRQYXRjaCkge1xuICAgICAgICBuZXh0U3RhdGUucHVzaCh7XG4gICAgICAgICAgZGlkQXBwbHk6IGZhbHNlLFxuICAgICAgICAgIHBhdGNoQ29udGVudEhhc2g6IGhhc2hGaWxlKFxuICAgICAgICAgICAgam9pbihhcHBQYXRoLCBwYXRjaERpciwgZmFpbGVkUGF0Y2gucGF0Y2hGaWxlbmFtZSksXG4gICAgICAgICAgKSxcbiAgICAgICAgICBwYXRjaEZpbGVuYW1lOiBmYWlsZWRQYXRjaC5wYXRjaEZpbGVuYW1lLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgc2F2ZVBhdGNoQXBwbGljYXRpb25TdGF0ZSh7XG4gICAgICAgIHBhY2thZ2VEZXRhaWxzOiBwYXRjaGVzWzBdLFxuICAgICAgICBwYXRjaGVzOiBuZXh0U3RhdGUsXG4gICAgICAgIGlzUmViYXNpbmc6ICEhZmFpbGVkUGF0Y2gsXG4gICAgICB9KVxuICAgIH1cbiAgICBpZiAoZmFpbGVkUGF0Y2gpIHtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlQYXRjaCh7XG4gIHBhdGNoRmlsZVBhdGgsXG4gIHJldmVyc2UsXG4gIHBhdGNoRGV0YWlscyxcbiAgcGF0Y2hEaXIsXG4gIGN3ZCxcbiAgYmVzdEVmZm9ydCxcbn06IHtcbiAgcGF0Y2hGaWxlUGF0aDogc3RyaW5nXG4gIHJldmVyc2U6IGJvb2xlYW5cbiAgcGF0Y2hEZXRhaWxzOiBQYWNrYWdlRGV0YWlsc1xuICBwYXRjaERpcjogc3RyaW5nXG4gIGN3ZDogc3RyaW5nXG4gIGJlc3RFZmZvcnQ6IGJvb2xlYW5cbn0pOiBib29sZWFuIHtcbiAgY29uc3QgcGF0Y2ggPSByZWFkUGF0Y2goe1xuICAgIHBhdGNoRmlsZVBhdGgsXG4gICAgcGF0Y2hEZXRhaWxzLFxuICAgIHBhdGNoRGlyLFxuICB9KVxuXG4gIGNvbnN0IGZvcndhcmQgPSByZXZlcnNlID8gcmV2ZXJzZVBhdGNoKHBhdGNoKSA6IHBhdGNoXG4gIHRyeSB7XG4gICAgaWYgKCFiZXN0RWZmb3J0KSB7XG4gICAgICBleGVjdXRlRWZmZWN0cyhmb3J3YXJkLCB7IGRyeVJ1bjogdHJ1ZSwgY3dkLCBiZXN0RWZmb3J0OiBmYWxzZSB9KVxuICAgIH1cbiAgICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkID0gYmVzdEVmZm9ydCA/IFtdIDogdW5kZWZpbmVkXG4gICAgZXhlY3V0ZUVmZmVjdHMoZm9yd2FyZCwgeyBkcnlSdW46IGZhbHNlLCBjd2QsIGJlc3RFZmZvcnQsIGVycm9ycyB9KVxuICAgIGlmIChlcnJvcnM/Lmxlbmd0aCkge1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIFwiU2F2aW5nIGVycm9ycyB0b1wiLFxuICAgICAgICBjaGFsay5jeWFuLmJvbGQoXCIuL3BhdGNoLXBhY2thZ2UtZXJyb3JzLmxvZ1wiKSxcbiAgICAgIClcbiAgICAgIHdyaXRlRmlsZVN5bmMoXCJwYXRjaC1wYWNrYWdlLWVycm9ycy5sb2dcIiwgZXJyb3JzLmpvaW4oXCJcXG5cXG5cIikpXG4gICAgICBwcm9jZXNzLmV4aXQoMClcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYmFja3dhcmQgPSByZXZlcnNlID8gcGF0Y2ggOiByZXZlcnNlUGF0Y2gocGF0Y2gpXG4gICAgICBleGVjdXRlRWZmZWN0cyhiYWNrd2FyZCwge1xuICAgICAgICBkcnlSdW46IHRydWUsXG4gICAgICAgIGN3ZCxcbiAgICAgICAgYmVzdEVmZm9ydDogZmFsc2UsXG4gICAgICB9KVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVZlcnNpb25NaXNtYXRjaFdhcm5pbmcoe1xuICBwYWNrYWdlTmFtZSxcbiAgYWN0dWFsVmVyc2lvbixcbiAgb3JpZ2luYWxWZXJzaW9uLFxuICBwYXRoU3BlY2lmaWVyLFxuICBwYXRoLFxufToge1xuICBwYWNrYWdlTmFtZTogc3RyaW5nXG4gIGFjdHVhbFZlcnNpb246IHN0cmluZ1xuICBvcmlnaW5hbFZlcnNpb246IHN0cmluZ1xuICBwYXRoU3BlY2lmaWVyOiBzdHJpbmdcbiAgcGF0aDogc3RyaW5nXG59KSB7XG4gIHJldHVybiBgXG4ke2NoYWxrLnllbGxvdyhcIldhcm5pbmc6XCIpfSBwYXRjaC1wYWNrYWdlIGRldGVjdGVkIGEgcGF0Y2ggZmlsZSB2ZXJzaW9uIG1pc21hdGNoXG5cbiAgRG9uJ3Qgd29ycnkhIFRoaXMgaXMgcHJvYmFibHkgZmluZS4gVGhlIHBhdGNoIHdhcyBzdGlsbCBhcHBsaWVkXG4gIHN1Y2Nlc3NmdWxseS4gSGVyZSdzIHRoZSBkZWV0czpcblxuICBQYXRjaCBmaWxlIGNyZWF0ZWQgZm9yXG5cbiAgICAke3BhY2thZ2VOYW1lfUAke2NoYWxrLmJvbGQob3JpZ2luYWxWZXJzaW9uKX1cblxuICBhcHBsaWVkIHRvXG5cbiAgICAke3BhY2thZ2VOYW1lfUAke2NoYWxrLmJvbGQoYWN0dWFsVmVyc2lvbil9XG4gIFxuICBBdCBwYXRoXG4gIFxuICAgICR7cGF0aH1cblxuICBUaGlzIHdhcm5pbmcgaXMganVzdCB0byBnaXZlIHlvdSBhIGhlYWRzLXVwLiBUaGVyZSBpcyBhIHNtYWxsIGNoYW5jZSBvZlxuICBicmVha2FnZSBldmVuIHRob3VnaCB0aGUgcGF0Y2ggd2FzIGFwcGxpZWQgc3VjY2Vzc2Z1bGx5LiBNYWtlIHN1cmUgdGhlIHBhY2thZ2VcbiAgc3RpbGwgYmVoYXZlcyBsaWtlIHlvdSBleHBlY3QgKHlvdSB3cm90ZSB0ZXN0cywgcmlnaHQ/KSBhbmQgdGhlbiBydW5cblxuICAgICR7Y2hhbGsuYm9sZChgcGF0Y2gtcGFja2FnZSAke3BhdGhTcGVjaWZpZXJ9YCl9XG5cbiAgdG8gdXBkYXRlIHRoZSB2ZXJzaW9uIGluIHRoZSBwYXRjaCBmaWxlIG5hbWUgYW5kIG1ha2UgdGhpcyB3YXJuaW5nIGdvIGF3YXkuXG5gXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUJyb2tlblBhdGNoRmlsZUVycm9yKHtcbiAgcGFja2FnZU5hbWUsXG4gIHBhdGNoRmlsZW5hbWUsXG4gIHBhdGgsXG4gIHBhdGhTcGVjaWZpZXIsXG59OiB7XG4gIHBhY2thZ2VOYW1lOiBzdHJpbmdcbiAgcGF0Y2hGaWxlbmFtZTogc3RyaW5nXG4gIHBhdGg6IHN0cmluZ1xuICBwYXRoU3BlY2lmaWVyOiBzdHJpbmdcbn0pIHtcbiAgcmV0dXJuIGBcbiR7Y2hhbGsucmVkLmJvbGQoXCIqKkVSUk9SKipcIil9ICR7Y2hhbGsucmVkKFxuICAgIGBGYWlsZWQgdG8gYXBwbHkgcGF0Y2ggZm9yIHBhY2thZ2UgJHtjaGFsay5ib2xkKHBhY2thZ2VOYW1lKX0gYXQgcGF0aGAsXG4gICl9XG4gIFxuICAgICR7cGF0aH1cblxuICBUaGlzIGVycm9yIHdhcyBjYXVzZWQgYmVjYXVzZSBwYXRjaC1wYWNrYWdlIGNhbm5vdCBhcHBseSB0aGUgZm9sbG93aW5nIHBhdGNoIGZpbGU6XG5cbiAgICBwYXRjaGVzLyR7cGF0Y2hGaWxlbmFtZX1cblxuICBUcnkgcmVtb3Zpbmcgbm9kZV9tb2R1bGVzIGFuZCB0cnlpbmcgYWdhaW4uIElmIHRoYXQgZG9lc24ndCB3b3JrLCBtYXliZSB0aGVyZSB3YXNcbiAgYW4gYWNjaWRlbnRhbCBjaGFuZ2UgbWFkZSB0byB0aGUgcGF0Y2ggZmlsZT8gVHJ5IHJlY3JlYXRpbmcgaXQgYnkgbWFudWFsbHlcbiAgZWRpdGluZyB0aGUgYXBwcm9wcmlhdGUgZmlsZXMgYW5kIHJ1bm5pbmc6XG4gIFxuICAgIHBhdGNoLXBhY2thZ2UgJHtwYXRoU3BlY2lmaWVyfVxuICBcbiAgSWYgdGhhdCBkb2Vzbid0IHdvcmssIHRoZW4gaXQncyBhIGJ1ZyBpbiBwYXRjaC1wYWNrYWdlLCBzbyBwbGVhc2Ugc3VibWl0IGEgYnVnXG4gIHJlcG9ydC4gVGhhbmtzIVxuXG4gICAgaHR0cHM6Ly9naXRodWIuY29tL2RzMzAwL3BhdGNoLXBhY2thZ2UvaXNzdWVzXG4gICAgXG5gXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVBhdGNoQXBwbGljYXRpb25GYWlsdXJlRXJyb3Ioe1xuICBwYWNrYWdlTmFtZSxcbiAgYWN0dWFsVmVyc2lvbixcbiAgb3JpZ2luYWxWZXJzaW9uLFxuICBwYXRjaEZpbGVuYW1lLFxuICBwYXRoLFxuICBwYXRoU3BlY2lmaWVyLFxufToge1xuICBwYWNrYWdlTmFtZTogc3RyaW5nXG4gIGFjdHVhbFZlcnNpb246IHN0cmluZ1xuICBvcmlnaW5hbFZlcnNpb246IHN0cmluZ1xuICBwYXRjaEZpbGVuYW1lOiBzdHJpbmdcbiAgcGF0aDogc3RyaW5nXG4gIHBhdGhTcGVjaWZpZXI6IHN0cmluZ1xufSkge1xuICByZXR1cm4gYFxuJHtjaGFsay5yZWQuYm9sZChcIioqRVJST1IqKlwiKX0gJHtjaGFsay5yZWQoXG4gICAgYEZhaWxlZCB0byBhcHBseSBwYXRjaCBmb3IgcGFja2FnZSAke2NoYWxrLmJvbGQocGFja2FnZU5hbWUpfSBhdCBwYXRoYCxcbiAgKX1cbiAgXG4gICAgJHtwYXRofVxuXG4gIFRoaXMgZXJyb3Igd2FzIGNhdXNlZCBiZWNhdXNlICR7Y2hhbGsuYm9sZChwYWNrYWdlTmFtZSl9IGhhcyBjaGFuZ2VkIHNpbmNlIHlvdVxuICBtYWRlIHRoZSBwYXRjaCBmaWxlIGZvciBpdC4gVGhpcyBpbnRyb2R1Y2VkIGNvbmZsaWN0cyB3aXRoIHlvdXIgcGF0Y2gsXG4gIGp1c3QgbGlrZSBhIG1lcmdlIGNvbmZsaWN0IGluIEdpdCB3aGVuIHNlcGFyYXRlIGluY29tcGF0aWJsZSBjaGFuZ2VzIGFyZVxuICBtYWRlIHRvIHRoZSBzYW1lIHBpZWNlIG9mIGNvZGUuXG5cbiAgTWF5YmUgdGhpcyBtZWFucyB5b3VyIHBhdGNoIGZpbGUgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeSwgaW4gd2hpY2ggY2FzZVxuICBob29yYXkhIEp1c3QgZGVsZXRlIGl0IVxuXG4gIE90aGVyd2lzZSwgeW91IG5lZWQgdG8gZ2VuZXJhdGUgYSBuZXcgcGF0Y2ggZmlsZS5cblxuICBUbyBnZW5lcmF0ZSBhIG5ldyBvbmUsIGp1c3QgcmVwZWF0IHRoZSBzdGVwcyB5b3UgbWFkZSB0byBnZW5lcmF0ZSB0aGUgZmlyc3RcbiAgb25lLlxuXG4gIGkuZS4gbWFudWFsbHkgbWFrZSB0aGUgYXBwcm9wcmlhdGUgZmlsZSBjaGFuZ2VzLCB0aGVuIHJ1biBcblxuICAgIHBhdGNoLXBhY2thZ2UgJHtwYXRoU3BlY2lmaWVyfVxuXG4gIEluZm86XG4gICAgUGF0Y2ggZmlsZTogcGF0Y2hlcy8ke3BhdGNoRmlsZW5hbWV9XG4gICAgUGF0Y2ggd2FzIG1hZGUgZm9yIHZlcnNpb246ICR7Y2hhbGsuZ3JlZW4uYm9sZChvcmlnaW5hbFZlcnNpb24pfVxuICAgIEluc3RhbGxlZCB2ZXJzaW9uOiAke2NoYWxrLnJlZC5ib2xkKGFjdHVhbFZlcnNpb24pfVxuYFxufVxuXG5mdW5jdGlvbiBjcmVhdGVVbmV4cGVjdGVkRXJyb3Ioe1xuICBmaWxlbmFtZSxcbiAgZXJyb3IsXG59OiB7XG4gIGZpbGVuYW1lOiBzdHJpbmdcbiAgZXJyb3I6IEVycm9yXG59KSB7XG4gIHJldHVybiBgXG4ke2NoYWxrLnJlZC5ib2xkKFwiKipFUlJPUioqXCIpfSAke2NoYWxrLnJlZChcbiAgICBgRmFpbGVkIHRvIGFwcGx5IHBhdGNoIGZpbGUgJHtjaGFsay5ib2xkKGZpbGVuYW1lKX1gLFxuICApfVxuICBcbiR7ZXJyb3Iuc3RhY2t9XG5cbiAgYFxufVxuIl19 \ No newline at end of file diff --git a/dist/assertNever.js b/dist/assertNever.js new file mode 100644 index 00000000..7493cc7a --- /dev/null +++ b/dist/assertNever.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.assertNever = assertNever; +function assertNever(x) { + throw new Error("Unexpected object: " + x); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXJ0TmV2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYXNzZXJ0TmV2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrQ0FFQztBQUZELFNBQWdCLFdBQVcsQ0FBQyxDQUFRO0lBQ2xDLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLEdBQUcsQ0FBQyxDQUFDLENBQUE7QUFDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBhc3NlcnROZXZlcih4OiBuZXZlcik6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IEVycm9yKFwiVW5leHBlY3RlZCBvYmplY3Q6IFwiICsgeClcbn1cbiJdfQ== \ No newline at end of file diff --git a/dist/coerceSemVer.js b/dist/coerceSemVer.js new file mode 100644 index 00000000..9714a70a --- /dev/null +++ b/dist/coerceSemVer.js @@ -0,0 +1,12 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.coerceSemVer = coerceSemVer; +const semver_1 = __importDefault(require("semver")); +function coerceSemVer(version) { + var _a; + return ((_a = semver_1.default.coerce(version)) === null || _a === void 0 ? void 0 : _a.version) || null; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lcmNlU2VtVmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvZXJjZVNlbVZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLG9DQUVDO0FBSkQsb0RBQTJCO0FBRTNCLFNBQWdCLFlBQVksQ0FBQyxPQUFlOztJQUMxQyxPQUFPLENBQUEsTUFBQSxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsMENBQUUsT0FBTyxLQUFJLElBQUksQ0FBQTtBQUNoRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNlbXZlciBmcm9tIFwic2VtdmVyXCJcblxuZXhwb3J0IGZ1bmN0aW9uIGNvZXJjZVNlbVZlcih2ZXJzaW9uOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgcmV0dXJuIHNlbXZlci5jb2VyY2UodmVyc2lvbik/LnZlcnNpb24gfHwgbnVsbFxufVxuIl19 \ No newline at end of file diff --git a/dist/createIssue.js b/dist/createIssue.js new file mode 100644 index 00000000..d2976ff1 --- /dev/null +++ b/dist/createIssue.js @@ -0,0 +1,115 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getPackageVCSDetails = getPackageVCSDetails; +exports.shouldRecommendIssue = shouldRecommendIssue; +exports.maybePrintIssueCreationPrompt = maybePrintIssueCreationPrompt; +exports.openIssueCreationLink = openIssueCreationLink; +const chalk_1 = __importDefault(require("chalk")); +const open_1 = __importDefault(require("open")); +const querystring_1 = require("querystring"); +const path_1 = require("./path"); +const repoSpecifier = /^([\w.-]+)\/([\w.-]+)$/; +const githubURL = /github.com(:|\/)([\w.-]+\/[\w.-]+?)(.git|\/.*)?$/; +function parseRepoString(repository) { + if (repository.startsWith("github:")) { + repository = repository.replace(/^github:/, ""); + } + const urlMatch = repository.match(githubURL); + if (urlMatch) { + repository = urlMatch[2]; + } + const specMatch = repository.match(repoSpecifier); + if (!specMatch) { + return null; + } + const [, org, repo] = specMatch; + return { org, repo, provider: "GitHub" }; +} +function getPackageVCSDetails(packageDetails) { + const repository = require((0, path_1.resolve)((0, path_1.join)(packageDetails.path, "package.json"))) + .repository; + if (!repository) { + return null; + } + if (typeof repository === "string") { + return parseRepoString(repository); + } + else if (typeof repository === "object" && + typeof repository.url === "string") { + return parseRepoString(repository.url); + } +} +function createIssueUrl({ vcs, packageDetails, packageVersion, diff, }) { + return `https://github.com/${vcs === null || vcs === void 0 ? void 0 : vcs.org}/${vcs === null || vcs === void 0 ? void 0 : vcs.repo}/issues/new?${(0, querystring_1.stringify)({ + title: "", + body: `Hi! 👋 + +Firstly, thanks for your work on this project! 🙂 + +Today I used [patch-package](https://github.com/ds300/patch-package) to patch \`${packageDetails.name}@${packageVersion}\` for the project I'm working on. + + + +Here is the diff that solved my problem: + +\`\`\`diff +${diff} +\`\`\` + +This issue body was [partially generated by patch-package](https://github.com/ds300/patch-package/issues/296). +`, + })}`; +} +function shouldRecommendIssue(vcsDetails) { + if (!vcsDetails) { + return true; + } + const { repo, org } = vcsDetails; + if (repo === "DefinitelyTyped" && org === "DefinitelyTyped") { + return false; + } + return true; +} +function maybePrintIssueCreationPrompt(vcs, packageDetails, packageManager) { + if (vcs) { + console.log(`💡 ${chalk_1.default.bold(packageDetails.name)} is on ${vcs.provider}! To draft an issue based on your patch run + + ${packageManager === "yarn" ? "yarn" : "npx"} patch-package ${packageDetails.pathSpecifier} --create-issue +`); + } +} +function openIssueCreationLink({ packageDetails, patchFileContents, packageVersion, patchPath, }) { + const vcs = getPackageVCSDetails(packageDetails); + if (!vcs) { + console.log(`Error: Couldn't find VCS details for ${packageDetails.pathSpecifier}`); + process.exit(1); + } + // trim off trailing newline since we add an extra one in the markdown block + if (patchFileContents.endsWith("\n")) { + patchFileContents = patchFileContents.slice(0, -1); + } + let issueUrl = createIssueUrl({ + vcs, + packageDetails, + packageVersion, + diff: patchFileContents, + }); + const urlExceedsLimit = patchFileContents.length > 1950; + if (urlExceedsLimit) { + const diffMessage = ``; + console.log(`📋 Copy the contents in [ ${patchPath} ] and paste it in the new issue's diff section.`); + issueUrl = createIssueUrl({ + vcs, + packageDetails, + packageVersion, + diff: diffMessage, + }); + } + (0, open_1.default)(issueUrl); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlSXNzdWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY3JlYXRlSXNzdWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFzQ0Esb0RBZUM7QUFrQ0Qsb0RBWUM7QUFFRCxzRUFlQztBQUVELHNEQWlEQztBQXZLRCxrREFBeUI7QUFDekIsZ0RBQXVCO0FBQ3ZCLDZDQUF1QztBQUd2QyxpQ0FBc0M7QUFFdEMsTUFBTSxhQUFhLEdBQUcsd0JBQXdCLENBQUE7QUFDOUMsTUFBTSxTQUFTLEdBQUcsa0RBQWtELENBQUE7QUFXcEUsU0FBUyxlQUFlLENBQUMsVUFBa0I7SUFDekMsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDckMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ2pELENBQUM7SUFDRCxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQzVDLElBQUksUUFBUSxFQUFFLENBQUM7UUFDYixVQUFVLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzFCLENBQUM7SUFFRCxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBRWpELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNmLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUNELE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUE7SUFFL0IsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFBO0FBQzFDLENBQUM7QUFFRCxTQUFnQixvQkFBb0IsQ0FBQyxjQUE4QjtJQUNqRSxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBQSxjQUFPLEVBQUMsSUFBQSxXQUFJLEVBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDO1NBQzNFLFVBQWtELENBQUE7SUFFckQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUNELElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDbkMsT0FBTyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDcEMsQ0FBQztTQUFNLElBQ0wsT0FBTyxVQUFVLEtBQUssUUFBUTtRQUM5QixPQUFPLFVBQVUsQ0FBQyxHQUFHLEtBQUssUUFBUSxFQUNsQyxDQUFDO1FBQ0QsT0FBTyxlQUFlLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3hDLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsRUFDdEIsR0FBRyxFQUNILGNBQWMsRUFDZCxjQUFjLEVBQ2QsSUFBSSxHQU1MO0lBQ0MsT0FBTyxzQkFBc0IsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLEdBQUcsSUFBSSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsSUFBSSxlQUFlLElBQUEsdUJBQVMsRUFBQztRQUN6RSxLQUFLLEVBQUUsRUFBRTtRQUNULElBQUksRUFBRTs7OztrRkFJd0UsY0FBYyxDQUFDLElBQUksSUFBSSxjQUFjOzs7Ozs7O0VBT3JILElBQUk7Ozs7Q0FJTDtLQUNFLENBQUMsRUFBRSxDQUFBO0FBQ04sQ0FBQztBQUVELFNBQWdCLG9CQUFvQixDQUNsQyxVQUFtRDtJQUVuRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEIsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxVQUFVLENBQUE7SUFDaEMsSUFBSSxJQUFJLEtBQUssaUJBQWlCLElBQUksR0FBRyxLQUFLLGlCQUFpQixFQUFFLENBQUM7UUFDNUQsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUE7QUFDYixDQUFDO0FBRUQsU0FBZ0IsNkJBQTZCLENBQzNDLEdBQTRDLEVBQzVDLGNBQThCLEVBQzlCLGNBQThCO0lBRTlCLElBQUksR0FBRyxFQUFFLENBQUM7UUFDUixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sZUFBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQy9DLEdBQUcsQ0FBQyxRQUNOOztNQUVFLGNBQWMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxrQkFDMUMsY0FBYyxDQUFDLGFBQ2pCO0NBQ0gsQ0FBQyxDQUFBO0lBQ0EsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFnQixxQkFBcUIsQ0FBQyxFQUNwQyxjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxTQUFTLEdBTVY7SUFDQyxNQUFNLEdBQUcsR0FBRyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUVoRCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDVCxPQUFPLENBQUMsR0FBRyxDQUNULHdDQUF3QyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQ3ZFLENBQUE7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pCLENBQUM7SUFFRCw0RUFBNEU7SUFDNUUsSUFBSSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNyQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDcEQsQ0FBQztJQUVELElBQUksUUFBUSxHQUFHLGNBQWMsQ0FBQztRQUM1QixHQUFHO1FBQ0gsY0FBYztRQUNkLGNBQWM7UUFDZCxJQUFJLEVBQUUsaUJBQWlCO0tBQ3hCLENBQUMsQ0FBQTtJQUVGLE1BQU0sZUFBZSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUE7SUFFdkQsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNwQixNQUFNLFdBQVcsR0FBRyxzRUFBc0UsU0FBUzthQUNoRyxLQUFLLENBQUMsR0FBRyxDQUFDO2FBQ1YsR0FBRyxFQUFFLGlCQUFpQixDQUFBO1FBQ3pCLE9BQU8sQ0FBQyxHQUFHLENBQ1QsNkJBQTZCLFNBQVMsa0RBQWtELENBQ3pGLENBQUE7UUFDRCxRQUFRLEdBQUcsY0FBYyxDQUFDO1lBQ3hCLEdBQUc7WUFDSCxjQUFjO1lBQ2QsY0FBYztZQUNkLElBQUksRUFBRSxXQUFXO1NBQ2xCLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRCxJQUFBLGNBQUksRUFBQyxRQUFRLENBQUMsQ0FBQTtBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNoYWxrIGZyb20gXCJjaGFsa1wiXG5pbXBvcnQgb3BlbiBmcm9tIFwib3BlblwiXG5pbXBvcnQgeyBzdHJpbmdpZnkgfSBmcm9tIFwicXVlcnlzdHJpbmdcIlxuaW1wb3J0IHsgUGFja2FnZU1hbmFnZXIgfSBmcm9tIFwiLi9kZXRlY3RQYWNrYWdlTWFuYWdlclwiXG5pbXBvcnQgeyBQYWNrYWdlRGV0YWlscyB9IGZyb20gXCIuL1BhY2thZ2VEZXRhaWxzXCJcbmltcG9ydCB7IGpvaW4sIHJlc29sdmUgfSBmcm9tIFwiLi9wYXRoXCJcblxuY29uc3QgcmVwb1NwZWNpZmllciA9IC9eKFtcXHcuLV0rKVxcLyhbXFx3Li1dKykkL1xuY29uc3QgZ2l0aHViVVJMID0gL2dpdGh1Yi5jb20oOnxcXC8pKFtcXHcuLV0rXFwvW1xcdy4tXSs/KSguZ2l0fFxcLy4qKT8kL1xuXG50eXBlIFZDUyA9XG4gIHwge1xuICAgICAgcmVwbzogc3RyaW5nXG4gICAgICBvcmc6IHN0cmluZ1xuICAgICAgcHJvdmlkZXI6IFwiR2l0SHViXCJcbiAgICB9XG4gIHwgbnVsbFxuICB8IHVuZGVmaW5lZFxuXG5mdW5jdGlvbiBwYXJzZVJlcG9TdHJpbmcocmVwb3NpdG9yeTogc3RyaW5nKTogVkNTIHtcbiAgaWYgKHJlcG9zaXRvcnkuc3RhcnRzV2l0aChcImdpdGh1YjpcIikpIHtcbiAgICByZXBvc2l0b3J5ID0gcmVwb3NpdG9yeS5yZXBsYWNlKC9eZ2l0aHViOi8sIFwiXCIpXG4gIH1cbiAgY29uc3QgdXJsTWF0Y2ggPSByZXBvc2l0b3J5Lm1hdGNoKGdpdGh1YlVSTClcbiAgaWYgKHVybE1hdGNoKSB7XG4gICAgcmVwb3NpdG9yeSA9IHVybE1hdGNoWzJdXG4gIH1cblxuICBjb25zdCBzcGVjTWF0Y2ggPSByZXBvc2l0b3J5Lm1hdGNoKHJlcG9TcGVjaWZpZXIpXG5cbiAgaWYgKCFzcGVjTWF0Y2gpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IFssIG9yZywgcmVwb10gPSBzcGVjTWF0Y2hcblxuICByZXR1cm4geyBvcmcsIHJlcG8sIHByb3ZpZGVyOiBcIkdpdEh1YlwiIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBhY2thZ2VWQ1NEZXRhaWxzKHBhY2thZ2VEZXRhaWxzOiBQYWNrYWdlRGV0YWlscyk6IFZDUyB7XG4gIGNvbnN0IHJlcG9zaXRvcnkgPSByZXF1aXJlKHJlc29sdmUoam9pbihwYWNrYWdlRGV0YWlscy5wYXRoLCBcInBhY2thZ2UuanNvblwiKSkpXG4gICAgLnJlcG9zaXRvcnkgYXMgdW5kZWZpbmVkIHwgc3RyaW5nIHwgeyB1cmw6IHN0cmluZyB9XG5cbiAgaWYgKCFyZXBvc2l0b3J5KSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBpZiAodHlwZW9mIHJlcG9zaXRvcnkgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gcGFyc2VSZXBvU3RyaW5nKHJlcG9zaXRvcnkpXG4gIH0gZWxzZSBpZiAoXG4gICAgdHlwZW9mIHJlcG9zaXRvcnkgPT09IFwib2JqZWN0XCIgJiZcbiAgICB0eXBlb2YgcmVwb3NpdG9yeS51cmwgPT09IFwic3RyaW5nXCJcbiAgKSB7XG4gICAgcmV0dXJuIHBhcnNlUmVwb1N0cmluZyhyZXBvc2l0b3J5LnVybClcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVJc3N1ZVVybCh7XG4gIHZjcyxcbiAgcGFja2FnZURldGFpbHMsXG4gIHBhY2thZ2VWZXJzaW9uLFxuICBkaWZmLFxufToge1xuICB2Y3M6IFZDU1xuICBwYWNrYWdlRGV0YWlsczogUGFja2FnZURldGFpbHNcbiAgcGFja2FnZVZlcnNpb246IHN0cmluZ1xuICBkaWZmOiBzdHJpbmdcbn0pOiBzdHJpbmcge1xuICByZXR1cm4gYGh0dHBzOi8vZ2l0aHViLmNvbS8ke3Zjcz8ub3JnfS8ke3Zjcz8ucmVwb30vaXNzdWVzL25ldz8ke3N0cmluZ2lmeSh7XG4gICAgdGl0bGU6IFwiXCIsXG4gICAgYm9keTogYEhpISDwn5GLIFxuICAgICAgXG5GaXJzdGx5LCB0aGFua3MgZm9yIHlvdXIgd29yayBvbiB0aGlzIHByb2plY3QhIPCfmYJcblxuVG9kYXkgSSB1c2VkIFtwYXRjaC1wYWNrYWdlXShodHRwczovL2dpdGh1Yi5jb20vZHMzMDAvcGF0Y2gtcGFja2FnZSkgdG8gcGF0Y2ggXFxgJHtwYWNrYWdlRGV0YWlscy5uYW1lfUAke3BhY2thZ2VWZXJzaW9ufVxcYCBmb3IgdGhlIHByb2plY3QgSSdtIHdvcmtpbmcgb24uXG5cbjwhLS0g8J+Uuu+4j/CflLrvuI/wn5S677iPIFBMRUFTRSBSRVBMQUNFIFRISVMgQkxPQ0sgd2l0aCBhIGRlc2NyaXB0aW9uIG9mIHlvdXIgcHJvYmxlbSwgYW5kIGFueSBvdGhlciByZWxldmFudCBjb250ZXh0IPCflLrvuI/wn5S677iP8J+Uuu+4jyAtLT5cblxuSGVyZSBpcyB0aGUgZGlmZiB0aGF0IHNvbHZlZCBteSBwcm9ibGVtOlxuXG5cXGBcXGBcXGBkaWZmXG4ke2RpZmZ9XG5cXGBcXGBcXGBcblxuPGVtPlRoaXMgaXNzdWUgYm9keSB3YXMgW3BhcnRpYWxseSBnZW5lcmF0ZWQgYnkgcGF0Y2gtcGFja2FnZV0oaHR0cHM6Ly9naXRodWIuY29tL2RzMzAwL3BhdGNoLXBhY2thZ2UvaXNzdWVzLzI5NikuPC9lbT5cbmAsXG4gIH0pfWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZFJlY29tbWVuZElzc3VlKFxuICB2Y3NEZXRhaWxzOiBSZXR1cm5UeXBlPHR5cGVvZiBnZXRQYWNrYWdlVkNTRGV0YWlscz4sXG4pIHtcbiAgaWYgKCF2Y3NEZXRhaWxzKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGNvbnN0IHsgcmVwbywgb3JnIH0gPSB2Y3NEZXRhaWxzXG4gIGlmIChyZXBvID09PSBcIkRlZmluaXRlbHlUeXBlZFwiICYmIG9yZyA9PT0gXCJEZWZpbml0ZWx5VHlwZWRcIikge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXliZVByaW50SXNzdWVDcmVhdGlvblByb21wdChcbiAgdmNzOiBSZXR1cm5UeXBlPHR5cGVvZiBnZXRQYWNrYWdlVkNTRGV0YWlscz4sXG4gIHBhY2thZ2VEZXRhaWxzOiBQYWNrYWdlRGV0YWlscyxcbiAgcGFja2FnZU1hbmFnZXI6IFBhY2thZ2VNYW5hZ2VyLFxuKSB7XG4gIGlmICh2Y3MpIHtcbiAgICBjb25zb2xlLmxvZyhg8J+SoSAke2NoYWxrLmJvbGQocGFja2FnZURldGFpbHMubmFtZSl9IGlzIG9uICR7XG4gICAgICB2Y3MucHJvdmlkZXJcbiAgICB9ISBUbyBkcmFmdCBhbiBpc3N1ZSBiYXNlZCBvbiB5b3VyIHBhdGNoIHJ1blxuXG4gICAgJHtwYWNrYWdlTWFuYWdlciA9PT0gXCJ5YXJuXCIgPyBcInlhcm5cIiA6IFwibnB4XCJ9IHBhdGNoLXBhY2thZ2UgJHtcbiAgICAgIHBhY2thZ2VEZXRhaWxzLnBhdGhTcGVjaWZpZXJcbiAgICB9IC0tY3JlYXRlLWlzc3VlXG5gKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvcGVuSXNzdWVDcmVhdGlvbkxpbmsoe1xuICBwYWNrYWdlRGV0YWlscyxcbiAgcGF0Y2hGaWxlQ29udGVudHMsXG4gIHBhY2thZ2VWZXJzaW9uLFxuICBwYXRjaFBhdGgsXG59OiB7XG4gIHBhY2thZ2VEZXRhaWxzOiBQYWNrYWdlRGV0YWlsc1xuICBwYXRjaEZpbGVDb250ZW50czogc3RyaW5nXG4gIHBhY2thZ2VWZXJzaW9uOiBzdHJpbmdcbiAgcGF0Y2hQYXRoOiBzdHJpbmdcbn0pIHtcbiAgY29uc3QgdmNzID0gZ2V0UGFja2FnZVZDU0RldGFpbHMocGFja2FnZURldGFpbHMpXG5cbiAgaWYgKCF2Y3MpIHtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGBFcnJvcjogQ291bGRuJ3QgZmluZCBWQ1MgZGV0YWlscyBmb3IgJHtwYWNrYWdlRGV0YWlscy5wYXRoU3BlY2lmaWVyfWAsXG4gICAgKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9XG5cbiAgLy8gdHJpbSBvZmYgdHJhaWxpbmcgbmV3bGluZSBzaW5jZSB3ZSBhZGQgYW4gZXh0cmEgb25lIGluIHRoZSBtYXJrZG93biBibG9ja1xuICBpZiAocGF0Y2hGaWxlQ29udGVudHMuZW5kc1dpdGgoXCJcXG5cIikpIHtcbiAgICBwYXRjaEZpbGVDb250ZW50cyA9IHBhdGNoRmlsZUNvbnRlbnRzLnNsaWNlKDAsIC0xKVxuICB9XG5cbiAgbGV0IGlzc3VlVXJsID0gY3JlYXRlSXNzdWVVcmwoe1xuICAgIHZjcyxcbiAgICBwYWNrYWdlRGV0YWlscyxcbiAgICBwYWNrYWdlVmVyc2lvbixcbiAgICBkaWZmOiBwYXRjaEZpbGVDb250ZW50cyxcbiAgfSlcblxuICBjb25zdCB1cmxFeGNlZWRzTGltaXQgPSBwYXRjaEZpbGVDb250ZW50cy5sZW5ndGggPiAxOTUwXG5cbiAgaWYgKHVybEV4Y2VlZHNMaW1pdCkge1xuICAgIGNvbnN0IGRpZmZNZXNzYWdlID0gYDwhLS0g8J+Uuu+4j/CflLrvuI/wn5S677iPIFBMRUFTRSBSRVBMQUNFIFRISVMgQkxPQ0sgd2l0aCB0aGUgZGlmZiBjb250ZW50cyBvZiAke3BhdGNoUGF0aFxuICAgICAgLnNwbGl0KFwiL1wiKVxuICAgICAgLnBvcCgpfS4g8J+Uuu+4j/CflLrvuI/wn5S677iPIC0tPmBcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGDwn5OLIENvcHkgdGhlIGNvbnRlbnRzIGluIFsgJHtwYXRjaFBhdGh9IF0gYW5kIHBhc3RlIGl0IGluIHRoZSBuZXcgaXNzdWUncyBkaWZmIHNlY3Rpb24uYCxcbiAgICApXG4gICAgaXNzdWVVcmwgPSBjcmVhdGVJc3N1ZVVybCh7XG4gICAgICB2Y3MsXG4gICAgICBwYWNrYWdlRGV0YWlscyxcbiAgICAgIHBhY2thZ2VWZXJzaW9uLFxuICAgICAgZGlmZjogZGlmZk1lc3NhZ2UsXG4gICAgfSlcbiAgfVxuICBvcGVuKGlzc3VlVXJsKVxufVxuIl19 \ No newline at end of file diff --git a/dist/createIssue.test.js b/dist/createIssue.test.js new file mode 100644 index 00000000..51667f0c --- /dev/null +++ b/dist/createIssue.test.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const createIssue_1 = require("./createIssue"); +describe(createIssue_1.shouldRecommendIssue, () => { + it("Allows most repos", () => { + const eigen = (0, createIssue_1.shouldRecommendIssue)({ + org: "artsy", + repo: "eigen", + provider: "GitHub", + }); + expect(eigen).toBeTruthy(); + const typescript = (0, createIssue_1.shouldRecommendIssue)({ + org: "Microsoft", + repo: "TypeScript", + provider: "GitHub", + }); + expect(typescript).toBeTruthy(); + }); + it("does not recommend DefinitelyTyped", () => { + const typescript = (0, createIssue_1.shouldRecommendIssue)({ + org: "DefinitelyTyped", + repo: "DefinitelyTyped", + provider: "GitHub", + }); + expect(typescript).toBeFalsy(); + }); +}); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlSXNzdWUudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jcmVhdGVJc3N1ZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0NBQW9EO0FBRXBELFFBQVEsQ0FBQyxrQ0FBb0IsRUFBRSxHQUFHLEVBQUU7SUFDbEMsRUFBRSxDQUFDLG1CQUFtQixFQUFFLEdBQUcsRUFBRTtRQUMzQixNQUFNLEtBQUssR0FBRyxJQUFBLGtDQUFvQixFQUFDO1lBQ2pDLEdBQUcsRUFBRSxPQUFPO1lBQ1osSUFBSSxFQUFFLE9BQU87WUFDYixRQUFRLEVBQUUsUUFBUTtTQUNuQixDQUFDLENBQUE7UUFDRixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUE7UUFFMUIsTUFBTSxVQUFVLEdBQUcsSUFBQSxrQ0FBb0IsRUFBQztZQUN0QyxHQUFHLEVBQUUsV0FBVztZQUNoQixJQUFJLEVBQUUsWUFBWTtZQUNsQixRQUFRLEVBQUUsUUFBUTtTQUNuQixDQUFDLENBQUE7UUFDRixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUE7SUFDakMsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsb0NBQW9DLEVBQUUsR0FBRyxFQUFFO1FBQzVDLE1BQU0sVUFBVSxHQUFHLElBQUEsa0NBQW9CLEVBQUM7WUFDdEMsR0FBRyxFQUFFLGlCQUFpQjtZQUN0QixJQUFJLEVBQUUsaUJBQWlCO1lBQ3ZCLFFBQVEsRUFBRSxRQUFRO1NBQ25CLENBQUMsQ0FBQTtRQUNGLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQTtJQUNoQyxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2hvdWxkUmVjb21tZW5kSXNzdWUgfSBmcm9tIFwiLi9jcmVhdGVJc3N1ZVwiXG5cbmRlc2NyaWJlKHNob3VsZFJlY29tbWVuZElzc3VlLCAoKSA9PiB7XG4gIGl0KFwiQWxsb3dzIG1vc3QgcmVwb3NcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGVpZ2VuID0gc2hvdWxkUmVjb21tZW5kSXNzdWUoe1xuICAgICAgb3JnOiBcImFydHN5XCIsXG4gICAgICByZXBvOiBcImVpZ2VuXCIsXG4gICAgICBwcm92aWRlcjogXCJHaXRIdWJcIixcbiAgICB9KVxuICAgIGV4cGVjdChlaWdlbikudG9CZVRydXRoeSgpXG5cbiAgICBjb25zdCB0eXBlc2NyaXB0ID0gc2hvdWxkUmVjb21tZW5kSXNzdWUoe1xuICAgICAgb3JnOiBcIk1pY3Jvc29mdFwiLFxuICAgICAgcmVwbzogXCJUeXBlU2NyaXB0XCIsXG4gICAgICBwcm92aWRlcjogXCJHaXRIdWJcIixcbiAgICB9KVxuICAgIGV4cGVjdCh0eXBlc2NyaXB0KS50b0JlVHJ1dGh5KClcbiAgfSlcblxuICBpdChcImRvZXMgbm90IHJlY29tbWVuZCBEZWZpbml0ZWx5VHlwZWRcIiwgKCkgPT4ge1xuICAgIGNvbnN0IHR5cGVzY3JpcHQgPSBzaG91bGRSZWNvbW1lbmRJc3N1ZSh7XG4gICAgICBvcmc6IFwiRGVmaW5pdGVseVR5cGVkXCIsXG4gICAgICByZXBvOiBcIkRlZmluaXRlbHlUeXBlZFwiLFxuICAgICAgcHJvdmlkZXI6IFwiR2l0SHViXCIsXG4gICAgfSlcbiAgICBleHBlY3QodHlwZXNjcmlwdCkudG9CZUZhbHN5KClcbiAgfSlcbn0pXG4iXX0= \ No newline at end of file diff --git a/dist/detectPackageManager.js b/dist/detectPackageManager.js new file mode 100644 index 00000000..5f871d0b --- /dev/null +++ b/dist/detectPackageManager.js @@ -0,0 +1,65 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.detectPackageManager = void 0; +const fs_extra_1 = __importDefault(require("fs-extra")); +const path_1 = require("./path"); +const chalk_1 = __importDefault(require("chalk")); +const process_1 = __importDefault(require("process")); +const find_yarn_workspace_root_1 = __importDefault(require("find-yarn-workspace-root")); +function printNoYarnLockfileError() { + console.log(` +${chalk_1.default.red.bold("**ERROR**")} ${chalk_1.default.red("The --use-yarn option was specified but there is no yarn.lock file")} +`); +} +function printNoLockfilesError() { + console.log(` +${chalk_1.default.red.bold("**ERROR**")} ${chalk_1.default.red("No package-lock.json, npm-shrinkwrap.json, yarn.lock, or pnpm-lock.yaml file.\n\nYou must use either npm@>=5, yarn, pnpm, or npm-shrinkwrap to manage this project's dependencies.")} +`); +} +function printSelectingDefaultMessage() { + console.info(`${chalk_1.default.bold("patch-package")}: you have both yarn.lock and package-lock.json +Defaulting to using ${chalk_1.default.bold("npm")} +You can override this setting by passing --use-yarn or deleting +package-lock.json if you don't need it +`); +} +const detectPackageManager = (appRootPath, overridePackageManager) => { + const packageLockExists = fs_extra_1.default.existsSync((0, path_1.join)(appRootPath, "package-lock.json")); + const shrinkWrapExists = fs_extra_1.default.existsSync((0, path_1.join)(appRootPath, "npm-shrinkwrap.json")); + const yarnLockExists = fs_extra_1.default.existsSync((0, path_1.join)(appRootPath, "yarn.lock")); + const pnpmLockExists = fs_extra_1.default.existsSync((0, path_1.join)(process_1.default.cwd(), "pnpm-lock.yaml")); + if ((packageLockExists || shrinkWrapExists) && yarnLockExists) { + if (overridePackageManager) { + return overridePackageManager; + } + else { + printSelectingDefaultMessage(); + return shrinkWrapExists ? "npm-shrinkwrap" : "npm"; + } + } + else if (packageLockExists || shrinkWrapExists) { + if (overridePackageManager === "yarn") { + printNoYarnLockfileError(); + process_1.default.exit(1); + } + else { + return shrinkWrapExists ? "npm-shrinkwrap" : "npm"; + } + } + else if (pnpmLockExists) { + return "pnpm"; + } + else if (yarnLockExists || (0, find_yarn_workspace_root_1.default)()) { + return "yarn"; + } + else { + printNoLockfilesError(); + process_1.default.exit(1); + } + throw Error(); +}; +exports.detectPackageManager = detectPackageManager; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0ZWN0UGFja2FnZU1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGV0ZWN0UGFja2FnZU1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsd0RBQXlCO0FBQ3pCLGlDQUE2QjtBQUM3QixrREFBeUI7QUFDekIsc0RBQTZCO0FBQzdCLHdGQUF3RDtBQUl4RCxTQUFTLHdCQUF3QjtJQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDO0VBQ1osZUFBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksZUFBSyxDQUFDLEdBQUcsQ0FDdEMsb0VBQW9FLENBQ3JFO0NBQ0YsQ0FBQyxDQUFBO0FBQ0YsQ0FBQztBQUVELFNBQVMscUJBQXFCO0lBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUM7RUFDWixlQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxlQUFLLENBQUMsR0FBRyxDQUN0QyxvTEFBb0wsQ0FDckw7Q0FDRixDQUFDLENBQUE7QUFDRixDQUFDO0FBRUQsU0FBUyw0QkFBNEI7SUFDbkMsT0FBTyxDQUFDLElBQUksQ0FDVixHQUFHLGVBQUssQ0FBQyxJQUFJLENBQ1gsZUFBZSxDQUNoQjtzQkFDaUIsZUFBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7OztDQUd0QyxDQUNFLENBQUE7QUFDSCxDQUFDO0FBRU0sTUFBTSxvQkFBb0IsR0FBRyxDQUNsQyxXQUFtQixFQUNuQixzQkFBNkMsRUFDN0IsRUFBRTtJQUNsQixNQUFNLGlCQUFpQixHQUFHLGtCQUFFLENBQUMsVUFBVSxDQUNyQyxJQUFBLFdBQUksRUFBQyxXQUFXLEVBQUUsbUJBQW1CLENBQUMsQ0FDdkMsQ0FBQTtJQUNELE1BQU0sZ0JBQWdCLEdBQUcsa0JBQUUsQ0FBQyxVQUFVLENBQ3BDLElBQUEsV0FBSSxFQUFDLFdBQVcsRUFBRSxxQkFBcUIsQ0FBQyxDQUN6QyxDQUFBO0lBQ0QsTUFBTSxjQUFjLEdBQUcsa0JBQUUsQ0FBQyxVQUFVLENBQUMsSUFBQSxXQUFJLEVBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUE7SUFDcEUsTUFBTSxjQUFjLEdBQUcsa0JBQUUsQ0FBQyxVQUFVLENBQUMsSUFBQSxXQUFJLEVBQUMsaUJBQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUE7SUFDM0UsSUFBSSxDQUFDLGlCQUFpQixJQUFJLGdCQUFnQixDQUFDLElBQUksY0FBYyxFQUFFLENBQUM7UUFDOUQsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1lBQzNCLE9BQU8sc0JBQXNCLENBQUE7UUFDL0IsQ0FBQzthQUFNLENBQUM7WUFDTiw0QkFBNEIsRUFBRSxDQUFBO1lBQzlCLE9BQU8sZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7UUFDcEQsQ0FBQztJQUNILENBQUM7U0FBTSxJQUFJLGlCQUFpQixJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDakQsSUFBSSxzQkFBc0IsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUN0Qyx3QkFBd0IsRUFBRSxDQUFBO1lBQzFCLGlCQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2pCLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtRQUNwRCxDQUFDO0lBQ0gsQ0FBQztTQUFNLElBQUksY0FBYyxFQUFFLENBQUM7UUFDMUIsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDO1NBQU0sSUFBSSxjQUFjLElBQUksSUFBQSxrQ0FBaUIsR0FBRSxFQUFFLENBQUM7UUFDakQsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDO1NBQU0sQ0FBQztRQUNOLHFCQUFxQixFQUFFLENBQUE7UUFDdkIsaUJBQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDakIsQ0FBQztJQUNELE1BQU0sS0FBSyxFQUFFLENBQUE7QUFDZixDQUFDLENBQUE7QUFuQ1ksUUFBQSxvQkFBb0Isd0JBbUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHsgam9pbiB9IGZyb20gXCIuL3BhdGhcIlxuaW1wb3J0IGNoYWxrIGZyb20gXCJjaGFsa1wiXG5pbXBvcnQgcHJvY2VzcyBmcm9tIFwicHJvY2Vzc1wiXG5pbXBvcnQgZmluZFdvcmtzcGFjZVJvb3QgZnJvbSBcImZpbmQteWFybi13b3Jrc3BhY2Utcm9vdFwiXG5cbmV4cG9ydCB0eXBlIFBhY2thZ2VNYW5hZ2VyID0gXCJ5YXJuXCIgfCBcIm5wbVwiIHwgXCJucG0tc2hyaW5rd3JhcFwiIHwgXCJwbnBtXCJcblxuZnVuY3Rpb24gcHJpbnROb1lhcm5Mb2NrZmlsZUVycm9yKCkge1xuICBjb25zb2xlLmxvZyhgXG4ke2NoYWxrLnJlZC5ib2xkKFwiKipFUlJPUioqXCIpfSAke2NoYWxrLnJlZChcbiAgICBcIlRoZSAtLXVzZS15YXJuIG9wdGlvbiB3YXMgc3BlY2lmaWVkIGJ1dCB0aGVyZSBpcyBubyB5YXJuLmxvY2sgZmlsZVwiLFxuICApfVxuYClcbn1cblxuZnVuY3Rpb24gcHJpbnROb0xvY2tmaWxlc0Vycm9yKCkge1xuICBjb25zb2xlLmxvZyhgXG4ke2NoYWxrLnJlZC5ib2xkKFwiKipFUlJPUioqXCIpfSAke2NoYWxrLnJlZChcbiAgICBcIk5vIHBhY2thZ2UtbG9jay5qc29uLCBucG0tc2hyaW5rd3JhcC5qc29uLCB5YXJuLmxvY2ssIG9yIHBucG0tbG9jay55YW1sIGZpbGUuXFxuXFxuWW91IG11c3QgdXNlIGVpdGhlciBucG1APj01LCB5YXJuLCBwbnBtLCBvciBucG0tc2hyaW5rd3JhcCB0byBtYW5hZ2UgdGhpcyBwcm9qZWN0J3MgZGVwZW5kZW5jaWVzLlwiLFxuICApfVxuYClcbn1cblxuZnVuY3Rpb24gcHJpbnRTZWxlY3RpbmdEZWZhdWx0TWVzc2FnZSgpIHtcbiAgY29uc29sZS5pbmZvKFxuICAgIGAke2NoYWxrLmJvbGQoXG4gICAgICBcInBhdGNoLXBhY2thZ2VcIixcbiAgICApfTogeW91IGhhdmUgYm90aCB5YXJuLmxvY2sgYW5kIHBhY2thZ2UtbG9jay5qc29uXG5EZWZhdWx0aW5nIHRvIHVzaW5nICR7Y2hhbGsuYm9sZChcIm5wbVwiKX1cbllvdSBjYW4gb3ZlcnJpZGUgdGhpcyBzZXR0aW5nIGJ5IHBhc3NpbmcgLS11c2UteWFybiBvciBkZWxldGluZ1xucGFja2FnZS1sb2NrLmpzb24gaWYgeW91IGRvbid0IG5lZWQgaXRcbmAsXG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IGRldGVjdFBhY2thZ2VNYW5hZ2VyID0gKFxuICBhcHBSb290UGF0aDogc3RyaW5nLFxuICBvdmVycmlkZVBhY2thZ2VNYW5hZ2VyOiBQYWNrYWdlTWFuYWdlciB8IG51bGwsXG4pOiBQYWNrYWdlTWFuYWdlciA9PiB7XG4gIGNvbnN0IHBhY2thZ2VMb2NrRXhpc3RzID0gZnMuZXhpc3RzU3luYyhcbiAgICBqb2luKGFwcFJvb3RQYXRoLCBcInBhY2thZ2UtbG9jay5qc29uXCIpLFxuICApXG4gIGNvbnN0IHNocmlua1dyYXBFeGlzdHMgPSBmcy5leGlzdHNTeW5jKFxuICAgIGpvaW4oYXBwUm9vdFBhdGgsIFwibnBtLXNocmlua3dyYXAuanNvblwiKSxcbiAgKVxuICBjb25zdCB5YXJuTG9ja0V4aXN0cyA9IGZzLmV4aXN0c1N5bmMoam9pbihhcHBSb290UGF0aCwgXCJ5YXJuLmxvY2tcIikpXG4gIGNvbnN0IHBucG1Mb2NrRXhpc3RzID0gZnMuZXhpc3RzU3luYyhqb2luKHByb2Nlc3MuY3dkKCksIFwicG5wbS1sb2NrLnlhbWxcIikpXG4gIGlmICgocGFja2FnZUxvY2tFeGlzdHMgfHwgc2hyaW5rV3JhcEV4aXN0cykgJiYgeWFybkxvY2tFeGlzdHMpIHtcbiAgICBpZiAob3ZlcnJpZGVQYWNrYWdlTWFuYWdlcikge1xuICAgICAgcmV0dXJuIG92ZXJyaWRlUGFja2FnZU1hbmFnZXJcbiAgICB9IGVsc2Uge1xuICAgICAgcHJpbnRTZWxlY3RpbmdEZWZhdWx0TWVzc2FnZSgpXG4gICAgICByZXR1cm4gc2hyaW5rV3JhcEV4aXN0cyA/IFwibnBtLXNocmlua3dyYXBcIiA6IFwibnBtXCJcbiAgICB9XG4gIH0gZWxzZSBpZiAocGFja2FnZUxvY2tFeGlzdHMgfHwgc2hyaW5rV3JhcEV4aXN0cykge1xuICAgIGlmIChvdmVycmlkZVBhY2thZ2VNYW5hZ2VyID09PSBcInlhcm5cIikge1xuICAgICAgcHJpbnROb1lhcm5Mb2NrZmlsZUVycm9yKClcbiAgICAgIHByb2Nlc3MuZXhpdCgxKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gc2hyaW5rV3JhcEV4aXN0cyA/IFwibnBtLXNocmlua3dyYXBcIiA6IFwibnBtXCJcbiAgICB9XG4gIH0gZWxzZSBpZiAocG5wbUxvY2tFeGlzdHMpIHtcbiAgICByZXR1cm4gXCJwbnBtXCJcbiAgfSBlbHNlIGlmICh5YXJuTG9ja0V4aXN0cyB8fCBmaW5kV29ya3NwYWNlUm9vdCgpKSB7XG4gICAgcmV0dXJuIFwieWFyblwiXG4gIH0gZWxzZSB7XG4gICAgcHJpbnROb0xvY2tmaWxlc0Vycm9yKClcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfVxuICB0aHJvdyBFcnJvcigpXG59XG4iXX0= \ No newline at end of file diff --git a/dist/filterFiles.js b/dist/filterFiles.js new file mode 100644 index 00000000..a2834e6a --- /dev/null +++ b/dist/filterFiles.js @@ -0,0 +1,16 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.removeIgnoredFiles = removeIgnoredFiles; +const path_1 = require("./path"); +const fs_extra_1 = require("fs-extra"); +const klaw_sync_1 = __importDefault(require("klaw-sync")); +function removeIgnoredFiles(dir, includePaths, excludePaths) { + (0, klaw_sync_1.default)(dir, { nodir: true }) + .map((item) => item.path.slice(`${dir}/`.length)) + .filter((relativePath) => !relativePath.match(includePaths) || relativePath.match(excludePaths)) + .forEach((relativePath) => (0, fs_extra_1.removeSync)((0, path_1.join)(dir, relativePath))); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyRmlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZmlsdGVyRmlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFJQSxnREFZQztBQWhCRCxpQ0FBNkI7QUFDN0IsdUNBQXFDO0FBQ3JDLDBEQUFnQztBQUVoQyxTQUFnQixrQkFBa0IsQ0FDaEMsR0FBVyxFQUNYLFlBQW9CLEVBQ3BCLFlBQW9CO0lBRXBCLElBQUEsbUJBQVEsRUFBQyxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDM0IsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2hELE1BQU0sQ0FDTCxDQUFDLFlBQVksRUFBRSxFQUFFLENBQ2YsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQ3hFO1NBQ0EsT0FBTyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxJQUFBLHFCQUFVLEVBQUMsSUFBQSxXQUFJLEVBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUNuRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgam9pbiB9IGZyb20gXCIuL3BhdGhcIlxuaW1wb3J0IHsgcmVtb3ZlU3luYyB9IGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQga2xhd1N5bmMgZnJvbSBcImtsYXctc3luY1wiXG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVJZ25vcmVkRmlsZXMoXG4gIGRpcjogc3RyaW5nLFxuICBpbmNsdWRlUGF0aHM6IFJlZ0V4cCxcbiAgZXhjbHVkZVBhdGhzOiBSZWdFeHAsXG4pIHtcbiAga2xhd1N5bmMoZGlyLCB7IG5vZGlyOiB0cnVlIH0pXG4gICAgLm1hcCgoaXRlbSkgPT4gaXRlbS5wYXRoLnNsaWNlKGAke2Rpcn0vYC5sZW5ndGgpKVxuICAgIC5maWx0ZXIoXG4gICAgICAocmVsYXRpdmVQYXRoKSA9PlxuICAgICAgICAhcmVsYXRpdmVQYXRoLm1hdGNoKGluY2x1ZGVQYXRocykgfHwgcmVsYXRpdmVQYXRoLm1hdGNoKGV4Y2x1ZGVQYXRocyksXG4gICAgKVxuICAgIC5mb3JFYWNoKChyZWxhdGl2ZVBhdGgpID0+IHJlbW92ZVN5bmMoam9pbihkaXIsIHJlbGF0aXZlUGF0aCkpKVxufVxuIl19 \ No newline at end of file diff --git a/dist/getAppRootPath.js b/dist/getAppRootPath.js new file mode 100644 index 00000000..7238f52f --- /dev/null +++ b/dist/getAppRootPath.js @@ -0,0 +1,22 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getAppRootPath = void 0; +const path_1 = require("./path"); +const process_1 = __importDefault(require("process")); +const fs_extra_1 = require("fs-extra"); +const getAppRootPath = () => { + let cwd = process_1.default.cwd(); + while (!(0, fs_extra_1.existsSync)((0, path_1.join)(cwd, "package.json"))) { + const up = (0, path_1.resolve)(cwd, "../"); + if (up === cwd) { + throw new Error("no package.json found for this project"); + } + cwd = up; + } + return cwd; +}; +exports.getAppRootPath = getAppRootPath; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0QXBwUm9vdFBhdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZ2V0QXBwUm9vdFBhdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsaUNBQXNDO0FBQ3RDLHNEQUE2QjtBQUM3Qix1Q0FBcUM7QUFFOUIsTUFBTSxjQUFjLEdBQUcsR0FBVyxFQUFFO0lBQ3pDLElBQUksR0FBRyxHQUFHLGlCQUFPLENBQUMsR0FBRyxFQUFFLENBQUE7SUFDdkIsT0FBTyxDQUFDLElBQUEscUJBQVUsRUFBQyxJQUFBLFdBQUksRUFBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzlDLE1BQU0sRUFBRSxHQUFHLElBQUEsY0FBTyxFQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUM5QixJQUFJLEVBQUUsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQTtRQUMzRCxDQUFDO1FBQ0QsR0FBRyxHQUFHLEVBQUUsQ0FBQTtJQUNWLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQTtBQUNaLENBQUMsQ0FBQTtBQVZZLFFBQUEsY0FBYyxrQkFVMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqb2luLCByZXNvbHZlIH0gZnJvbSBcIi4vcGF0aFwiXG5pbXBvcnQgcHJvY2VzcyBmcm9tIFwicHJvY2Vzc1wiXG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSBcImZzLWV4dHJhXCJcblxuZXhwb3J0IGNvbnN0IGdldEFwcFJvb3RQYXRoID0gKCk6IHN0cmluZyA9PiB7XG4gIGxldCBjd2QgPSBwcm9jZXNzLmN3ZCgpXG4gIHdoaWxlICghZXhpc3RzU3luYyhqb2luKGN3ZCwgXCJwYWNrYWdlLmpzb25cIikpKSB7XG4gICAgY29uc3QgdXAgPSByZXNvbHZlKGN3ZCwgXCIuLi9cIilcbiAgICBpZiAodXAgPT09IGN3ZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwibm8gcGFja2FnZS5qc29uIGZvdW5kIGZvciB0aGlzIHByb2plY3RcIilcbiAgICB9XG4gICAgY3dkID0gdXBcbiAgfVxuICByZXR1cm4gY3dkXG59XG4iXX0= \ No newline at end of file diff --git a/dist/getPackageResolution.js b/dist/getPackageResolution.js new file mode 100644 index 00000000..1130ef4e --- /dev/null +++ b/dist/getPackageResolution.js @@ -0,0 +1,151 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getPackageResolution = getPackageResolution; +const path_1 = require("./path"); +const PackageDetails_1 = require("./PackageDetails"); +const detectPackageManager_1 = require("./detectPackageManager"); +const fs_extra_1 = require("fs-extra"); +const lockfile_1 = require("@yarnpkg/lockfile"); +const yaml_1 = __importDefault(require("yaml")); +const find_yarn_workspace_root_1 = __importDefault(require("find-yarn-workspace-root")); +const getPackageVersion_1 = require("./getPackageVersion"); +const coerceSemVer_1 = require("./coerceSemVer"); +function getPackageResolution({ packageDetails, packageManager, appPath, }) { + if (packageManager === "yarn") { + let lockFilePath = "yarn.lock"; + if (!(0, fs_extra_1.existsSync)(lockFilePath)) { + const workspaceRoot = (0, find_yarn_workspace_root_1.default)(); + if (!workspaceRoot) { + throw new Error("Can't find yarn.lock file"); + } + lockFilePath = (0, path_1.join)(workspaceRoot, "yarn.lock"); + } + if (!(0, fs_extra_1.existsSync)(lockFilePath)) { + throw new Error("Can't find yarn.lock file"); + } + const lockFileString = (0, fs_extra_1.readFileSync)(lockFilePath).toString(); + let appLockFile; + if (lockFileString.includes("yarn lockfile v1")) { + const parsedYarnLockFile = (0, lockfile_1.parse)(lockFileString); + if (parsedYarnLockFile.type !== "success") { + throw new Error("Could not parse yarn v1 lock file"); + } + else { + appLockFile = parsedYarnLockFile.object; + } + } + else { + try { + appLockFile = yaml_1.default.parse(lockFileString); + } + catch (e) { + console.log(e); + throw new Error("Could not parse yarn v2 lock file"); + } + } + const installedVersion = (0, getPackageVersion_1.getPackageVersion)((0, path_1.join)((0, path_1.resolve)(appPath, packageDetails.path), "package.json")); + const entries = Object.entries(appLockFile).filter(([k, v]) => k.startsWith(packageDetails.name + "@") && + // @ts-ignore + (0, coerceSemVer_1.coerceSemVer)(v.version) === (0, coerceSemVer_1.coerceSemVer)(installedVersion)); + const resolutions = entries.map(([_, v]) => { + // @ts-ignore + return v.resolved; + }); + if (resolutions.length === 0) { + throw new Error(`\`${packageDetails.pathSpecifier}\`'s installed version is ${installedVersion} but a lockfile entry for it couldn't be found. Your lockfile is likely to be corrupt or you forgot to reinstall your packages.`); + } + if (new Set(resolutions).size !== 1) { + console.log(`Ambigious lockfile entries for ${packageDetails.pathSpecifier}. Using version ${installedVersion}`); + return installedVersion; + } + if (resolutions[0]) { + return resolutions[0]; + } + const resolution = entries[0][0].slice(packageDetails.name.length + 1); + // resolve relative file path + if (resolution.startsWith("file:.")) { + return `file:${(0, path_1.resolve)(appPath, resolution.slice("file:".length))}`; + } + if (resolution.startsWith("npm:")) { + return resolution.replace("npm:", ""); + } + return resolution; + } + else if (packageManager === "pnpm") { + const lockFilePath = (0, path_1.join)(process.cwd(), "pnpm-lock.yaml"); + if (!(0, fs_extra_1.existsSync)(lockFilePath)) { + throw new Error("Can't find pnpm-lock.yaml file"); + } + const lockFileString = (0, fs_extra_1.readFileSync)(lockFilePath).toString(); + let appLockFile; + try { + appLockFile = yaml_1.default.parse(lockFileString); + } + catch (e) { + console.log(e); + throw new Error("Could not parse pnpm-lock.yaml file"); + } + // pnpm v6+: packages: { '/pkg@version': { ... } } + const installedVersion = (0, getPackageVersion_1.getPackageVersion)((0, path_1.join)((0, path_1.resolve)(appPath, packageDetails.path), "package.json")); + const packages = appLockFile.packages || {}; + // Try to find the entry for the package + const entryKey = Object.keys(packages).find((key) => { + // поддержка ключей: '/pkg@version', 'pkg@version', '/@scope/pkg@version', '@scope/pkg@version', с/без (react@...) в конце + const match = key.match(/^\/?((@[^/]+\/)?[^@]+)@([^()]+)(?:\(.*\))?$/); + if (!match) { + return false; + } + const [, name, , version] = match; + return (name === packageDetails.name && + (0, coerceSemVer_1.coerceSemVer)(version) === (0, coerceSemVer_1.coerceSemVer)(installedVersion)); + }); + if (!entryKey) { + throw new Error(`\`${packageDetails.pathSpecifier}\`'s installed version is ${installedVersion} but a pnpm-lock.yaml entry for it couldn't be found. Your lockfile is likely to be corrupt or you forgot to reinstall your packages.`); + } + const pkg = packages[entryKey]; + return pkg.resolved || pkg.version || installedVersion; + } + else { + const lockfile = require((0, path_1.join)(appPath, packageManager === "npm-shrinkwrap" + ? "npm-shrinkwrap.json" + : "package-lock.json")); + const lockFileStack = [lockfile]; + for (const name of packageDetails.packageNames.slice(0, -1)) { + const child = lockFileStack[0].dependencies; + if (child && name in child) { + lockFileStack.push(child[name]); + } + } + lockFileStack.reverse(); + const relevantStackEntry = lockFileStack.find((entry) => { + if (entry.dependencies) { + return entry.dependencies && packageDetails.name in entry.dependencies; + } + else if (entry.packages) { + return entry.packages && packageDetails.path in entry.packages; + } + throw new Error("Cannot find dependencies or packages in lockfile"); + }); + const pkg = relevantStackEntry.dependencies + ? relevantStackEntry.dependencies[packageDetails.name] + : relevantStackEntry.packages[packageDetails.path]; + return pkg.resolved || pkg.version || pkg.from; + } +} +if (require.main === module) { + const packageDetails = (0, PackageDetails_1.getPatchDetailsFromCliString)(process.argv[2]); + if (!packageDetails) { + console.log(`Can't find package ${process.argv[2]}`); + process.exit(1); + } + const useYarn = process.argv.includes("--use-yarn"); + console.log(getPackageResolution({ + appPath: process.cwd(), + packageDetails, + packageManager: (0, detectPackageManager_1.detectPackageManager)(process.cwd(), useYarn ? "yarn" : null), + })); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UGFja2FnZVJlc29sdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZ2V0UGFja2FnZVJlc29sdXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFVQSxvREFzSkM7QUFoS0QsaUNBQXNDO0FBQ3RDLHFEQUErRTtBQUMvRSxpRUFBNkU7QUFDN0UsdUNBQW1EO0FBQ25ELGdEQUE4RDtBQUM5RCxnREFBdUI7QUFDdkIsd0ZBQXdEO0FBQ3hELDJEQUF1RDtBQUN2RCxpREFBNkM7QUFFN0MsU0FBZ0Isb0JBQW9CLENBQUMsRUFDbkMsY0FBYyxFQUNkLGNBQWMsRUFDZCxPQUFPLEdBS1I7SUFDQyxJQUFJLGNBQWMsS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUM5QixJQUFJLFlBQVksR0FBRyxXQUFXLENBQUE7UUFDOUIsSUFBSSxDQUFDLElBQUEscUJBQVUsRUFBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQzlCLE1BQU0sYUFBYSxHQUFHLElBQUEsa0NBQWlCLEdBQUUsQ0FBQTtZQUN6QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtZQUM5QyxDQUFDO1lBQ0QsWUFBWSxHQUFHLElBQUEsV0FBSSxFQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQTtRQUNqRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUEscUJBQVUsRUFBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtRQUM5QyxDQUFDO1FBQ0QsTUFBTSxjQUFjLEdBQUcsSUFBQSx1QkFBWSxFQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQzVELElBQUksV0FBVyxDQUFBO1FBQ2YsSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztZQUNoRCxNQUFNLGtCQUFrQixH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QUFDLENBQUMsQ0FBQTtJQUNqQixDQUFDO0lBQ0QsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDbkQsT0FBTyxDQUFDLEdBQUcsQ0FDVCxvQkFBb0IsQ0FBQztRQUNuQixPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRTtRQUN0QixjQUFjO1FBQ2QsY0FBYyxFQUFFLElBQUEsMkNBQW9CLEVBQ2xDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFDYixPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN4QjtLQUNGLENBQUMsQ0FDSCxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpvaW4sIHJlc29sdmUgfSBmcm9tIFwiLi9wYXRoXCJcbmltcG9ydCB7IFBhY2thZ2VEZXRhaWxzLCBnZXRQYXRjaERldGFpbHNGcm9tQ2xpU3RyaW5nIH0gZnJvbSBcIi4vUGFja2FnZURldGFpbHNcIlxuaW1wb3J0IHsgUGFja2FnZU1hbmFnZXIsIGRldGVjdFBhY2thZ2VNYW5hZ2VyIH0gZnJvbSBcIi4vZGV0ZWN0UGFja2FnZU1hbmFnZXJcIlxuaW1wb3J0IHsgcmVhZEZpbGVTeW5jLCBleGlzdHNTeW5jIH0gZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCB7IHBhcnNlIGFzIHBhcnNlWWFybkxvY2tGaWxlIH0gZnJvbSBcIkB5YXJucGtnL2xvY2tmaWxlXCJcbmltcG9ydCB5YW1sIGZyb20gXCJ5YW1sXCJcbmltcG9ydCBmaW5kV29ya3NwYWNlUm9vdCBmcm9tIFwiZmluZC15YXJuLXdvcmtzcGFjZS1yb290XCJcbmltcG9ydCB7IGdldFBhY2thZ2VWZXJzaW9uIH0gZnJvbSBcIi4vZ2V0UGFja2FnZVZlcnNpb25cIlxuaW1wb3J0IHsgY29lcmNlU2VtVmVyIH0gZnJvbSBcIi4vY29lcmNlU2VtVmVyXCJcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBhY2thZ2VSZXNvbHV0aW9uKHtcbiAgcGFja2FnZURldGFpbHMsXG4gIHBhY2thZ2VNYW5hZ2VyLFxuICBhcHBQYXRoLFxufToge1xuICBwYWNrYWdlRGV0YWlsczogUGFja2FnZURldGFpbHNcbiAgcGFja2FnZU1hbmFnZXI6IFBhY2thZ2VNYW5hZ2VyXG4gIGFwcFBhdGg6IHN0cmluZ1xufSkge1xuICBpZiAocGFja2FnZU1hbmFnZXIgPT09IFwieWFyblwiKSB7XG4gICAgbGV0IGxvY2tGaWxlUGF0aCA9IFwieWFybi5sb2NrXCJcbiAgICBpZiAoIWV4aXN0c1N5bmMobG9ja0ZpbGVQYXRoKSkge1xuICAgICAgY29uc3Qgd29ya3NwYWNlUm9vdCA9IGZpbmRXb3Jrc3BhY2VSb290KClcbiAgICAgIGlmICghd29ya3NwYWNlUm9vdCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW4ndCBmaW5kIHlhcm4ubG9jayBmaWxlXCIpXG4gICAgICB9XG4gICAgICBsb2NrRmlsZVBhdGggPSBqb2luKHdvcmtzcGFjZVJvb3QsIFwieWFybi5sb2NrXCIpXG4gICAgfVxuICAgIGlmICghZXhpc3RzU3luYyhsb2NrRmlsZVBhdGgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW4ndCBmaW5kIHlhcm4ubG9jayBmaWxlXCIpXG4gICAgfVxuICAgIGNvbnN0IGxvY2tGaWxlU3RyaW5nID0gcmVhZEZpbGVTeW5jKGxvY2tGaWxlUGF0aCkudG9TdHJpbmcoKVxuICAgIGxldCBhcHBMb2NrRmlsZVxuICAgIGlmIChsb2NrRmlsZVN0cmluZy5pbmNsdWRlcyhcInlhcm4gbG9ja2ZpbGUgdjFcIikpIHtcbiAgICAgIGNvbnN0IHBhcnNlZFlhcm5Mb2NrRmlsZSA9IHBhcnNlWWFybkxvY2tGaWxlKGxvY2tGaWxlU3RyaW5nKVxuICAgICAgaWYgKHBhcnNlZFlhcm5Mb2NrRmlsZS50eXBlICE9PSBcInN1Y2Nlc3NcIikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZCBub3QgcGFyc2UgeWFybiB2MSBsb2NrIGZpbGVcIilcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFwcExvY2tGaWxlID0gcGFyc2VkWWFybkxvY2tGaWxlLm9iamVjdFxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0cnkge1xuICAgICAgICBhcHBMb2NrRmlsZSA9IHlhbWwucGFyc2UobG9ja0ZpbGVTdHJpbmcpXG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGUpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkIG5vdCBwYXJzZSB5YXJuIHYyIGxvY2sgZmlsZVwiKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGluc3RhbGxlZFZlcnNpb24gPSBnZXRQYWNrYWdlVmVyc2lvbihcbiAgICAgIGpvaW4ocmVzb2x2ZShhcHBQYXRoLCBwYWNrYWdlRGV0YWlscy5wYXRoKSwgXCJwYWNrYWdlLmpzb25cIiksXG4gICAgKVxuXG4gICAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKGFwcExvY2tGaWxlKS5maWx0ZXIoXG4gICAgICAoW2ssIHZdKSA9PlxuICAgICAgICBrLnN0YXJ0c1dpdGgocGFja2FnZURldGFpbHMubmFtZSArIFwiQFwiKSAmJlxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGNvZXJjZVNlbVZlcih2LnZlcnNpb24pID09PSBjb2VyY2VTZW1WZXIoaW5zdGFsbGVkVmVyc2lvbiksXG4gICAgKVxuXG4gICAgY29uc3QgcmVzb2x1dGlvbnMgPSBlbnRyaWVzLm1hcCgoW18sIHZdKSA9PiB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZXR1cm4gdi5yZXNvbHZlZFxuICAgIH0pXG5cbiAgICBpZiAocmVzb2x1dGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBcXGAke3BhY2thZ2VEZXRhaWxzLnBhdGhTcGVjaWZpZXJ9XFxgJ3MgaW5zdGFsbGVkIHZlcnNpb24gaXMgJHtpbnN0YWxsZWRWZXJzaW9ufSBidXQgYSBsb2NrZmlsZSBlbnRyeSBmb3IgaXQgY291bGRuJ3QgYmUgZm91bmQuIFlvdXIgbG9ja2ZpbGUgaXMgbGlrZWx5IHRvIGJlIGNvcnJ1cHQgb3IgeW91IGZvcmdvdCB0byByZWluc3RhbGwgeW91ciBwYWNrYWdlcy5gLFxuICAgICAgKVxuICAgIH1cblxuICAgIGlmIChuZXcgU2V0KHJlc29sdXRpb25zKS5zaXplICE9PSAxKSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYEFtYmlnaW91cyBsb2NrZmlsZSBlbnRyaWVzIGZvciAke3BhY2thZ2VEZXRhaWxzLnBhdGhTcGVjaWZpZXJ9LiBVc2luZyB2ZXJzaW9uICR7aW5zdGFsbGVkVmVyc2lvbn1gLFxuICAgICAgKVxuICAgICAgcmV0dXJuIGluc3RhbGxlZFZlcnNpb25cbiAgICB9XG5cbiAgICBpZiAocmVzb2x1dGlvbnNbMF0pIHtcbiAgICAgIHJldHVybiByZXNvbHV0aW9uc1swXVxuICAgIH1cblxuICAgIGNvbnN0IHJlc29sdXRpb24gPSBlbnRyaWVzWzBdWzBdLnNsaWNlKHBhY2thZ2VEZXRhaWxzLm5hbWUubGVuZ3RoICsgMSlcblxuICAgIC8vIHJlc29sdmUgcmVsYXRpdmUgZmlsZSBwYXRoXG4gICAgaWYgKHJlc29sdXRpb24uc3RhcnRzV2l0aChcImZpbGU6LlwiKSkge1xuICAgICAgcmV0dXJuIGBmaWxlOiR7cmVzb2x2ZShhcHBQYXRoLCByZXNvbHV0aW9uLnNsaWNlKFwiZmlsZTpcIi5sZW5ndGgpKX1gXG4gICAgfVxuXG4gICAgaWYgKHJlc29sdXRpb24uc3RhcnRzV2l0aChcIm5wbTpcIikpIHtcbiAgICAgIHJldHVybiByZXNvbHV0aW9uLnJlcGxhY2UoXCJucG06XCIsIFwiXCIpXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc29sdXRpb25cbiAgfSBlbHNlIGlmIChwYWNrYWdlTWFuYWdlciA9PT0gXCJwbnBtXCIpIHtcbiAgICBjb25zdCBsb2NrRmlsZVBhdGggPSBqb2luKHByb2Nlc3MuY3dkKCksIFwicG5wbS1sb2NrLnlhbWxcIilcbiAgICBpZiAoIWV4aXN0c1N5bmMobG9ja0ZpbGVQYXRoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2FuJ3QgZmluZCBwbnBtLWxvY2sueWFtbCBmaWxlXCIpXG4gICAgfVxuICAgIGNvbnN0IGxvY2tGaWxlU3RyaW5nID0gcmVhZEZpbGVTeW5jKGxvY2tGaWxlUGF0aCkudG9TdHJpbmcoKVxuICAgIGxldCBhcHBMb2NrRmlsZVxuICAgIHRyeSB7XG4gICAgICBhcHBMb2NrRmlsZSA9IHlhbWwucGFyc2UobG9ja0ZpbGVTdHJpbmcpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5sb2coZSlcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkIG5vdCBwYXJzZSBwbnBtLWxvY2sueWFtbCBmaWxlXCIpXG4gICAgfVxuICAgIC8vIHBucG0gdjYrOiBwYWNrYWdlczogeyAnL3BrZ0B2ZXJzaW9uJzogeyAuLi4gfSB9XG4gICAgY29uc3QgaW5zdGFsbGVkVmVyc2lvbiA9IGdldFBhY2thZ2VWZXJzaW9uKFxuICAgICAgam9pbihyZXNvbHZlKGFwcFBhdGgsIHBhY2thZ2VEZXRhaWxzLnBhdGgpLCBcInBhY2thZ2UuanNvblwiKSxcbiAgICApXG4gICAgY29uc3QgcGFja2FnZXMgPSBhcHBMb2NrRmlsZS5wYWNrYWdlcyB8fCB7fVxuICAgIC8vIFRyeSB0byBmaW5kIHRoZSBlbnRyeSBmb3IgdGhlIHBhY2thZ2VcbiAgICBjb25zdCBlbnRyeUtleSA9IE9iamVjdC5rZXlzKHBhY2thZ2VzKS5maW5kKChrZXkpID0+IHtcbiAgICAgIC8vINC/0L7QtNC00LXRgNC20LrQsCDQutC70Y7Rh9C10Lk6ICcvcGtnQHZlcnNpb24nLCAncGtnQHZlcnNpb24nLCAnL0BzY29wZS9wa2dAdmVyc2lvbicsICdAc2NvcGUvcGtnQHZlcnNpb24nLCDRgS/QsdC10LcgKHJlYWN0QC4uLikg0LIg0LrQvtC90YbQtVxuICAgICAgY29uc3QgbWF0Y2ggPSBrZXkubWF0Y2goL15cXC8/KChAW14vXStcXC8pP1teQF0rKUAoW14oKV0rKSg/OlxcKC4qXFwpKT8kLylcbiAgICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgICBjb25zdCBbLCBuYW1lLCAsIHZlcnNpb25dID0gbWF0Y2hcbiAgICAgIHJldHVybiAoXG4gICAgICAgIG5hbWUgPT09IHBhY2thZ2VEZXRhaWxzLm5hbWUgJiZcbiAgICAgICAgY29lcmNlU2VtVmVyKHZlcnNpb24pID09PSBjb2VyY2VTZW1WZXIoaW5zdGFsbGVkVmVyc2lvbilcbiAgICAgIClcbiAgICB9KVxuICAgIGlmICghZW50cnlLZXkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFxcYCR7cGFja2FnZURldGFpbHMucGF0aFNwZWNpZmllcn1cXGAncyBpbnN0YWxsZWQgdmVyc2lvbiBpcyAke2luc3RhbGxlZFZlcnNpb259IGJ1dCBhIHBucG0tbG9jay55YW1sIGVudHJ5IGZvciBpdCBjb3VsZG4ndCBiZSBmb3VuZC4gWW91ciBsb2NrZmlsZSBpcyBsaWtlbHkgdG8gYmUgY29ycnVwdCBvciB5b3UgZm9yZ290IHRvIHJlaW5zdGFsbCB5b3VyIHBhY2thZ2VzLmAsXG4gICAgICApXG4gICAgfVxuICAgIGNvbnN0IHBrZyA9IHBhY2thZ2VzW2VudHJ5S2V5XVxuICAgIHJldHVybiBwa2cucmVzb2x2ZWQgfHwgcGtnLnZlcnNpb24gfHwgaW5zdGFsbGVkVmVyc2lvblxuICB9IGVsc2Uge1xuICAgIGNvbnN0IGxvY2tmaWxlID0gcmVxdWlyZShqb2luKFxuICAgICAgYXBwUGF0aCxcbiAgICAgIHBhY2thZ2VNYW5hZ2VyID09PSBcIm5wbS1zaHJpbmt3cmFwXCJcbiAgICAgICAgPyBcIm5wbS1zaHJpbmt3cmFwLmpzb25cIlxuICAgICAgICA6IFwicGFja2FnZS1sb2NrLmpzb25cIixcbiAgICApKVxuICAgIGNvbnN0IGxvY2tGaWxlU3RhY2sgPSBbbG9ja2ZpbGVdXG4gICAgZm9yIChjb25zdCBuYW1lIG9mIHBhY2thZ2VEZXRhaWxzLnBhY2thZ2VOYW1lcy5zbGljZSgwLCAtMSkpIHtcbiAgICAgIGNvbnN0IGNoaWxkID0gbG9ja0ZpbGVTdGFja1swXS5kZXBlbmRlbmNpZXNcbiAgICAgIGlmIChjaGlsZCAmJiBuYW1lIGluIGNoaWxkKSB7XG4gICAgICAgIGxvY2tGaWxlU3RhY2sucHVzaChjaGlsZFtuYW1lXSlcbiAgICAgIH1cbiAgICB9XG4gICAgbG9ja0ZpbGVTdGFjay5yZXZlcnNlKClcbiAgICBjb25zdCByZWxldmFudFN0YWNrRW50cnkgPSBsb2NrRmlsZVN0YWNrLmZpbmQoKGVudHJ5KSA9PiB7XG4gICAgICBpZiAoZW50cnkuZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgIHJldHVybiBlbnRyeS5kZXBlbmRlbmNpZXMgJiYgcGFja2FnZURldGFpbHMubmFtZSBpbiBlbnRyeS5kZXBlbmRlbmNpZXNcbiAgICAgIH0gZWxzZSBpZiAoZW50cnkucGFja2FnZXMpIHtcbiAgICAgICAgcmV0dXJuIGVudHJ5LnBhY2thZ2VzICYmIHBhY2thZ2VEZXRhaWxzLnBhdGggaW4gZW50cnkucGFja2FnZXNcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIGRlcGVuZGVuY2llcyBvciBwYWNrYWdlcyBpbiBsb2NrZmlsZVwiKVxuICAgIH0pXG4gICAgY29uc3QgcGtnID0gcmVsZXZhbnRTdGFja0VudHJ5LmRlcGVuZGVuY2llc1xuICAgICAgPyByZWxldmFudFN0YWNrRW50cnkuZGVwZW5kZW5jaWVzW3BhY2thZ2VEZXRhaWxzLm5hbWVdXG4gICAgICA6IHJlbGV2YW50U3RhY2tFbnRyeS5wYWNrYWdlc1twYWNrYWdlRGV0YWlscy5wYXRoXVxuICAgIHJldHVybiBwa2cucmVzb2x2ZWQgfHwgcGtnLnZlcnNpb24gfHwgcGtnLmZyb21cbiAgfVxufVxuXG5pZiAocmVxdWlyZS5tYWluID09PSBtb2R1bGUpIHtcbiAgY29uc3QgcGFja2FnZURldGFpbHMgPSBnZXRQYXRjaERldGFpbHNGcm9tQ2xpU3RyaW5nKHByb2Nlc3MuYXJndlsyXSlcbiAgaWYgKCFwYWNrYWdlRGV0YWlscykge1xuICAgIGNvbnNvbGUubG9nKGBDYW4ndCBmaW5kIHBhY2thZ2UgJHtwcm9jZXNzLmFyZ3ZbMl19YClcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfVxuICBjb25zdCB1c2VZYXJuID0gcHJvY2Vzcy5hcmd2LmluY2x1ZGVzKFwiLS11c2UteWFyblwiKVxuICBjb25zb2xlLmxvZyhcbiAgICBnZXRQYWNrYWdlUmVzb2x1dGlvbih7XG4gICAgICBhcHBQYXRoOiBwcm9jZXNzLmN3ZCgpLFxuICAgICAgcGFja2FnZURldGFpbHMsXG4gICAgICBwYWNrYWdlTWFuYWdlcjogZGV0ZWN0UGFja2FnZU1hbmFnZXIoXG4gICAgICAgIHByb2Nlc3MuY3dkKCksXG4gICAgICAgIHVzZVlhcm4gPyBcInlhcm5cIiA6IG51bGwsXG4gICAgICApLFxuICAgIH0pLFxuICApXG59XG4iXX0= \ No newline at end of file diff --git a/dist/getPackageVersion.js b/dist/getPackageVersion.js new file mode 100644 index 00000000..19cc6fff --- /dev/null +++ b/dist/getPackageVersion.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getPackageVersion = getPackageVersion; +function getPackageVersion(packageJsonPath) { + // remove build metadata + return require(packageJsonPath).version.replace(/\+.*$/, ""); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UGFja2FnZVZlcnNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZ2V0UGFja2FnZVZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw4Q0FHQztBQUhELFNBQWdCLGlCQUFpQixDQUFDLGVBQXVCO0lBQ3ZELHdCQUF3QjtJQUN4QixPQUFPLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUM5RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGdldFBhY2thZ2VWZXJzaW9uKHBhY2thZ2VKc29uUGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gcmVtb3ZlIGJ1aWxkIG1ldGFkYXRhXG4gIHJldHVybiByZXF1aXJlKHBhY2thZ2VKc29uUGF0aCkudmVyc2lvbi5yZXBsYWNlKC9cXCsuKiQvLCBcIlwiKVxufVxuIl19 \ No newline at end of file diff --git a/dist/getPackageVersion.test.js b/dist/getPackageVersion.test.js new file mode 100644 index 00000000..91175259 --- /dev/null +++ b/dist/getPackageVersion.test.js @@ -0,0 +1,70 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const getPackageVersion_1 = require("./getPackageVersion"); +describe("getPackageVersion", () => { + beforeEach(() => { + jest.resetModules(); + }); + const packagePath = "../package.json"; + it("should return version without change when already valid", () => { + const packageJSON = { + version: "1.2.3", + }; + jest.mock(packagePath, () => { + return packageJSON; + }); + const expected = "1.2.3"; + expect((0, getPackageVersion_1.getPackageVersion)(packagePath)).toEqual(expected); + }); + it("should return version with prefix", () => { + const packageJSON = { + version: "v1.2.3", + }; + jest.mock(packagePath, () => { + return packageJSON; + }); + const expected = "v1.2.3"; + expect((0, getPackageVersion_1.getPackageVersion)(packagePath)).toEqual(expected); + }); + it("should return invalid version without change", () => { + const packageJSON = { + version: "a.b.c", + }; + jest.mock(packagePath, () => { + return packageJSON; + }); + const expected = "a.b.c"; + expect((0, getPackageVersion_1.getPackageVersion)(packagePath)).toEqual(expected); + }); + it("should return invalid version without build metadata", () => { + const packageJSON = { + version: "a.b.c+asd1234", + }; + jest.mock(packagePath, () => { + return packageJSON; + }); + const expected = "a.b.c"; + expect((0, getPackageVersion_1.getPackageVersion)(packagePath)).toEqual(expected); + }); + it("should return version without build metadata", () => { + const packageJSON = { + version: "1.2.3+asd1234", + }; + jest.mock(packagePath, () => { + return packageJSON; + }); + const expected = "1.2.3"; + expect((0, getPackageVersion_1.getPackageVersion)(packagePath)).toEqual(expected); + }); + it("should return version with prefix but without build metadata", () => { + const packageJSON = { + version: "v1.2.3+asd1234", + }; + jest.mock(packagePath, () => { + return packageJSON; + }); + const expected = "v1.2.3"; + expect((0, getPackageVersion_1.getPackageVersion)(packagePath)).toEqual(expected); + }); +}); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UGFja2FnZVZlcnNpb24udGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9nZXRQYWNrYWdlVmVyc2lvbi50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkRBQXVEO0FBRXZELFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7SUFDakMsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUNyQixDQUFDLENBQUMsQ0FBQTtJQUVGLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixDQUFBO0lBRXJDLEVBQUUsQ0FBQyx5REFBeUQsRUFBRSxHQUFHLEVBQUU7UUFDakUsTUFBTSxXQUFXLEdBQUc7WUFDbEIsT0FBTyxFQUFFLE9BQU87U0FDakIsQ0FBQTtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRTtZQUMxQixPQUFPLFdBQVcsQ0FBQTtRQUNwQixDQUFDLENBQUMsQ0FBQTtRQUVGLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQTtRQUV4QixNQUFNLENBQUMsSUFBQSxxQ0FBaUIsRUFBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUMxRCxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyxtQ0FBbUMsRUFBRSxHQUFHLEVBQUU7UUFDM0MsTUFBTSxXQUFXLEdBQUc7WUFDbEIsT0FBTyxFQUFFLFFBQVE7U0FDbEIsQ0FBQTtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRTtZQUMxQixPQUFPLFdBQVcsQ0FBQTtRQUNwQixDQUFDLENBQUMsQ0FBQTtRQUVGLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQTtRQUV6QixNQUFNLENBQUMsSUFBQSxxQ0FBaUIsRUFBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUMxRCxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyw4Q0FBOEMsRUFBRSxHQUFHLEVBQUU7UUFDdEQsTUFBTSxXQUFXLEdBQUc7WUFDbEIsT0FBTyxFQUFFLE9BQU87U0FDakIsQ0FBQTtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRTtZQUMxQixPQUFPLFdBQVcsQ0FBQTtRQUNwQixDQUFDLENBQUMsQ0FBQTtRQUVGLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQTtRQUV4QixNQUFNLENBQUMsSUFBQSxxQ0FBaUIsRUFBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUMxRCxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyxzREFBc0QsRUFBRSxHQUFHLEVBQUU7UUFDOUQsTUFBTSxXQUFXLEdBQUc7WUFDbEIsT0FBTyxFQUFFLGVBQWU7U0FDekIsQ0FBQTtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRTtZQUMxQixPQUFPLFdBQVcsQ0FBQTtRQUNwQixDQUFDLENBQUMsQ0FBQTtRQUVGLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQTtRQUV4QixNQUFNLENBQUMsSUFBQSxxQ0FBaUIsRUFBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUMxRCxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyw4Q0FBOEMsRUFBRSxHQUFHLEVBQUU7UUFDdEQsTUFBTSxXQUFXLEdBQUc7WUFDbEIsT0FBTyxFQUFFLGVBQWU7U0FDekIsQ0FBQTtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRTtZQUMxQixPQUFPLFdBQVcsQ0FBQTtRQUNwQixDQUFDLENBQUMsQ0FBQTtRQUVGLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQTtRQUV4QixNQUFNLENBQUMsSUFBQSxxQ0FBaUIsRUFBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUMxRCxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyw4REFBOEQsRUFBRSxHQUFHLEVBQUU7UUFDdEUsTUFBTSxXQUFXLEdBQUc7WUFDbEIsT0FBTyxFQUFFLGdCQUFnQjtTQUMxQixDQUFBO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFO1lBQzFCLE9BQU8sV0FBVyxDQUFBO1FBQ3BCLENBQUMsQ0FBQyxDQUFBO1FBRUYsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBRXpCLE1BQU0sQ0FBQyxJQUFBLHFDQUFpQixFQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzFELENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRQYWNrYWdlVmVyc2lvbiB9IGZyb20gXCIuL2dldFBhY2thZ2VWZXJzaW9uXCJcblxuZGVzY3JpYmUoXCJnZXRQYWNrYWdlVmVyc2lvblwiLCAoKSA9PiB7XG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGplc3QucmVzZXRNb2R1bGVzKClcbiAgfSlcblxuICBjb25zdCBwYWNrYWdlUGF0aCA9IFwiLi4vcGFja2FnZS5qc29uXCJcblxuICBpdChcInNob3VsZCByZXR1cm4gdmVyc2lvbiB3aXRob3V0IGNoYW5nZSB3aGVuIGFscmVhZHkgdmFsaWRcIiwgKCkgPT4ge1xuICAgIGNvbnN0IHBhY2thZ2VKU09OID0ge1xuICAgICAgdmVyc2lvbjogXCIxLjIuM1wiLFxuICAgIH1cbiAgICBqZXN0Lm1vY2socGFja2FnZVBhdGgsICgpID0+IHtcbiAgICAgIHJldHVybiBwYWNrYWdlSlNPTlxuICAgIH0pXG5cbiAgICBjb25zdCBleHBlY3RlZCA9IFwiMS4yLjNcIlxuXG4gICAgZXhwZWN0KGdldFBhY2thZ2VWZXJzaW9uKHBhY2thZ2VQYXRoKSkudG9FcXVhbChleHBlY3RlZClcbiAgfSlcblxuICBpdChcInNob3VsZCByZXR1cm4gdmVyc2lvbiB3aXRoIHByZWZpeFwiLCAoKSA9PiB7XG4gICAgY29uc3QgcGFja2FnZUpTT04gPSB7XG4gICAgICB2ZXJzaW9uOiBcInYxLjIuM1wiLFxuICAgIH1cbiAgICBqZXN0Lm1vY2socGFja2FnZVBhdGgsICgpID0+IHtcbiAgICAgIHJldHVybiBwYWNrYWdlSlNPTlxuICAgIH0pXG5cbiAgICBjb25zdCBleHBlY3RlZCA9IFwidjEuMi4zXCJcblxuICAgIGV4cGVjdChnZXRQYWNrYWdlVmVyc2lvbihwYWNrYWdlUGF0aCkpLnRvRXF1YWwoZXhwZWN0ZWQpXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgcmV0dXJuIGludmFsaWQgdmVyc2lvbiB3aXRob3V0IGNoYW5nZVwiLCAoKSA9PiB7XG4gICAgY29uc3QgcGFja2FnZUpTT04gPSB7XG4gICAgICB2ZXJzaW9uOiBcImEuYi5jXCIsXG4gICAgfVxuICAgIGplc3QubW9jayhwYWNrYWdlUGF0aCwgKCkgPT4ge1xuICAgICAgcmV0dXJuIHBhY2thZ2VKU09OXG4gICAgfSlcblxuICAgIGNvbnN0IGV4cGVjdGVkID0gXCJhLmIuY1wiXG5cbiAgICBleHBlY3QoZ2V0UGFja2FnZVZlcnNpb24ocGFja2FnZVBhdGgpKS50b0VxdWFsKGV4cGVjdGVkKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIHJldHVybiBpbnZhbGlkIHZlcnNpb24gd2l0aG91dCBidWlsZCBtZXRhZGF0YVwiLCAoKSA9PiB7XG4gICAgY29uc3QgcGFja2FnZUpTT04gPSB7XG4gICAgICB2ZXJzaW9uOiBcImEuYi5jK2FzZDEyMzRcIixcbiAgICB9XG4gICAgamVzdC5tb2NrKHBhY2thZ2VQYXRoLCAoKSA9PiB7XG4gICAgICByZXR1cm4gcGFja2FnZUpTT05cbiAgICB9KVxuXG4gICAgY29uc3QgZXhwZWN0ZWQgPSBcImEuYi5jXCJcblxuICAgIGV4cGVjdChnZXRQYWNrYWdlVmVyc2lvbihwYWNrYWdlUGF0aCkpLnRvRXF1YWwoZXhwZWN0ZWQpXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgcmV0dXJuIHZlcnNpb24gd2l0aG91dCBidWlsZCBtZXRhZGF0YVwiLCAoKSA9PiB7XG4gICAgY29uc3QgcGFja2FnZUpTT04gPSB7XG4gICAgICB2ZXJzaW9uOiBcIjEuMi4zK2FzZDEyMzRcIixcbiAgICB9XG4gICAgamVzdC5tb2NrKHBhY2thZ2VQYXRoLCAoKSA9PiB7XG4gICAgICByZXR1cm4gcGFja2FnZUpTT05cbiAgICB9KVxuXG4gICAgY29uc3QgZXhwZWN0ZWQgPSBcIjEuMi4zXCJcblxuICAgIGV4cGVjdChnZXRQYWNrYWdlVmVyc2lvbihwYWNrYWdlUGF0aCkpLnRvRXF1YWwoZXhwZWN0ZWQpXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgcmV0dXJuIHZlcnNpb24gd2l0aCBwcmVmaXggYnV0IHdpdGhvdXQgYnVpbGQgbWV0YWRhdGFcIiwgKCkgPT4ge1xuICAgIGNvbnN0IHBhY2thZ2VKU09OID0ge1xuICAgICAgdmVyc2lvbjogXCJ2MS4yLjMrYXNkMTIzNFwiLFxuICAgIH1cbiAgICBqZXN0Lm1vY2socGFja2FnZVBhdGgsICgpID0+IHtcbiAgICAgIHJldHVybiBwYWNrYWdlSlNPTlxuICAgIH0pXG5cbiAgICBjb25zdCBleHBlY3RlZCA9IFwidjEuMi4zXCJcblxuICAgIGV4cGVjdChnZXRQYWNrYWdlVmVyc2lvbihwYWNrYWdlUGF0aCkpLnRvRXF1YWwoZXhwZWN0ZWQpXG4gIH0pXG59KVxuIl19 \ No newline at end of file diff --git a/dist/hash.js b/dist/hash.js new file mode 100644 index 00000000..f17e61d3 --- /dev/null +++ b/dist/hash.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.hashFile = hashFile; +const crypto_1 = require("crypto"); +const fs_1 = require("fs"); +const bufferSize = 1024; +const buffer = Buffer.alloc(bufferSize); +function hashFile(filePath) { + const sha = (0, crypto_1.createHash)("sha256"); + const fileDescriptor = (0, fs_1.openSync)(filePath, "r"); + const size = (0, fs_1.statSync)(filePath).size; + let totalBytesRead = 0; + while (totalBytesRead < size) { + const bytesRead = (0, fs_1.readSync)(fileDescriptor, buffer, 0, Math.min(size - totalBytesRead, bufferSize), totalBytesRead); + if (bytesRead < bufferSize) { + sha.update(buffer.slice(0, bytesRead)); + } + else { + sha.update(buffer); + } + totalBytesRead += bytesRead; + } + (0, fs_1.closeSync)(fileDescriptor); + return sha.digest("hex"); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9oYXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0EsNEJBc0JDO0FBN0JELG1DQUFtQztBQUNuQywyQkFBNEQ7QUFFNUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFBO0FBRXZCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUE7QUFFdkMsU0FBZ0IsUUFBUSxDQUFDLFFBQWdCO0lBQ3ZDLE1BQU0sR0FBRyxHQUFHLElBQUEsbUJBQVUsRUFBQyxRQUFRLENBQUMsQ0FBQTtJQUNoQyxNQUFNLGNBQWMsR0FBRyxJQUFBLGFBQVEsRUFBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDOUMsTUFBTSxJQUFJLEdBQUcsSUFBQSxhQUFRLEVBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFBO0lBQ3BDLElBQUksY0FBYyxHQUFHLENBQUMsQ0FBQTtJQUN0QixPQUFPLGNBQWMsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUM3QixNQUFNLFNBQVMsR0FBRyxJQUFBLGFBQVEsRUFDeEIsY0FBYyxFQUNkLE1BQU0sRUFDTixDQUFDLEVBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsY0FBYyxFQUFFLFVBQVUsQ0FBQyxFQUMzQyxjQUFjLENBQ2YsQ0FBQTtRQUNELElBQUksU0FBUyxHQUFHLFVBQVUsRUFBRSxDQUFDO1lBQzNCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQTtRQUN4QyxDQUFDO2FBQU0sQ0FBQztZQUNOLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDcEIsQ0FBQztRQUNELGNBQWMsSUFBSSxTQUFTLENBQUE7SUFDN0IsQ0FBQztJQUNELElBQUEsY0FBUyxFQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQ3pCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUMxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gXCJjcnlwdG9cIlxuaW1wb3J0IHsgb3BlblN5bmMsIHJlYWRTeW5jLCBjbG9zZVN5bmMsIHN0YXRTeW5jIH0gZnJvbSBcImZzXCJcblxuY29uc3QgYnVmZmVyU2l6ZSA9IDEwMjRcblxuY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKGJ1ZmZlclNpemUpXG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNoRmlsZShmaWxlUGF0aDogc3RyaW5nKSB7XG4gIGNvbnN0IHNoYSA9IGNyZWF0ZUhhc2goXCJzaGEyNTZcIilcbiAgY29uc3QgZmlsZURlc2NyaXB0b3IgPSBvcGVuU3luYyhmaWxlUGF0aCwgXCJyXCIpXG4gIGNvbnN0IHNpemUgPSBzdGF0U3luYyhmaWxlUGF0aCkuc2l6ZVxuICBsZXQgdG90YWxCeXRlc1JlYWQgPSAwXG4gIHdoaWxlICh0b3RhbEJ5dGVzUmVhZCA8IHNpemUpIHtcbiAgICBjb25zdCBieXRlc1JlYWQgPSByZWFkU3luYyhcbiAgICAgIGZpbGVEZXNjcmlwdG9yLFxuICAgICAgYnVmZmVyLFxuICAgICAgMCxcbiAgICAgIE1hdGgubWluKHNpemUgLSB0b3RhbEJ5dGVzUmVhZCwgYnVmZmVyU2l6ZSksXG4gICAgICB0b3RhbEJ5dGVzUmVhZCxcbiAgICApXG4gICAgaWYgKGJ5dGVzUmVhZCA8IGJ1ZmZlclNpemUpIHtcbiAgICAgIHNoYS51cGRhdGUoYnVmZmVyLnNsaWNlKDAsIGJ5dGVzUmVhZCkpXG4gICAgfSBlbHNlIHtcbiAgICAgIHNoYS51cGRhdGUoYnVmZmVyKVxuICAgIH1cbiAgICB0b3RhbEJ5dGVzUmVhZCArPSBieXRlc1JlYWRcbiAgfVxuICBjbG9zZVN5bmMoZmlsZURlc2NyaXB0b3IpXG4gIHJldHVybiBzaGEuZGlnZXN0KFwiaGV4XCIpXG59XG4iXX0= \ No newline at end of file diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 00000000..fd279cce --- /dev/null +++ b/dist/index.js @@ -0,0 +1,201 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const chalk_1 = __importDefault(require("chalk")); +const process_1 = __importDefault(require("process")); +const minimist_1 = __importDefault(require("minimist")); +const applyPatches_1 = require("./applyPatches"); +const getAppRootPath_1 = require("./getAppRootPath"); +const makePatch_1 = require("./makePatch"); +const makeRegExp_1 = require("./makeRegExp"); +const detectPackageManager_1 = require("./detectPackageManager"); +const path_1 = require("./path"); +const path_2 = require("path"); +const slash = require("slash"); +const ci_info_1 = require("ci-info"); +const rebase_1 = require("./rebase"); +const appPath = (0, getAppRootPath_1.getAppRootPath)(); +const argv = (0, minimist_1.default)(process_1.default.argv.slice(2), { + boolean: [ + "use-yarn", + "case-sensitive-path-filtering", + "reverse", + "help", + "version", + "error-on-fail", + "error-on-warn", + "create-issue", + "partial", + "", + ], + string: ["patch-dir", "append", "rebase"], +}); +const packageNames = argv._; +console.log(chalk_1.default.bold("patch-package"), +// tslint:disable-next-line:no-var-requires +require((0, path_1.join)(__dirname, "../package.json")).version); +if (argv.version || argv.v) { + // noop +} +else if (argv.help || argv.h) { + printHelp(); +} +else { + const patchDir = slash((0, path_2.normalize)((argv["patch-dir"] || "patches") + path_2.sep)); + if (patchDir.startsWith("/")) { + throw new Error("--patch-dir must be a relative path"); + } + if ("rebase" in argv) { + if (!argv.rebase) { + console.log(chalk_1.default.red("You must specify a patch file name or number when rebasing patches")); + process_1.default.exit(1); + } + if (packageNames.length !== 1) { + console.log(chalk_1.default.red("You must specify exactly one package name when rebasing patches")); + process_1.default.exit(1); + } + (0, rebase_1.rebase)({ + appPath, + packagePathSpecifier: packageNames[0], + patchDir, + targetPatch: argv.rebase, + }); + } + else if (packageNames.length) { + const includePaths = (0, makeRegExp_1.makeRegExp)(argv.include, "include", /.*/, argv["case-sensitive-path-filtering"]); + const excludePaths = (0, makeRegExp_1.makeRegExp)(argv.exclude, "exclude", /^package\.json$/, argv["case-sensitive-path-filtering"]); + const packageManager = (0, detectPackageManager_1.detectPackageManager)(appPath, argv["use-yarn"] ? "yarn" : null); + const createIssue = argv["create-issue"]; + packageNames.forEach((packagePathSpecifier) => { + (0, makePatch_1.makePatch)({ + packagePathSpecifier, + appPath, + packageManager, + includePaths, + excludePaths, + patchDir, + createIssue, + mode: "append" in argv + ? { type: "append", name: argv.append || undefined } + : { type: "overwrite_last" }, + }); + }); + } + else { + console.log("Applying patches..."); + const reverse = !!argv["reverse"]; + // don't want to exit(1) on postinstall locally. + // see https://github.com/ds300/patch-package/issues/86 + const shouldExitWithError = !!argv["error-on-fail"] || + (process_1.default.env.NODE_ENV === "production" && ci_info_1.isCI) || + (ci_info_1.isCI && !process_1.default.env.PATCH_PACKAGE_INTEGRATION_TEST) || + process_1.default.env.NODE_ENV === "test"; + const shouldExitWithWarning = !!argv["error-on-warn"]; + (0, applyPatches_1.applyPatchesForApp)({ + appPath, + reverse, + patchDir, + shouldExitWithError, + shouldExitWithWarning, + bestEffort: argv.partial, + }); + } +} +function printHelp() { + console.log(` +Usage: + + 1. Patching packages + ==================== + + ${chalk_1.default.bold("patch-package")} + + Without arguments, the ${chalk_1.default.bold("patch-package")} command will attempt to find and apply + patch files to your project. It looks for files named like + + ./patches/+.patch + + Options: + + ${chalk_1.default.bold("--patch-dir ")} + + Specify the name for the directory in which the patch files are located. + + ${chalk_1.default.bold("--error-on-fail")} + + Forces patch-package to exit with code 1 after failing. + + When running locally patch-package always exits with 0 by default. + This happens even after failing to apply patches because otherwise + yarn.lock and package.json might get out of sync with node_modules, + which can be very confusing. + + --error-on-fail is ${chalk_1.default.bold("switched on")} by default on CI. + + See https://github.com/ds300/patch-package/issues/86 for background. + + ${chalk_1.default.bold("--error-on-warn")} + + Forces patch-package to exit with code 1 after warning. + + See https://github.com/ds300/patch-package/issues/314 for background. + + ${chalk_1.default.bold("--reverse")} + + Un-applies all patches. + + Note that this will fail if the patched files have changed since being + patched. In that case, you'll probably need to re-install 'node_modules'. + + This option was added to help people using CircleCI avoid an issue around caching + and patch file updates (https://github.com/ds300/patch-package/issues/37), + but might be useful in other contexts too. + + + 2. Creating patch files + ======================= + + ${chalk_1.default.bold("patch-package")} ${chalk_1.default.italic("[ ]")} + + When given package names as arguments, patch-package will create patch files + based on any changes you've made to the versions installed by yarn/npm. + + Options: + + ${chalk_1.default.bold("--create-issue")} + + For packages whose source is hosted on GitHub this option opens a web + browser with a draft issue based on your diff. + + ${chalk_1.default.bold("--use-yarn")} + + By default, patch-package checks whether you use npm or yarn based on + which lockfile you have. If you have both, it uses npm by default. + Set this option to override that default and always use yarn. + + ${chalk_1.default.bold("--exclude ")} + + Ignore paths matching the regexp when creating patch files. + Paths are relative to the root dir of the package to be patched. + + Default: 'package\\.json$' + + ${chalk_1.default.bold("--include ")} + + Only consider paths matching the regexp when creating patch files. + Paths are relative to the root dir of the package to be patched. + + Default '.*' + + ${chalk_1.default.bold("--case-sensitive-path-filtering")} + + Make regexps used in --include or --exclude filters case-sensitive. + + ${chalk_1.default.bold("--patch-dir")} + + Specify the name for the directory in which to put the patch files. +`); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrREFBeUI7QUFDekIsc0RBQTZCO0FBQzdCLHdEQUErQjtBQUUvQixpREFBbUQ7QUFDbkQscURBQWlEO0FBQ2pELDJDQUF1QztBQUN2Qyw2Q0FBeUM7QUFDekMsaUVBQTZEO0FBQzdELGlDQUE2QjtBQUM3QiwrQkFBcUM7QUFDckMsK0JBQStCO0FBQy9CLHFDQUE4QjtBQUM5QixxQ0FBaUM7QUFFakMsTUFBTSxPQUFPLEdBQUcsSUFBQSwrQkFBYyxHQUFFLENBQUE7QUFDaEMsTUFBTSxJQUFJLEdBQUcsSUFBQSxrQkFBUSxFQUFDLGlCQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtJQUMzQyxPQUFPLEVBQUU7UUFDUCxVQUFVO1FBQ1YsK0JBQStCO1FBQy9CLFNBQVM7UUFDVCxNQUFNO1FBQ04sU0FBUztRQUNULGVBQWU7UUFDZixlQUFlO1FBQ2YsY0FBYztRQUNkLFNBQVM7UUFDVCxFQUFFO0tBQ0g7SUFDRCxNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQztDQUMxQyxDQUFDLENBQUE7QUFDRixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFBO0FBRTNCLE9BQU8sQ0FBQyxHQUFHLENBQ1QsZUFBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7QUFDM0IsMkNBQTJDO0FBQzNDLE9BQU8sQ0FBQyxJQUFBLFdBQUksRUFBQyxTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDcEQsQ0FBQTtBQUVELElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDM0IsT0FBTztBQUNULENBQUM7S0FBTSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsRUFB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QUFLLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxDQUFDOzs7O01BSTdDLGVBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDOzs7Q0FHOUIsQ0FBQyxDQUFBO0FBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjaGFsayBmcm9tIFwiY2hhbGtcIlxuaW1wb3J0IHByb2Nlc3MgZnJvbSBcInByb2Nlc3NcIlxuaW1wb3J0IG1pbmltaXN0IGZyb20gXCJtaW5pbWlzdFwiXG5cbmltcG9ydCB7IGFwcGx5UGF0Y2hlc0ZvckFwcCB9IGZyb20gXCIuL2FwcGx5UGF0Y2hlc1wiXG5pbXBvcnQgeyBnZXRBcHBSb290UGF0aCB9IGZyb20gXCIuL2dldEFwcFJvb3RQYXRoXCJcbmltcG9ydCB7IG1ha2VQYXRjaCB9IGZyb20gXCIuL21ha2VQYXRjaFwiXG5pbXBvcnQgeyBtYWtlUmVnRXhwIH0gZnJvbSBcIi4vbWFrZVJlZ0V4cFwiXG5pbXBvcnQgeyBkZXRlY3RQYWNrYWdlTWFuYWdlciB9IGZyb20gXCIuL2RldGVjdFBhY2thZ2VNYW5hZ2VyXCJcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwiLi9wYXRoXCJcbmltcG9ydCB7IG5vcm1hbGl6ZSwgc2VwIH0gZnJvbSBcInBhdGhcIlxuaW1wb3J0IHNsYXNoID0gcmVxdWlyZShcInNsYXNoXCIpXG5pbXBvcnQgeyBpc0NJIH0gZnJvbSBcImNpLWluZm9cIlxuaW1wb3J0IHsgcmViYXNlIH0gZnJvbSBcIi4vcmViYXNlXCJcblxuY29uc3QgYXBwUGF0aCA9IGdldEFwcFJvb3RQYXRoKClcbmNvbnN0IGFyZ3YgPSBtaW5pbWlzdChwcm9jZXNzLmFyZ3Yuc2xpY2UoMiksIHtcbiAgYm9vbGVhbjogW1xuICAgIFwidXNlLXlhcm5cIixcbiAgICBcImNhc2Utc2Vuc2l0aXZlLXBhdGgtZmlsdGVyaW5nXCIsXG4gICAgXCJyZXZlcnNlXCIsXG4gICAgXCJoZWxwXCIsXG4gICAgXCJ2ZXJzaW9uXCIsXG4gICAgXCJlcnJvci1vbi1mYWlsXCIsXG4gICAgXCJlcnJvci1vbi13YXJuXCIsXG4gICAgXCJjcmVhdGUtaXNzdWVcIixcbiAgICBcInBhcnRpYWxcIixcbiAgICBcIlwiLFxuICBdLFxuICBzdHJpbmc6IFtcInBhdGNoLWRpclwiLCBcImFwcGVuZFwiLCBcInJlYmFzZVwiXSxcbn0pXG5jb25zdCBwYWNrYWdlTmFtZXMgPSBhcmd2Ll9cblxuY29uc29sZS5sb2coXG4gIGNoYWxrLmJvbGQoXCJwYXRjaC1wYWNrYWdlXCIpLFxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tdmFyLXJlcXVpcmVzXG4gIHJlcXVpcmUoam9pbihfX2Rpcm5hbWUsIFwiLi4vcGFja2FnZS5qc29uXCIpKS52ZXJzaW9uLFxuKVxuXG5pZiAoYXJndi52ZXJzaW9uIHx8IGFyZ3Yudikge1xuICAvLyBub29wXG59IGVsc2UgaWYgKGFyZ3YuaGVscCB8fCBhcmd2LmgpIHtcbiAgcHJpbnRIZWxwKClcbn0gZWxzZSB7XG4gIGNvbnN0IHBhdGNoRGlyID0gc2xhc2gobm9ybWFsaXplKChhcmd2W1wicGF0Y2gtZGlyXCJdIHx8IFwicGF0Y2hlc1wiKSArIHNlcCkpXG4gIGlmIChwYXRjaERpci5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIi0tcGF0Y2gtZGlyIG11c3QgYmUgYSByZWxhdGl2ZSBwYXRoXCIpXG4gIH1cbiAgaWYgKFwicmViYXNlXCIgaW4gYXJndikge1xuICAgIGlmICghYXJndi5yZWJhc2UpIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBjaGFsay5yZWQoXG4gICAgICAgICAgXCJZb3UgbXVzdCBzcGVjaWZ5IGEgcGF0Y2ggZmlsZSBuYW1lIG9yIG51bWJlciB3aGVuIHJlYmFzaW5nIHBhdGNoZXNcIixcbiAgICAgICAgKSxcbiAgICAgIClcbiAgICAgIHByb2Nlc3MuZXhpdCgxKVxuICAgIH1cbiAgICBpZiAocGFja2FnZU5hbWVzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGNoYWxrLnJlZChcbiAgICAgICAgICBcIllvdSBtdXN0IHNwZWNpZnkgZXhhY3RseSBvbmUgcGFja2FnZSBuYW1lIHdoZW4gcmViYXNpbmcgcGF0Y2hlc1wiLFxuICAgICAgICApLFxuICAgICAgKVxuICAgICAgcHJvY2Vzcy5leGl0KDEpXG4gICAgfVxuICAgIHJlYmFzZSh7XG4gICAgICBhcHBQYXRoLFxuICAgICAgcGFja2FnZVBhdGhTcGVjaWZpZXI6IHBhY2thZ2VOYW1lc1swXSxcbiAgICAgIHBhdGNoRGlyLFxuICAgICAgdGFyZ2V0UGF0Y2g6IGFyZ3YucmViYXNlLFxuICAgIH0pXG4gIH0gZWxzZSBpZiAocGFja2FnZU5hbWVzLmxlbmd0aCkge1xuICAgIGNvbnN0IGluY2x1ZGVQYXRocyA9IG1ha2VSZWdFeHAoXG4gICAgICBhcmd2LmluY2x1ZGUsXG4gICAgICBcImluY2x1ZGVcIixcbiAgICAgIC8uKi8sXG4gICAgICBhcmd2W1wiY2FzZS1zZW5zaXRpdmUtcGF0aC1maWx0ZXJpbmdcIl0sXG4gICAgKVxuICAgIGNvbnN0IGV4Y2x1ZGVQYXRocyA9IG1ha2VSZWdFeHAoXG4gICAgICBhcmd2LmV4Y2x1ZGUsXG4gICAgICBcImV4Y2x1ZGVcIixcbiAgICAgIC9ecGFja2FnZVxcLmpzb24kLyxcbiAgICAgIGFyZ3ZbXCJjYXNlLXNlbnNpdGl2ZS1wYXRoLWZpbHRlcmluZ1wiXSxcbiAgICApXG4gICAgY29uc3QgcGFja2FnZU1hbmFnZXIgPSBkZXRlY3RQYWNrYWdlTWFuYWdlcihcbiAgICAgIGFwcFBhdGgsXG4gICAgICBhcmd2W1widXNlLXlhcm5cIl0gPyBcInlhcm5cIiA6IG51bGwsXG4gICAgKVxuICAgIGNvbnN0IGNyZWF0ZUlzc3VlID0gYXJndltcImNyZWF0ZS1pc3N1ZVwiXVxuICAgIHBhY2thZ2VOYW1lcy5mb3JFYWNoKChwYWNrYWdlUGF0aFNwZWNpZmllcjogc3RyaW5nKSA9PiB7XG4gICAgICBtYWtlUGF0Y2goe1xuICAgICAgICBwYWNrYWdlUGF0aFNwZWNpZmllcixcbiAgICAgICAgYXBwUGF0aCxcbiAgICAgICAgcGFja2FnZU1hbmFnZXIsXG4gICAgICAgIGluY2x1ZGVQYXRocyxcbiAgICAgICAgZXhjbHVkZVBhdGhzLFxuICAgICAgICBwYXRjaERpcixcbiAgICAgICAgY3JlYXRlSXNzdWUsXG4gICAgICAgIG1vZGU6XG4gICAgICAgICAgXCJhcHBlbmRcIiBpbiBhcmd2XG4gICAgICAgICAgICA/IHsgdHlwZTogXCJhcHBlbmRcIiwgbmFtZTogYXJndi5hcHBlbmQgfHwgdW5kZWZpbmVkIH1cbiAgICAgICAgICAgIDogeyB0eXBlOiBcIm92ZXJ3cml0ZV9sYXN0XCIgfSxcbiAgICAgIH0pXG4gICAgfSlcbiAgfSBlbHNlIHtcbiAgICBjb25zb2xlLmxvZyhcIkFwcGx5aW5nIHBhdGNoZXMuLi5cIilcbiAgICBjb25zdCByZXZlcnNlID0gISFhcmd2W1wicmV2ZXJzZVwiXVxuICAgIC8vIGRvbid0IHdhbnQgdG8gZXhpdCgxKSBvbiBwb3N0aW5zdGFsbCBsb2NhbGx5LlxuICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vZHMzMDAvcGF0Y2gtcGFja2FnZS9pc3N1ZXMvODZcbiAgICBjb25zdCBzaG91bGRFeGl0V2l0aEVycm9yID1cbiAgICAgICEhYXJndltcImVycm9yLW9uLWZhaWxcIl0gfHxcbiAgICAgIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgJiYgaXNDSSkgfHxcbiAgICAgIChpc0NJICYmICFwcm9jZXNzLmVudi5QQVRDSF9QQUNLQUdFX0lOVEVHUkFUSU9OX1RFU1QpIHx8XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJ0ZXN0XCJcblxuICAgIGNvbnN0IHNob3VsZEV4aXRXaXRoV2FybmluZyA9ICEhYXJndltcImVycm9yLW9uLXdhcm5cIl1cblxuICAgIGFwcGx5UGF0Y2hlc0ZvckFwcCh7XG4gICAgICBhcHBQYXRoLFxuICAgICAgcmV2ZXJzZSxcbiAgICAgIHBhdGNoRGlyLFxuICAgICAgc2hvdWxkRXhpdFdpdGhFcnJvcixcbiAgICAgIHNob3VsZEV4aXRXaXRoV2FybmluZyxcbiAgICAgIGJlc3RFZmZvcnQ6IGFyZ3YucGFydGlhbCxcbiAgICB9KVxuICB9XG59XG5cbmZ1bmN0aW9uIHByaW50SGVscCgpIHtcbiAgY29uc29sZS5sb2coYFxuVXNhZ2U6XG5cbiAgMS4gUGF0Y2hpbmcgcGFja2FnZXNcbiAgPT09PT09PT09PT09PT09PT09PT1cblxuICAgICR7Y2hhbGsuYm9sZChcInBhdGNoLXBhY2thZ2VcIil9XG5cbiAgV2l0aG91dCBhcmd1bWVudHMsIHRoZSAke2NoYWxrLmJvbGQoXG4gICAgXCJwYXRjaC1wYWNrYWdlXCIsXG4gICl9IGNvbW1hbmQgd2lsbCBhdHRlbXB0IHRvIGZpbmQgYW5kIGFwcGx5XG4gIHBhdGNoIGZpbGVzIHRvIHlvdXIgcHJvamVjdC4gSXQgbG9va3MgZm9yIGZpbGVzIG5hbWVkIGxpa2VcblxuICAgICAuL3BhdGNoZXMvPHBhY2thZ2UtbmFtZT4rPHZlcnNpb24+LnBhdGNoXG5cbiAgT3B0aW9uczpcblxuICAgICR7Y2hhbGsuYm9sZChcIi0tcGF0Y2gtZGlyIDxkaXJuYW1lPlwiKX1cblxuICAgICAgU3BlY2lmeSB0aGUgbmFtZSBmb3IgdGhlIGRpcmVjdG9yeSBpbiB3aGljaCB0aGUgcGF0Y2ggZmlsZXMgYXJlIGxvY2F0ZWQuXG4gICAgICBcbiAgICAke2NoYWxrLmJvbGQoXCItLWVycm9yLW9uLWZhaWxcIil9XG4gICAgXG4gICAgICBGb3JjZXMgcGF0Y2gtcGFja2FnZSB0byBleGl0IHdpdGggY29kZSAxIGFmdGVyIGZhaWxpbmcuXG4gICAgXG4gICAgICBXaGVuIHJ1bm5pbmcgbG9jYWxseSBwYXRjaC1wYWNrYWdlIGFsd2F5cyBleGl0cyB3aXRoIDAgYnkgZGVmYXVsdC5cbiAgICAgIFRoaXMgaGFwcGVucyBldmVuIGFmdGVyIGZhaWxpbmcgdG8gYXBwbHkgcGF0Y2hlcyBiZWNhdXNlIG90aGVyd2lzZSBcbiAgICAgIHlhcm4ubG9jayBhbmQgcGFja2FnZS5qc29uIG1pZ2h0IGdldCBvdXQgb2Ygc3luYyB3aXRoIG5vZGVfbW9kdWxlcyxcbiAgICAgIHdoaWNoIGNhbiBiZSB2ZXJ5IGNvbmZ1c2luZy5cbiAgICAgIFxuICAgICAgLS1lcnJvci1vbi1mYWlsIGlzICR7Y2hhbGsuYm9sZChcInN3aXRjaGVkIG9uXCIpfSBieSBkZWZhdWx0IG9uIENJLlxuICAgICAgXG4gICAgICBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2RzMzAwL3BhdGNoLXBhY2thZ2UvaXNzdWVzLzg2IGZvciBiYWNrZ3JvdW5kLlxuICAgICAgXG4gICAgJHtjaGFsay5ib2xkKFwiLS1lcnJvci1vbi13YXJuXCIpfVxuICAgIFxuICAgICAgRm9yY2VzIHBhdGNoLXBhY2thZ2UgdG8gZXhpdCB3aXRoIGNvZGUgMSBhZnRlciB3YXJuaW5nLlxuICAgICAgXG4gICAgICBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2RzMzAwL3BhdGNoLXBhY2thZ2UvaXNzdWVzLzMxNCBmb3IgYmFja2dyb3VuZC5cblxuICAgICR7Y2hhbGsuYm9sZChcIi0tcmV2ZXJzZVwiKX1cbiAgICAgICAgXG4gICAgICBVbi1hcHBsaWVzIGFsbCBwYXRjaGVzLlxuXG4gICAgICBOb3RlIHRoYXQgdGhpcyB3aWxsIGZhaWwgaWYgdGhlIHBhdGNoZWQgZmlsZXMgaGF2ZSBjaGFuZ2VkIHNpbmNlIGJlaW5nXG4gICAgICBwYXRjaGVkLiBJbiB0aGF0IGNhc2UsIHlvdSdsbCBwcm9iYWJseSBuZWVkIHRvIHJlLWluc3RhbGwgJ25vZGVfbW9kdWxlcycuXG5cbiAgICAgIFRoaXMgb3B0aW9uIHdhcyBhZGRlZCB0byBoZWxwIHBlb3BsZSB1c2luZyBDaXJjbGVDSSBhdm9pZCBhbiBpc3N1ZSBhcm91bmQgY2FjaGluZ1xuICAgICAgYW5kIHBhdGNoIGZpbGUgdXBkYXRlcyAoaHR0cHM6Ly9naXRodWIuY29tL2RzMzAwL3BhdGNoLXBhY2thZ2UvaXNzdWVzLzM3KSxcbiAgICAgIGJ1dCBtaWdodCBiZSB1c2VmdWwgaW4gb3RoZXIgY29udGV4dHMgdG9vLlxuICAgICAgXG5cbiAgMi4gQ3JlYXRpbmcgcGF0Y2ggZmlsZXNcbiAgPT09PT09PT09PT09PT09PT09PT09PT1cblxuICAgICR7Y2hhbGsuYm9sZChcInBhdGNoLXBhY2thZ2VcIil9IDxwYWNrYWdlLW5hbWU+JHtjaGFsay5pdGFsaWMoXG4gICAgXCJbIDxwYWNrYWdlLW5hbWU+XVwiLFxuICApfVxuXG4gIFdoZW4gZ2l2ZW4gcGFja2FnZSBuYW1lcyBhcyBhcmd1bWVudHMsIHBhdGNoLXBhY2thZ2Ugd2lsbCBjcmVhdGUgcGF0Y2ggZmlsZXNcbiAgYmFzZWQgb24gYW55IGNoYW5nZXMgeW91J3ZlIG1hZGUgdG8gdGhlIHZlcnNpb25zIGluc3RhbGxlZCBieSB5YXJuL25wbS5cblxuICBPcHRpb25zOlxuICBcbiAgICAke2NoYWxrLmJvbGQoXCItLWNyZWF0ZS1pc3N1ZVwiKX1cbiAgICBcbiAgICAgICBGb3IgcGFja2FnZXMgd2hvc2Ugc291cmNlIGlzIGhvc3RlZCBvbiBHaXRIdWIgdGhpcyBvcHRpb24gb3BlbnMgYSB3ZWJcbiAgICAgICBicm93c2VyIHdpdGggYSBkcmFmdCBpc3N1ZSBiYXNlZCBvbiB5b3VyIGRpZmYuXG5cbiAgICAke2NoYWxrLmJvbGQoXCItLXVzZS15YXJuXCIpfVxuXG4gICAgICAgIEJ5IGRlZmF1bHQsIHBhdGNoLXBhY2thZ2UgY2hlY2tzIHdoZXRoZXIgeW91IHVzZSBucG0gb3IgeWFybiBiYXNlZCBvblxuICAgICAgICB3aGljaCBsb2NrZmlsZSB5b3UgaGF2ZS4gSWYgeW91IGhhdmUgYm90aCwgaXQgdXNlcyBucG0gYnkgZGVmYXVsdC5cbiAgICAgICAgU2V0IHRoaXMgb3B0aW9uIHRvIG92ZXJyaWRlIHRoYXQgZGVmYXVsdCBhbmQgYWx3YXlzIHVzZSB5YXJuLlxuXG4gICAgJHtjaGFsay5ib2xkKFwiLS1leGNsdWRlIDxyZWdleHA+XCIpfVxuXG4gICAgICAgIElnbm9yZSBwYXRocyBtYXRjaGluZyB0aGUgcmVnZXhwIHdoZW4gY3JlYXRpbmcgcGF0Y2ggZmlsZXMuXG4gICAgICAgIFBhdGhzIGFyZSByZWxhdGl2ZSB0byB0aGUgcm9vdCBkaXIgb2YgdGhlIHBhY2thZ2UgdG8gYmUgcGF0Y2hlZC5cblxuICAgICAgICBEZWZhdWx0OiAncGFja2FnZVxcXFwuanNvbiQnXG5cbiAgICAke2NoYWxrLmJvbGQoXCItLWluY2x1ZGUgPHJlZ2V4cD5cIil9XG5cbiAgICAgICAgT25seSBjb25zaWRlciBwYXRocyBtYXRjaGluZyB0aGUgcmVnZXhwIHdoZW4gY3JlYXRpbmcgcGF0Y2ggZmlsZXMuXG4gICAgICAgIFBhdGhzIGFyZSByZWxhdGl2ZSB0byB0aGUgcm9vdCBkaXIgb2YgdGhlIHBhY2thZ2UgdG8gYmUgcGF0Y2hlZC5cblxuICAgICAgICBEZWZhdWx0ICcuKidcblxuICAgICR7Y2hhbGsuYm9sZChcIi0tY2FzZS1zZW5zaXRpdmUtcGF0aC1maWx0ZXJpbmdcIil9XG5cbiAgICAgICAgTWFrZSByZWdleHBzIHVzZWQgaW4gLS1pbmNsdWRlIG9yIC0tZXhjbHVkZSBmaWx0ZXJzIGNhc2Utc2Vuc2l0aXZlLlxuICAgIFxuICAgICR7Y2hhbGsuYm9sZChcIi0tcGF0Y2gtZGlyXCIpfVxuXG4gICAgICAgIFNwZWNpZnkgdGhlIG5hbWUgZm9yIHRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggdG8gcHV0IHRoZSBwYXRjaCBmaWxlcy5cbmApXG59XG4iXX0= \ No newline at end of file diff --git a/dist/makePatch.js b/dist/makePatch.js new file mode 100644 index 00000000..cf3ca3fe --- /dev/null +++ b/dist/makePatch.js @@ -0,0 +1,437 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.makePatch = makePatch; +exports.logPatchSequenceError = logPatchSequenceError; +const chalk_1 = __importDefault(require("chalk")); +const console_1 = __importDefault(require("console")); +const fs_1 = require("fs"); +const fs_extra_1 = require("fs-extra"); +const tmp_1 = require("tmp"); +const zlib_1 = require("zlib"); +const applyPatches_1 = require("./applyPatches"); +const createIssue_1 = require("./createIssue"); +const filterFiles_1 = require("./filterFiles"); +const getPackageResolution_1 = require("./getPackageResolution"); +const getPackageVersion_1 = require("./getPackageVersion"); +const hash_1 = require("./hash"); +const PackageDetails_1 = require("./PackageDetails"); +const parse_1 = require("./patch/parse"); +const patchFs_1 = require("./patchFs"); +const path_1 = require("./path"); +const resolveRelativeFileDependencies_1 = require("./resolveRelativeFileDependencies"); +const spawnSafe_1 = require("./spawnSafe"); +const stateFile_1 = require("./stateFile"); +function printNoPackageFoundError(packageName, packageJsonPath) { + console_1.default.log(`No such package ${packageName} + + File not found: ${packageJsonPath}`); +} +function makePatch({ packagePathSpecifier, appPath, packageManager, includePaths, excludePaths, patchDir, createIssue, mode, }) { + var _a, _b, _c, _d, _e; + const packageDetails = (0, PackageDetails_1.getPatchDetailsFromCliString)(packagePathSpecifier); + if (!packageDetails) { + console_1.default.log("No such package", packagePathSpecifier); + return; + } + const state = (0, stateFile_1.getPatchApplicationState)(packageDetails); + const isRebasing = (_a = state === null || state === void 0 ? void 0 : state.isRebasing) !== null && _a !== void 0 ? _a : false; + // If we are rebasing and no patches have been applied, --append is the only valid option because + // there are no previous patches to overwrite/update + if (isRebasing && + (state === null || state === void 0 ? void 0 : state.patches.filter((p) => p.didApply).length) === 0 && + mode.type === "overwrite_last") { + mode = { type: "append", name: "initial" }; + } + if (isRebasing && state) { + (0, stateFile_1.verifyAppliedPatches)({ appPath, patchDir, state }); + } + if (mode.type === "overwrite_last" && + isRebasing && + (state === null || state === void 0 ? void 0 : state.patches.length) === 0) { + mode = { type: "append", name: "initial" }; + } + const existingPatches = (0, patchFs_1.getGroupedPatches)(patchDir).pathSpecifierToPatchFiles[packageDetails.pathSpecifier] || []; + // apply all existing patches if appending + // otherwise apply all but the last + const previouslyAppliedPatches = state === null || state === void 0 ? void 0 : state.patches.filter((p) => p.didApply); + const patchesToApplyBeforeDiffing = isRebasing + ? mode.type === "append" + ? existingPatches.slice(0, previouslyAppliedPatches.length) + : state.patches[state.patches.length - 1].didApply + ? existingPatches.slice(0, previouslyAppliedPatches.length - 1) + : existingPatches.slice(0, previouslyAppliedPatches.length) + : mode.type === "append" + ? existingPatches + : existingPatches.slice(0, -1); + if (createIssue && mode.type === "append") { + console_1.default.log("--create-issue is not compatible with --append."); + process.exit(1); + } + if (createIssue && isRebasing) { + console_1.default.log("--create-issue is not compatible with rebasing."); + process.exit(1); + } + const numPatchesAfterCreate = mode.type === "append" || existingPatches.length === 0 + ? existingPatches.length + 1 + : existingPatches.length; + const vcs = (0, createIssue_1.getPackageVCSDetails)(packageDetails); + const canCreateIssue = !isRebasing && + (0, createIssue_1.shouldRecommendIssue)(vcs) && + numPatchesAfterCreate === 1 && + mode.type !== "append"; + const appPackageJson = require((0, path_1.join)(appPath, "package.json")); + const packagePath = (0, path_1.join)(appPath, packageDetails.path); + const packageJsonPath = (0, path_1.join)(packagePath, "package.json"); + if (!(0, fs_extra_1.existsSync)(packageJsonPath)) { + printNoPackageFoundError(packagePathSpecifier, packageJsonPath); + process.exit(1); + } + const tmpRepo = (0, tmp_1.dirSync)({ unsafeCleanup: true }); + const tmpRepoPackagePath = (0, path_1.join)(tmpRepo.name, packageDetails.path); + const tmpRepoNpmRoot = tmpRepoPackagePath.slice(0, -`/node_modules/${packageDetails.name}`.length); + const tmpRepoPackageJsonPath = (0, path_1.join)(tmpRepoNpmRoot, "package.json"); + try { + const patchesDir = (0, path_1.resolve)((0, path_1.join)(appPath, patchDir)); + console_1.default.info(chalk_1.default.grey("•"), "Creating temporary folder"); + // make a blank package.json + (0, fs_extra_1.mkdirpSync)(tmpRepoNpmRoot); + (0, fs_extra_1.writeFileSync)(tmpRepoPackageJsonPath, JSON.stringify({ + dependencies: { + [packageDetails.name]: (0, getPackageResolution_1.getPackageResolution)({ + packageDetails, + packageManager, + appPath, + }), + }, + resolutions: (0, resolveRelativeFileDependencies_1.resolveRelativeFileDependencies)(appPath, appPackageJson.resolutions || {}), + })); + const packageVersion = (0, getPackageVersion_1.getPackageVersion)((0, path_1.join)((0, path_1.resolve)(packageDetails.path), "package.json")); + [".npmrc", ".yarnrc", ".yarn"].forEach((rcFile) => { + const rcPath = (0, path_1.join)(appPath, rcFile); + if ((0, fs_extra_1.existsSync)(rcPath)) { + (0, fs_extra_1.copySync)(rcPath, (0, path_1.join)(tmpRepo.name, rcFile), { dereference: true }); + } + }); + if (packageManager === "yarn") { + console_1.default.info(chalk_1.default.grey("•"), `Installing ${packageDetails.name}@${packageVersion} with yarn`); + try { + // try first without ignoring scripts in case they are required + // this works in 99.99% of cases + (0, spawnSafe_1.spawnSafeSync)(`yarn`, ["install", "--ignore-engines"], { + cwd: tmpRepoNpmRoot, + logStdErrOnError: false, + }); + } + catch (e) { + // try again while ignoring scripts in case the script depends on + // an implicit context which we haven't reproduced + (0, spawnSafe_1.spawnSafeSync)(`yarn`, ["install", "--ignore-engines", "--ignore-scripts"], { + cwd: tmpRepoNpmRoot, + }); + } + } + else { + console_1.default.info(chalk_1.default.grey("•"), `Installing ${packageDetails.name}@${packageVersion} with npm`); + try { + // try first without ignoring scripts in case they are required + // this works in 99.99% of cases + (0, spawnSafe_1.spawnSafeSync)(`npm`, ["i", "--force"], { + cwd: tmpRepoNpmRoot, + logStdErrOnError: false, + stdio: "ignore", + }); + } + catch (e) { + // try again while ignoring scripts in case the script depends on + // an implicit context which we haven't reproduced + (0, spawnSafe_1.spawnSafeSync)(`npm`, ["i", "--ignore-scripts", "--force"], { + cwd: tmpRepoNpmRoot, + stdio: "ignore", + }); + } + } + const git = (...args) => (0, spawnSafe_1.spawnSafeSync)("git", args, { + cwd: tmpRepo.name, + env: Object.assign(Object.assign({}, process.env), { HOME: tmpRepo.name }), + maxBuffer: 1024 * 1024 * 100, + }); + // remove nested node_modules just to be safe + (0, fs_extra_1.removeSync)((0, path_1.join)(tmpRepoPackagePath, "node_modules")); + // remove .git just to be safe + (0, fs_extra_1.removeSync)((0, path_1.join)(tmpRepoPackagePath, ".git")); + // remove patch-package state file + (0, fs_extra_1.removeSync)((0, path_1.join)(tmpRepoPackagePath, stateFile_1.STATE_FILE_NAME)); + // commit the package + console_1.default.info(chalk_1.default.grey("•"), "Diffing your files with clean files"); + (0, fs_extra_1.writeFileSync)((0, path_1.join)(tmpRepo.name, ".gitignore"), "!/node_modules\n\n"); + git("init"); + git("config", "--local", "user.name", "patch-package"); + git("config", "--local", "user.email", "patch@pack.age"); + // remove ignored files first + (0, filterFiles_1.removeIgnoredFiles)(tmpRepoPackagePath, includePaths, excludePaths); + for (const patchDetails of patchesToApplyBeforeDiffing) { + if (!(0, applyPatches_1.applyPatch)({ + patchDetails, + patchDir, + patchFilePath: (0, path_1.join)(appPath, patchDir, patchDetails.patchFilename), + reverse: false, + cwd: tmpRepo.name, + bestEffort: false, + })) { + // TODO: add better error message once --rebase is implemented + console_1.default.log(`Failed to apply patch ${patchDetails.patchFilename} to ${packageDetails.pathSpecifier}`); + process.exit(1); + } + } + git("add", "-f", packageDetails.path); + git("commit", "--allow-empty", "-m", "init"); + // replace package with user's version + (0, fs_extra_1.removeSync)(tmpRepoPackagePath); + // pnpm installs packages as symlinks, copySync would copy only the symlink + (0, fs_extra_1.copySync)((0, fs_extra_1.realpathSync)(packagePath), tmpRepoPackagePath); + // remove nested node_modules just to be safe + (0, fs_extra_1.removeSync)((0, path_1.join)(tmpRepoPackagePath, "node_modules")); + // remove .git just to be safe + (0, fs_extra_1.removeSync)((0, path_1.join)(tmpRepoPackagePath, ".git")); + // remove patch-package state file + (0, fs_extra_1.removeSync)((0, path_1.join)(tmpRepoPackagePath, stateFile_1.STATE_FILE_NAME)); + // also remove ignored files like before + (0, filterFiles_1.removeIgnoredFiles)(tmpRepoPackagePath, includePaths, excludePaths); + // stage all files + git("add", "-f", packageDetails.path); + // get diff of changes + const diffResult = git("diff", "--cached", "--no-color", "--ignore-space-at-eol", "--no-ext-diff", "--src-prefix=a/", "--dst-prefix=b/"); + if (diffResult.stdout.length === 0) { + console_1.default.log(`⁉️ Not creating patch file for package '${packagePathSpecifier}'`); + console_1.default.log(`⁉️ There don't appear to be any changes.`); + if (isRebasing && mode.type === "overwrite_last") { + console_1.default.log("\n💡 To remove a patch file, delete it and then reinstall node_modules from scratch."); + } + process.exit(1); + return; + } + try { + (0, parse_1.parsePatchFile)(diffResult.stdout.toString()); + } + catch (e) { + if (e.message.includes("Unexpected file mode string: 120000")) { + console_1.default.log(` +⛔️ ${chalk_1.default.red.bold("ERROR")} + + Your changes involve creating symlinks. patch-package does not yet support + symlinks. + + ️Please use ${chalk_1.default.bold("--include")} and/or ${chalk_1.default.bold("--exclude")} to narrow the scope of your patch if + this was unintentional. +`); + } + else { + const outPath = "./patch-package-error.json.gz"; + (0, fs_extra_1.writeFileSync)(outPath, (0, zlib_1.gzipSync)(JSON.stringify({ + error: { + message: e instanceof Error ? e.message : String(e), + stack: e instanceof Error ? e.stack : "", + }, + patch: diffResult.stdout.toString(), + }))); + console_1.default.log(` +⛔️ ${chalk_1.default.red.bold("ERROR")} + + patch-package was unable to read the patch-file made by git. This should not + happen. + + A diagnostic file was written to + + ${outPath} + + Please attach it to a github issue + + https://github.com/ds300/patch-package/issues/new?title=New+patch+parse+failed&body=Please+attach+the+diagnostic+file+by+dragging+it+into+here+🙏 + + Note that this diagnostic file will contain code from the package you were + attempting to patch. + +`); + } + process.exit(1); + return; + } + // maybe delete existing + if (mode.type === "append" && !isRebasing && existingPatches.length === 1) { + // if we are appending to an existing patch that doesn't have a sequence number let's rename it + const prevPatch = existingPatches[0]; + if (prevPatch.sequenceNumber === undefined) { + const newFileName = createPatchFileName({ + packageDetails, + packageVersion, + sequenceNumber: 1, + sequenceName: (_b = prevPatch.sequenceName) !== null && _b !== void 0 ? _b : "initial", + }); + const oldPath = (0, path_1.join)(appPath, patchDir, prevPatch.patchFilename); + const newPath = (0, path_1.join)(appPath, patchDir, newFileName); + (0, fs_1.renameSync)(oldPath, newPath); + prevPatch.sequenceNumber = 1; + prevPatch.patchFilename = newFileName; + prevPatch.sequenceName = (_c = prevPatch.sequenceName) !== null && _c !== void 0 ? _c : "initial"; + } + } + const lastPatch = existingPatches[state ? state.patches.length - 1 : existingPatches.length - 1]; + const sequenceName = mode.type === "append" ? mode.name : lastPatch === null || lastPatch === void 0 ? void 0 : lastPatch.sequenceName; + const sequenceNumber = mode.type === "append" + ? ((_d = lastPatch === null || lastPatch === void 0 ? void 0 : lastPatch.sequenceNumber) !== null && _d !== void 0 ? _d : 0) + 1 + : lastPatch === null || lastPatch === void 0 ? void 0 : lastPatch.sequenceNumber; + const patchFileName = createPatchFileName({ + packageDetails, + packageVersion, + sequenceName, + sequenceNumber, + }); + const patchPath = (0, path_1.join)(patchesDir, patchFileName); + if (!(0, fs_extra_1.existsSync)((0, path_1.dirname)(patchPath))) { + // scoped package + (0, fs_extra_1.mkdirSync)((0, path_1.dirname)(patchPath)); + } + // if we are inserting a new patch into a sequence we most likely need to update the sequence numbers + if (isRebasing && mode.type === "append") { + const patchesToNudge = existingPatches.slice(state.patches.length); + if (sequenceNumber === undefined) { + throw new Error("sequenceNumber is undefined while rebasing"); + } + if (((_e = patchesToNudge[0]) === null || _e === void 0 ? void 0 : _e.sequenceNumber) !== undefined && + patchesToNudge[0].sequenceNumber <= sequenceNumber) { + let next = sequenceNumber + 1; + for (const p of patchesToNudge) { + const newName = createPatchFileName({ + packageDetails, + packageVersion, + sequenceName: p.sequenceName, + sequenceNumber: next++, + }); + console_1.default.log("Renaming", chalk_1.default.bold(p.patchFilename), "to", chalk_1.default.bold(newName)); + const oldPath = (0, path_1.join)(appPath, patchDir, p.patchFilename); + const newPath = (0, path_1.join)(appPath, patchDir, newName); + (0, fs_1.renameSync)(oldPath, newPath); + } + } + } + (0, fs_extra_1.writeFileSync)(patchPath, diffResult.stdout); + console_1.default.log(`${chalk_1.default.green("✔")} Created file ${(0, path_1.join)(patchDir, patchFileName)}\n`); + const prevState = patchesToApplyBeforeDiffing.map((p) => ({ + patchFilename: p.patchFilename, + didApply: true, + patchContentHash: (0, hash_1.hashFile)((0, path_1.join)(appPath, patchDir, p.patchFilename)), + })); + const nextState = [ + ...prevState, + { + patchFilename: patchFileName, + didApply: true, + patchContentHash: (0, hash_1.hashFile)(patchPath), + }, + ]; + // if any patches come after this one we just made, we should reapply them + let didFailWhileFinishingRebase = false; + if (isRebasing) { + const currentPatches = (0, patchFs_1.getGroupedPatches)((0, path_1.join)(appPath, patchDir)) + .pathSpecifierToPatchFiles[packageDetails.pathSpecifier]; + const previouslyUnappliedPatches = currentPatches.slice(nextState.length); + if (previouslyUnappliedPatches.length) { + console_1.default.log(`Fast forwarding...`); + for (const patch of previouslyUnappliedPatches) { + const patchFilePath = (0, path_1.join)(appPath, patchDir, patch.patchFilename); + if (!(0, applyPatches_1.applyPatch)({ + patchDetails: patch, + patchDir, + patchFilePath, + reverse: false, + cwd: process.cwd(), + bestEffort: false, + })) { + didFailWhileFinishingRebase = true; + logPatchSequenceError({ patchDetails: patch }); + nextState.push({ + patchFilename: patch.patchFilename, + didApply: false, + patchContentHash: (0, hash_1.hashFile)(patchFilePath), + }); + break; + } + else { + console_1.default.log(` ${chalk_1.default.green("✔")} ${patch.patchFilename}`); + nextState.push({ + patchFilename: patch.patchFilename, + didApply: true, + patchContentHash: (0, hash_1.hashFile)(patchFilePath), + }); + } + } + } + } + if (isRebasing || numPatchesAfterCreate > 1) { + (0, stateFile_1.savePatchApplicationState)({ + packageDetails, + patches: nextState, + isRebasing: didFailWhileFinishingRebase, + }); + } + else { + (0, stateFile_1.clearPatchApplicationState)(packageDetails); + } + if (canCreateIssue) { + if (createIssue) { + (0, createIssue_1.openIssueCreationLink)({ + packageDetails, + patchFileContents: diffResult.stdout.toString(), + packageVersion, + patchPath, + }); + } + else { + (0, createIssue_1.maybePrintIssueCreationPrompt)(vcs, packageDetails, packageManager); + } + } + } + catch (e) { + console_1.default.log(e); + throw e; + } + finally { + tmpRepo.removeCallback(); + } +} +function createPatchFileName({ packageDetails, packageVersion, sequenceNumber, sequenceName, }) { + const packageNames = packageDetails.packageNames + .map((name) => name.replace(/\//g, "+")) + .join("++"); + const nameAndVersion = `${packageNames}+${packageVersion}`; + const num = sequenceNumber === undefined + ? "" + : `+${sequenceNumber.toString().padStart(3, "0")}`; + const name = !sequenceName ? "" : `+${sequenceName}`; + return `${nameAndVersion}${num}${name}.patch`; +} +function logPatchSequenceError({ patchDetails, }) { + console_1.default.log(` +${chalk_1.default.red.bold("⛔ ERROR")} + +Failed to apply patch file ${chalk_1.default.bold(patchDetails.patchFilename)}. + +If this patch file is no longer useful, delete it and run + + ${chalk_1.default.bold(`patch-package`)} + +To partially apply the patch (if possible) and output a log of errors to fix, run + + ${chalk_1.default.bold(`patch-package --partial`)} + +After which you should make any required changes inside ${patchDetails.path}, and finally run + + ${chalk_1.default.bold(`patch-package ${patchDetails.pathSpecifier}`)} + +to update the patch file. +`); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZVBhdGNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21ha2VQYXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQXdEQSw4QkFtZkM7QUEyQkQsc0RBMEJDO0FBaG1CRCxrREFBeUI7QUFDekIsc0RBQTZCO0FBQzdCLDJCQUErQjtBQUMvQix1Q0FRaUI7QUFDakIsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUMvQixpREFBMkM7QUFDM0MsK0NBS3NCO0FBRXRCLCtDQUFrRDtBQUNsRCxpRUFBNkQ7QUFDN0QsMkRBQXVEO0FBQ3ZELGlDQUFpQztBQUNqQyxxREFJeUI7QUFDekIseUNBQThDO0FBQzlDLHVDQUE2QztBQUM3QyxpQ0FBK0M7QUFDL0MsdUZBQW1GO0FBQ25GLDJDQUEyQztBQUMzQywyQ0FPb0I7QUFFcEIsU0FBUyx3QkFBd0IsQ0FDL0IsV0FBbUIsRUFDbkIsZUFBdUI7SUFFdkIsaUJBQU8sQ0FBQyxHQUFHLENBQ1QsbUJBQW1CLFdBQVc7O29CQUVkLGVBQWUsRUFBRSxDQUNsQyxDQUFBO0FBQ0gsQ0FBQztBQUVELFNBQWdCLFNBQVMsQ0FBQyxFQUN4QixvQkFBb0IsRUFDcEIsT0FBTyxFQUNQLGNBQWMsRUFDZCxZQUFZLEVBQ1osWUFBWSxFQUNaLFFBQVEsRUFDUixXQUFXLEVBQ1gsSUFBSSxHQVVMOztJQUNDLE1BQU0sY0FBYyxHQUFHLElBQUEsNkNBQTRCLEVBQUMsb0JBQW9CLENBQUMsQ0FBQTtJQUV6RSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEIsaUJBQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsb0JBQW9CLENBQUMsQ0FBQTtRQUNwRCxPQUFNO0lBQ1IsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLElBQUEsb0NBQXdCLEVBQUMsY0FBYyxDQUFDLENBQUE7SUFDdEQsTUFBTSxVQUFVLEdBQUcsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsVUFBVSxtQ0FBSSxL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SyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7Ozs7SUFJM0IsZUFBSyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQzs7MERBR3JDLFlBQVksQ0FBQyxJQUNmOztJQUVFLGVBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQzs7O0NBRzVELENBQUMsQ0FBQTtBQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCJcbmltcG9ydCBjb25zb2xlIGZyb20gXCJjb25zb2xlXCJcbmltcG9ydCB7IHJlbmFtZVN5bmMgfSBmcm9tIFwiZnNcIlxuaW1wb3J0IHtcbiAgY29weVN5bmMsXG4gIGV4aXN0c1N5bmMsXG4gIG1rZGlycFN5bmMsXG4gIG1rZGlyU3luYyxcbiAgcmVhbHBhdGhTeW5jLFxuICByZW1vdmVTeW5jLFxuICB3cml0ZUZpbGVTeW5jLFxufSBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHsgZGlyU3luYyB9IGZyb20gXCJ0bXBcIlxuaW1wb3J0IHsgZ3ppcFN5bmMgfSBmcm9tIFwiemxpYlwiXG5pbXBvcnQgeyBhcHBseVBhdGNoIH0gZnJvbSBcIi4vYXBwbHlQYXRjaGVzXCJcbmltcG9ydCB7XG4gIGdldFBhY2thZ2VWQ1NEZXRhaWxzLFxuICBtYXliZVByaW50SXNzdWVDcmVhdGlvblByb21wdCxcbiAgb3Blbklzc3VlQ3JlYXRpb25MaW5rLFxuICBzaG91bGRSZWNvbW1lbmRJc3N1ZSxcbn0gZnJvbSBcIi4vY3JlYXRlSXNzdWVcIlxuaW1wb3J0IHsgUGFja2FnZU1hbmFnZXIgfSBmcm9tIFwiLi9kZXRlY3RQYWNrYWdlTWFuYWdlclwiXG5pbXBvcnQgeyByZW1vdmVJZ25vcmVkRmlsZXMgfSBmcm9tIFwiLi9maWx0ZXJGaWxlc1wiXG5pbXBvcnQgeyBnZXRQYWNrYWdlUmVzb2x1dGlvbiB9IGZyb20gXCIuL2dldFBhY2thZ2VSZXNvbHV0aW9uXCJcbmltcG9ydCB7IGdldFBhY2thZ2VWZXJzaW9uIH0gZnJvbSBcIi4vZ2V0UGFja2FnZVZlcnNpb25cIlxuaW1wb3J0IHsgaGFzaEZpbGUgfSBmcm9tIFwiLi9oYXNoXCJcbmltcG9ydCB7XG4gIGdldFBhdGNoRGV0YWlsc0Zyb21DbGlTdHJpbmcsXG4gIFBhY2thZ2VEZXRhaWxzLFxuICBQYXRjaGVkUGFja2FnZURldGFpbHMsXG59IGZyb20gXCIuL1BhY2thZ2VEZXRhaWxzXCJcbmltcG9ydCB7IHBhcnNlUGF0Y2hGaWxlIH0gZnJvbSBcIi4vcGF0Y2gvcGFyc2VcIlxuaW1wb3J0IHsgZ2V0R3JvdXBlZFBhdGNoZXMgfSBmcm9tIFwiLi9wYXRjaEZzXCJcbmltcG9ydCB7IGRpcm5hbWUsIGpvaW4sIHJlc29sdmUgfSBmcm9tIFwiLi9wYXRoXCJcbmltcG9ydCB7IHJlc29sdmVSZWxhdGl2ZUZpbGVEZXBlbmRlbmNpZXMgfSBmcm9tIFwiLi9yZXNvbHZlUmVsYXRpdmVGaWxlRGVwZW5kZW5jaWVzXCJcbmltcG9ydCB7IHNwYXduU2FmZVN5bmMgfSBmcm9tIFwiLi9zcGF3blNhZmVcIlxuaW1wb3J0IHtcbiAgY2xlYXJQYXRjaEFwcGxpY2F0aW9uU3RhdGUsXG4gIGdldFBhdGNoQXBwbGljYXRpb25TdGF0ZSxcbiAgUGF0Y2hTdGF0ZSxcbiAgc2F2ZVBhdGNoQXBwbGljYXRpb25TdGF0ZSxcbiAgU1RBVEVfRklMRV9OQU1FLFxuICB2ZXJpZnlBcHBsaWVkUGF0Y2hlcyxcbn0gZnJvbSBcIi4vc3RhdGVGaWxlXCJcblxuZnVuY3Rpb24gcHJpbnROb1BhY2thZ2VGb3VuZEVycm9yKFxuICBwYWNrYWdlTmFtZTogc3RyaW5nLFxuICBwYWNrYWdlSnNvblBhdGg6IHN0cmluZyxcbikge1xuICBjb25zb2xlLmxvZyhcbiAgICBgTm8gc3VjaCBwYWNrYWdlICR7cGFja2FnZU5hbWV9XG5cbiAgRmlsZSBub3QgZm91bmQ6ICR7cGFja2FnZUpzb25QYXRofWAsXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VQYXRjaCh7XG4gIHBhY2thZ2VQYXRoU3BlY2lmaWVyLFxuICBhcHBQYXRoLFxuICBwYWNrYWdlTWFuYWdlcixcbiAgaW5jbHVkZVBhdGhzLFxuICBleGNsdWRlUGF0aHMsXG4gIHBhdGNoRGlyLFxuICBjcmVhdGVJc3N1ZSxcbiAgbW9kZSxcbn06IHtcbiAgcGFja2FnZVBhdGhTcGVjaWZpZXI6IHN0cmluZ1xuICBhcHBQYXRoOiBzdHJpbmdcbiAgcGFja2FnZU1hbmFnZXI6IFBhY2thZ2VNYW5hZ2VyXG4gIGluY2x1ZGVQYXRoczogUmVnRXhwXG4gIGV4Y2x1ZGVQYXRoczogUmVnRXhwXG4gIHBhdGNoRGlyOiBzdHJpbmdcbiAgY3JlYXRlSXNzdWU6IGJvb2xlYW5cbiAgbW9kZTogeyB0eXBlOiBcIm92ZXJ3cml0ZV9sYXN0XCIgfSB8IHsgdHlwZTogXCJhcHBlbmRcIjsgbmFtZT86IHN0cmluZyB9XG59KSB7XG4gIGNvbnN0IHBhY2thZ2VEZXRhaWxzID0gZ2V0UGF0Y2hEZXRhaWxzRnJvbUNsaVN0cmluZyhwYWNrYWdlUGF0aFNwZWNpZmllcilcblxuICBpZiAoIXBhY2thZ2VEZXRhaWxzKSB7XG4gICAgY29uc29sZS5sb2coXCJObyBzdWNoIHBhY2thZ2VcIiwgcGFja2FnZVBhdGhTcGVjaWZpZXIpXG4gICAgcmV0dXJuXG4gIH1cblxuICBjb25zdCBzdGF0ZSA9IGdldFBhdGNoQXBwbGljYXRpb25TdGF0ZShwYWNrYWdlRGV0YWlscylcbiAgY29uc3QgaXNSZWJhc2luZyA9IHN0YXRlPy5pc1JlYmFzaW5nID8/IGZhbHNlXG5cbiAgLy8gSWYgd2UgYXJlIHJlYmFzaW5nIGFuZCBubyBwYXRjaGVzIGhhdmUgYmVlbiBhcHBsaWVkLCAtLWFwcGVuZCBpcyB0aGUgb25seSB2YWxpZCBvcHRpb24gYmVjYXVzZVxuICAvLyB0aGVyZSBhcmUgbm8gcHJldmlvdXMgcGF0Y2hlcyB0byBvdmVyd3JpdGUvdXBkYXRlXG4gIGlmIChcbiAgICBpc1JlYmFzaW5nICYmXG4gICAgc3RhdGU/LnBhdGNoZXMuZmlsdGVyKChwKSA9PiBwLmRpZEFwcGx5KS5sZW5ndGggPT09IDAgJiZcbiAgICBtb2RlLnR5cGUgPT09IFwib3ZlcndyaXRlX2xhc3RcIlxuICApIHtcbiAgICBtb2RlID0geyB0eXBlOiBcImFwcGVuZFwiLCBuYW1lOiBcImluaXRpYWxcIiB9XG4gIH1cblxuICBpZiAoaXNSZWJhc2luZyAmJiBzdGF0ZSkge1xuICAgIHZlcmlmeUFwcGxpZWRQYXRjaGVzKHsgYXBwUGF0aCwgcGF0Y2hEaXIsIHN0YXRlIH0pXG4gIH1cblxuICBpZiAoXG4gICAgbW9kZS50eXBlID09PSBcIm92ZXJ3cml0ZV9sYXN0XCIgJiZcbiAgICBpc1JlYmFzaW5nICYmXG4gICAgc3RhdGU/LnBhdGNoZXMubGVuZ3RoID09PSAwXG4gICkge1xuICAgIG1vZGUgPSB7IHR5cGU6IFwiYXBwZW5kXCIsIG5hbWU6IFwiaW5pdGlhbFwiIH1cbiAgfVxuXG4gIGNvbnN0IGV4aXN0aW5nUGF0Y2hlcyA9XG4gICAgZ2V0R3JvdXBlZFBhdGNoZXMocGF0Y2hEaXIpLnBhdGhTcGVjaWZpZXJUb1BhdGNoRmlsZXNbXG4gICAgICBwYWNrYWdlRGV0YWlscy5wYXRoU3BlY2lmaWVyXG4gICAgXSB8fCBbXVxuXG4gIC8vIGFwcGx5IGFsbCBleGlzdGluZyBwYXRjaGVzIGlmIGFwcGVuZGluZ1xuICAvLyBvdGhlcndpc2UgYXBwbHkgYWxsIGJ1dCB0aGUgbGFzdFxuICBjb25zdCBwcmV2aW91c2x5QXBwbGllZFBhdGNoZXMgPSBzdGF0ZT8ucGF0Y2hlcy5maWx0ZXIoKHApID0+IHAuZGlkQXBwbHkpXG4gIGNvbnN0IHBhdGNoZXNUb0FwcGx5QmVmb3JlRGlmZmluZzogUGF0Y2hlZFBhY2thZ2VEZXRhaWxzW10gPSBpc1JlYmFzaW5nXG4gICAgPyBtb2RlLnR5cGUgPT09IFwiYXBwZW5kXCJcbiAgICAgID8gZXhpc3RpbmdQYXRjaGVzLnNsaWNlKDAsIHByZXZpb3VzbHlBcHBsaWVkUGF0Y2hlcyEubGVuZ3RoKVxuICAgICAgOiBzdGF0ZSEucGF0Y2hlc1tzdGF0ZSEucGF0Y2hlcy5sZW5ndGggLSAxXS5kaWRBcHBseVxuICAgICAgPyBleGlzdGluZ1BhdGNoZXMuc2xpY2UoMCwgcHJldmlvdXNseUFwcGxpZWRQYXRjaGVzIS5sZW5ndGggLSAxKVxuICAgICAgOiBleGlzdGluZ1BhdGNoZXMuc2xpY2UoMCwgcHJldmlvdXNseUFwcGxpZWRQYXRjaGVzIS5sZW5ndGgpXG4gICAgOiBtb2RlLnR5cGUgPT09IFwiYXBwZW5kXCJcbiAgICA/IGV4aXN0aW5nUGF0Y2hlc1xuICAgIDogZXhpc3RpbmdQYXRjaGVzLnNsaWNlKDAsIC0xKVxuXG4gIGlmIChjcmVhdGVJc3N1ZSAmJiBtb2RlLnR5cGUgPT09IFwiYXBwZW5kXCIpIHtcbiAgICBjb25zb2xlLmxvZyhcIi0tY3JlYXRlLWlzc3VlIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggLS1hcHBlbmQuXCIpXG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH1cblxuICBpZiAoY3JlYXRlSXNzdWUgJiYgaXNSZWJhc2luZykge1xuICAgIGNvbnNvbGUubG9nKFwiLS1jcmVhdGUtaXNzdWUgaXMgbm90IGNvbXBhdGlibGUgd2l0aCByZWJhc2luZy5cIilcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfVxuXG4gIGNvbnN0IG51bVBhdGNoZXNBZnRlckNyZWF0ZSA9XG4gICAgbW9kZS50eXBlID09PSBcImFwcGVuZFwiIHx8IGV4aXN0aW5nUGF0Y2hlcy5sZW5ndGggPT09IDBcbiAgICAgID8gZXhpc3RpbmdQYXRjaGVzLmxlbmd0aCArIDFcbiAgICAgIDogZXhpc3RpbmdQYXRjaGVzLmxlbmd0aFxuICBjb25zdCB2Y3MgPSBnZXRQYWNrYWdlVkNTRGV0YWlscyhwYWNrYWdlRGV0YWlscylcbiAgY29uc3QgY2FuQ3JlYXRlSXNzdWUgPVxuICAgICFpc1JlYmFzaW5nICYmXG4gICAgc2hvdWxkUmVjb21tZW5kSXNzdWUodmNzKSAmJlxuICAgIG51bVBhdGNoZXNBZnRlckNyZWF0ZSA9PT0gMSAmJlxuICAgIG1vZGUudHlwZSAhPT0gXCJhcHBlbmRcIlxuXG4gIGNvbnN0IGFwcFBhY2thZ2VKc29uID0gcmVxdWlyZShqb2luKGFwcFBhdGgsIFwicGFja2FnZS5qc29uXCIpKVxuICBjb25zdCBwYWNrYWdlUGF0aCA9IGpvaW4oYXBwUGF0aCwgcGFja2FnZURldGFpbHMucGF0aClcbiAgY29uc3QgcGFja2FnZUpzb25QYXRoID0gam9pbihwYWNrYWdlUGF0aCwgXCJwYWNrYWdlLmpzb25cIilcblxuICBpZiAoIWV4aXN0c1N5bmMocGFja2FnZUpzb25QYXRoKSkge1xuICAgIHByaW50Tm9QYWNrYWdlRm91bmRFcnJvcihwYWNrYWdlUGF0aFNwZWNpZmllciwgcGFja2FnZUpzb25QYXRoKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9XG5cbiAgY29uc3QgdG1wUmVwbyA9IGRpclN5bmMoeyB1bnNhZmVDbGVhbnVwOiB0cnVlIH0pXG4gIGNvbnN0IHRtcFJlcG9QYWNrYWdlUGF0aCA9IGpvaW4odG1wUmVwby5uYW1lLCBwYWNrYWdlRGV0YWlscy5wYXRoKVxuICBjb25zdCB0bXBSZXBvTnBtUm9vdCA9IHRtcFJlcG9QYWNrYWdlUGF0aC5zbGljZShcbiAgICAwLFxuICAgIC1gL25vZGVfbW9kdWxlcy8ke3BhY2thZ2VEZXRhaWxzLm5hbWV9YC5sZW5ndGgsXG4gIClcblxuICBjb25zdCB0bXBSZXBvUGFja2FnZUpzb25QYXRoID0gam9pbih0bXBSZXBvTnBtUm9vdCwgXCJwYWNrYWdlLmpzb25cIilcblxuICB0cnkge1xuICAgIGNvbnN0IHBhdGNoZXNEaXIgPSByZXNvbHZlKGpvaW4oYXBwUGF0aCwgcGF0Y2hEaXIpKVxuXG4gICAgY29uc29sZS5pbmZvKGNoYWxrLmdyZXkoXCLigKJcIiksIFwiQ3JlYXRpbmcgdGVtcG9yYXJ5IGZvbGRlclwiKVxuXG4gICAgLy8gbWFrZSBhIGJsYW5rIHBhY2thZ2UuanNvblxuICAgIG1rZGlycFN5bmModG1wUmVwb05wbVJvb3QpXG4gICAgd3JpdGVGaWxlU3luYyhcbiAgICAgIHRtcFJlcG9QYWNrYWdlSnNvblBhdGgsXG4gICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGRlcGVuZGVuY2llczoge1xuICAgICAgICAgIFtwYWNrYWdlRGV0YWlscy5uYW1lXTogZ2V0UGFja2FnZVJlc29sdXRpb24oe1xuICAgICAgICAgICAgcGFja2FnZURldGFpbHMsXG4gICAgICAgICAgICBwYWNrYWdlTWFuYWdlcixcbiAgICAgICAgICAgIGFwcFBhdGgsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICAgIHJlc29sdXRpb25zOiByZXNvbHZlUmVsYXRpdmVGaWxlRGVwZW5kZW5jaWVzKFxuICAgICAgICAgIGFwcFBhdGgsXG4gICAgICAgICAgYXBwUGFja2FnZUpzb24ucmVzb2x1dGlvbnMgfHwge30sXG4gICAgICAgICksXG4gICAgICB9KSxcbiAgICApXG5cbiAgICBjb25zdCBwYWNrYWdlVmVyc2lvbiA9IGdldFBhY2thZ2VWZXJzaW9uKFxuICAgICAgam9pbihyZXNvbHZlKHBhY2thZ2VEZXRhaWxzLnBhdGgpLCBcInBhY2thZ2UuanNvblwiKSxcbiAgICApXG5cbiAgICAvLyBjb3B5IC5ucG1yYy8ueWFybnJjIGluIGNhc2UgcGFja2FnZXMgYXJlIGhvc3RlZCBpbiBwcml2YXRlIHJlZ2lzdHJ5XG4gICAgLy8gY29weSAueWFybiBkaXJlY3RvcnkgYXMgd2VsbCB0byBlbnN1cmUgaW5zdGFsbGF0aW9ucyB3b3JrIGluIHlhcm4gMlxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTphbGlnblxuICAgIDtbXCIubnBtcmNcIiwgXCIueWFybnJjXCIsIFwiLnlhcm5cIl0uZm9yRWFjaCgocmNGaWxlKSA9PiB7XG4gICAgICBjb25zdCByY1BhdGggPSBqb2luKGFwcFBhdGgsIHJjRmlsZSlcbiAgICAgIGlmIChleGlzdHNTeW5jKHJjUGF0aCkpIHtcbiAgICAgICAgY29weVN5bmMocmNQYXRoLCBqb2luKHRtcFJlcG8ubmFtZSwgcmNGaWxlKSwgeyBkZXJlZmVyZW5jZTogdHJ1ZSB9KVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBpZiAocGFja2FnZU1hbmFnZXIgPT09IFwieWFyblwiKSB7XG4gICAgICBjb25zb2xlLmluZm8oXG4gICAgICAgIGNoYWxrLmdyZXkoXCLigKJcIiksXG4gICAgICAgIGBJbnN0YWxsaW5nICR7cGFja2FnZURldGFpbHMubmFtZX1AJHtwYWNrYWdlVmVyc2lvbn0gd2l0aCB5YXJuYCxcbiAgICAgIClcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIHRyeSBmaXJzdCB3aXRob3V0IGlnbm9yaW5nIHNjcmlwdHMgaW4gY2FzZSB0aGV5IGFyZSByZXF1aXJlZFxuICAgICAgICAvLyB0aGlzIHdvcmtzIGluIDk5Ljk5JSBvZiBjYXNlc1xuICAgICAgICBzcGF3blNhZmVTeW5jKGB5YXJuYCwgW1wiaW5zdGFsbFwiLCBcIi0taWdub3JlLWVuZ2luZXNcIl0sIHtcbiAgICAgICAgICBjd2Q6IHRtcFJlcG9OcG1Sb290LFxuICAgICAgICAgIGxvZ1N0ZEVyck9uRXJyb3I6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyB0cnkgYWdhaW4gd2hpbGUgaWdub3Jpbmcgc2NyaXB0cyBpbiBjYXNlIHRoZSBzY3JpcHQgZGVwZW5kcyBvblxuICAgICAgICAvLyBhbiBpbXBsaWNpdCBjb250ZXh0IHdoaWNoIHdlIGhhdmVuJ3QgcmVwcm9kdWNlZFxuICAgICAgICBzcGF3blNhZmVTeW5jKFxuICAgICAgICAgIGB5YXJuYCxcbiAgICAgICAgICBbXCJpbnN0YWxsXCIsIFwiLS1pZ25vcmUtZW5naW5lc1wiLCBcIi0taWdub3JlLXNjcmlwdHNcIl0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY3dkOiB0bXBSZXBvTnBtUm9vdCxcbiAgICAgICAgICB9LFxuICAgICAgICApXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuaW5mbyhcbiAgICAgICAgY2hhbGsuZ3JleShcIuKAolwiKSxcbiAgICAgICAgYEluc3RhbGxpbmcgJHtwYWNrYWdlRGV0YWlscy5uYW1lfUAke3BhY2thZ2VWZXJzaW9ufSB3aXRoIG5wbWAsXG4gICAgICApXG4gICAgICB0cnkge1xuICAgICAgICAvLyB0cnkgZmlyc3Qgd2l0aG91dCBpZ25vcmluZyBzY3JpcHRzIGluIGNhc2UgdGhleSBhcmUgcmVxdWlyZWRcbiAgICAgICAgLy8gdGhpcyB3b3JrcyBpbiA5OS45OSUgb2YgY2FzZXNcbiAgICAgICAgc3Bhd25TYWZlU3luYyhgbnBtYCwgW1wiaVwiLCBcIi0tZm9yY2VcIl0sIHtcbiAgICAgICAgICBjd2Q6IHRtcFJlcG9OcG1Sb290LFxuICAgICAgICAgIGxvZ1N0ZEVyck9uRXJyb3I6IGZhbHNlLFxuICAgICAgICAgIHN0ZGlvOiBcImlnbm9yZVwiLFxuICAgICAgICB9KVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyB0cnkgYWdhaW4gd2hpbGUgaWdub3Jpbmcgc2NyaXB0cyBpbiBjYXNlIHRoZSBzY3JpcHQgZGVwZW5kcyBvblxuICAgICAgICAvLyBhbiBpbXBsaWNpdCBjb250ZXh0IHdoaWNoIHdlIGhhdmVuJ3QgcmVwcm9kdWNlZFxuICAgICAgICBzcGF3blNhZmVTeW5jKGBucG1gLCBbXCJpXCIsIFwiLS1pZ25vcmUtc2NyaXB0c1wiLCBcIi0tZm9yY2VcIl0sIHtcbiAgICAgICAgICBjd2Q6IHRtcFJlcG9OcG1Sb290LFxuICAgICAgICAgIHN0ZGlvOiBcImlnbm9yZVwiLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdpdCA9ICguLi5hcmdzOiBzdHJpbmdbXSkgPT5cbiAgICAgIHNwYXduU2FmZVN5bmMoXCJnaXRcIiwgYXJncywge1xuICAgICAgICBjd2Q6IHRtcFJlcG8ubmFtZSxcbiAgICAgICAgZW52OiB7IC4uLnByb2Nlc3MuZW52LCBIT01FOiB0bXBSZXBvLm5hbWUgfSxcbiAgICAgICAgbWF4QnVmZmVyOiAxMDI0ICogMTAyNCAqIDEwMCxcbiAgICAgIH0pXG5cbiAgICAvLyByZW1vdmUgbmVzdGVkIG5vZGVfbW9kdWxlcyBqdXN0IHRvIGJlIHNhZmVcbiAgICByZW1vdmVTeW5jKGpvaW4odG1wUmVwb1BhY2thZ2VQYXRoLCBcIm5vZGVfbW9kdWxlc1wiKSlcbiAgICAvLyByZW1vdmUgLmdpdCBqdXN0IHRvIGJlIHNhZmVcbiAgICByZW1vdmVTeW5jKGpvaW4odG1wUmVwb1BhY2thZ2VQYXRoLCBcIi5naXRcIikpXG4gICAgLy8gcmVtb3ZlIHBhdGNoLXBhY2thZ2Ugc3RhdGUgZmlsZVxuICAgIHJlbW92ZVN5bmMoam9pbih0bXBSZXBvUGFja2FnZVBhdGgsIFNUQVRFX0ZJTEVfTkFNRSkpXG5cbiAgICAvLyBjb21taXQgdGhlIHBhY2thZ2VcbiAgICBjb25zb2xlLmluZm8oY2hhbGsuZ3JleShcIuKAolwiKSwgXCJEaWZmaW5nIHlvdXIgZmlsZXMgd2l0aCBjbGVhbiBmaWxlc1wiKVxuICAgIHdyaXRlRmlsZVN5bmMoam9pbih0bXBSZXBvLm5hbWUsIFwiLmdpdGlnbm9yZVwiKSwgXCIhL25vZGVfbW9kdWxlc1xcblxcblwiKVxuICAgIGdpdChcImluaXRcIilcbiAgICBnaXQoXCJjb25maWdcIiwgXCItLWxvY2FsXCIsIFwidXNlci5uYW1lXCIsIFwicGF0Y2gtcGFja2FnZVwiKVxuICAgIGdpdChcImNvbmZpZ1wiLCBcIi0tbG9jYWxcIiwgXCJ1c2VyLmVtYWlsXCIsIFwicGF0Y2hAcGFjay5hZ2VcIilcblxuICAgIC8vIHJlbW92ZSBpZ25vcmVkIGZpbGVzIGZpcnN0XG4gICAgcmVtb3ZlSWdub3JlZEZpbGVzKHRtcFJlcG9QYWNrYWdlUGF0aCwgaW5jbHVkZVBhdGhzLCBleGNsdWRlUGF0aHMpXG5cbiAgICBmb3IgKGNvbnN0IHBhdGNoRGV0YWlscyBvZiBwYXRjaGVzVG9BcHBseUJlZm9yZURpZmZpbmcpIHtcbiAgICAgIGlmIChcbiAgICAgICAgIWFwcGx5UGF0Y2goe1xuICAgICAgICAgIHBhdGNoRGV0YWlscyxcbiAgICAgICAgICBwYXRjaERpcixcbiAgICAgICAgICBwYXRjaEZpbGVQYXRoOiBqb2luKGFwcFBhdGgsIHBhdGNoRGlyLCBwYXRjaERldGFpbHMucGF0Y2hGaWxlbmFtZSksXG4gICAgICAgICAgcmV2ZXJzZTogZmFsc2UsXG4gICAgICAgICAgY3dkOiB0bXBSZXBvLm5hbWUsXG4gICAgICAgICAgYmVzdEVmZm9ydDogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICApIHtcbiAgICAgICAgLy8gVE9ETzogYWRkIGJldHRlciBlcnJvciBtZXNzYWdlIG9uY2UgLS1yZWJhc2UgaXMgaW1wbGVtZW50ZWRcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYEZhaWxlZCB0byBhcHBseSBwYXRjaCAke3BhdGNoRGV0YWlscy5wYXRjaEZpbGVuYW1lfSB0byAke3BhY2thZ2VEZXRhaWxzLnBhdGhTcGVjaWZpZXJ9YCxcbiAgICAgICAgKVxuICAgICAgICBwcm9jZXNzLmV4aXQoMSlcbiAgICAgIH1cbiAgICB9XG4gICAgZ2l0KFwiYWRkXCIsIFwiLWZcIiwgcGFja2FnZURldGFpbHMucGF0aClcbiAgICBnaXQoXCJjb21taXRcIiwgXCItLWFsbG93LWVtcHR5XCIsIFwiLW1cIiwgXCJpbml0XCIpXG5cbiAgICAvLyByZXBsYWNlIHBhY2thZ2Ugd2l0aCB1c2VyJ3MgdmVyc2lvblxuICAgIHJlbW92ZVN5bmModG1wUmVwb1BhY2thZ2VQYXRoKVxuXG4gICAgLy8gcG5wbSBpbnN0YWxscyBwYWNrYWdlcyBhcyBzeW1saW5rcywgY29weVN5bmMgd291bGQgY29weSBvbmx5IHRoZSBzeW1saW5rXG4gICAgY29weVN5bmMocmVhbHBhdGhTeW5jKHBhY2thZ2VQYXRoKSwgdG1wUmVwb1BhY2thZ2VQYXRoKVxuXG4gICAgLy8gcmVtb3ZlIG5lc3RlZCBub2RlX21vZHVsZXMganVzdCB0byBiZSBzYWZlXG4gICAgcmVtb3ZlU3luYyhqb2luKHRtcFJlcG9QYWNrYWdlUGF0aCwgXCJub2RlX21vZHVsZXNcIikpXG4gICAgLy8gcmVtb3ZlIC5naXQganVzdCB0byBiZSBzYWZlXG4gICAgcmVtb3ZlU3luYyhqb2luKHRtcFJlcG9QYWNrYWdlUGF0aCwgXCIuZ2l0XCIpKVxuICAgIC8vIHJlbW92ZSBwYXRjaC1wYWNrYWdlIHN0YXRlIGZpbGVcbiAgICByZW1vdmVTeW5jKGpvaW4odG1wUmVwb1BhY2thZ2VQYXRoLCBTVEFURV9GSUxFX05BTUUpKVxuXG4gICAgLy8gYWxzbyByZW1vdmUgaWdub3JlZCBmaWxlcyBsaWtlIGJlZm9yZVxuICAgIHJlbW92ZUlnbm9yZWRGaWxlcyh0bXBSZXBvUGFja2FnZVBhdGgsIGluY2x1ZGVQYXRocywgZXhjbHVkZVBhdGhzKVxuXG4gICAgLy8gc3RhZ2UgYWxsIGZpbGVzXG4gICAgZ2l0KFwiYWRkXCIsIFwiLWZcIiwgcGFja2FnZURldGFpbHMucGF0aClcblxuICAgIC8vIGdldCBkaWZmIG9mIGNoYW5nZXNcbiAgICBjb25zdCBkaWZmUmVzdWx0ID0gZ2l0KFxuICAgICAgXCJkaWZmXCIsXG4gICAgICBcIi0tY2FjaGVkXCIsXG4gICAgICBcIi0tbm8tY29sb3JcIixcbiAgICAgIFwiLS1pZ25vcmUtc3BhY2UtYXQtZW9sXCIsXG4gICAgICBcIi0tbm8tZXh0LWRpZmZcIixcbiAgICAgIFwiLS1zcmMtcHJlZml4PWEvXCIsXG4gICAgICBcIi0tZHN0LXByZWZpeD1iL1wiLFxuICAgIClcblxuICAgIGlmIChkaWZmUmVzdWx0LnN0ZG91dC5sZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBg4oGJ77iPICBOb3QgY3JlYXRpbmcgcGF0Y2ggZmlsZSBmb3IgcGFja2FnZSAnJHtwYWNrYWdlUGF0aFNwZWNpZmllcn0nYCxcbiAgICAgIClcbiAgICAgIGNvbnNvbGUubG9nKGDigYnvuI8gIFRoZXJlIGRvbid0IGFwcGVhciB0byBiZSBhbnkgY2hhbmdlcy5gKVxuICAgICAgaWYgKGlzUmViYXNpbmcgJiYgbW9kZS50eXBlID09PSBcIm92ZXJ3cml0ZV9sYXN0XCIpIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgXCJcXG7wn5KhIFRvIHJlbW92ZSBhIHBhdGNoIGZpbGUsIGRlbGV0ZSBpdCBhbmQgdGhlbiByZWluc3RhbGwgbm9kZV9tb2R1bGVzIGZyb20gc2NyYXRjaC5cIixcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgcHJvY2Vzcy5leGl0KDEpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcGFyc2VQYXRjaEZpbGUoZGlmZlJlc3VsdC5zdGRvdXQudG9TdHJpbmcoKSlcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoXG4gICAgICAgIChlIGFzIEVycm9yKS5tZXNzYWdlLmluY2x1ZGVzKFwiVW5leHBlY3RlZCBmaWxlIG1vZGUgc3RyaW5nOiAxMjAwMDBcIilcbiAgICAgICkge1xuICAgICAgICBjb25zb2xlLmxvZyhgXG7im5TvuI8gJHtjaGFsay5yZWQuYm9sZChcIkVSUk9SXCIpfVxuXG4gIFlvdXIgY2hhbmdlcyBpbnZvbHZlIGNyZWF0aW5nIHN5bWxpbmtzLiBwYXRjaC1wYWNrYWdlIGRvZXMgbm90IHlldCBzdXBwb3J0XG4gIHN5bWxpbmtzLlxuICBcbiAg77iPUGxlYXNlIHVzZSAke2NoYWxrLmJvbGQoXCItLWluY2x1ZGVcIil9IGFuZC9vciAke2NoYWxrLmJvbGQoXG4gICAgICAgICAgXCItLWV4Y2x1ZGVcIixcbiAgICAgICAgKX0gdG8gbmFycm93IHRoZSBzY29wZSBvZiB5b3VyIHBhdGNoIGlmXG4gIHRoaXMgd2FzIHVuaW50ZW50aW9uYWwuXG5gKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgb3V0UGF0aCA9IFwiLi9wYXRjaC1wYWNrYWdlLWVycm9yLmpzb24uZ3pcIlxuICAgICAgICB3cml0ZUZpbGVTeW5jKFxuICAgICAgICAgIG91dFBhdGgsXG4gICAgICAgICAgZ3ppcFN5bmMoXG4gICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZTogZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogU3RyaW5nKGUpLFxuICAgICAgICAgICAgICAgIHN0YWNrOiBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLnN0YWNrIDogXCJcIixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcGF0Y2g6IGRpZmZSZXN1bHQuc3Rkb3V0LnRvU3RyaW5nKCksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApLFxuICAgICAgICApXG4gICAgICAgIGNvbnNvbGUubG9nKGBcbuKblO+4jyAke2NoYWxrLnJlZC5ib2xkKFwiRVJST1JcIil9XG4gICAgICAgIFxuICBwYXRjaC1wYWNrYWdlIHdhcyB1bmFibGUgdG8gcmVhZCB0aGUgcGF0Y2gtZmlsZSBtYWRlIGJ5IGdpdC4gVGhpcyBzaG91bGQgbm90XG4gIGhhcHBlbi5cbiAgXG4gIEEgZGlhZ25vc3RpYyBmaWxlIHdhcyB3cml0dGVuIHRvXG4gIFxuICAgICR7b3V0UGF0aH1cbiAgXG4gIFBsZWFzZSBhdHRhY2ggaXQgdG8gYSBnaXRodWIgaXNzdWVcbiAgXG4gICAgaHR0cHM6Ly9naXRodWIuY29tL2RzMzAwL3BhdGNoLXBhY2thZ2UvaXNzdWVzL25ldz90aXRsZT1OZXcrcGF0Y2grcGFyc2UrZmFpbGVkJmJvZHk9UGxlYXNlK2F0dGFjaCt0aGUrZGlhZ25vc3RpYytmaWxlK2J5K2RyYWdnaW5nK2l0K2ludG8raGVyZSvwn5mPXG4gIFxuICBOb3RlIHRoYXQgdGhpcyBkaWFnbm9zdGljIGZpbGUgd2lsbCBjb250YWluIGNvZGUgZnJvbSB0aGUgcGFja2FnZSB5b3Ugd2VyZVxuICBhdHRlbXB0aW5nIHRvIHBhdGNoLlxuXG5gKVxuICAgICAgfVxuICAgICAgcHJvY2Vzcy5leGl0KDEpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBtYXliZSBkZWxldGUgZXhpc3RpbmdcbiAgICBpZiAobW9kZS50eXBlID09PSBcImFwcGVuZFwiICYmICFpc1JlYmFzaW5nICYmIGV4aXN0aW5nUGF0Y2hlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIC8vIGlmIHdlIGFyZSBhcHBlbmRpbmcgdG8gYW4gZXhpc3RpbmcgcGF0Y2ggdGhhdCBkb2Vzbid0IGhhdmUgYSBzZXF1ZW5jZSBudW1iZXIgbGV0J3MgcmVuYW1lIGl0XG4gICAgICBjb25zdCBwcmV2UGF0Y2ggPSBleGlzdGluZ1BhdGNoZXNbMF1cbiAgICAgIGlmIChwcmV2UGF0Y2guc2VxdWVuY2VOdW1iZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCBuZXdGaWxlTmFtZSA9IGNyZWF0ZVBhdGNoRmlsZU5hbWUoe1xuICAgICAgICAgIHBhY2thZ2VEZXRhaWxzLFxuICAgICAgICAgIHBhY2thZ2VWZXJzaW9uLFxuICAgICAgICAgIHNlcXVlbmNlTnVtYmVyOiAxLFxuICAgICAgICAgIHNlcXVlbmNlTmFtZTogcHJldlBhdGNoLnNlcXVlbmNlTmFtZSA/PyBcImluaXRpYWxcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3Qgb2xkUGF0aCA9IGpvaW4oYXBwUGF0aCwgcGF0Y2hEaXIsIHByZXZQYXRjaC5wYXRjaEZpbGVuYW1lKVxuICAgICAgICBjb25zdCBuZXdQYXRoID0gam9pbihhcHBQYXRoLCBwYXRjaERpciwgbmV3RmlsZU5hbWUpXG4gICAgICAgIHJlbmFtZVN5bmMob2xkUGF0aCwgbmV3UGF0aClcbiAgICAgICAgcHJldlBhdGNoLnNlcXVlbmNlTnVtYmVyID0gMVxuICAgICAgICBwcmV2UGF0Y2gucGF0Y2hGaWxlbmFtZSA9IG5ld0ZpbGVOYW1lXG4gICAgICAgIHByZXZQYXRjaC5zZXF1ZW5jZU5hbWUgPSBwcmV2UGF0Y2guc2VxdWVuY2VOYW1lID8/IFwiaW5pdGlhbFwiXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgbGFzdFBhdGNoID0gZXhpc3RpbmdQYXRjaGVzW1xuICAgICAgc3RhdGUgPyBzdGF0ZS5wYXRjaGVzLmxlbmd0aCAtIDEgOiBleGlzdGluZ1BhdGNoZXMubGVuZ3RoIC0gMVxuICAgIF0gYXMgUGF0Y2hlZFBhY2thZ2VEZXRhaWxzIHwgdW5kZWZpbmVkXG4gICAgY29uc3Qgc2VxdWVuY2VOYW1lID1cbiAgICAgIG1vZGUudHlwZSA9PT0gXCJhcHBlbmRcIiA/IG1vZGUubmFtZSA6IGxhc3RQYXRjaD8uc2VxdWVuY2VOYW1lXG4gICAgY29uc3Qgc2VxdWVuY2VOdW1iZXIgPVxuICAgICAgbW9kZS50eXBlID09PSBcImFwcGVuZFwiXG4gICAgICAgID8gKGxhc3RQYXRjaD8uc2VxdWVuY2VOdW1iZXIgPz8gMCkgKyAxXG4gICAgICAgIDogbGFzdFBhdGNoPy5zZXF1ZW5jZU51bWJlclxuXG4gICAgY29uc3QgcGF0Y2hGaWxlTmFtZSA9IGNyZWF0ZVBhdGNoRmlsZU5hbWUoe1xuICAgICAgcGFja2FnZURldGFpbHMsXG4gICAgICBwYWNrYWdlVmVyc2lvbixcbiAgICAgIHNlcXVlbmNlTmFtZSxcbiAgICAgIHNlcXVlbmNlTnVtYmVyLFxuICAgIH0pXG5cbiAgICBjb25zdCBwYXRjaFBhdGg6IHN0cmluZyA9IGpvaW4ocGF0Y2hlc0RpciwgcGF0Y2hGaWxlTmFtZSlcbiAgICBpZiAoIWV4aXN0c1N5bmMoZGlybmFtZShwYXRjaFBhdGgpKSkge1xuICAgICAgLy8gc2NvcGVkIHBhY2thZ2VcbiAgICAgIG1rZGlyU3luYyhkaXJuYW1lKHBhdGNoUGF0aCkpXG4gICAgfVxuXG4gICAgLy8gaWYgd2UgYXJlIGluc2VydGluZyBhIG5ldyBwYXRjaCBpbnRvIGEgc2VxdWVuY2Ugd2UgbW9zdCBsaWtlbHkgbmVlZCB0byB1cGRhdGUgdGhlIHNlcXVlbmNlIG51bWJlcnNcbiAgICBpZiAoaXNSZWJhc2luZyAmJiBtb2RlLnR5cGUgPT09IFwiYXBwZW5kXCIpIHtcbiAgICAgIGNvbnN0IHBhdGNoZXNUb051ZGdlID0gZXhpc3RpbmdQYXRjaGVzLnNsaWNlKHN0YXRlIS5wYXRjaGVzLmxlbmd0aClcbiAgICAgIGlmIChzZXF1ZW5jZU51bWJlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInNlcXVlbmNlTnVtYmVyIGlzIHVuZGVmaW5lZCB3aGlsZSByZWJhc2luZ1wiKVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBwYXRjaGVzVG9OdWRnZVswXT8uc2VxdWVuY2VOdW1iZXIgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICBwYXRjaGVzVG9OdWRnZVswXS5zZXF1ZW5jZU51bWJlciA8PSBzZXF1ZW5jZU51bWJlclxuICAgICAgKSB7XG4gICAgICAgIGxldCBuZXh0ID0gc2VxdWVuY2VOdW1iZXIgKyAxXG4gICAgICAgIGZvciAoY29uc3QgcCBvZiBwYXRjaGVzVG9OdWRnZSkge1xuICAgICAgICAgIGNvbnN0IG5ld05hbWUgPSBjcmVhdGVQYXRjaEZpbGVOYW1lKHtcbiAgICAgICAgICAgIHBhY2thZ2VEZXRhaWxzLFxuICAgICAgICAgICAgcGFja2FnZVZlcnNpb24sXG4gICAgICAgICAgICBzZXF1ZW5jZU5hbWU6IHAuc2VxdWVuY2VOYW1lLFxuICAgICAgICAgICAgc2VxdWVuY2VOdW1iZXI6IG5leHQrKyxcbiAgICAgICAgICB9KVxuICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgXCJSZW5hbWluZ1wiLFxuICAgICAgICAgICAgY2hhbGsuYm9sZChwLnBhdGNoRmlsZW5hbWUpLFxuICAgICAgICAgICAgXCJ0b1wiLFxuICAgICAgICAgICAgY2hhbGsuYm9sZChuZXdOYW1lKSxcbiAgICAgICAgICApXG4gICAgICAgICAgY29uc3Qgb2xkUGF0aCA9IGpvaW4oYXBwUGF0aCwgcGF0Y2hEaXIsIHAucGF0Y2hGaWxlbmFtZSlcbiAgICAgICAgICBjb25zdCBuZXdQYXRoID0gam9pbihhcHBQYXRoLCBwYXRjaERpciwgbmV3TmFtZSlcbiAgICAgICAgICByZW5hbWVTeW5jKG9sZFBhdGgsIG5ld1BhdGgpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB3cml0ZUZpbGVTeW5jKHBhdGNoUGF0aCwgZGlmZlJlc3VsdC5zdGRvdXQpXG4gICAgY29uc29sZS5sb2coXG4gICAgICBgJHtjaGFsay5ncmVlbihcIuKclFwiKX0gQ3JlYXRlZCBmaWxlICR7am9pbihwYXRjaERpciwgcGF0Y2hGaWxlTmFtZSl9XFxuYCxcbiAgICApXG5cbiAgICBjb25zdCBwcmV2U3RhdGU6IFBhdGNoU3RhdGVbXSA9IHBhdGNoZXNUb0FwcGx5QmVmb3JlRGlmZmluZy5tYXAoXG4gICAgICAocCk6IFBhdGNoU3RhdGUgPT4gKHtcbiAgICAgICAgcGF0Y2hGaWxlbmFtZTogcC5wYXRjaEZpbGVuYW1lLFxuICAgICAgICBkaWRBcHBseTogdHJ1ZSxcbiAgICAgICAgcGF0Y2hDb250ZW50SGFzaDogaGFzaEZpbGUoam9pbihhcHBQYXRoLCBwYXRjaERpciwgcC5wYXRjaEZpbGVuYW1lKSksXG4gICAgICB9KSxcbiAgICApXG4gICAgY29uc3QgbmV4dFN0YXRlOiBQYXRjaFN0YXRlW10gPSBbXG4gICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICB7XG4gICAgICAgIHBhdGNoRmlsZW5hbWU6IHBhdGNoRmlsZU5hbWUsXG4gICAgICAgIGRpZEFwcGx5OiB0cnVlLFxuICAgICAgICBwYXRjaENvbnRlbnRIYXNoOiBoYXNoRmlsZShwYXRjaFBhdGgpLFxuICAgICAgfSxcbiAgICBdXG5cbiAgICAvLyBpZiBhbnkgcGF0Y2hlcyBjb21lIGFmdGVyIHRoaXMgb25lIHdlIGp1c3QgbWFkZSwgd2Ugc2hvdWxkIHJlYXBwbHkgdGhlbVxuICAgIGxldCBkaWRGYWlsV2hpbGVGaW5pc2hpbmdSZWJhc2UgPSBmYWxzZVxuICAgIGlmIChpc1JlYmFzaW5nKSB7XG4gICAgICBjb25zdCBjdXJyZW50UGF0Y2hlcyA9IGdldEdyb3VwZWRQYXRjaGVzKGpvaW4oYXBwUGF0aCwgcGF0Y2hEaXIpKVxuICAgICAgICAucGF0aFNwZWNpZmllclRvUGF0Y2hGaWxlc1twYWNrYWdlRGV0YWlscy5wYXRoU3BlY2lmaWVyXVxuXG4gICAgICBjb25zdCBwcmV2aW91c2x5VW5hcHBsaWVkUGF0Y2hlcyA9IGN1cnJlbnRQYXRjaGVzLnNsaWNlKG5leHRTdGF0ZS5sZW5ndGgpXG4gICAgICBpZiAocHJldmlvdXNseVVuYXBwbGllZFBhdGNoZXMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBGYXN0IGZvcndhcmRpbmcuLi5gKVxuICAgICAgICBmb3IgKGNvbnN0IHBhdGNoIG9mIHByZXZpb3VzbHlVbmFwcGxpZWRQYXRjaGVzKSB7XG4gICAgICAgICAgY29uc3QgcGF0Y2hGaWxlUGF0aCA9IGpvaW4oYXBwUGF0aCwgcGF0Y2hEaXIsIHBhdGNoLnBhdGNoRmlsZW5hbWUpXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWFwcGx5UGF0Y2goe1xuICAgICAgICAgICAgICBwYXRjaERldGFpbHM6IHBhdGNoLFxuICAgICAgICAgICAgICBwYXRjaERpcixcbiAgICAgICAgICAgICAgcGF0Y2hGaWxlUGF0aCxcbiAgICAgICAgICAgICAgcmV2ZXJzZTogZmFsc2UsXG4gICAgICAgICAgICAgIGN3ZDogcHJvY2Vzcy5jd2QoKSxcbiAgICAgICAgICAgICAgYmVzdEVmZm9ydDogZmFsc2UsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgZGlkRmFpbFdoaWxlRmluaXNoaW5nUmViYXNlID0gdHJ1ZVxuICAgICAgICAgICAgbG9nUGF0Y2hTZXF1ZW5jZUVycm9yKHsgcGF0Y2hEZXRhaWxzOiBwYXRjaCB9KVxuICAgICAgICAgICAgbmV4dFN0YXRlLnB1c2goe1xuICAgICAgICAgICAgICBwYXRjaEZpbGVuYW1lOiBwYXRjaC5wYXRjaEZpbGVuYW1lLFxuICAgICAgICAgICAgICBkaWRBcHBseTogZmFsc2UsXG4gICAgICAgICAgICAgIHBhdGNoQ29udGVudEhhc2g6IGhhc2hGaWxlKHBhdGNoRmlsZVBhdGgpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGAgICR7Y2hhbGsuZ3JlZW4oXCLinJRcIil9ICR7cGF0Y2gucGF0Y2hGaWxlbmFtZX1gKVxuICAgICAgICAgICAgbmV4dFN0YXRlLnB1c2goe1xuICAgICAgICAgICAgICBwYXRjaEZpbGVuYW1lOiBwYXRjaC5wYXRjaEZpbGVuYW1lLFxuICAgICAgICAgICAgICBkaWRBcHBseTogdHJ1ZSxcbiAgICAgICAgICAgICAgcGF0Y2hDb250ZW50SGFzaDogaGFzaEZpbGUocGF0Y2hGaWxlUGF0aCksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpc1JlYmFzaW5nIHx8IG51bVBhdGNoZXNBZnRlckNyZWF0ZSA+IDEpIHtcbiAgICAgIHNhdmVQYXRjaEFwcGxpY2F0aW9uU3RhdGUoe1xuICAgICAgICBwYWNrYWdlRGV0YWlscyxcbiAgICAgICAgcGF0Y2hlczogbmV4dFN0YXRlLFxuICAgICAgICBpc1JlYmFzaW5nOiBkaWRGYWlsV2hpbGVGaW5pc2hpbmdSZWJhc2UsXG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICBjbGVhclBhdGNoQXBwbGljYXRpb25TdGF0ZShwYWNrYWdlRGV0YWlscylcbiAgICB9XG5cbiAgICBpZiAoY2FuQ3JlYXRlSXNzdWUpIHtcbiAgICAgIGlmIChjcmVhdGVJc3N1ZSkge1xuICAgICAgICBvcGVuSXNzdWVDcmVhdGlvbkxpbmsoe1xuICAgICAgICAgIHBhY2thZ2VEZXRhaWxzLFxuICAgICAgICAgIHBhdGNoRmlsZUNvbnRlbnRzOiBkaWZmUmVzdWx0LnN0ZG91dC50b1N0cmluZygpLFxuICAgICAgICAgIHBhY2thZ2VWZXJzaW9uLFxuICAgICAgICAgIHBhdGNoUGF0aCxcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1heWJlUHJpbnRJc3N1ZUNyZWF0aW9uUHJvbXB0KHZjcywgcGFja2FnZURldGFpbHMsIHBhY2thZ2VNYW5hZ2VyKVxuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUubG9nKGUpXG4gICAgdGhyb3cgZVxuICB9IGZpbmFsbHkge1xuICAgIHRtcFJlcG8ucmVtb3ZlQ2FsbGJhY2soKVxuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVBhdGNoRmlsZU5hbWUoe1xuICBwYWNrYWdlRGV0YWlscyxcbiAgcGFja2FnZVZlcnNpb24sXG4gIHNlcXVlbmNlTnVtYmVyLFxuICBzZXF1ZW5jZU5hbWUsXG59OiB7XG4gIHBhY2thZ2VEZXRhaWxzOiBQYWNrYWdlRGV0YWlsc1xuICBwYWNrYWdlVmVyc2lvbjogc3RyaW5nXG4gIHNlcXVlbmNlTnVtYmVyPzogbnVtYmVyXG4gIHNlcXVlbmNlTmFtZT86IHN0cmluZ1xufSkge1xuICBjb25zdCBwYWNrYWdlTmFtZXMgPSBwYWNrYWdlRGV0YWlscy5wYWNrYWdlTmFtZXNcbiAgICAubWFwKChuYW1lKSA9PiBuYW1lLnJlcGxhY2UoL1xcLy9nLCBcIitcIikpXG4gICAgLmpvaW4oXCIrK1wiKVxuXG4gIGNvbnN0IG5hbWVBbmRWZXJzaW9uID0gYCR7cGFja2FnZU5hbWVzfSske3BhY2thZ2VWZXJzaW9ufWBcbiAgY29uc3QgbnVtID1cbiAgICBzZXF1ZW5jZU51bWJlciA9PT0gdW5kZWZpbmVkXG4gICAgICA/IFwiXCJcbiAgICAgIDogYCske3NlcXVlbmNlTnVtYmVyLnRvU3RyaW5nKCkucGFkU3RhcnQoMywgXCIwXCIpfWBcbiAgY29uc3QgbmFtZSA9ICFzZXF1ZW5jZU5hbWUgPyBcIlwiIDogYCske3NlcXVlbmNlTmFtZX1gXG5cbiAgcmV0dXJuIGAke25hbWVBbmRWZXJzaW9ufSR7bnVtfSR7bmFtZX0ucGF0Y2hgXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2dQYXRjaFNlcXVlbmNlRXJyb3Ioe1xuICBwYXRjaERldGFpbHMsXG59OiB7XG4gIHBhdGNoRGV0YWlsczogUGF0Y2hlZFBhY2thZ2VEZXRhaWxzXG59KSB7XG4gIGNvbnNvbGUubG9nKGBcbiR7Y2hhbGsucmVkLmJvbGQoXCLim5QgRVJST1JcIil9XG5cbkZhaWxlZCB0byBhcHBseSBwYXRjaCBmaWxlICR7Y2hhbGsuYm9sZChwYXRjaERldGFpbHMucGF0Y2hGaWxlbmFtZSl9LlxuXG5JZiB0aGlzIHBhdGNoIGZpbGUgaXMgbm8gbG9uZ2VyIHVzZWZ1bCwgZGVsZXRlIGl0IGFuZCBydW5cblxuICAke2NoYWxrLmJvbGQoYHBhdGNoLXBhY2thZ2VgKX1cblxuVG8gcGFydGlhbGx5IGFwcGx5IHRoZSBwYXRjaCAoaWYgcG9zc2libGUpIGFuZCBvdXRwdXQgYSBsb2cgb2YgZXJyb3JzIHRvIGZpeCwgcnVuXG5cbiAgJHtjaGFsay5ib2xkKGBwYXRjaC1wYWNrYWdlIC0tcGFydGlhbGApfVxuXG5BZnRlciB3aGljaCB5b3Ugc2hvdWxkIG1ha2UgYW55IHJlcXVpcmVkIGNoYW5nZXMgaW5zaWRlICR7XG4gICAgcGF0Y2hEZXRhaWxzLnBhdGhcbiAgfSwgYW5kIGZpbmFsbHkgcnVuXG5cbiAgJHtjaGFsay5ib2xkKGBwYXRjaC1wYWNrYWdlICR7cGF0Y2hEZXRhaWxzLnBhdGhTcGVjaWZpZXJ9YCl9XG5cbnRvIHVwZGF0ZSB0aGUgcGF0Y2ggZmlsZS5cbmApXG59XG4iXX0= \ No newline at end of file diff --git a/dist/makeRegExp.js b/dist/makeRegExp.js new file mode 100644 index 00000000..074e05d3 --- /dev/null +++ b/dist/makeRegExp.js @@ -0,0 +1,28 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.makeRegExp = void 0; +const chalk_1 = __importDefault(require("chalk")); +const makeRegExp = (reString, name, defaultValue, caseSensitive) => { + if (!reString) { + return defaultValue; + } + else { + try { + return new RegExp(reString, caseSensitive ? "" : "i"); + } + catch (_) { + console.log(`${chalk_1.default.red.bold("***ERROR***")} +Invalid format for option --${name} + + Unable to convert the string ${JSON.stringify(reString)} to a regular expression. +`); + process.exit(1); + return /unreachable/; + } + } +}; +exports.makeRegExp = makeRegExp; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZVJlZ0V4cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWtlUmVnRXhwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUF5QjtBQUVsQixNQUFNLFVBQVUsR0FBRyxDQUN4QixRQUFnQixFQUNoQixJQUFZLEVBQ1osWUFBb0IsRUFDcEIsYUFBc0IsRUFDZCxFQUFFO0lBQ1YsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsT0FBTyxZQUFZLENBQUE7SUFDckIsQ0FBQztTQUFNLENBQUM7UUFDTixJQUFJLENBQUM7WUFDSCxPQUFPLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDdkQsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsZUFBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDOzhCQUNwQixJQUFJOztpQ0FFRCxJQUFJLENBQUMsU0FBUyxDQUMzQyxRQUFRLENBQ1Q7Q0FDRixDQUFDLENBQUE7WUFFSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ2YsT0FBTyxhQUFhLENBQUE7UUFDdEIsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDLENBQUE7QUF4QlksUUFBQSxVQUFVLGNBd0J0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjaGFsayBmcm9tIFwiY2hhbGtcIlxuXG5leHBvcnQgY29uc3QgbWFrZVJlZ0V4cCA9IChcbiAgcmVTdHJpbmc6IHN0cmluZyxcbiAgbmFtZTogc3RyaW5nLFxuICBkZWZhdWx0VmFsdWU6IFJlZ0V4cCxcbiAgY2FzZVNlbnNpdGl2ZTogYm9vbGVhbixcbik6IFJlZ0V4cCA9PiB7XG4gIGlmICghcmVTdHJpbmcpIHtcbiAgICByZXR1cm4gZGVmYXVsdFZhbHVlXG4gIH0gZWxzZSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBuZXcgUmVnRXhwKHJlU3RyaW5nLCBjYXNlU2Vuc2l0aXZlID8gXCJcIiA6IFwiaVwiKVxuICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgIGNvbnNvbGUubG9nKGAke2NoYWxrLnJlZC5ib2xkKFwiKioqRVJST1IqKipcIil9XG5JbnZhbGlkIGZvcm1hdCBmb3Igb3B0aW9uIC0tJHtuYW1lfVxuXG4gIFVuYWJsZSB0byBjb252ZXJ0IHRoZSBzdHJpbmcgJHtKU09OLnN0cmluZ2lmeShcbiAgICByZVN0cmluZyxcbiAgKX0gdG8gYSByZWd1bGFyIGV4cHJlc3Npb24uXG5gKVxuXG4gICAgICBwcm9jZXNzLmV4aXQoMSlcbiAgICAgIHJldHVybiAvdW5yZWFjaGFibGUvXG4gICAgfVxuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/dist/packageIsDevDependency.js b/dist/packageIsDevDependency.js new file mode 100644 index 00000000..fde00057 --- /dev/null +++ b/dist/packageIsDevDependency.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.packageIsDevDependency = packageIsDevDependency; +const path_1 = require("./path"); +const fs_1 = require("fs"); +function packageIsDevDependency({ appPath, patchDetails, }) { + const packageJsonPath = (0, path_1.join)(appPath, "package.json"); + if (!(0, fs_1.existsSync)(packageJsonPath)) { + return false; + } + const { devDependencies } = require(packageJsonPath); + return Boolean(devDependencies && devDependencies[patchDetails.packageNames[0]]); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZUlzRGV2RGVwZW5kZW5jeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wYWNrYWdlSXNEZXZEZXBlbmRlbmN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBSUEsd0RBZUM7QUFsQkQsaUNBQTZCO0FBQzdCLDJCQUErQjtBQUUvQixTQUFnQixzQkFBc0IsQ0FBQyxFQUNyQyxPQUFPLEVBQ1AsWUFBWSxHQUliO0lBQ0MsTUFBTSxlQUFlLEdBQUcsSUFBQSxXQUFJLEVBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFBO0lBQ3JELElBQUksQ0FBQyxJQUFBLGVBQVUsRUFBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUNELE1BQU0sRUFBRSxlQUFlLEVBQUUsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDcEQsT0FBTyxPQUFPLENBQ1osZUFBZSxJQUFJLGVBQWUsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ2pFLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGF0Y2hlZFBhY2thZ2VEZXRhaWxzIH0gZnJvbSBcIi4vUGFja2FnZURldGFpbHNcIlxuaW1wb3J0IHsgam9pbiB9IGZyb20gXCIuL3BhdGhcIlxuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gXCJmc1wiXG5cbmV4cG9ydCBmdW5jdGlvbiBwYWNrYWdlSXNEZXZEZXBlbmRlbmN5KHtcbiAgYXBwUGF0aCxcbiAgcGF0Y2hEZXRhaWxzLFxufToge1xuICBhcHBQYXRoOiBzdHJpbmdcbiAgcGF0Y2hEZXRhaWxzOiBQYXRjaGVkUGFja2FnZURldGFpbHNcbn0pIHtcbiAgY29uc3QgcGFja2FnZUpzb25QYXRoID0gam9pbihhcHBQYXRoLCBcInBhY2thZ2UuanNvblwiKVxuICBpZiAoIWV4aXN0c1N5bmMocGFja2FnZUpzb25QYXRoKSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIGNvbnN0IHsgZGV2RGVwZW5kZW5jaWVzIH0gPSByZXF1aXJlKHBhY2thZ2VKc29uUGF0aClcbiAgcmV0dXJuIEJvb2xlYW4oXG4gICAgZGV2RGVwZW5kZW5jaWVzICYmIGRldkRlcGVuZGVuY2llc1twYXRjaERldGFpbHMucGFja2FnZU5hbWVzWzBdXSxcbiAgKVxufVxuIl19 \ No newline at end of file diff --git a/dist/packageIsDevDependency.test.js b/dist/packageIsDevDependency.test.js new file mode 100644 index 00000000..bac02497 --- /dev/null +++ b/dist/packageIsDevDependency.test.js @@ -0,0 +1,32 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const packageIsDevDependency_1 = require("./packageIsDevDependency"); +const path_1 = require("./path"); +const path_2 = require("path"); +const PackageDetails_1 = require("./PackageDetails"); +const fs_1 = require("fs"); +const appPath = (0, path_2.normalize)((0, path_1.join)(__dirname, "../")); +describe(packageIsDevDependency_1.packageIsDevDependency, () => { + it("returns true if package is a dev dependency", () => { + expect((0, packageIsDevDependency_1.packageIsDevDependency)({ + appPath, + patchDetails: (0, PackageDetails_1.getPackageDetailsFromPatchFilename)("typescript+3.0.1.patch"), + })).toBe(true); + }); + it("returns false if package is not a dev dependency", () => { + expect((0, packageIsDevDependency_1.packageIsDevDependency)({ + appPath, + patchDetails: (0, PackageDetails_1.getPackageDetailsFromPatchFilename)("chalk+3.0.1.patch"), + })).toBe(false); + }); + it("returns false if package is a transitive dependency of a dev dependency", () => { + expect((0, fs_1.existsSync)((0, path_1.join)(appPath, "node_modules/cosmiconfig"))).toBe(true); + expect((0, packageIsDevDependency_1.packageIsDevDependency)({ + appPath, + patchDetails: (0, PackageDetails_1.getPackageDetailsFromPatchFilename)( + // cosmiconfig is a transitive dep of lint-staged + "cosmiconfig+3.0.1.patch"), + })).toBe(false); + }); +}); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZUlzRGV2RGVwZW5kZW5jeS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3BhY2thZ2VJc0RldkRlcGVuZGVuY3kudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFFQUFpRTtBQUNqRSxpQ0FBNkI7QUFDN0IsK0JBQWdDO0FBQ2hDLHFEQUFxRTtBQUNyRSwyQkFBK0I7QUFFL0IsTUFBTSxPQUFPLEdBQUcsSUFBQSxnQkFBUyxFQUFDLElBQUEsV0FBSSxFQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFBO0FBRWpELFFBQVEsQ0FBQywrQ0FBc0IsRUFBRSxHQUFHLEVBQUU7SUFDcEMsRUFBRSxDQUFDLDZDQUE2QyxFQUFFLEdBQUcsRUFBRTtRQUNyRCxNQUFNLENBQ0osSUFBQSwrQ0FBc0IsRUFBQztZQUNyQixPQUFPO1lBQ1AsWUFBWSxFQUFFLElBQUEsbURBQWtDLEVBQzlDLHdCQUF3QixDQUN4QjtTQUNILENBQUMsQ0FDSCxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNkLENBQUMsQ0FBQyxDQUFBO0lBQ0YsRUFBRSxDQUFDLGtEQUFrRCxFQUFFLEdBQUcsRUFBRTtRQUMxRCxNQUFNLENBQ0osSUFBQSwrQ0FBc0IsRUFBQztZQUNyQixPQUFPO1lBQ1AsWUFBWSxFQUFFLElBQUEsbURBQWtDLEVBQUMsbUJBQW1CLENBQUU7U0FDdkUsQ0FBQyxDQUNILENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2YsQ0FBQyxDQUFDLENBQUE7SUFDRixFQUFFLENBQUMseUVBQXlFLEVBQUUsR0FBRyxFQUFFO1FBQ2pGLE1BQU0sQ0FBQyxJQUFBLGVBQVUsRUFBQyxJQUFBLFdBQUksRUFBQyxPQUFPLEVBQUUsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3hFLE1BQU0sQ0FDSixJQUFBLCtDQUFzQixFQUFDO1lBQ3JCLE9BQU87WUFDUCxZQUFZLEVBQUUsSUFBQSxtREFBa0M7WUFDOUMsaURBQWlEO1lBQ2pELHlCQUF5QixDQUN6QjtTQUNILENBQUMsQ0FDSCxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNmLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYWNrYWdlSXNEZXZEZXBlbmRlbmN5IH0gZnJvbSBcIi4vcGFja2FnZUlzRGV2RGVwZW5kZW5jeVwiXG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcIi4vcGF0aFwiXG5pbXBvcnQgeyBub3JtYWxpemUgfSBmcm9tIFwicGF0aFwiXG5pbXBvcnQgeyBnZXRQYWNrYWdlRGV0YWlsc0Zyb21QYXRjaEZpbGVuYW1lIH0gZnJvbSBcIi4vUGFja2FnZURldGFpbHNcIlxuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gXCJmc1wiXG5cbmNvbnN0IGFwcFBhdGggPSBub3JtYWxpemUoam9pbihfX2Rpcm5hbWUsIFwiLi4vXCIpKVxuXG5kZXNjcmliZShwYWNrYWdlSXNEZXZEZXBlbmRlbmN5LCAoKSA9PiB7XG4gIGl0KFwicmV0dXJucyB0cnVlIGlmIHBhY2thZ2UgaXMgYSBkZXYgZGVwZW5kZW5jeVwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgcGFja2FnZUlzRGV2RGVwZW5kZW5jeSh7XG4gICAgICAgIGFwcFBhdGgsXG4gICAgICAgIHBhdGNoRGV0YWlsczogZ2V0UGFja2FnZURldGFpbHNGcm9tUGF0Y2hGaWxlbmFtZShcbiAgICAgICAgICBcInR5cGVzY3JpcHQrMy4wLjEucGF0Y2hcIixcbiAgICAgICAgKSEsXG4gICAgICB9KSxcbiAgICApLnRvQmUodHJ1ZSlcbiAgfSlcbiAgaXQoXCJyZXR1cm5zIGZhbHNlIGlmIHBhY2thZ2UgaXMgbm90IGEgZGV2IGRlcGVuZGVuY3lcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIHBhY2thZ2VJc0RldkRlcGVuZGVuY3koe1xuICAgICAgICBhcHBQYXRoLFxuICAgICAgICBwYXRjaERldGFpbHM6IGdldFBhY2thZ2VEZXRhaWxzRnJvbVBhdGNoRmlsZW5hbWUoXCJjaGFsayszLjAuMS5wYXRjaFwiKSEsXG4gICAgICB9KSxcbiAgICApLnRvQmUoZmFsc2UpXG4gIH0pXG4gIGl0KFwicmV0dXJucyBmYWxzZSBpZiBwYWNrYWdlIGlzIGEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5IG9mIGEgZGV2IGRlcGVuZGVuY3lcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChleGlzdHNTeW5jKGpvaW4oYXBwUGF0aCwgXCJub2RlX21vZHVsZXMvY29zbWljb25maWdcIikpKS50b0JlKHRydWUpXG4gICAgZXhwZWN0KFxuICAgICAgcGFja2FnZUlzRGV2RGVwZW5kZW5jeSh7XG4gICAgICAgIGFwcFBhdGgsXG4gICAgICAgIHBhdGNoRGV0YWlsczogZ2V0UGFja2FnZURldGFpbHNGcm9tUGF0Y2hGaWxlbmFtZShcbiAgICAgICAgICAvLyBjb3NtaWNvbmZpZyBpcyBhIHRyYW5zaXRpdmUgZGVwIG9mIGxpbnQtc3RhZ2VkXG4gICAgICAgICAgXCJjb3NtaWNvbmZpZyszLjAuMS5wYXRjaFwiLFxuICAgICAgICApISxcbiAgICAgIH0pLFxuICAgICkudG9CZShmYWxzZSlcbiAgfSlcbn0pXG4iXX0= \ No newline at end of file diff --git a/dist/patch/apply.js b/dist/patch/apply.js new file mode 100644 index 00000000..d7782efc --- /dev/null +++ b/dist/patch/apply.js @@ -0,0 +1,251 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.executeEffects = void 0; +const fs_extra_1 = __importDefault(require("fs-extra")); +const path_1 = require("path"); +const assertNever_1 = require("../assertNever"); +const executeEffects = (effects, { dryRun, bestEffort, errors, cwd, }) => { + const inCwd = (path) => (cwd ? (0, path_1.join)(cwd, path) : path); + const humanReadable = (path) => (0, path_1.relative)(process.cwd(), inCwd(path)); + effects.forEach((eff) => { + switch (eff.type) { + case "file deletion": + if (dryRun) { + if (!fs_extra_1.default.existsSync(inCwd(eff.path))) { + throw new Error("Trying to delete file that doesn't exist: " + + humanReadable(eff.path)); + } + } + else { + // TODO: integrity checks + try { + fs_extra_1.default.unlinkSync(inCwd(eff.path)); + } + catch (e) { + if (bestEffort) { + errors === null || errors === void 0 ? void 0 : errors.push(`Failed to delete file ${eff.path}`); + } + else { + throw e; + } + } + } + break; + case "rename": + if (dryRun) { + // TODO: see what patch files look like if moving to exising path + if (!fs_extra_1.default.existsSync(inCwd(eff.fromPath))) { + throw new Error("Trying to move file that doesn't exist: " + + humanReadable(eff.fromPath)); + } + } + else { + try { + fs_extra_1.default.moveSync(inCwd(eff.fromPath), inCwd(eff.toPath)); + } + catch (e) { + if (bestEffort) { + errors === null || errors === void 0 ? void 0 : errors.push(`Failed to rename file ${eff.fromPath} to ${eff.toPath}`); + } + else { + throw e; + } + } + } + break; + case "file creation": + if (dryRun) { + if (fs_extra_1.default.existsSync(inCwd(eff.path))) { + throw new Error("Trying to create file that already exists: " + + humanReadable(eff.path)); + } + // todo: check file contents matches + } + else { + const fileContents = eff.hunk + ? eff.hunk.parts[0].lines.join("\n") + + (eff.hunk.parts[0].noNewlineAtEndOfFile ? "" : "\n") + : ""; + const path = inCwd(eff.path); + try { + fs_extra_1.default.ensureDirSync((0, path_1.dirname)(path)); + fs_extra_1.default.writeFileSync(path, fileContents, { mode: eff.mode }); + } + catch (e) { + if (bestEffort) { + errors === null || errors === void 0 ? void 0 : errors.push(`Failed to create new file ${eff.path}`); + } + else { + throw e; + } + } + } + break; + case "patch": + applyPatch(eff, { dryRun, cwd, bestEffort, errors }); + break; + case "mode change": + const currentMode = fs_extra_1.default.statSync(inCwd(eff.path)).mode; + if (((isExecutable(eff.newMode) && isExecutable(currentMode)) || + (!isExecutable(eff.newMode) && !isExecutable(currentMode))) && + dryRun) { + console.log(`Mode change is not required for file ${humanReadable(eff.path)}`); + } + fs_extra_1.default.chmodSync(inCwd(eff.path), eff.newMode); + break; + default: + (0, assertNever_1.assertNever)(eff); + } + }); +}; +exports.executeEffects = executeEffects; +function isExecutable(fileMode) { + // tslint:disable-next-line:no-bitwise + return (fileMode & 64) > 0; +} +const trimRight = (s) => s.replace(/\s+$/, ""); +function linesAreEqual(a, b) { + return trimRight(a) === trimRight(b); +} +/** + * How does noNewLineAtEndOfFile work? + * + * if you remove the newline from a file that had one without editing other bits: + * + * it creates an insertion/removal pair where the insertion has \ No new line at end of file + * + * if you edit a file that didn't have a new line and don't add one: + * + * both insertion and deletion have \ No new line at end of file + * + * if you edit a file that didn't have a new line and add one: + * + * deletion has \ No new line at end of file + * but not insertion + * + * if you edit a file that had a new line and leave it in: + * + * neither insetion nor deletion have the annoation + * + */ +function applyPatch({ hunks, path }, { dryRun, cwd, bestEffort, errors, }) { + path = cwd ? (0, path_1.resolve)(cwd, path) : path; + // modifying the file in place + const fileContents = fs_extra_1.default.readFileSync(path).toString(); + const mode = fs_extra_1.default.statSync(path).mode; + const fileLines = fileContents.split(/\n/); + const result = []; + for (const hunk of hunks) { + let fuzzingOffset = 0; + while (true) { + const modifications = evaluateHunk(hunk, fileLines, fuzzingOffset); + if (modifications) { + result.push(modifications); + break; + } + fuzzingOffset = + fuzzingOffset < 0 ? fuzzingOffset * -1 : fuzzingOffset * -1 - 1; + if (Math.abs(fuzzingOffset) > 20) { + const message = `Cannot apply hunk ${hunks.indexOf(hunk)} for file ${(0, path_1.relative)(process.cwd(), path)}\n\`\`\`diff\n${hunk.source}\n\`\`\`\n`; + if (bestEffort) { + errors === null || errors === void 0 ? void 0 : errors.push(message); + break; + } + else { + throw new Error(message); + } + } + } + } + if (dryRun) { + return; + } + let diffOffset = 0; + for (const modifications of result) { + for (const modification of modifications) { + switch (modification.type) { + case "splice": + fileLines.splice(modification.index + diffOffset, modification.numToDelete, ...modification.linesToInsert); + diffOffset += + modification.linesToInsert.length - modification.numToDelete; + break; + case "pop": + fileLines.pop(); + break; + case "push": + fileLines.push(modification.line); + break; + default: + (0, assertNever_1.assertNever)(modification); + } + } + } + try { + fs_extra_1.default.writeFileSync(path, fileLines.join("\n"), { mode }); + } + catch (e) { + if (bestEffort) { + errors === null || errors === void 0 ? void 0 : errors.push(`Failed to write file ${path}`); + } + else { + throw e; + } + } +} +function evaluateHunk(hunk, fileLines, fuzzingOffset) { + const result = []; + let contextIndex = hunk.header.original.start - 1 + fuzzingOffset; + // do bounds checks for index + if (contextIndex < 0) { + return null; + } + if (fileLines.length - contextIndex < hunk.header.original.length) { + return null; + } + for (const part of hunk.parts) { + switch (part.type) { + case "deletion": + case "context": + for (const line of part.lines) { + const originalLine = fileLines[contextIndex]; + if (!linesAreEqual(originalLine, line)) { + return null; + } + contextIndex++; + } + if (part.type === "deletion") { + result.push({ + type: "splice", + index: contextIndex - part.lines.length, + numToDelete: part.lines.length, + linesToInsert: [], + }); + if (part.noNewlineAtEndOfFile) { + result.push({ + type: "push", + line: "", + }); + } + } + break; + case "insertion": + result.push({ + type: "splice", + index: contextIndex, + numToDelete: 0, + linesToInsert: part.lines, + }); + if (part.noNewlineAtEndOfFile) { + result.push({ type: "pop" }); + } + break; + default: + (0, assertNever_1.assertNever)(part.type); + } + } + return result; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGF0Y2gvYXBwbHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsd0RBQXlCO0FBQ3pCLCtCQUF1RDtBQUV2RCxnREFBNEM7QUFFckMsTUFBTSxjQUFjLEdBQUcsQ0FDNUIsT0FBd0IsRUFDeEIsRUFDRSxNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixHQUFHLEdBQ3VFLEVBQzVFLEVBQUU7SUFDRixNQUFNLEtBQUssR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUEsV0FBSSxFQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDOUQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLElBQUEsZUFBUSxFQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUM1RSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDdEIsUUFBUSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakIsS0FBSyxlQUFlO2dCQUNsQixJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNYLElBQUksQ0FBQyxrQkFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDcEMsTUFBTSxJQUFJLEtBQUssQ0FDYiw0Q0FBNEM7NEJBQzFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQzFCLENBQUE7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDO3FCQUFNLENBQUM7b0JBQ04seUJBQXlCO29CQUN6QixJQUFJLENBQUM7d0JBQ0gsa0JBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJ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LEVBQUUsQ0FBQztvQkFDOUIsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO2dCQUM5QixDQUFDO2dCQUNELE1BQUs7WUFDUDtnQkFDRSxJQUFBLHlCQUFXLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgeyBkaXJuYW1lLCBqb2luLCByZWxhdGl2ZSwgcmVzb2x2ZSB9IGZyb20gXCJwYXRoXCJcbmltcG9ydCB7IFBhcnNlZFBhdGNoRmlsZSwgRmlsZVBhdGNoLCBIdW5rIH0gZnJvbSBcIi4vcGFyc2VcIlxuaW1wb3J0IHsgYXNzZXJ0TmV2ZXIgfSBmcm9tIFwiLi4vYXNzZXJ0TmV2ZXJcIlxuXG5leHBvcnQgY29uc3QgZXhlY3V0ZUVmZmVjdHMgPSAoXG4gIGVmZmVjdHM6IFBhcnNlZFBhdGNoRmlsZSxcbiAge1xuICAgIGRyeVJ1bixcbiAgICBiZXN0RWZmb3J0LFxuICAgIGVycm9ycyxcbiAgICBjd2QsXG4gIH06IHsgZHJ5UnVuOiBib29sZWFuOyBjd2Q/OiBzdHJpbmc7IGVycm9ycz86IHN0cmluZ1tdOyBiZXN0RWZmb3J0OiBib29sZWFuIH0sXG4pID0+IHtcbiAgY29uc3QgaW5Dd2QgPSAocGF0aDogc3RyaW5nKSA9PiAoY3dkID8gam9pbihjd2QsIHBhdGgpIDogcGF0aClcbiAgY29uc3QgaHVtYW5SZWFkYWJsZSA9IChwYXRoOiBzdHJpbmcpID0+IHJlbGF0aXZlKHByb2Nlc3MuY3dkKCksIGluQ3dkKHBhdGgpKVxuICBlZmZlY3RzLmZvckVhY2goKGVmZikgPT4ge1xuICAgIHN3aXRjaCAoZWZmLnR5cGUpIHtcbiAgICAgIGNhc2UgXCJmaWxlIGRlbGV0aW9uXCI6XG4gICAgICAgIGlmIChkcnlSdW4pIHtcbiAgICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmMoaW5Dd2QoZWZmLnBhdGgpKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBcIlRyeWluZyB0byBkZWxldGUgZmlsZSB0aGF0IGRvZXNuJ3QgZXhpc3Q6IFwiICtcbiAgICAgICAgICAgICAgICBodW1hblJlYWRhYmxlKGVmZi5wYXRoKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gVE9ETzogaW50ZWdyaXR5IGNoZWNrc1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBmcy51bmxpbmtTeW5jKGluQ3dkKGVmZi5wYXRoKSlcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAoYmVzdEVmZm9ydCkge1xuICAgICAgICAgICAgICBlcnJvcnM/LnB1c2goYEZhaWxlZCB0byBkZWxldGUgZmlsZSAke2VmZi5wYXRofWApXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aHJvdyBlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFwicmVuYW1lXCI6XG4gICAgICAgIGlmIChkcnlSdW4pIHtcbiAgICAgICAgICAvLyBUT0RPOiBzZWUgd2hhdCBwYXRjaCBmaWxlcyBsb29rIGxpa2UgaWYgbW92aW5nIHRvIGV4aXNpbmcgcGF0aFxuICAgICAgICAgIGlmICghZnMuZXhpc3RzU3luYyhpbkN3ZChlZmYuZnJvbVBhdGgpKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBcIlRyeWluZyB0byBtb3ZlIGZpbGUgdGhhdCBkb2Vzbid0IGV4aXN0OiBcIiArXG4gICAgICAgICAgICAgICAgaHVtYW5SZWFkYWJsZShlZmYuZnJvbVBhdGgpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgZnMubW92ZVN5bmMoaW5Dd2QoZWZmLmZyb21QYXRoKSwgaW5Dd2QoZWZmLnRvUGF0aCkpXG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGJlc3RFZmZvcnQpIHtcbiAgICAgICAgICAgICAgZXJyb3JzPy5wdXNoKFxuICAgICAgICAgICAgICAgIGBGYWlsZWQgdG8gcmVuYW1lIGZpbGUgJHtlZmYuZnJvbVBhdGh9IHRvICR7ZWZmLnRvUGF0aH1gLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aHJvdyBlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFwiZmlsZSBjcmVhdGlvblwiOlxuICAgICAgICBpZiAoZHJ5UnVuKSB7XG4gICAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmMoaW5Dd2QoZWZmLnBhdGgpKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBcIlRyeWluZyB0byBjcmVhdGUgZmlsZSB0aGF0IGFscmVhZHkgZXhpc3RzOiBcIiArXG4gICAgICAgICAgICAgICAgaHVtYW5SZWFkYWJsZShlZmYucGF0aCksXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIHRvZG86IGNoZWNrIGZpbGUgY29udGVudHMgbWF0Y2hlc1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGZpbGVDb250ZW50cyA9IGVmZi5odW5rXG4gICAgICAgICAgICA/IGVmZi5odW5rLnBhcnRzWzBdLmxpbmVzLmpvaW4oXCJcXG5cIikgK1xuICAgICAgICAgICAgICAoZWZmLmh1bmsucGFydHNbMF0ubm9OZXdsaW5lQXRFbmRPZkZpbGUgPyBcIlwiIDogXCJcXG5cIilcbiAgICAgICAgICAgIDogXCJcIlxuICAgICAgICAgIGNvbnN0IHBhdGggPSBpbkN3ZChlZmYucGF0aClcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgZnMuZW5zdXJlRGlyU3luYyhkaXJuYW1lKHBhdGgpKVxuICAgICAgICAgICAgZnMud3JpdGVGaWxlU3luYyhwYXRoLCBmaWxlQ29udGVudHMsIHsgbW9kZTogZWZmLm1vZGUgfSlcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAoYmVzdEVmZm9ydCkge1xuICAgICAgICAgICAgICBlcnJvcnM/LnB1c2goYEZhaWxlZCB0byBjcmVhdGUgbmV3IGZpbGUgJHtlZmYucGF0aH1gKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhyb3cgZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcInBhdGNoXCI6XG4gICAgICAgIGFwcGx5UGF0Y2goZWZmLCB7IGRyeVJ1biwgY3dkLCBiZXN0RWZmb3J0LCBlcnJvcnMgfSlcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgXCJtb2RlIGNoYW5nZVwiOlxuICAgICAgICBjb25zdCBjdXJyZW50TW9kZSA9IGZzLnN0YXRTeW5jKGluQ3dkKGVmZi5wYXRoKSkubW9kZVxuICAgICAgICBpZiAoXG4gICAgICAgICAgKChpc0V4ZWN1dGFibGUoZWZmLm5ld01vZGUpICYmIGlzRXhlY3V0YWJsZShjdXJyZW50TW9kZSkpIHx8XG4gICAgICAgICAgICAoIWlzRXhlY3V0YWJsZShlZmYubmV3TW9kZSkgJiYgIWlzRXhlY3V0YWJsZShjdXJyZW50TW9kZSkpKSAmJlxuICAgICAgICAgIGRyeVJ1blxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgIGBNb2RlIGNoYW5nZSBpcyBub3QgcmVxdWlyZWQgZm9yIGZpbGUgJHtodW1hblJlYWRhYmxlKGVmZi5wYXRoKX1gLFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICBmcy5jaG1vZFN5bmMoaW5Dd2QoZWZmLnBhdGgpLCBlZmYubmV3TW9kZSlcbiAgICAgICAgYnJlYWtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGFzc2VydE5ldmVyKGVmZilcbiAgICB9XG4gIH0pXG59XG5cbmZ1bmN0aW9uIGlzRXhlY3V0YWJsZShmaWxlTW9kZTogbnVtYmVyKSB7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1iaXR3aXNlXG4gIHJldHVybiAoZmlsZU1vZGUgJiAwYjAwMV8wMDBfMDAwKSA+IDBcbn1cblxuY29uc3QgdHJpbVJpZ2h0ID0gKHM6IHN0cmluZykgPT4gcy5yZXBsYWNlKC9cXHMrJC8sIFwiXCIpXG5mdW5jdGlvbiBsaW5lc0FyZUVxdWFsKGE6IHN0cmluZywgYjogc3RyaW5nKSB7XG4gIHJldHVybiB0cmltUmlnaHQoYSkgPT09IHRyaW1SaWdodChiKVxufVxuXG4vKipcbiAqIEhvdyBkb2VzIG5vTmV3TGluZUF0RW5kT2ZGaWxlIHdvcms/XG4gKlxuICogaWYgeW91IHJlbW92ZSB0aGUgbmV3bGluZSBmcm9tIGEgZmlsZSB0aGF0IGhhZCBvbmUgd2l0aG91dCBlZGl0aW5nIG90aGVyIGJpdHM6XG4gKlxuICogICAgaXQgY3JlYXRlcyBhbiBpbnNlcnRpb24vcmVtb3ZhbCBwYWlyIHdoZXJlIHRoZSBpbnNlcnRpb24gaGFzIFxcIE5vIG5ldyBsaW5lIGF0IGVuZCBvZiBmaWxlXG4gKlxuICogaWYgeW91IGVkaXQgYSBmaWxlIHRoYXQgZGlkbid0IGhhdmUgYSBuZXcgbGluZSBhbmQgZG9uJ3QgYWRkIG9uZTpcbiAqXG4gKiAgICBib3RoIGluc2VydGlvbiBhbmQgZGVsZXRpb24gaGF2ZSBcXCBObyBuZXcgbGluZSBhdCBlbmQgb2YgZmlsZVxuICpcbiAqIGlmIHlvdSBlZGl0IGEgZmlsZSB0aGF0IGRpZG4ndCBoYXZlIGEgbmV3IGxpbmUgYW5kIGFkZCBvbmU6XG4gKlxuICogICAgZGVsZXRpb24gaGFzIFxcIE5vIG5ldyBsaW5lIGF0IGVuZCBvZiBmaWxlXG4gKiAgICBidXQgbm90IGluc2VydGlvblxuICpcbiAqIGlmIHlvdSBlZGl0IGEgZmlsZSB0aGF0IGhhZCBhIG5ldyBsaW5lIGFuZCBsZWF2ZSBpdCBpbjpcbiAqXG4gKiAgICBuZWl0aGVyIGluc2V0aW9uIG5vciBkZWxldGlvbiBoYXZlIHRoZSBhbm5vYXRpb25cbiAqXG4gKi9cblxuZnVuY3Rpb24gYXBwbHlQYXRjaChcbiAgeyBodW5rcywgcGF0aCB9OiBGaWxlUGF0Y2gsXG4gIHtcbiAgICBkcnlSdW4sXG4gICAgY3dkLFxuICAgIGJlc3RFZmZvcnQsXG4gICAgZXJyb3JzLFxuICB9OiB7IGRyeVJ1bjogYm9vbGVhbjsgY3dkPzogc3RyaW5nOyBiZXN0RWZmb3J0OiBib29sZWFuOyBlcnJvcnM/OiBzdHJpbmdbXSB9LFxuKTogdm9pZCB7XG4gIHBhdGggPSBjd2QgPyByZXNvbHZlKGN3ZCwgcGF0aCkgOiBwYXRoXG4gIC8vIG1vZGlmeWluZyB0aGUgZmlsZSBpbiBwbGFjZVxuICBjb25zdCBmaWxlQ29udGVudHMgPSBmcy5yZWFkRmlsZVN5bmMocGF0aCkudG9TdHJpbmcoKVxuICBjb25zdCBtb2RlID0gZnMuc3RhdFN5bmMocGF0aCkubW9kZVxuXG4gIGNvbnN0IGZpbGVMaW5lczogc3RyaW5nW10gPSBmaWxlQ29udGVudHMuc3BsaXQoL1xcbi8pXG5cbiAgY29uc3QgcmVzdWx0OiBNb2RpZmljYXRpb25bXVtdID0gW11cblxuICBmb3IgKGNvbnN0IGh1bmsgb2YgaHVua3MpIHtcbiAgICBsZXQgZnV6emluZ09mZnNldCA9IDBcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgY29uc3QgbW9kaWZpY2F0aW9ucyA9IGV2YWx1YXRlSHVuayhodW5rLCBmaWxlTGluZXMsIGZ1enppbmdPZmZzZXQpXG4gICAgICBpZiAobW9kaWZpY2F0aW9ucykge1xuICAgICAgICByZXN1bHQucHVzaChtb2RpZmljYXRpb25zKVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBmdXp6aW5nT2Zmc2V0ID1cbiAgICAgICAgZnV6emluZ09mZnNldCA8IDAgPyBmdXp6aW5nT2Zmc2V0ICogLTEgOiBmdXp6aW5nT2Zmc2V0ICogLTEgLSAxXG5cbiAgICAgIGlmIChNYXRoLmFicyhmdXp6aW5nT2Zmc2V0KSA+IDIwKSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgQ2Fubm90IGFwcGx5IGh1bmsgJHtodW5rcy5pbmRleE9mKFxuICAgICAgICAgIGh1bmssXG4gICAgICAgICl9IGZvciBmaWxlICR7cmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgcGF0aCl9XFxuXFxgXFxgXFxgZGlmZlxcbiR7XG4gICAgICAgICAgaHVuay5zb3VyY2VcbiAgICAgICAgfVxcblxcYFxcYFxcYFxcbmBcblxuICAgICAgICBpZiAoYmVzdEVmZm9ydCkge1xuICAgICAgICAgIGVycm9ycz8ucHVzaChtZXNzYWdlKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoZHJ5UnVuKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBsZXQgZGlmZk9mZnNldCA9IDBcblxuICBmb3IgKGNvbnN0IG1vZGlmaWNhdGlvbnMgb2YgcmVzdWx0KSB7XG4gICAgZm9yIChjb25zdCBtb2RpZmljYXRpb24gb2YgbW9kaWZpY2F0aW9ucykge1xuICAgICAgc3dpdGNoIChtb2RpZmljYXRpb24udHlwZSkge1xuICAgICAgICBjYXNlIFwic3BsaWNlXCI6XG4gICAgICAgICAgZmlsZUxpbmVzLnNwbGljZShcbiAgICAgICAgICAgIG1vZGlmaWNhdGlvbi5pbmRleCArIGRpZmZPZmZzZXQsXG4gICAgICAgICAgICBtb2RpZmljYXRpb24ubnVtVG9EZWxldGUsXG4gICAgICAgICAgICAuLi5tb2RpZmljYXRpb24ubGluZXNUb0luc2VydCxcbiAgICAgICAgICApXG4gICAgICAgICAgZGlmZk9mZnNldCArPVxuICAgICAgICAgICAgbW9kaWZpY2F0aW9uLmxpbmVzVG9JbnNlcnQubGVuZ3RoIC0gbW9kaWZpY2F0aW9uLm51bVRvRGVsZXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSBcInBvcFwiOlxuICAgICAgICAgIGZpbGVMaW5lcy5wb3AoKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgXCJwdXNoXCI6XG4gICAgICAgICAgZmlsZUxpbmVzLnB1c2gobW9kaWZpY2F0aW9uLmxpbmUpXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBhc3NlcnROZXZlcihtb2RpZmljYXRpb24pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdHJ5IHtcbiAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGgsIGZpbGVMaW5lcy5qb2luKFwiXFxuXCIpLCB7IG1vZGUgfSlcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmIChiZXN0RWZmb3J0KSB7XG4gICAgICBlcnJvcnM/LnB1c2goYEZhaWxlZCB0byB3cml0ZSBmaWxlICR7cGF0aH1gKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBlXG4gICAgfVxuICB9XG59XG5cbmludGVyZmFjZSBQdXNoIHtcbiAgdHlwZTogXCJwdXNoXCJcbiAgbGluZTogc3RyaW5nXG59XG5pbnRlcmZhY2UgUG9wIHtcbiAgdHlwZTogXCJwb3BcIlxufVxuaW50ZXJmYWNlIFNwbGljZSB7XG4gIHR5cGU6IFwic3BsaWNlXCJcbiAgaW5kZXg6IG51bWJlclxuICBudW1Ub0RlbGV0ZTogbnVtYmVyXG4gIGxpbmVzVG9JbnNlcnQ6IHN0cmluZ1tdXG59XG5cbnR5cGUgTW9kaWZpY2F0aW9uID0gUHVzaCB8IFBvcCB8IFNwbGljZVxuXG5mdW5jdGlvbiBldmFsdWF0ZUh1bmsoXG4gIGh1bms6IEh1bmssXG4gIGZpbGVMaW5lczogc3RyaW5nW10sXG4gIGZ1enppbmdPZmZzZXQ6IG51bWJlcixcbik6IE1vZGlmaWNhdGlvbltdIHwgbnVsbCB7XG4gIGNvbnN0IHJlc3VsdDogTW9kaWZpY2F0aW9uW10gPSBbXVxuICBsZXQgY29udGV4dEluZGV4ID0gaHVuay5oZWFkZXIub3JpZ2luYWwuc3RhcnQgLSAxICsgZnV6emluZ09mZnNldFxuICAvLyBkbyBib3VuZHMgY2hlY2tzIGZvciBpbmRleFxuICBpZiAoY29udGV4dEluZGV4IDwgMCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgaWYgKGZpbGVMaW5lcy5sZW5ndGggLSBjb250ZXh0SW5kZXggPCBodW5rLmhlYWRlci5vcmlnaW5hbC5sZW5ndGgpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgZm9yIChjb25zdCBwYXJ0IG9mIGh1bmsucGFydHMpIHtcbiAgICBzd2l0Y2ggKHBhcnQudHlwZSkge1xuICAgICAgY2FzZSBcImRlbGV0aW9uXCI6XG4gICAgICBjYXNlIFwiY29udGV4dFwiOlxuICAgICAgICBmb3IgKGNvbnN0IGxpbmUgb2YgcGFydC5saW5lcykge1xuICAgICAgICAgIGNvbnN0IG9yaWdpbmFsTGluZSA9IGZpbGVMaW5lc1tjb250ZXh0SW5kZXhdXG4gICAgICAgICAgaWYgKCFsaW5lc0FyZUVxdWFsKG9yaWdpbmFsTGluZSwgbGluZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnRleHRJbmRleCsrXG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGFydC50eXBlID09PSBcImRlbGV0aW9uXCIpIHtcbiAgICAgICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgICAgICB0eXBlOiBcInNwbGljZVwiLFxuICAgICAgICAgICAgaW5kZXg6IGNvbnRleHRJbmRleCAtIHBhcnQubGluZXMubGVuZ3RoLFxuICAgICAgICAgICAgbnVtVG9EZWxldGU6IHBhcnQubGluZXMubGVuZ3RoLFxuICAgICAgICAgICAgbGluZXNUb0luc2VydDogW10sXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGlmIChwYXJ0Lm5vTmV3bGluZUF0RW5kT2ZGaWxlKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgICAgICAgIHR5cGU6IFwicHVzaFwiLFxuICAgICAgICAgICAgICBsaW5lOiBcIlwiLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgXCJpbnNlcnRpb25cIjpcbiAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgIHR5cGU6IFwic3BsaWNlXCIsXG4gICAgICAgICAgaW5kZXg6IGNvbnRleHRJbmRleCxcbiAgICAgICAgICBudW1Ub0RlbGV0ZTogMCxcbiAgICAgICAgICBsaW5lc1RvSW5zZXJ0OiBwYXJ0LmxpbmVzLFxuICAgICAgICB9KVxuICAgICAgICBpZiAocGFydC5ub05ld2xpbmVBdEVuZE9mRmlsZSkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKHsgdHlwZTogXCJwb3BcIiB9KVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBhc3NlcnROZXZlcihwYXJ0LnR5cGUpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuIl19 \ No newline at end of file diff --git a/dist/patch/parse.js b/dist/patch/parse.js new file mode 100644 index 00000000..ec201154 --- /dev/null +++ b/dist/patch/parse.js @@ -0,0 +1,335 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.EXECUTABLE_FILE_MODE = exports.NON_EXECUTABLE_FILE_MODE = exports.parseHunkHeaderLine = void 0; +exports.interpretParsedPatchFile = interpretParsedPatchFile; +exports.parsePatchFile = parsePatchFile; +exports.verifyHunkIntegrity = verifyHunkIntegrity; +const assertNever_1 = require("../assertNever"); +const parseHunkHeaderLine = (headerLine) => { + const match = headerLine + .trim() + .match(/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/); + if (!match) { + throw new Error(`Bad header line: '${headerLine}'`); + } + return { + original: { + start: Math.max(Number(match[1]), 1), + length: Number(match[3] || 1), + }, + patched: { + start: Math.max(Number(match[4]), 1), + length: Number(match[6] || 1), + }, + }; +}; +exports.parseHunkHeaderLine = parseHunkHeaderLine; +exports.NON_EXECUTABLE_FILE_MODE = 0o644; +exports.EXECUTABLE_FILE_MODE = 0o755; +const emptyFilePatch = () => ({ + diffLineFromPath: null, + diffLineToPath: null, + oldMode: null, + newMode: null, + deletedFileMode: null, + newFileMode: null, + renameFrom: null, + renameTo: null, + beforeHash: null, + afterHash: null, + fromPath: null, + toPath: null, + hunks: null, +}); +const emptyHunk = (headerLine) => ({ + header: (0, exports.parseHunkHeaderLine)(headerLine), + parts: [], + source: "", +}); +const hunkLinetypes = { + "@": "header", + "-": "deletion", + "+": "insertion", + " ": "context", + "\\": "pragma", + // Treat blank lines as context + undefined: "context", + "\r": "context", +}; +function parsePatchLines(lines, { supportLegacyDiffs }) { + const result = []; + let currentFilePatch = emptyFilePatch(); + let state = "parsing header"; + let currentHunk = null; + let currentHunkMutationPart = null; + let hunkStartLineIndex = 0; + function commitHunk(i) { + if (currentHunk) { + if (currentHunkMutationPart) { + currentHunk.parts.push(currentHunkMutationPart); + currentHunkMutationPart = null; + } + currentHunk.source = lines.slice(hunkStartLineIndex, i).join("\n"); + currentFilePatch.hunks.push(currentHunk); + currentHunk = null; + } + } + function commitFilePatch(i) { + commitHunk(i); + result.push(currentFilePatch); + currentFilePatch = emptyFilePatch(); + } + for (let i = 0; i < lines.length; i++) { + const line = lines[i]; + if (state === "parsing header") { + if (line.startsWith("@@")) { + hunkStartLineIndex = i; + state = "parsing hunks"; + currentFilePatch.hunks = []; + i--; + } + else if (line.startsWith("diff --git ")) { + if (currentFilePatch && currentFilePatch.diffLineFromPath) { + commitFilePatch(i); + } + const match = line.match(/^diff --git a\/(.*?) b\/(.*?)\s*$/); + if (!match) { + throw new Error("Bad diff line: " + line); + } + currentFilePatch.diffLineFromPath = match[1]; + currentFilePatch.diffLineToPath = match[2]; + } + else if (line.startsWith("old mode ")) { + currentFilePatch.oldMode = line.slice("old mode ".length).trim(); + } + else if (line.startsWith("new mode ")) { + currentFilePatch.newMode = line.slice("new mode ".length).trim(); + } + else if (line.startsWith("deleted file mode ")) { + currentFilePatch.deletedFileMode = line + .slice("deleted file mode ".length) + .trim(); + } + else if (line.startsWith("new file mode ")) { + currentFilePatch.newFileMode = line + .slice("new file mode ".length) + .trim(); + } + else if (line.startsWith("rename from ")) { + currentFilePatch.renameFrom = line.slice("rename from ".length).trim(); + } + else if (line.startsWith("rename to ")) { + currentFilePatch.renameTo = line.slice("rename to ".length).trim(); + } + else if (line.startsWith("index ")) { + const match = line.match(/(\w+)\.\.(\w+)/); + if (!match) { + continue; + } + currentFilePatch.beforeHash = match[1]; + currentFilePatch.afterHash = match[2]; + } + else if (line.startsWith("--- ")) { + currentFilePatch.fromPath = line.slice("--- a/".length).trim(); + } + else if (line.startsWith("+++ ")) { + currentFilePatch.toPath = line.slice("+++ b/".length).trim(); + } + } + else { + if (supportLegacyDiffs && line.startsWith("--- a/")) { + state = "parsing header"; + commitFilePatch(i); + i--; + continue; + } + // parsing hunks + const lineType = hunkLinetypes[line[0]] || null; + switch (lineType) { + case "header": + commitHunk(i); + currentHunk = emptyHunk(line); + break; + case null: + // unrecognized, bail out + state = "parsing header"; + commitFilePatch(i); + i--; + break; + case "pragma": + if (!line.startsWith("\\ No newline at end of file")) { + throw new Error("Unrecognized pragma in patch file: " + line); + } + if (!currentHunkMutationPart) { + throw new Error("Bad parser state: No newline at EOF pragma encountered without context"); + } + currentHunkMutationPart.noNewlineAtEndOfFile = true; + break; + case "insertion": + case "deletion": + case "context": + if (!currentHunk) { + throw new Error("Bad parser state: Hunk lines encountered before hunk header"); + } + if (currentHunkMutationPart && + currentHunkMutationPart.type !== lineType) { + currentHunk.parts.push(currentHunkMutationPart); + currentHunkMutationPart = null; + } + if (!currentHunkMutationPart) { + currentHunkMutationPart = { + type: lineType, + lines: [], + noNewlineAtEndOfFile: false, + }; + } + currentHunkMutationPart.lines.push(line.slice(1)); + break; + default: + // exhausitveness check + (0, assertNever_1.assertNever)(lineType); + } + } + } + commitFilePatch(lines.length); + for (const { hunks } of result) { + if (hunks) { + for (const hunk of hunks) { + verifyHunkIntegrity(hunk); + } + } + } + return result; +} +function interpretParsedPatchFile(files) { + const result = []; + for (const file of files) { + const { diffLineFromPath, diffLineToPath, oldMode, newMode, deletedFileMode, newFileMode, renameFrom, renameTo, beforeHash, afterHash, fromPath, toPath, hunks, } = file; + const type = renameFrom + ? "rename" + : deletedFileMode + ? "file deletion" + : newFileMode + ? "file creation" + : hunks && hunks.length > 0 + ? "patch" + : "mode change"; + let destinationFilePath = null; + switch (type) { + case "rename": + if (!renameFrom || !renameTo) { + throw new Error("Bad parser state: rename from & to not given"); + } + result.push({ + type: "rename", + fromPath: renameFrom, + toPath: renameTo, + }); + destinationFilePath = renameTo; + break; + case "file deletion": { + const path = diffLineFromPath || fromPath; + if (!path) { + throw new Error("Bad parse state: no path given for file deletion"); + } + result.push({ + type: "file deletion", + hunk: (hunks && hunks[0]) || null, + path, + mode: parseFileMode(deletedFileMode), + hash: beforeHash, + }); + break; + } + case "file creation": { + const path = diffLineToPath || toPath; + if (!path) { + throw new Error("Bad parse state: no path given for file creation"); + } + result.push({ + type: "file creation", + hunk: (hunks && hunks[0]) || null, + path, + mode: parseFileMode(newFileMode), + hash: afterHash, + }); + break; + } + case "patch": + case "mode change": + destinationFilePath = toPath || diffLineToPath; + break; + default: + (0, assertNever_1.assertNever)(type); + } + if (destinationFilePath && oldMode && newMode && oldMode !== newMode) { + result.push({ + type: "mode change", + path: destinationFilePath, + oldMode: parseFileMode(oldMode), + newMode: parseFileMode(newMode), + }); + } + if (destinationFilePath && hunks && hunks.length) { + result.push({ + type: "patch", + path: destinationFilePath, + hunks, + beforeHash, + afterHash, + }); + } + } + return result; +} +function parseFileMode(mode) { + // tslint:disable-next-line:no-bitwise + const parsedMode = parseInt(mode, 8) & 0o777; + if (parsedMode !== exports.NON_EXECUTABLE_FILE_MODE && + parsedMode !== exports.EXECUTABLE_FILE_MODE) { + throw new Error("Unexpected file mode string: " + mode); + } + return parsedMode; +} +function parsePatchFile(file) { + const lines = file.split(/\n/g); + if (lines[lines.length - 1] === "") { + lines.pop(); + } + try { + return interpretParsedPatchFile(parsePatchLines(lines, { supportLegacyDiffs: false })); + } + catch (e) { + if (e instanceof Error && + e.message === "hunk header integrity check failed") { + return interpretParsedPatchFile(parsePatchLines(lines, { supportLegacyDiffs: true })); + } + throw e; + } +} +function verifyHunkIntegrity(hunk) { + // verify hunk integrity + let originalLength = 0; + let patchedLength = 0; + for (const { type, lines } of hunk.parts) { + switch (type) { + case "context": + patchedLength += lines.length; + originalLength += lines.length; + break; + case "deletion": + originalLength += lines.length; + break; + case "insertion": + patchedLength += lines.length; + break; + default: + (0, assertNever_1.assertNever)(type); + } + } + if (originalLength !== hunk.header.original.length || + patchedLength !== hunk.header.patched.length) { + throw new Error("hunk header integrity check failed"); + } +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGF0Y2gvcGFyc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBNFNBLDREQW1HQztBQWNELHdDQW9CQztBQUVELGtEQTJCQztBQTljRCxnREFBNEM7QUFhckMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLFVBQWtCLEVBQWMsRUFBRTtJQUNwRSxNQUFNLEtBQUssR0FBRyxVQUFVO1NBQ3JCLElBQUksRUFBRTtTQUNOLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFBO0lBQ3JELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLFVBQVUsR0FBRyxDQUFDLENBQUE7SUFDckQsQ0FBQztJQUVELE9BQU87UUFDTCxRQUFRLEVBQUU7WUFDUixLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3BDLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM5QjtRQUNELE9BQU8sRUFBRTtZQUNQLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDcEMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlCO0tBQ0YsQ0FBQTtBQUNILENBQUMsQ0FBQTtBQWxCWSxRQUFBLG1CQUFtQix1QkFrQi9CO0FBRVksUUFBQSx3QkFBd0IsR0FBRyxLQUFLLENBQUE7QUFDaEMsUUFBQSxvQkFBb0IsR0FBRyxLQUFLLENBQUE7QUFnRnpDLE1BQU0sY0FBYyxHQUFHLEdBQWMsRUFBRSxDQUFDLENBQUM7SUFDdkMsZ0JBQWdCLEVBQUUsSUFBSTtJ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dmVyIH0gZnJvbSBcIi4uL2Fzc2VydE5ldmVyXCJcblxuZXhwb3J0IGludGVyZmFjZSBIdW5rSGVhZGVyIHtcbiAgb3JpZ2luYWw6IHtcbiAgICBzdGFydDogbnVtYmVyXG4gICAgbGVuZ3RoOiBudW1iZXJcbiAgfVxuICBwYXRjaGVkOiB7XG4gICAgc3RhcnQ6IG51bWJlclxuICAgIGxlbmd0aDogbnVtYmVyXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHBhcnNlSHVua0hlYWRlckxpbmUgPSAoaGVhZGVyTGluZTogc3RyaW5nKTogSHVua0hlYWRlciA9PiB7XG4gIGNvbnN0IG1hdGNoID0gaGVhZGVyTGluZVxuICAgIC50cmltKClcbiAgICAubWF0Y2goL15AQCAtKFxcZCspKCwoXFxkKykpPyBcXCsoXFxkKykoLChcXGQrKSk/IEBALiovKVxuICBpZiAoIW1hdGNoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBCYWQgaGVhZGVyIGxpbmU6ICcke2hlYWRlckxpbmV9J2ApXG4gIH1cblxuICByZXR1cm4ge1xuICAgIG9yaWdpbmFsOiB7XG4gICAgICBzdGFydDogTWF0aC5tYXgoTnVtYmVyKG1hdGNoWzFdKSwgMSksXG4gICAgICBsZW5ndGg6IE51bWJlcihtYXRjaFszXSB8fCAxKSxcbiAgICB9LFxuICAgIHBhdGNoZWQ6IHtcbiAgICAgIHN0YXJ0OiBNYXRoLm1heChOdW1iZXIobWF0Y2hbNF0pLCAxKSxcbiAgICAgIGxlbmd0aDogTnVtYmVyKG1hdGNoWzZdIHx8IDEpLFxuICAgIH0sXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IE5PTl9FWEVDVVRBQkxFX0ZJTEVfTU9ERSA9IDBvNjQ0XG5leHBvcnQgY29uc3QgRVhFQ1VUQUJMRV9GSUxFX01PREUgPSAwbzc1NVxuXG50eXBlIEZpbGVNb2RlID0gdHlwZW9mIE5PTl9FWEVDVVRBQkxFX0ZJTEVfTU9ERSB8IHR5cGVvZiBFWEVDVVRBQkxFX0ZJTEVfTU9ERVxuXG5pbnRlcmZhY2UgUGF0Y2hNdXRhdGlvblBhcnQge1xuICB0eXBlOiBcImNvbnRleHRcIiB8IFwiaW5zZXJ0aW9uXCIgfCBcImRlbGV0aW9uXCJcbiAgbGluZXM6IHN0cmluZ1tdXG4gIG5vTmV3bGluZUF0RW5kT2ZGaWxlOiBib29sZWFuXG59XG5cbmludGVyZmFjZSBGaWxlUmVuYW1lIHtcbiAgdHlwZTogXCJyZW5hbWVcIlxuICBmcm9tUGF0aDogc3RyaW5nXG4gIHRvUGF0aDogc3RyaW5nXG59XG5cbmludGVyZmFjZSBGaWxlTW9kZUNoYW5nZSB7XG4gIHR5cGU6IFwibW9kZSBjaGFuZ2VcIlxuICBwYXRoOiBzdHJpbmdcbiAgb2xkTW9kZTogRmlsZU1vZGVcbiAgbmV3TW9kZTogRmlsZU1vZGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlUGF0Y2gge1xuICB0eXBlOiBcInBhdGNoXCJcbiAgcGF0aDogc3RyaW5nXG4gIGh1bmtzOiBIdW5rW11cbiAgYmVmb3JlSGFzaDogc3RyaW5nIHwgbnVsbFxuICBhZnRlckhhc2g6IHN0cmluZyB8IG51bGxcbn1cblxuaW50ZXJmYWNlIEZpbGVEZWxldGlvbiB7XG4gIHR5cGU6IFwiZmlsZSBkZWxldGlvblwiXG4gIHBhdGg6IHN0cmluZ1xuICBtb2RlOiBGaWxlTW9kZVxuICBodW5rOiBIdW5rIHwgbnVsbFxuICBoYXNoOiBzdHJpbmcgfCBudWxsXG59XG5cbmludGVyZmFjZSBGaWxlQ3JlYXRpb24ge1xuICB0eXBlOiBcImZpbGUgY3JlYXRpb25cIlxuICBtb2RlOiBGaWxlTW9kZVxuICBwYXRoOiBzdHJpbmdcbiAgaHVuazogSHVuayB8IG51bGxcbiAgaGFzaDogc3RyaW5nIHwgbnVsbFxufVxuXG5leHBvcnQgdHlwZSBQYXRjaEZpbGVQYXJ0ID1cbiAgfCBGaWxlUGF0Y2hcbiAgfCBGaWxlRGVsZXRpb25cbiAgfCBGaWxlQ3JlYXRpb25cbiAgfCBGaWxlUmVuYW1lXG4gIHwgRmlsZU1vZGVDaGFuZ2VcblxuZXhwb3J0IHR5cGUgUGFyc2VkUGF0Y2hGaWxlID0gUGF0Y2hGaWxlUGFydFtdXG5cbnR5cGUgU3RhdGUgPSBcInBhcnNpbmcgaGVhZGVyXCIgfCBcInBhcnNpbmcgaHVua3NcIlxuXG5pbnRlcmZhY2UgRmlsZURlZXRzIHtcbiAgZGlmZkxpbmVGcm9tUGF0aDogc3RyaW5nIHwgbnVsbFxuICBkaWZmTGluZVRvUGF0aDogc3RyaW5nIHwgbnVsbFxuICBvbGRNb2RlOiBzdHJpbmcgfCBudWxsXG4gIG5ld01vZGU6IHN0cmluZyB8IG51bGxcbiAgZGVsZXRlZEZpbGVNb2RlOiBzdHJpbmcgfCBudWxsXG4gIG5ld0ZpbGVNb2RlOiBzdHJpbmcgfCBudWxsXG4gIHJlbmFtZUZyb206IHN0cmluZyB8IG51bGxcbiAgcmVuYW1lVG86IHN0cmluZyB8IG51bGxcbiAgYmVmb3JlSGFzaDogc3RyaW5nIHwgbnVsbFxuICBhZnRlckhhc2g6IHN0cmluZyB8IG51bGxcbiAgZnJvbVBhdGg6IHN0cmluZyB8IG51bGxcbiAgdG9QYXRoOiBzdHJpbmcgfCBudWxsXG4gIGh1bmtzOiBIdW5rW10gfCBudWxsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHVuayB7XG4gIGhlYWRlcjogSHVua0hlYWRlclxuICBwYXJ0czogUGF0Y2hNdXRhdGlvblBhcnRbXVxuICBzb3VyY2U6IHN0cmluZ1xufVxuXG5jb25zdCBlbXB0eUZpbGVQYXRjaCA9ICgpOiBGaWxlRGVldHMgPT4gKHtcbiAgZGlmZkxpbmVGcm9tUGF0aDogbnVsbCxcbiAgZGlmZkxpbmVUb1BhdGg6IG51bGwsXG4gIG9sZE1vZGU6IG51bGwsXG4gIG5ld01vZGU6IG51bGwsXG4gIGRlbGV0ZWRGaWxlTW9kZTogbnVsbCxcbiAgbmV3RmlsZU1vZGU6IG51bGwsXG4gIHJlbmFtZUZyb206IG51bGwsXG4gIHJlbmFtZVRvOiBudWxsLFxuICBiZWZvcmVIYXNoOiBudWxsLFxuICBhZnRlckhhc2g6IG51bGwsXG4gIGZyb21QYXRoOiBudWxsLFxuICB0b1BhdGg6IG51bGwsXG4gIGh1bmtzOiBudWxsLFxufSlcblxuY29uc3QgZW1wdHlIdW5rID0gKGhlYWRlckxpbmU6IHN0cmluZyk6IEh1bmsgPT4gKHtcbiAgaGVhZGVyOiBwYXJzZUh1bmtIZWFkZXJMaW5lKGhlYWRlckxpbmUpLFxuICBwYXJ0czogW10sXG4gIHNvdXJjZTogXCJcIixcbn0pXG5cbmNvbnN0IGh1bmtMaW5ldHlwZXM6IHtcbiAgW2s6IHN0cmluZ106IFBhdGNoTXV0YXRpb25QYXJ0W1widHlwZVwiXSB8IFwicHJhZ21hXCIgfCBcImhlYWRlclwiXG59ID0ge1xuICBcIkBcIjogXCJoZWFkZXJcIixcbiAgXCItXCI6IFwiZGVsZXRpb25cIixcbiAgXCIrXCI6IFwiaW5zZXJ0aW9uXCIsXG4gIFwiIFwiOiBcImNvbnRleHRcIixcbiAgXCJcXFxcXCI6IFwicHJhZ21hXCIsXG4gIC8vIFRyZWF0IGJsYW5rIGxpbmVzIGFzIGNvbnRleHRcbiAgdW5kZWZpbmVkOiBcImNvbnRleHRcIixcbiAgXCJcXHJcIjogXCJjb250ZXh0XCIsXG59XG5cbmZ1bmN0aW9uIHBhcnNlUGF0Y2hMaW5lcyhcbiAgbGluZXM6IHN0cmluZ1tdLFxuICB7IHN1cHBvcnRMZWdhY3lEaWZmcyB9OiB7IHN1cHBvcnRMZWdhY3lEaWZmczogYm9vbGVhbiB9LFxuKTogRmlsZURlZXRzW10ge1xuICBjb25zdCByZXN1bHQ6IEZpbGVEZWV0c1tdID0gW11cbiAgbGV0IGN1cnJlbnRGaWxlUGF0Y2g6IEZpbGVEZWV0cyA9IGVtcHR5RmlsZVBhdGNoKClcbiAgbGV0IHN0YXRlOiBTdGF0ZSA9IFwicGFyc2luZyBoZWFkZXJcIlxuICBsZXQgY3VycmVudEh1bms6IEh1bmsgfCBudWxsID0gbnVsbFxuICBsZXQgY3VycmVudEh1bmtNdXRhdGlvblBhcnQ6IFBhdGNoTXV0YXRpb25QYXJ0IHwgbnVsbCA9IG51bGxcbiAgbGV0IGh1bmtTdGFydExpbmVJbmRleCA9IDBcblxuICBmdW5jdGlvbiBjb21taXRIdW5rKGk6IG51bWJlcikge1xuICAgIGlmIChjdXJyZW50SHVuaykge1xuICAgICAgaWYgKGN1cnJlbnRIdW5rTXV0YXRpb25QYXJ0KSB7XG4gICAgICAgIGN1cnJlbnRIdW5rLnBhcnRzLnB1c2goY3VycmVudEh1bmtNdXRhdGlvblBhcnQpXG4gICAgICAgIGN1cnJlbnRIdW5rTXV0YXRpb25QYXJ0ID0gbnVsbFxuICAgICAgfVxuICAgICAgY3VycmVudEh1bmsuc291cmNlID0gbGluZXMuc2xpY2UoaHVua1N0YXJ0TGluZUluZGV4LCBpKS5qb2luKFwiXFxuXCIpXG4gICAgICBjdXJyZW50RmlsZVBhdGNoLmh1bmtzIS5wdXNoKGN1cnJlbnRIdW5rKVxuICAgICAgY3VycmVudEh1bmsgPSBudWxsXG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gY29tbWl0RmlsZVBhdGNoKGk6IG51bWJlcikge1xuICAgIGNvbW1pdEh1bmsoaSlcbiAgICByZXN1bHQucHVzaChjdXJyZW50RmlsZVBhdGNoKVxuICAgIGN1cnJlbnRGaWxlUGF0Y2ggPSBlbXB0eUZpbGVQYXRjaCgpXG4gIH1cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgbGluZSA9IGxpbmVzW2ldXG5cbiAgICBpZiAoc3RhdGUgPT09IFwicGFyc2luZyBoZWFkZXJcIikge1xuICAgICAgaWYgKGxpbmUuc3RhcnRzV2l0aChcIkBAXCIpKSB7XG4gICAgICAgIGh1bmtTdGFydExpbmVJbmRleCA9IGlcbiAgICAgICAgc3RhdGUgPSBcInBhcnNpbmcgaHVua3NcIlxuICAgICAgICBjdXJyZW50RmlsZVBhdGNoLmh1bmtzID0gW11cbiAgICAgICAgaS0tXG4gICAgICB9IGVsc2UgaWYgKGxpbmUuc3RhcnRzV2l0aChcImRpZmYgLS1naXQgXCIpKSB7XG4gICAgICAgIGlmIChjdXJyZW50RmlsZVBhdGNoICYmIGN1cnJlbnRGaWxlUGF0Y2guZGlmZkxpbmVGcm9tUGF0aCkge1xuICAgICAgICAgIGNvbW1pdEZpbGVQYXRjaChpKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1hdGNoID0gbGluZS5tYXRjaCgvXmRpZmYgLS1naXQgYVxcLyguKj8pIGJcXC8oLio/KVxccyokLylcbiAgICAgICAgaWYgKCFtYXRjaCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkJhZCBkaWZmIGxpbmU6IFwiICsgbGluZSlcbiAgICAgICAgfVxuICAgICAgICBjdXJyZW50RmlsZVBhdGNoLmRpZmZMaW5lRnJvbVBhdGggPSBtYXRjaFsxXVxuICAgICAgICBjdXJyZW50RmlsZVBhdGNoLmRpZmZMaW5lVG9QYXRoID0gbWF0Y2hbMl1cbiAgICAgIH0gZWxzZSBpZiAobGluZS5zdGFydHNXaXRoKFwib2xkIG1vZGUgXCIpKSB7XG4gICAgICAgIGN1cnJlbnRGaWxlUGF0Y2gub2xkTW9kZSA9IGxpbmUuc2xpY2UoXCJvbGQgbW9kZSBcIi5sZW5ndGgpLnRyaW0oKVxuICAgICAgfSBlbHNlIGlmIChsaW5lLnN0YXJ0c1dpdGgoXCJuZXcgbW9kZSBcIikpIHtcbiAgICAgICAgY3VycmVudEZpbGVQYXRjaC5uZXdNb2RlID0gbGluZS5zbGljZShcIm5ldyBtb2RlIFwiLmxlbmd0aCkudHJpbSgpXG4gICAgICB9IGVsc2UgaWYgKGxpbmUuc3RhcnRzV2l0aChcImRlbGV0ZWQgZmlsZSBtb2RlIFwiKSkge1xuICAgICAgICBjdXJyZW50RmlsZVBhdGNoLmRlbGV0ZWRGaWxlTW9kZSA9IGxpbmVcbiAgICAgICAgICAuc2xpY2UoXCJkZWxldGVkIGZpbGUgbW9kZSBcIi5sZW5ndGgpXG4gICAgICAgICAgLnRyaW0oKVxuICAgICAgfSBlbHNlIGlmIChsaW5lLnN0YXJ0c1dpdGgoXCJuZXcgZmlsZSBtb2RlIFwiKSkge1xuICAgICAgICBjdXJyZW50RmlsZVBhdGNoLm5ld0ZpbGVNb2RlID0gbGluZVxuICAgICAgICAgIC5zbGljZShcIm5ldyBmaWxlIG1vZGUgXCIubGVuZ3RoKVxuICAgICAgICAgIC50cmltKClcbiAgICAgIH0gZWxzZSBpZiAobGluZS5zdGFydHNXaXRoKFwicmVuYW1lIGZyb20gXCIpKSB7XG4gICAgICAgIGN1cnJlbnRGaWxlUGF0Y2gucmVuYW1lRnJvbSA9IGxpbmUuc2xpY2UoXCJyZW5hbWUgZnJvbSBcIi5sZW5ndGgpLnRyaW0oKVxuICAgICAgfSBlbHNlIGlmIChsaW5lLnN0YXJ0c1dpdGgoXCJyZW5hbWUgdG8gXCIpKSB7XG4gICAgICAgIGN1cnJlbnRGaWxlUGF0Y2gucmVuYW1lVG8gPSBsaW5lLnNsaWNlKFwicmVuYW1lIHRvIFwiLmxlbmd0aCkudHJpbSgpXG4gICAgICB9IGVsc2UgaWYgKGxpbmUuc3RhcnRzV2l0aChcImluZGV4IFwiKSkge1xuICAgICAgICBjb25zdCBtYXRjaCA9IGxpbmUubWF0Y2goLyhcXHcrKVxcLlxcLihcXHcrKS8pXG4gICAgICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGN1cnJlbnRGaWxlUGF0Y2guYmVmb3JlSGFzaCA9IG1hdGNoWzFdXG4gICAgICAgIGN1cnJlbnRGaWxlUGF0Y2guYWZ0ZXJIYXNoID0gbWF0Y2hbMl1cbiAgICAgIH0gZWxzZSBpZiAobGluZS5zdGFydHNXaXRoKFwiLS0tIFwiKSkge1xuICAgICAgICBjdXJyZW50RmlsZVBhdGNoLmZyb21QYXRoID0gbGluZS5zbGljZShcIi0tLSBhL1wiLmxlbmd0aCkudHJpbSgpXG4gICAgICB9IGVsc2UgaWYgKGxpbmUuc3RhcnRzV2l0aChcIisrKyBcIikpIHtcbiAgICAgICAgY3VycmVudEZpbGVQYXRjaC50b1BhdGggPSBsaW5lLnNsaWNlKFwiKysrIGIvXCIubGVuZ3RoKS50cmltKClcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHN1cHBvcnRMZWdhY3lEaWZmcyAmJiBsaW5lLnN0YXJ0c1dpdGgoXCItLS0gYS9cIikpIHtcbiAgICAgICAgc3RhdGUgPSBcInBhcnNpbmcgaGVhZGVyXCJcbiAgICAgICAgY29tbWl0RmlsZVBhdGNoKGkpXG4gICAgICAgIGktLVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgLy8gcGFyc2luZyBodW5rc1xuICAgICAgY29uc3QgbGluZVR5cGUgPSBodW5rTGluZXR5cGVzW2xpbmVbMF1dIHx8IG51bGxcbiAgICAgIHN3aXRjaCAobGluZVR5cGUpIHtcbiAgICAgICAgY2FzZSBcImhlYWRlclwiOlxuICAgICAgICAgIGNvbW1pdEh1bmsoaSlcbiAgICAgICAgICBjdXJyZW50SHVuayA9IGVtcHR5SHVuayhsaW5lKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgbnVsbDpcbiAgICAgICAgICAvLyB1bnJlY29nbml6ZWQsIGJhaWwgb3V0XG4gICAgICAgICAgc3RhdGUgPSBcInBhcnNpbmcgaGVhZGVyXCJcbiAgICAgICAgICBjb21taXRGaWxlUGF0Y2goaSlcbiAgICAgICAgICBpLS1cbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlIFwicHJhZ21hXCI6XG4gICAgICAgICAgaWYgKCFsaW5lLnN0YXJ0c1dpdGgoXCJcXFxcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGVcIikpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVucmVjb2duaXplZCBwcmFnbWEgaW4gcGF0Y2ggZmlsZTogXCIgKyBsaW5lKVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIWN1cnJlbnRIdW5rTXV0YXRpb25QYXJ0KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgIFwiQmFkIHBhcnNlciBzdGF0ZTogTm8gbmV3bGluZSBhdCBFT0YgcHJhZ21hIGVuY291bnRlcmVkIHdpdGhvdXQgY29udGV4dFwiLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgICBjdXJyZW50SHVua011dGF0aW9uUGFydC5ub05ld2xpbmVBdEVuZE9mRmlsZSA9IHRydWVcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlIFwiaW5zZXJ0aW9uXCI6XG4gICAgICAgIGNhc2UgXCJkZWxldGlvblwiOlxuICAgICAgICBjYXNlIFwiY29udGV4dFwiOlxuICAgICAgICAgIGlmICghY3VycmVudEh1bmspIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgXCJCYWQgcGFyc2VyIHN0YXRlOiBIdW5rIGxpbmVzIGVuY291bnRlcmVkIGJlZm9yZSBodW5rIGhlYWRlclwiLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBjdXJyZW50SHVua011dGF0aW9uUGFydCAmJlxuICAgICAgICAgICAgY3VycmVudEh1bmtNdXRhdGlvblBhcnQudHlwZSAhPT0gbGluZVR5cGVcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGN1cnJlbnRIdW5rLnBhcnRzLnB1c2goY3VycmVudEh1bmtNdXRhdGlvblBhcnQpXG4gICAgICAgICAgICBjdXJyZW50SHVua011dGF0aW9uUGFydCA9IG51bGxcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFjdXJyZW50SHVua011dGF0aW9uUGFydCkge1xuICAgICAgICAgICAgY3VycmVudEh1bmtNdXRhdGlvblBhcnQgPSB7XG4gICAgICAgICAgICAgIHR5cGU6IGxpbmVUeXBlLFxuICAgICAgICAgICAgICBsaW5lczogW10sXG4gICAgICAgICAgICAgIG5vTmV3bGluZUF0RW5kT2ZGaWxlOiBmYWxzZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgY3VycmVudEh1bmtNdXRhdGlvblBhcnQubGluZXMucHVzaChsaW5lLnNsaWNlKDEpKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgLy8gZXhoYXVzaXR2ZW5lc3MgY2hlY2tcbiAgICAgICAgICBhc3NlcnROZXZlcihsaW5lVHlwZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb21taXRGaWxlUGF0Y2gobGluZXMubGVuZ3RoKVxuXG4gIGZvciAoY29uc3QgeyBodW5rcyB9IG9mIHJlc3VsdCkge1xuICAgIGlmIChodW5rcykge1xuICAgICAgZm9yIChjb25zdCBodW5rIG9mIGh1bmtzKSB7XG4gICAgICAgIHZlcmlmeUh1bmtJbnRlZ3JpdHkoaHVuaylcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnRlcnByZXRQYXJzZWRQYXRjaEZpbGUoZmlsZXM6IEZpbGVEZWV0c1tdKTogUGFyc2VkUGF0Y2hGaWxlIHtcbiAgY29uc3QgcmVzdWx0OiBQYXJzZWRQYXRjaEZpbGUgPSBbXVxuXG4gIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgIGNvbnN0IHtcbiAgICAgIGRpZmZMaW5lRnJvbVBhdGgsXG4gICAgICBkaWZmTGluZVRvUGF0aCxcbiAgICAgIG9sZE1vZGUsXG4gICAgICBuZXdNb2RlLFxuICAgICAgZGVsZXRlZEZpbGVNb2RlLFxuICAgICAgbmV3RmlsZU1vZGUsXG4gICAgICByZW5hbWVGcm9tLFxuICAgICAgcmVuYW1lVG8sXG4gICAgICBiZWZvcmVIYXNoLFxuICAgICAgYWZ0ZXJIYXNoLFxuICAgICAgZnJvbVBhdGgsXG4gICAgICB0b1BhdGgsXG4gICAgICBodW5rcyxcbiAgICB9ID0gZmlsZVxuICAgIGNvbnN0IHR5cGU6IFBhdGNoRmlsZVBhcnRbXCJ0eXBlXCJdID0gcmVuYW1lRnJvbVxuICAgICAgPyBcInJlbmFtZVwiXG4gICAgICA6IGRlbGV0ZWRGaWxlTW9kZVxuICAgICAgPyBcImZpbGUgZGVsZXRpb25cIlxuICAgICAgOiBuZXdGaWxlTW9kZVxuICAgICAgPyBcImZpbGUgY3JlYXRpb25cIlxuICAgICAgOiBodW5rcyAmJiBodW5rcy5sZW5ndGggPiAwXG4gICAgICA/IFwicGF0Y2hcIlxuICAgICAgOiBcIm1vZGUgY2hhbmdlXCJcblxuICAgIGxldCBkZXN0aW5hdGlvbkZpbGVQYXRoOiBzdHJpbmcgfCBudWxsID0gbnVsbFxuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSBcInJlbmFtZVwiOlxuICAgICAgICBpZiAoIXJlbmFtZUZyb20gfHwgIXJlbmFtZVRvKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQmFkIHBhcnNlciBzdGF0ZTogcmVuYW1lIGZyb20gJiB0byBub3QgZ2l2ZW5cIilcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgICAgdHlwZTogXCJyZW5hbWVcIixcbiAgICAgICAgICBmcm9tUGF0aDogcmVuYW1lRnJvbSxcbiAgICAgICAgICB0b1BhdGg6IHJlbmFtZVRvLFxuICAgICAgICB9KVxuICAgICAgICBkZXN0aW5hdGlvbkZpbGVQYXRoID0gcmVuYW1lVG9cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgXCJmaWxlIGRlbGV0aW9uXCI6IHtcbiAgICAgICAgY29uc3QgcGF0aCA9IGRpZmZMaW5lRnJvbVBhdGggfHwgZnJvbVBhdGhcbiAgICAgICAgaWYgKCFwYXRoKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQmFkIHBhcnNlIHN0YXRlOiBubyBwYXRoIGdpdmVuIGZvciBmaWxlIGRlbGV0aW9uXCIpXG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgIHR5cGU6IFwiZmlsZSBkZWxldGlvblwiLFxuICAgICAgICAgIGh1bms6IChodW5rcyAmJiBodW5rc1swXSkgfHwgbnVsbCxcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIG1vZGU6IHBhcnNlRmlsZU1vZGUoZGVsZXRlZEZpbGVNb2RlISksXG4gICAgICAgICAgaGFzaDogYmVmb3JlSGFzaCxcbiAgICAgICAgfSlcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJmaWxlIGNyZWF0aW9uXCI6IHtcbiAgICAgICAgY29uc3QgcGF0aCA9IGRpZmZMaW5lVG9QYXRoIHx8IHRvUGF0aFxuICAgICAgICBpZiAoIXBhdGgpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJCYWQgcGFyc2Ugc3RhdGU6IG5vIHBhdGggZ2l2ZW4gZm9yIGZpbGUgY3JlYXRpb25cIilcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgICAgdHlwZTogXCJmaWxlIGNyZWF0aW9uXCIsXG4gICAgICAgICAgaHVuazogKGh1bmtzICYmIGh1bmtzWzBdKSB8fCBudWxsLFxuICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgbW9kZTogcGFyc2VGaWxlTW9kZShuZXdGaWxlTW9kZSEpLFxuICAgICAgICAgIGhhc2g6IGFmdGVySGFzaCxcbiAgICAgICAgfSlcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJwYXRjaFwiOlxuICAgICAgY2FzZSBcIm1vZGUgY2hhbmdlXCI6XG4gICAgICAgIGRlc3RpbmF0aW9uRmlsZVBhdGggPSB0b1BhdGggfHwgZGlmZkxpbmVUb1BhdGhcbiAgICAgICAgYnJlYWtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGFzc2VydE5ldmVyKHR5cGUpXG4gICAgfVxuXG4gICAgaWYgKGRlc3RpbmF0aW9uRmlsZVBhdGggJiYgb2xkTW9kZSAmJiBuZXdNb2RlICYmIG9sZE1vZGUgIT09IG5ld01vZGUpIHtcbiAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgdHlwZTogXCJtb2RlIGNoYW5nZVwiLFxuICAgICAgICBwYXRoOiBkZXN0aW5hdGlvbkZpbGVQYXRoLFxuICAgICAgICBvbGRNb2RlOiBwYXJzZUZpbGVNb2RlKG9sZE1vZGUpLFxuICAgICAgICBuZXdNb2RlOiBwYXJzZUZpbGVNb2RlKG5ld01vZGUpLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAoZGVzdGluYXRpb25GaWxlUGF0aCAmJiBodW5rcyAmJiBodW5rcy5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgdHlwZTogXCJwYXRjaFwiLFxuICAgICAgICBwYXRoOiBkZXN0aW5hdGlvbkZpbGVQYXRoLFxuICAgICAgICBodW5rcyxcbiAgICAgICAgYmVmb3JlSGFzaCxcbiAgICAgICAgYWZ0ZXJIYXNoLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG59XG5cbmZ1bmN0aW9uIHBhcnNlRmlsZU1vZGUobW9kZTogc3RyaW5nKTogRmlsZU1vZGUge1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxuICBjb25zdCBwYXJzZWRNb2RlID0gcGFyc2VJbnQobW9kZSwgOCkgJiAwbzc3N1xuICBpZiAoXG4gICAgcGFyc2VkTW9kZSAhPT0gTk9OX0VYRUNVVEFCTEVfRklMRV9NT0RFICYmXG4gICAgcGFyc2VkTW9kZSAhPT0gRVhFQ1VUQUJMRV9GSUxFX01PREVcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiVW5leHBlY3RlZCBmaWxlIG1vZGUgc3RyaW5nOiBcIiArIG1vZGUpXG4gIH1cbiAgcmV0dXJuIHBhcnNlZE1vZGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUGF0Y2hGaWxlKGZpbGU6IHN0cmluZyk6IFBhcnNlZFBhdGNoRmlsZSB7XG4gIGNvbnN0IGxpbmVzID0gZmlsZS5zcGxpdCgvXFxuL2cpXG4gIGlmIChsaW5lc1tsaW5lcy5sZW5ndGggLSAxXSA9PT0gXCJcIikge1xuICAgIGxpbmVzLnBvcCgpXG4gIH1cbiAgdHJ5IHtcbiAgICByZXR1cm4gaW50ZXJwcmV0UGFyc2VkUGF0Y2hGaWxlKFxuICAgICAgcGFyc2VQYXRjaExpbmVzKGxpbmVzLCB7IHN1cHBvcnRMZWdhY3lEaWZmczogZmFsc2UgfSksXG4gICAgKVxuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKFxuICAgICAgZSBpbnN0YW5jZW9mIEVycm9yICYmXG4gICAgICBlLm1lc3NhZ2UgPT09IFwiaHVuayBoZWFkZXIgaW50ZWdyaXR5IGNoZWNrIGZhaWxlZFwiXG4gICAgKSB7XG4gICAgICByZXR1cm4gaW50ZXJwcmV0UGFyc2VkUGF0Y2hGaWxlKFxuICAgICAgICBwYXJzZVBhdGNoTGluZXMobGluZXMsIHsgc3VwcG9ydExlZ2FjeURpZmZzOiB0cnVlIH0pLFxuICAgICAgKVxuICAgIH1cbiAgICB0aHJvdyBlXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeUh1bmtJbnRlZ3JpdHkoaHVuazogSHVuaykge1xuICAvLyB2ZXJpZnkgaHVuayBpbnRlZ3JpdHlcbiAgbGV0IG9yaWdpbmFsTGVuZ3RoID0gMFxuICBsZXQgcGF0Y2hlZExlbmd0aCA9IDBcbiAgZm9yIChjb25zdCB7IHR5cGUsIGxpbmVzIH0gb2YgaHVuay5wYXJ0cykge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSBcImNvbnRleHRcIjpcbiAgICAgICAgcGF0Y2hlZExlbmd0aCArPSBsaW5lcy5sZW5ndGhcbiAgICAgICAgb3JpZ2luYWxMZW5ndGggKz0gbGluZXMubGVuZ3RoXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFwiZGVsZXRpb25cIjpcbiAgICAgICAgb3JpZ2luYWxMZW5ndGggKz0gbGluZXMubGVuZ3RoXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFwiaW5zZXJ0aW9uXCI6XG4gICAgICAgIHBhdGNoZWRMZW5ndGggKz0gbGluZXMubGVuZ3RoXG4gICAgICAgIGJyZWFrXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBhc3NlcnROZXZlcih0eXBlKVxuICAgIH1cbiAgfVxuXG4gIGlmIChcbiAgICBvcmlnaW5hbExlbmd0aCAhPT0gaHVuay5oZWFkZXIub3JpZ2luYWwubGVuZ3RoIHx8XG4gICAgcGF0Y2hlZExlbmd0aCAhPT0gaHVuay5oZWFkZXIucGF0Y2hlZC5sZW5ndGhcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiaHVuayBoZWFkZXIgaW50ZWdyaXR5IGNoZWNrIGZhaWxlZFwiKVxuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/dist/patch/parse.test.js b/dist/patch/parse.test.js new file mode 100644 index 00000000..0ed77995 --- /dev/null +++ b/dist/patch/parse.test.js @@ -0,0 +1,174 @@ +"use strict"; +// tslint:disable +Object.defineProperty(exports, "__esModule", { value: true }); +const parse_1 = require("../patch/parse"); +const patch = `diff --git a/banana.ts b/banana.ts +index 2de83dd..842652c 100644 +--- a/banana.ts ++++ b/banana.ts +@@ -1,5 +1,5 @@ + this + is + +-a ++ + file +`; +const invalidHeaders1 = `diff --git a/banana.ts b/banana.ts +index 2de83dd..842652c 100644 +--- a/banana.ts ++++ b/banana.ts +@@ -1,5 +1,4 @@ + this + is + +-a ++ + file +`; +const invalidHeaders2 = `diff --git a/banana.ts b/banana.ts +index 2de83dd..842652c 100644 +--- a/banana.ts ++++ b/banana.ts +@@ -1,4 +1,5 @@ + this + is + +-a ++ + file +`; +const invalidHeaders3 = `diff --git a/banana.ts b/banana.ts +index 2de83dd..842652c 100644 +--- a/banana.ts ++++ b/banana.ts +@@ -1,0 +1,5 @@ + this + is + +-a ++ + file +`; +const invalidHeaders4 = `diff --git a/banana.ts b/banana.ts +index 2de83dd..842652c 100644 +--- a/banana.ts ++++ b/banana.ts +@@ -1,5 +1,0 @@ + this + is + +-a ++ + file +`; +const invalidHeaders5 = `diff --git a/banana.ts b/banana.ts +index 2de83dd..842652c 100644 +--- a/banana.ts ++++ b/banana.ts +@@ -1,5 +1,5@@ + this + is + +-a ++ + file +`; +const accidentalBlankLine = `diff --git a/banana.ts b/banana.ts +index 2de83dd..842652c 100644 +--- a/banana.ts ++++ b/banana.ts +@@ -1,5 +1,5 @@ + this + is + +-a ++ + file +`; +const crlfLineBreaks = `diff --git a/banana.ts b/banana.ts +new file mode 100644 +index 0000000..3e1267f +--- /dev/null ++++ b/banana.ts +@@ -0,0 +1 @@ ++this is a new file +`.replace(/\n/g, "\r\n"); +const modeChangeAndModifyAndRename = `diff --git a/numbers.txt b/banana.txt +old mode 100644 +new mode 100755 +similarity index 96% +rename from numbers.txt +rename to banana.txt +index fbf1785..92d2c5f +--- a/numbers.txt ++++ b/banana.txt +@@ -1,4 +1,4 @@ +-one ++ne + + two + +`; +const oldStylePatch = `patch-package +--- a/node_modules/graphql/utilities/assertValidName.js ++++ b/node_modules/graphql/utilities/assertValidName.js +@@ -41,10 +41,11 @@ function assertValidName(name) { + */ + function isValidNameError(name, node) { + !(typeof name === 'string') ? (0, _invariant2.default)(0, 'Expected string') : void 0; +- if (name.length > 1 && name[0] === '_' && name[1] === '_') { +- return new _GraphQLError.GraphQLError('Name "' + name + '" must not begin with "__", which is reserved by ' + 'GraphQL introspection.', node); +- } ++ // if (name.length > 1 && name[0] === '_' && name[1] === '_') { ++ // return new _GraphQLError.GraphQLError('Name "' + name + '" must not begin with "__", which is reserved by ' + 'GraphQL introspection.', node); ++ // } + if (!NAME_RX.test(name)) { + return new _GraphQLError.GraphQLError('Names must match /^[_a-zA-Z][_a-zA-Z0-9]*$/ but "' + name + '" does not.', node); + } ++ + } +\\ No newline at end of file +--- a/node_modules/graphql/utilities/assertValidName.mjs ++++ b/node_modules/graphql/utilities/assertValidName.mjs +@@ -29,9 +29,9 @@ export function assertValidName(name) { + */ + export function isValidNameError(name, node) { + !(typeof name === 'string') ? invariant(0, 'Expected string') : void 0; +- if (name.length > 1 && name[0] === '_' && name[1] === '_') { +- return new GraphQLError('Name "' + name + '" must not begin with "__", which is reserved by ' + 'GraphQL introspection.', node); +- } ++ // if (name.length > 1 && name[0] === '_' && name[1] === '_') { ++ // return new GraphQLError('Name "' + name + '" must not begin with "__", which is reserved by ' + 'GraphQL introspection.', node); ++ // } + if (!NAME_RX.test(name)) { + return new GraphQLError('Names must match /^[_a-zA-Z][_a-zA-Z0-9]*$/ but "' + name + '" does not.', node); + } +`; +describe("the patch parser", () => { + it("works for a simple case", () => { + expect((0, parse_1.parsePatchFile)(patch)).toMatchSnapshot(); + }); + it("fails when the patch file has invalid headers", () => { + expect(() => (0, parse_1.parsePatchFile)(invalidHeaders1)).toThrow(); + expect(() => (0, parse_1.parsePatchFile)(invalidHeaders2)).toThrow(); + expect(() => (0, parse_1.parsePatchFile)(invalidHeaders3)).toThrow(); + expect(() => (0, parse_1.parsePatchFile)(invalidHeaders4)).toThrow(); + expect(() => (0, parse_1.parsePatchFile)(invalidHeaders5)).toThrow(); + }); + it("is OK when blank lines are accidentally created", () => { + expect((0, parse_1.parsePatchFile)(accidentalBlankLine)).toEqual((0, parse_1.parsePatchFile)(patch)); + }); + it(`can handle files with CRLF line breaks`, () => { + expect((0, parse_1.parsePatchFile)(crlfLineBreaks)).toMatchSnapshot(); + }); + it("works", () => { + expect((0, parse_1.parsePatchFile)(modeChangeAndModifyAndRename)).toMatchSnapshot(); + expect((0, parse_1.parsePatchFile)(accidentalBlankLine)).toMatchSnapshot(); + expect((0, parse_1.parsePatchFile)(modeChangeAndModifyAndRename)).toMatchSnapshot(); + }); + it.only("parses old-style patches", () => { + expect((0, parse_1.parsePatchFile)(oldStylePatch)).toMatchSnapshot(); + }); +}); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9wYXJzZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxpQkFBaUI7O0FBRWpCLDBDQUErQztBQUUvQyxNQUFNLEtBQUssR0FBRzs7Ozs7Ozs7Ozs7Q0FXYixDQUFBO0FBQ0QsTUFBTSxlQUFlLEdBQUc7Ozs7Ozs7Ozs7O0NBV3ZCLENBQUE7QUFFRCxNQUFNLGVBQWUsR0FBRzs7Ozs7Ozs7Ozs7Q0FXdkIsQ0FBQTtBQUVELE1BQU0sZUFBZSxHQUFHOzs7Ozs7Ozs7OztDQVd2QixDQUFBO0FBQ0QsTUFBTSxlQUFlLEdBQUc7Ozs7Ozs7Ozs7O0NBV3ZCLENBQUE7QUFFRCxNQUFNLGVBQWUsR0FBRzs7Ozs7Ozs7Ozs7Q0FXdkIsQ0FBQTtBQUVELE1BQU0sbUJBQW1CLEdBQUc7Ozs7Ozs7Ozs7O0NBVzNCLENBQUE7QUFFRCxNQUFNLGNBQWMsR0FBRzs7Ozs7OztDQU90QixDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUE7QUFFeEIsTUFBTSw0QkFBNEIsR0FBRzs7Ozs7Ozs7Ozs7Ozs7O0NBZXBDLENBQUE7QUFFRCxNQUFNLGFBQWEsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQWtDckIsQ0FBQTtBQUVELFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLEVBQUU7SUFDaEMsRUFBRSxDQUFDLHlCQUF5QixFQUFFLEdBQUcsRUFBRTtRQUNqQyxNQUFNLENBQUMsSUFBQSxzQkFBYyxFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUE7SUFDakQsQ0FBQyxDQUFDLENBQUE7SUFDRixFQUFFLENBQUMsK0NBQStDLEVBQUUsR0FBRyxFQUFFO1FBQ3ZELE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFBLHNCQUFjLEVBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUN2RCxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBQSxzQkFBYyxFQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDdkQsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUEsc0JBQWMsRUFBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQ3ZELE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFBLHNCQUFjLEVBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUN2RCxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBQSxzQkFBYyxFQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDekQsQ0FBQyxDQUFDLENBQUE7SUFDRixFQUFFLENBQUMsaURBQWlELEVBQUUsR0FBRyxFQUFFO1FBQ3pELE1BQU0sQ0FBQyxJQUFBLHNCQUFjLEVBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFBLHNCQUFjLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUM1RSxDQUFDLENBQUMsQ0FBQTtJQUNGLEVBQUUsQ0FBQyx3Q0FBd0MsRUFBRSxHQUFHLEVBQUU7UUFDaEQsTUFBTSxDQUFDLElBQUEsc0JBQWMsRUFBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFBO0lBQzFELENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDZixNQUFNLENBQUMsSUFBQSxzQkFBYyxFQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQTtRQUV0RSxNQUFNLENBQUMsSUFBQSxzQkFBYyxFQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQTtRQUM3RCxNQUFNLENBQUMsSUFBQSxzQkFBYyxFQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQTtJQUN4RSxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsR0FBRyxFQUFFO1FBQ3ZDLE1BQU0sQ0FBQyxJQUFBLHNCQUFjLEVBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQTtJQUN6RCxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGVcblxuaW1wb3J0IHsgcGFyc2VQYXRjaEZpbGUgfSBmcm9tIFwiLi4vcGF0Y2gvcGFyc2VcIlxuXG5jb25zdCBwYXRjaCA9IGBkaWZmIC0tZ2l0IGEvYmFuYW5hLnRzIGIvYmFuYW5hLnRzXG5pbmRleCAyZGU4M2RkLi44NDI2NTJjIDEwMDY0NFxuLS0tIGEvYmFuYW5hLnRzXG4rKysgYi9iYW5hbmEudHNcbkBAIC0xLDUgKzEsNSBAQFxuIHRoaXNcbiBpc1xuIFxuLWFcbitcbiBmaWxlXG5gXG5jb25zdCBpbnZhbGlkSGVhZGVyczEgPSBgZGlmZiAtLWdpdCBhL2JhbmFuYS50cyBiL2JhbmFuYS50c1xuaW5kZXggMmRlODNkZC4uODQyNjUyYyAxMDA2NDRcbi0tLSBhL2JhbmFuYS50c1xuKysrIGIvYmFuYW5hLnRzXG5AQCAtMSw1ICsxLDQgQEBcbiB0aGlzXG4gaXNcbiBcbi1hXG4rXG4gZmlsZVxuYFxuXG5jb25zdCBpbnZhbGlkSGVhZGVyczIgPSBgZGlmZiAtLWdpdCBhL2JhbmFuYS50cyBiL2JhbmFuYS50c1xuaW5kZXggMmRlODNkZC4uODQyNjUyYyAxMDA2NDRcbi0tLSBhL2JhbmFuYS50c1xuKysrIGIvYmFuYW5hLnRzXG5AQCAtMSw0ICsxLDUgQEBcbiB0aGlzXG4gaXNcbiBcbi1hXG4rXG4gZmlsZVxuYFxuXG5jb25zdCBpbnZhbGlkSGVhZGVyczMgPSBgZGlmZiAtLWdpdCBhL2JhbmFuYS50cyBiL2JhbmFuYS50c1xuaW5kZXggMmRlODNkZC4uODQyNjUyYyAxMDA2NDRcbi0tLSBhL2JhbmFuYS50c1xuKysrIGIvYmFuYW5hLnRzXG5AQCAtMSwwICsxLDUgQEBcbiB0aGlzXG4gaXNcbiBcbi1hXG4rXG4gZmlsZVxuYFxuY29uc3QgaW52YWxpZEhlYWRlcnM0ID0gYGRpZmYgLS1naXQgYS9iYW5hbmEudHMgYi9iYW5hbmEudHNcbmluZGV4IDJkZTgzZGQuLjg0MjY1MmMgMTAwNjQ0XG4tLS0gYS9iYW5hbmEudHNcbisrKyBiL2JhbmFuYS50c1xuQEAgLTEsNSArMSwwIEBAXG4gdGhpc1xuIGlzXG4gXG4tYVxuK1xuIGZpbGVcbmBcblxuY29uc3QgaW52YWxpZEhlYWRlcnM1ID0gYGRpZmYgLS1naXQgYS9iYW5hbmEudHMgYi9iYW5hbmEudHNcbmluZGV4IDJkZTgzZGQuLjg0MjY1MmMgMTAwNjQ0XG4tLS0gYS9iYW5hbmEudHNcbisrKyBiL2JhbmFuYS50c1xuQEAgLTEsNSArMSw1QEBcbiB0aGlzXG4gaXNcbiBcbi1hXG4rXG4gZmlsZVxuYFxuXG5jb25zdCBhY2NpZGVudGFsQmxhbmtMaW5lID0gYGRpZmYgLS1naXQgYS9iYW5hbmEudHMgYi9iYW5hbmEudHNcbmluZGV4IDJkZTgzZGQuLjg0MjY1MmMgMTAwNjQ0XG4tLS0gYS9iYW5hbmEudHNcbisrKyBiL2JhbmFuYS50c1xuQEAgLTEsNSArMSw1IEBAXG4gdGhpc1xuIGlzXG5cbi1hXG4rXG4gZmlsZVxuYFxuXG5jb25zdCBjcmxmTGluZUJyZWFrcyA9IGBkaWZmIC0tZ2l0IGEvYmFuYW5hLnRzIGIvYmFuYW5hLnRzXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMC4uM2UxMjY3ZlxuLS0tIC9kZXYvbnVsbFxuKysrIGIvYmFuYW5hLnRzXG5AQCAtMCwwICsxIEBAXG4rdGhpcyBpcyBhIG5ldyBmaWxlXG5gLnJlcGxhY2UoL1xcbi9nLCBcIlxcclxcblwiKVxuXG5jb25zdCBtb2RlQ2hhbmdlQW5kTW9kaWZ5QW5kUmVuYW1lID0gYGRpZmYgLS1naXQgYS9udW1iZXJzLnR4dCBiL2JhbmFuYS50eHRcbm9sZCBtb2RlIDEwMDY0NFxubmV3IG1vZGUgMTAwNzU1XG5zaW1pbGFyaXR5IGluZGV4IDk2JVxucmVuYW1lIGZyb20gbnVtYmVycy50eHRcbnJlbmFtZSB0byBiYW5hbmEudHh0XG5pbmRleCBmYmYxNzg1Li45MmQyYzVmXG4tLS0gYS9udW1iZXJzLnR4dFxuKysrIGIvYmFuYW5hLnR4dFxuQEAgLTEsNCArMSw0IEBAXG4tb25lXG4rbmVcbiBcbiB0d29cbiBcbmBcblxuY29uc3Qgb2xkU3R5bGVQYXRjaCA9IGBwYXRjaC1wYWNrYWdlXG4tLS0gYS9ub2RlX21vZHVsZXMvZ3JhcGhxbC91dGlsaXRpZXMvYXNzZXJ0VmFsaWROYW1lLmpzXG4rKysgYi9ub2RlX21vZHVsZXMvZ3JhcGhxbC91dGlsaXRpZXMvYXNzZXJ0VmFsaWROYW1lLmpzXG5AQCAtNDEsMTAgKzQxLDExIEBAIGZ1bmN0aW9uIGFzc2VydFZhbGlkTmFtZShuYW1lKSB7XG4gICovXG4gZnVuY3Rpb24gaXNWYWxpZE5hbWVFcnJvcihuYW1lLCBub2RlKSB7XG4gICAhKHR5cGVvZiBuYW1lID09PSAnc3RyaW5nJykgPyAoMCwgX2ludmFyaWFudDIuZGVmYXVsdCkoMCwgJ0V4cGVjdGVkIHN0cmluZycpIDogdm9pZCAwO1xuLSAgaWYgKG5hbWUubGVuZ3RoID4gMSAmJiBuYW1lWzBdID09PSAnXycgJiYgbmFtZVsxXSA9PT0gJ18nKSB7XG4tICAgIHJldHVybiBuZXcgX0dyYXBoUUxFcnJvci5HcmFwaFFMRXJyb3IoJ05hbWUgXCInICsgbmFtZSArICdcIiBtdXN0IG5vdCBiZWdpbiB3aXRoIFwiX19cIiwgd2hpY2ggaXMgcmVzZXJ2ZWQgYnkgJyArICdHcmFwaFFMIGludHJvc3BlY3Rpb24uJywgbm9kZSk7XG4tICB9XG4rICAvLyBpZiAobmFtZS5sZW5ndGggPiAxICYmIG5hbWVbMF0gPT09ICdfJyAmJiBuYW1lWzFdID09PSAnXycpIHtcbisgIC8vICAgcmV0dXJuIG5ldyBfR3JhcGhRTEVycm9yLkdyYXBoUUxFcnJvcignTmFtZSBcIicgKyBuYW1lICsgJ1wiIG11c3Qgbm90IGJlZ2luIHdpdGggXCJfX1wiLCB3aGljaCBpcyByZXNlcnZlZCBieSAnICsgJ0dyYXBoUUwgaW50cm9zcGVjdGlvbi4nLCBub2RlKTtcbisgIC8vIH1cbiAgIGlmICghTkFNRV9SWC50ZXN0KG5hbWUpKSB7XG4gICAgIHJldHVybiBuZXcgX0dyYXBoUUxFcnJvci5HcmFwaFFMRXJyb3IoJ05hbWVzIG11c3QgbWF0Y2ggL15bX2EtekEtWl1bX2EtekEtWjAtOV0qJC8gYnV0IFwiJyArIG5hbWUgKyAnXCIgZG9lcyBub3QuJywgbm9kZSk7XG4gICB9XG4rXG4gfVxuXFxcXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlXG4tLS0gYS9ub2RlX21vZHVsZXMvZ3JhcGhxbC91dGlsaXRpZXMvYXNzZXJ0VmFsaWROYW1lLm1qc1xuKysrIGIvbm9kZV9tb2R1bGVzL2dyYXBocWwvdXRpbGl0aWVzL2Fzc2VydFZhbGlkTmFtZS5tanNcbkBAIC0yOSw5ICsyOSw5IEBAIGV4cG9ydCBmdW5jdGlvbiBhc3NlcnRWYWxpZE5hbWUobmFtZSkge1xuICAqL1xuIGV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkTmFtZUVycm9yKG5hbWUsIG5vZGUpIHtcbiAgICEodHlwZW9mIG5hbWUgPT09ICdzdHJpbmcnKSA/IGludmFyaWFudCgwLCAnRXhwZWN0ZWQgc3RyaW5nJykgOiB2b2lkIDA7XG4tICBpZiAobmFtZS5sZW5ndGggPiAxICYmIG5hbWVbMF0gPT09ICdfJyAmJiBuYW1lWzFdID09PSAnXycpIHtcbi0gICAgcmV0dXJuIG5ldyBHcmFwaFFMRXJyb3IoJ05hbWUgXCInICsgbmFtZSArICdcIiBtdXN0IG5vdCBiZWdpbiB3aXRoIFwiX19cIiwgd2hpY2ggaXMgcmVzZXJ2ZWQgYnkgJyArICdHcmFwaFFMIGludHJvc3BlY3Rpb24uJywgbm9kZSk7XG4tICB9XG4rICAvLyBpZiAobmFtZS5sZW5ndGggPiAxICYmIG5hbWVbMF0gPT09ICdfJyAmJiBuYW1lWzFdID09PSAnXycpIHtcbisgIC8vICAgcmV0dXJuIG5ldyBHcmFwaFFMRXJyb3IoJ05hbWUgXCInICsgbmFtZSArICdcIiBtdXN0IG5vdCBiZWdpbiB3aXRoIFwiX19cIiwgd2hpY2ggaXMgcmVzZXJ2ZWQgYnkgJyArICdHcmFwaFFMIGludHJvc3BlY3Rpb24uJywgbm9kZSk7XG4rICAvLyB9XG4gICBpZiAoIU5BTUVfUlgudGVzdChuYW1lKSkge1xuICAgICByZXR1cm4gbmV3IEdyYXBoUUxFcnJvcignTmFtZXMgbXVzdCBtYXRjaCAvXltfYS16QS1aXVtfYS16QS1aMC05XSokLyBidXQgXCInICsgbmFtZSArICdcIiBkb2VzIG5vdC4nLCBub2RlKTtcbiAgIH1cbmBcblxuZGVzY3JpYmUoXCJ0aGUgcGF0Y2ggcGFyc2VyXCIsICgpID0+IHtcbiAgaXQoXCJ3b3JrcyBmb3IgYSBzaW1wbGUgY2FzZVwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KHBhcnNlUGF0Y2hGaWxlKHBhdGNoKSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcbiAgaXQoXCJmYWlscyB3aGVuIHRoZSBwYXRjaCBmaWxlIGhhcyBpbnZhbGlkIGhlYWRlcnNcIiwgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiBwYXJzZVBhdGNoRmlsZShpbnZhbGlkSGVhZGVyczEpKS50b1Rocm93KClcbiAgICBleHBlY3QoKCkgPT4gcGFyc2VQYXRjaEZpbGUoaW52YWxpZEhlYWRlcnMyKSkudG9UaHJvdygpXG4gICAgZXhwZWN0KCgpID0+IHBhcnNlUGF0Y2hGaWxlKGludmFsaWRIZWFkZXJzMykpLnRvVGhyb3coKVxuICAgIGV4cGVjdCgoKSA9PiBwYXJzZVBhdGNoRmlsZShpbnZhbGlkSGVhZGVyczQpKS50b1Rocm93KClcbiAgICBleHBlY3QoKCkgPT4gcGFyc2VQYXRjaEZpbGUoaW52YWxpZEhlYWRlcnM1KSkudG9UaHJvdygpXG4gIH0pXG4gIGl0KFwiaXMgT0sgd2hlbiBibGFuayBsaW5lcyBhcmUgYWNjaWRlbnRhbGx5IGNyZWF0ZWRcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChwYXJzZVBhdGNoRmlsZShhY2NpZGVudGFsQmxhbmtMaW5lKSkudG9FcXVhbChwYXJzZVBhdGNoRmlsZShwYXRjaCkpXG4gIH0pXG4gIGl0KGBjYW4gaGFuZGxlIGZpbGVzIHdpdGggQ1JMRiBsaW5lIGJyZWFrc2AsICgpID0+IHtcbiAgICBleHBlY3QocGFyc2VQYXRjaEZpbGUoY3JsZkxpbmVCcmVha3MpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuXG4gIGl0KFwid29ya3NcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChwYXJzZVBhdGNoRmlsZShtb2RlQ2hhbmdlQW5kTW9kaWZ5QW5kUmVuYW1lKSkudG9NYXRjaFNuYXBzaG90KClcblxuICAgIGV4cGVjdChwYXJzZVBhdGNoRmlsZShhY2NpZGVudGFsQmxhbmtMaW5lKSkudG9NYXRjaFNuYXBzaG90KClcbiAgICBleHBlY3QocGFyc2VQYXRjaEZpbGUobW9kZUNoYW5nZUFuZE1vZGlmeUFuZFJlbmFtZSkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG5cbiAgaXQub25seShcInBhcnNlcyBvbGQtc3R5bGUgcGF0Y2hlc1wiLCAoKSA9PiB7XG4gICAgZXhwZWN0KHBhcnNlUGF0Y2hGaWxlKG9sZFN0eWxlUGF0Y2gpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxufSlcbiJdfQ== \ No newline at end of file diff --git a/dist/patch/read.js b/dist/patch/read.js new file mode 100644 index 00000000..535fb8c5 --- /dev/null +++ b/dist/patch/read.js @@ -0,0 +1,48 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.readPatch = readPatch; +const chalk_1 = __importDefault(require("chalk")); +const fs_extra_1 = require("fs-extra"); +const path_1 = require("../path"); +const path_2 = require("path"); +const parse_1 = require("./parse"); +function readPatch({ patchFilePath, patchDetails, patchDir, }) { + try { + return (0, parse_1.parsePatchFile)((0, fs_extra_1.readFileSync)(patchFilePath).toString()); + } + catch (e) { + const fixupSteps = []; + const relativePatchFilePath = (0, path_2.normalize)((0, path_1.relative)(process.cwd(), patchFilePath)); + const patchBaseDir = relativePatchFilePath.slice(0, relativePatchFilePath.indexOf(patchDir)); + if (patchBaseDir) { + fixupSteps.push(`cd ${patchBaseDir}`); + } + fixupSteps.push(`patch -p1 -i ${relativePatchFilePath.slice(relativePatchFilePath.indexOf(patchDir))}`); + fixupSteps.push(`npx patch-package ${patchDetails.pathSpecifier}`); + if (patchBaseDir) { + fixupSteps.push(`cd ${(0, path_1.relative)((0, path_1.resolve)(process.cwd(), patchBaseDir), process.cwd())}`); + } + console.log(` +${chalk_1.default.red.bold("**ERROR**")} ${chalk_1.default.red(`Failed to apply patch for package ${chalk_1.default.bold(patchDetails.humanReadablePathSpecifier)}`)} + + This happened because the patch file ${relativePatchFilePath} could not be parsed. + + If you just upgraded patch-package, you can try running: + + ${fixupSteps.join("\n ")} + + Otherwise, try manually creating the patch file again. + + If the problem persists, please submit a bug report: + + https://github.com/ds300/patch-package/issues/new?title=Patch+file+parse+error&body=%3CPlease+attach+the+patch+file+in+question%3E + +`); + process.exit(1); + } + return []; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9yZWFkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBT0EsOEJBMERDO0FBakVELGtEQUF5QjtBQUN6Qix1Q0FBdUM7QUFDdkMsa0NBQTJDO0FBQzNDLCtCQUFnQztBQUVoQyxtQ0FBdUQ7QUFFdkQsU0FBZ0IsU0FBUyxDQUFDLEVBQ3hCLGFBQWEsRUFDYixZQUFZLEVBQ1osUUFBUSxHQUtUO0lBQ0MsSUFBSSxDQUFDO1FBQ0gsT0FBTyxJQUFBLHNCQUFjLEVBQUMsSUFBQSx1QkFBWSxFQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxNQUFNLFVBQVUsR0FBYSxFQUFFLENBQUE7UUFDL0IsTUFBTSxxQkFBcUIsR0FBRyxJQUFBLGdCQUFTLEVBQ3JDLElBQUEsZUFBUSxFQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxhQUFhLENBQUMsQ0FDdkMsQ0FBQTtRQUNELE1BQU0sWUFBWSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FDOUMsQ0FBQyxFQUNELHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FDeEMsQ0FBQTtRQUNELElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLFlBQVksRUFBRSxDQUFDLENBQUE7UUFDdkMsQ0FBQztRQUNELFVBQVUsQ0FBQyxJQUFJLENBQ2IsZ0JBQWdCLHFCQUFxQixDQUFDLEtBQUssQ0FDekMscUJBQXFCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUN4QyxFQUFFLENBQ0osQ0FBQTtRQUNELFVBQVUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFBO1FBQ2xFLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsVUFBVSxDQUFDLElBQUksQ0FDYixNQUFNLElBQUEsZUFBUSxFQUFDLElBQUEsY0FBTyxFQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUN0RSxDQUFBO1FBQ0gsQ0FBQztRQUVELE9BQU8sQ0FBQyxHQUFHLENBQUM7RUFDZCxlQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxlQUFLLENBQUMsR0FBRyxDQUNwQyxxQ0FBcUMsZUFBSyxDQUFDLElBQUksQ0FDN0MsWUFBWSxDQUFDLDBCQUEwQixDQUN4QyxFQUFFLENBQ0o7O3lDQUVvQyxxQkFBcUI7Ozs7TUFJeEQsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7Ozs7Ozs7O0NBUTlCLENBQUMsQ0FBQTtRQUNFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDakIsQ0FBQztJQUNELE9BQU8sRUFBRSxDQUFBO0FBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjaGFsayBmcm9tIFwiY2hhbGtcIlxuaW1wb3J0IHsgcmVhZEZpbGVTeW5jIH0gZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCB7IHJlbGF0aXZlLCByZXNvbHZlIH0gZnJvbSBcIi4uL3BhdGhcIlxuaW1wb3J0IHsgbm9ybWFsaXplIH0gZnJvbSBcInBhdGhcIlxuaW1wb3J0IHsgUGFja2FnZURldGFpbHMgfSBmcm9tIFwiLi4vUGFja2FnZURldGFpbHNcIlxuaW1wb3J0IHsgcGFyc2VQYXRjaEZpbGUsIFBhdGNoRmlsZVBhcnQgfSBmcm9tIFwiLi9wYXJzZVwiXG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkUGF0Y2goe1xuICBwYXRjaEZpbGVQYXRoLFxuICBwYXRjaERldGFpbHMsXG4gIHBhdGNoRGlyLFxufToge1xuICBwYXRjaEZpbGVQYXRoOiBzdHJpbmdcbiAgcGF0Y2hEZXRhaWxzOiBQYWNrYWdlRGV0YWlsc1xuICBwYXRjaERpcjogc3RyaW5nXG59KTogUGF0Y2hGaWxlUGFydFtdIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gcGFyc2VQYXRjaEZpbGUocmVhZEZpbGVTeW5jKHBhdGNoRmlsZVBhdGgpLnRvU3RyaW5nKCkpXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zdCBmaXh1cFN0ZXBzOiBzdHJpbmdbXSA9IFtdXG4gICAgY29uc3QgcmVsYXRpdmVQYXRjaEZpbGVQYXRoID0gbm9ybWFsaXplKFxuICAgICAgcmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgcGF0Y2hGaWxlUGF0aCksXG4gICAgKVxuICAgIGNvbnN0IHBhdGNoQmFzZURpciA9IHJlbGF0aXZlUGF0Y2hGaWxlUGF0aC5zbGljZShcbiAgICAgIDAsXG4gICAgICByZWxhdGl2ZVBhdGNoRmlsZVBhdGguaW5kZXhPZihwYXRjaERpciksXG4gICAgKVxuICAgIGlmIChwYXRjaEJhc2VEaXIpIHtcbiAgICAgIGZpeHVwU3RlcHMucHVzaChgY2QgJHtwYXRjaEJhc2VEaXJ9YClcbiAgICB9XG4gICAgZml4dXBTdGVwcy5wdXNoKFxuICAgICAgYHBhdGNoIC1wMSAtaSAke3JlbGF0aXZlUGF0Y2hGaWxlUGF0aC5zbGljZShcbiAgICAgICAgcmVsYXRpdmVQYXRjaEZpbGVQYXRoLmluZGV4T2YocGF0Y2hEaXIpLFxuICAgICAgKX1gLFxuICAgIClcbiAgICBmaXh1cFN0ZXBzLnB1c2goYG5weCBwYXRjaC1wYWNrYWdlICR7cGF0Y2hEZXRhaWxzLnBhdGhTcGVjaWZpZXJ9YClcbiAgICBpZiAocGF0Y2hCYXNlRGlyKSB7XG4gICAgICBmaXh1cFN0ZXBzLnB1c2goXG4gICAgICAgIGBjZCAke3JlbGF0aXZlKHJlc29sdmUocHJvY2Vzcy5jd2QoKSwgcGF0Y2hCYXNlRGlyKSwgcHJvY2Vzcy5jd2QoKSl9YCxcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZyhgXG4ke2NoYWxrLnJlZC5ib2xkKFwiKipFUlJPUioqXCIpfSAke2NoYWxrLnJlZChcbiAgICAgIGBGYWlsZWQgdG8gYXBwbHkgcGF0Y2ggZm9yIHBhY2thZ2UgJHtjaGFsay5ib2xkKFxuICAgICAgICBwYXRjaERldGFpbHMuaHVtYW5SZWFkYWJsZVBhdGhTcGVjaWZpZXIsXG4gICAgICApfWAsXG4gICAgKX1cbiAgICBcbiAgVGhpcyBoYXBwZW5lZCBiZWNhdXNlIHRoZSBwYXRjaCBmaWxlICR7cmVsYXRpdmVQYXRjaEZpbGVQYXRofSBjb3VsZCBub3QgYmUgcGFyc2VkLlxuICAgXG4gIElmIHlvdSBqdXN0IHVwZ3JhZGVkIHBhdGNoLXBhY2thZ2UsIHlvdSBjYW4gdHJ5IHJ1bm5pbmc6XG4gIFxuICAgICR7Zml4dXBTdGVwcy5qb2luKFwiXFxuICAgIFwiKX1cbiAgICBcbiAgT3RoZXJ3aXNlLCB0cnkgbWFudWFsbHkgY3JlYXRpbmcgdGhlIHBhdGNoIGZpbGUgYWdhaW4uXG4gIFxuICBJZiB0aGUgcHJvYmxlbSBwZXJzaXN0cywgcGxlYXNlIHN1Ym1pdCBhIGJ1ZyByZXBvcnQ6XG4gIFxuICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9kczMwMC9wYXRjaC1wYWNrYWdlL2lzc3Vlcy9uZXc/dGl0bGU9UGF0Y2grZmlsZStwYXJzZStlcnJvciZib2R5PSUzQ1BsZWFzZSthdHRhY2grdGhlK3BhdGNoK2ZpbGUraW4rcXVlc3Rpb24lM0VcblxuYClcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfVxuICByZXR1cm4gW11cbn1cbiJdfQ== \ No newline at end of file diff --git a/dist/patch/read.test.js b/dist/patch/read.test.js new file mode 100644 index 00000000..b3bdb628 --- /dev/null +++ b/dist/patch/read.test.js @@ -0,0 +1,190 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const read_1 = require("./read"); +const PackageDetails_1 = require("../PackageDetails"); +const removeAnsiCodes = (s) => s.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, ""); +jest.mock("fs-extra", () => ({ + readFileSync: jest.fn(), +})); +jest.mock("./parse", () => ({ + parsePatchFile: jest.fn(() => { + throw new Error("hunk integrity check failed etc"); + }), +})); +const log = jest.fn(); +console.log = log; +process.cwd = jest.fn(() => "/test/root"); +process.exit = jest.fn(); +const lastLog = () => log.mock.calls[log.mock.calls.length - 1][0]; +describe(read_1.readPatch, () => { + beforeEach(() => { + log.mockReset(); + }); + it("throws an error for basic packages", () => { + (0, read_1.readPatch)({ + patchFilePath: "/test/root/patches/test+1.2.3.patch", + patchDetails: (0, PackageDetails_1.getPackageDetailsFromPatchFilename)("test+1.2.3.patch"), + patchDir: "patches/", + }); + expect(removeAnsiCodes(lastLog())).toMatchInlineSnapshot(` +" +**ERROR** Failed to apply patch for package test + + This happened because the patch file patches/test+1.2.3.patch could not be parsed. + + If you just upgraded patch-package, you can try running: + + patch -p1 -i patches/test+1.2.3.patch + npx patch-package test + + Otherwise, try manually creating the patch file again. + + If the problem persists, please submit a bug report: + + https://github.com/ds300/patch-package/issues/new?title=Patch+file+parse+error&body=%3CPlease+attach+the+patch+file+in+question%3E + +" +`); + }); + it("throws an error for scoped packages", () => { + (0, read_1.readPatch)({ + patchFilePath: "/test/root/patches/@david+test+1.2.3.patch", + patchDetails: (0, PackageDetails_1.getPackageDetailsFromPatchFilename)("@david+test+1.2.3.patch"), + patchDir: "patches/", + }); + expect(removeAnsiCodes(lastLog())).toMatchInlineSnapshot(` +" +**ERROR** Failed to apply patch for package @david/test + + This happened because the patch file patches/@david+test+1.2.3.patch could not be parsed. + + If you just upgraded patch-package, you can try running: + + patch -p1 -i patches/@david+test+1.2.3.patch + npx patch-package @david/test + + Otherwise, try manually creating the patch file again. + + If the problem persists, please submit a bug report: + + https://github.com/ds300/patch-package/issues/new?title=Patch+file+parse+error&body=%3CPlease+attach+the+patch+file+in+question%3E + +" +`); + }); + it("throws an error for nested packages", () => { + const patchFileName = "@david+test++react-native+1.2.3.patch"; + (0, read_1.readPatch)({ + patchFilePath: `/test/root/patches/${patchFileName}`, + patchDetails: (0, PackageDetails_1.getPackageDetailsFromPatchFilename)(patchFileName), + patchDir: "patches/", + }); + expect(removeAnsiCodes(lastLog())).toMatchInlineSnapshot(` +" +**ERROR** Failed to apply patch for package @david/test => react-native + + This happened because the patch file patches/@david+test++react-native+1.2.3.patch could not be parsed. + + If you just upgraded patch-package, you can try running: + + patch -p1 -i patches/@david+test++react-native+1.2.3.patch + npx patch-package @david/test/react-native + + Otherwise, try manually creating the patch file again. + + If the problem persists, please submit a bug report: + + https://github.com/ds300/patch-package/issues/new?title=Patch+file+parse+error&body=%3CPlease+attach+the+patch+file+in+question%3E + +" +`); + }); + it("throws an error for with custom patch dir", () => { + const patchFileName = "@david+test++react-native+1.2.3.patch"; + (0, read_1.readPatch)({ + patchFilePath: `/test/root/.cruft/patches/${patchFileName}`, + patchDetails: (0, PackageDetails_1.getPackageDetailsFromPatchFilename)(patchFileName), + patchDir: ".cruft/patches", + }); + expect(removeAnsiCodes(lastLog())).toMatchInlineSnapshot(` +" +**ERROR** Failed to apply patch for package @david/test => react-native + + This happened because the patch file .cruft/patches/@david+test++react-native+1.2.3.patch could not be parsed. + + If you just upgraded patch-package, you can try running: + + patch -p1 -i .cruft/patches/@david+test++react-native+1.2.3.patch + npx patch-package @david/test/react-native + + Otherwise, try manually creating the patch file again. + + If the problem persists, please submit a bug report: + + https://github.com/ds300/patch-package/issues/new?title=Patch+file+parse+error&body=%3CPlease+attach+the+patch+file+in+question%3E + +" +`); + }); + it("throws an error with cd instruction for unhoisted packages", () => { + const patchFileName = "@david+test++react-native+1.2.3.patch"; + (0, read_1.readPatch)({ + patchFilePath: `/test/root/packages/banana/patches/${patchFileName}`, + patchDetails: (0, PackageDetails_1.getPackageDetailsFromPatchFilename)(patchFileName), + patchDir: "patches/", + }); + expect(process.cwd).toHaveBeenCalled(); + expect(removeAnsiCodes(lastLog())).toMatchInlineSnapshot(` +" +**ERROR** Failed to apply patch for package @david/test => react-native + + This happened because the patch file packages/banana/patches/@david+test++react-native+1.2.3.patch could not be parsed. + + If you just upgraded patch-package, you can try running: + + cd packages/banana/ + patch -p1 -i patches/@david+test++react-native+1.2.3.patch + npx patch-package @david/test/react-native + cd ../.. + + Otherwise, try manually creating the patch file again. + + If the problem persists, please submit a bug report: + + https://github.com/ds300/patch-package/issues/new?title=Patch+file+parse+error&body=%3CPlease+attach+the+patch+file+in+question%3E + +" +`); + }); + it("throws an error with cd instruction for unhoisted packages and custom patchDir", () => { + const patchFileName = "@david+test++react-native+1.2.3.patch"; + (0, read_1.readPatch)({ + patchFilePath: `/test/root/packages/banana/.patches/${patchFileName}`, + patchDetails: (0, PackageDetails_1.getPackageDetailsFromPatchFilename)(patchFileName), + patchDir: ".patches/", + }); + expect(process.cwd).toHaveBeenCalled(); + expect(removeAnsiCodes(lastLog())).toMatchInlineSnapshot(` +" +**ERROR** Failed to apply patch for package @david/test => react-native + + This happened because the patch file packages/banana/.patches/@david+test++react-native+1.2.3.patch could not be parsed. + + If you just upgraded patch-package, you can try running: + + cd packages/banana/ + patch -p1 -i .patches/@david+test++react-native+1.2.3.patch + npx patch-package @david/test/react-native + cd ../.. + + Otherwise, try manually creating the patch file again. + + If the problem persists, please submit a bug report: + + https://github.com/ds300/patch-package/issues/new?title=Patch+file+parse+error&body=%3CPlease+attach+the+patch+file+in+question%3E + +" +`); + }); +}); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BhdGNoL3JlYWQudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGlDQUFrQztBQUNsQyxzREFBc0U7QUFFdEUsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUNwQyxDQUFDLENBQUMsT0FBTyxDQUNQLDZFQUE2RSxFQUM3RSxFQUFFLENBQ0gsQ0FBQTtBQUVILElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDM0IsWUFBWSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7Q0FDeEIsQ0FBQyxDQUFDLENBQUE7QUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLGNBQWMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRTtRQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUE7SUFDcEQsQ0FBQyxDQUFDO0NBQ0gsQ0FBQyxDQUFDLENBQUE7QUFFSCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUE7QUFDckIsT0FBTyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUE7QUFDakIsT0FBTyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFBO0FBQ3pDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBUyxDQUFBO0FBRS9CLE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUVsRSxRQUFRLENBQUMsZ0JBQVMsRUFB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WUFBWSxFQUFFLElBQUEsbURBQWtDLEVBQUMsYUFBYSxDQUFFO1lBQ2hFLFFBQVEsRUFBRSxXQUFXO1NBQ3RCLENBQUMsQ0FBQTtRQUVGLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtRQUV0QyxNQUFNLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FvQjVELENBQUMsQ0FBQTtJQUNBLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZWFkUGF0Y2ggfSBmcm9tIFwiLi9yZWFkXCJcbmltcG9ydCB7IGdldFBhY2thZ2VEZXRhaWxzRnJvbVBhdGNoRmlsZW5hbWUgfSBmcm9tIFwiLi4vUGFja2FnZURldGFpbHNcIlxuXG5jb25zdCByZW1vdmVBbnNpQ29kZXMgPSAoczogc3RyaW5nKSA9PlxuICBzLnJlcGxhY2UoXG4gICAgL1tcXHUwMDFiXFx1MDA5Yl1bWygpIzs/XSooPzpbMC05XXsxLDR9KD86O1swLTldezAsNH0pKik/WzAtOUEtT1JaY2YtbnFyeT0+PF0vZyxcbiAgICBcIlwiLFxuICApXG5cbmplc3QubW9jayhcImZzLWV4dHJhXCIsICgpID0+ICh7XG4gIHJlYWRGaWxlU3luYzogamVzdC5mbigpLFxufSkpXG5qZXN0Lm1vY2soXCIuL3BhcnNlXCIsICgpID0+ICh7XG4gIHBhcnNlUGF0Y2hGaWxlOiBqZXN0LmZuKCgpID0+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJodW5rIGludGVncml0eSBjaGVjayBmYWlsZWQgZXRjXCIpXG4gIH0pLFxufSkpXG5cbmNvbnN0IGxvZyA9IGplc3QuZm4oKVxuY29uc29sZS5sb2cgPSBsb2dcbnByb2Nlc3MuY3dkID0gamVzdC5mbigoKSA9PiBcIi90ZXN0L3Jvb3RcIilcbnByb2Nlc3MuZXhpdCA9IGplc3QuZm4oKSBhcyBhbnlcblxuY29uc3QgbGFzdExvZyA9ICgpID0+IGxvZy5tb2NrLmNhbGxzW2xvZy5tb2NrLmNhbGxzLmxlbmd0aCAtIDFdWzBdXG5cbmRlc2NyaWJlKHJlYWRQYXRjaCwgKCkgPT4ge1xuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBsb2cubW9ja1Jlc2V0KClcbiAgfSlcbiAgaXQoXCJ0aHJvd3MgYW4gZXJyb3IgZm9yIGJhc2ljIHBhY2thZ2VzXCIsICgpID0+IHtcbiAgICByZWFkUGF0Y2goe1xuICAgICAgcGF0Y2hGaWxlUGF0aDogXCIvdGVzdC9yb290L3BhdGNoZXMvdGVzdCsxLjIuMy5wYXRjaFwiLFxuICAgICAgcGF0Y2hEZXRhaWxzOiBnZXRQYWNrYWdlRGV0YWlsc0Zyb21QYXRjaEZpbGVuYW1lKFwidGVzdCsxLjIuMy5wYXRjaFwiKSEsXG4gICAgICBwYXRjaERpcjogXCJwYXRjaGVzL1wiLFxuICAgIH0pXG5cbiAgICBleHBlY3QocmVtb3ZlQW5zaUNvZGVzKGxhc3RMb2coKSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG5cIlxuKipFUlJPUioqIEZhaWxlZCB0byBhcHBseSBwYXRjaCBmb3IgcGFja2FnZSB0ZXN0XG4gICAgXG4gIFRoaXMgaGFwcGVuZWQgYmVjYXVzZSB0aGUgcGF0Y2ggZmlsZSBwYXRjaGVzL3Rlc3QrMS4yLjMucGF0Y2ggY291bGQgbm90IGJlIHBhcnNlZC5cbiAgIFxuICBJZiB5b3UganVzdCB1cGdyYWRlZCBwYXRjaC1wYWNrYWdlLCB5b3UgY2FuIHRyeSBydW5uaW5nOlxuICBcbiAgICBwYXRjaCAtcDEgLWkgcGF0Y2hlcy90ZXN0KzEuMi4zLnBhdGNoXG4gICAgbnB4IHBhdGNoLXBhY2thZ2UgdGVzdFxuICAgIFxuICBPdGhlcndpc2UsIHRyeSBtYW51YWxseSBjcmVhdGluZyB0aGUgcGF0Y2ggZmlsZSBhZ2Fpbi5cbiAgXG4gIElmIHRoZSBwcm9ibGVtIHBlcnNpc3RzLCBwbGVhc2Ugc3VibWl0IGEgYnVnIHJlcG9ydDpcbiAgXG4gICAgaHR0cHM6Ly9naXRodWIuY29tL2RzMzAwL3BhdGNoLXBhY2thZ2UvaXNzdWVzL25ldz90aXRsZT1QYXRjaCtmaWxlK3BhcnNlK2Vycm9yJmJvZHk9JTNDUGxlYXNlK2F0dGFjaCt0aGUrcGF0Y2grZmlsZStpbitxdWVzdGlvbiUzRVxuXG5cIlxuYClcbiAgfSlcblxuICBpdChcInRocm93cyBhbiBlcnJvciBmb3Igc2NvcGVkIHBhY2thZ2VzXCIsICgpID0+IHtcbiAgICByZWFkUGF0Y2goe1xuICAgICAgcGF0Y2hGaWxlUGF0aDogXCIvdGVzdC9yb290L3BhdGNoZXMvQGRhdmlkK3Rlc3QrMS4yLjMucGF0Y2hcIixcbiAgICAgIHBhdGNoRGV0YWlsczogZ2V0UGFja2FnZURldGFpbHNGcm9tUGF0Y2hGaWxlbmFtZShcbiAgICAgICAgXCJAZGF2aWQrdGVzdCsxLjIuMy5wYXRjaFwiLFxuICAgICAgKSEsXG4gICAgICBwYXRjaERpcjogXCJwYXRjaGVzL1wiLFxuICAgIH0pXG5cbiAgICBleHBlY3QocmVtb3ZlQW5zaUNvZGVzKGxhc3RMb2coKSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG5cIlxuKipFUlJPUioqIEZhaWxlZCB0byBhcHBseSBwYXRjaCBmb3IgcGFja2FnZSBAZGF2aWQvdGVzdFxuICAgIFxuICBUaGlzIGhhcHBlbmVkIGJlY2F1c2UgdGhlIHBhdGNoIGZpbGUgcGF0Y2hlcy9AZGF2aWQrdGVzdCsxLjIuMy5wYXRjaCBjb3VsZCBub3QgYmUgcGFyc2VkLlxuICAgXG4gIElmIHlvdSBqdXN0IHVwZ3JhZGVkIHBhdGNoLXBhY2thZ2UsIHlvdSBjYW4gdHJ5IHJ1bm5pbmc6XG4gIFxuICAgIHBhdGNoIC1wMSAtaSBwYXRjaGVzL0BkYXZpZCt0ZXN0KzEuMi4zLnBhdGNoXG4gICAgbnB4IHBhdGNoLXBhY2thZ2UgQGRhdmlkL3Rlc3RcbiAgICBcbiAgT3RoZXJ3aXNlLCB0cnkgbWFudWFsbHkgY3JlYXRpbmcgdGhlIHBhdGNoIGZpbGUgYWdhaW4uXG4gIFxuICBJZiB0aGUgcHJvYmxlbSBwZXJzaXN0cywgcGxlYXNlIHN1Ym1pdCBhIGJ1ZyByZXBvcnQ6XG4gIFxuICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9kczMwMC9wYXRjaC1wYWNrYWdlL2lzc3Vlcy9uZXc/dGl0bGU9UGF0Y2grZmlsZStwYXJzZStlcnJvciZib2R5PSUzQ1BsZWFzZSthdHRhY2grdGhlK3BhdGNoK2ZpbGUraW4rcXVlc3Rpb24lM0VcblxuXCJcbmApXG4gIH0pXG5cbiAgaXQoXCJ0aHJvd3MgYW4gZXJyb3IgZm9yIG5lc3RlZCBwYWNrYWdlc1wiLCAoKSA9PiB7XG4gICAgY29uc3QgcGF0Y2hGaWxlTmFtZSA9IFwiQGRhdmlkK3Rlc3QrK3JlYWN0LW5hdGl2ZSsxLjIuMy5wYXRjaFwiXG4gICAgcmVhZFBhdGNoKHtcbiAgICAgIHBhdGNoRmlsZVBhdGg6IGAvdGVzdC9yb290L3BhdGNoZXMvJHtwYXRjaEZpbGVOYW1lfWAsXG4gICAgICBwYXRjaERldGFpbHM6IGdldFBhY2thZ2VEZXRhaWxzRnJvbVBhdGNoRmlsZW5hbWUocGF0Y2hGaWxlTmFtZSkhLFxuICAgICAgcGF0Y2hEaXI6IFwicGF0Y2hlcy9cIixcbiAgICB9KVxuXG4gICAgZXhwZWN0KHJlbW92ZUFuc2lDb2RlcyhsYXN0TG9nKCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuXCJcbioqRVJST1IqKiBGYWlsZWQgdG8gYXBwbHkgcGF0Y2ggZm9yIHBhY2thZ2UgQGRhdmlkL3Rlc3QgPT4gcmVhY3QtbmF0aXZlXG4gICAgXG4gIFRoaXMgaGFwcGVuZWQgYmVjYXVzZSB0aGUgcGF0Y2ggZmlsZSBwYXRjaGVzL0BkYXZpZCt0ZXN0KytyZWFjdC1uYXRpdmUrMS4yLjMucGF0Y2ggY291bGQgbm90IGJlIHBhcnNlZC5cbiAgIFxuICBJZiB5b3UganVzdCB1cGdyYWRlZCBwYXRjaC1wYWNrYWdlLCB5b3UgY2FuIHRyeSBydW5uaW5nOlxuICBcbiAgICBwYXRjaCAtcDEgLWkgcGF0Y2hlcy9AZGF2aWQrdGVzdCsrcmVhY3QtbmF0aXZlKzEuMi4zLnBhdGNoXG4gICAgbnB4IHBhdGNoLXBhY2thZ2UgQGRhdmlkL3Rlc3QvcmVhY3QtbmF0aXZlXG4gICAgXG4gIE90aGVyd2lzZSwgdHJ5IG1hbnVhbGx5IGNyZWF0aW5nIHRoZSBwYXRjaCBmaWxlIGFnYWluLlxuICBcbiAgSWYgdGhlIHByb2JsZW0gcGVyc2lzdHMsIHBsZWFzZSBzdWJtaXQgYSBidWcgcmVwb3J0OlxuICBcbiAgICBodHRwczovL2dpdGh1Yi5jb20vZHMzMDAvcGF0Y2gtcGFja2FnZS9pc3N1ZXMvbmV3P3RpdGxlPVBhdGNoK2ZpbGUrcGFyc2UrZXJyb3ImYm9keT0lM0NQbGVhc2UrYXR0YWNoK3RoZStwYXRjaCtmaWxlK2luK3F1ZXN0aW9uJTNFXG5cblwiXG5gKVxuICB9KVxuXG4gIGl0KFwidGhyb3dzIGFuIGVycm9yIGZvciB3aXRoIGN1c3RvbSBwYXRjaCBkaXJcIiwgKCkgPT4ge1xuICAgIGNvbnN0IHBhdGNoRmlsZU5hbWUgPSBcIkBkYXZpZCt0ZXN0KytyZWFjdC1uYXRpdmUrMS4yLjMucGF0Y2hcIlxuICAgIHJlYWRQYXRjaCh7XG4gICAgICBwYXRjaEZpbGVQYXRoOiBgL3Rlc3Qvcm9vdC8uY3J1ZnQvcGF0Y2hlcy8ke3BhdGNoRmlsZU5hbWV9YCxcbiAgICAgIHBhdGNoRGV0YWlsczogZ2V0UGFja2FnZURldGFpbHNGcm9tUGF0Y2hGaWxlbmFtZShwYXRjaEZpbGVOYW1lKSEsXG4gICAgICBwYXRjaERpcjogXCIuY3J1ZnQvcGF0Y2hlc1wiLFxuICAgIH0pXG5cbiAgICBleHBlY3QocmVtb3ZlQW5zaUNvZGVzKGxhc3RMb2coKSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG5cIlxuKipFUlJPUioqIEZhaWxlZCB0byBhcHBseSBwYXRjaCBmb3IgcGFja2FnZSBAZGF2aWQvdGVzdCA9PiByZWFjdC1uYXRpdmVcbiAgICBcbiAgVGhpcyBoYXBwZW5lZCBiZWNhdXNlIHRoZSBwYXRjaCBmaWxlIC5jcnVmdC9wYXRjaGVzL0BkYXZpZCt0ZXN0KytyZWFjdC1uYXRpdmUrMS4yLjMucGF0Y2ggY291bGQgbm90IGJlIHBhcnNlZC5cbiAgIFxuICBJZiB5b3UganVzdCB1cGdyYWRlZCBwYXRjaC1wYWNrYWdlLCB5b3UgY2FuIHRyeSBydW5uaW5nOlxuICBcbiAgICBwYXRjaCAtcDEgLWkgLmNydWZ0L3BhdGNoZXMvQGRhdmlkK3Rlc3QrK3JlYWN0LW5hdGl2ZSsxLjIuMy5wYXRjaFxuICAgIG5weCBwYXRjaC1wYWNrYWdlIEBkYXZpZC90ZXN0L3JlYWN0LW5hdGl2ZVxuICAgIFxuICBPdGhlcndpc2UsIHRyeSBtYW51YWxseSBjcmVhdGluZyB0aGUgcGF0Y2ggZmlsZSBhZ2Fpbi5cbiAgXG4gIElmIHRoZSBwcm9ibGVtIHBlcnNpc3RzLCBwbGVhc2Ugc3VibWl0IGEgYnVnIHJlcG9ydDpcbiAgXG4gICAgaHR0cHM6Ly9naXRodWIuY29tL2RzMzAwL3BhdGNoLXBhY2thZ2UvaXNzdWVzL25ldz90aXRsZT1QYXRjaCtmaWxlK3BhcnNlK2Vycm9yJmJvZHk9JTNDUGxlYXNlK2F0dGFjaCt0aGUrcGF0Y2grZmlsZStpbitxdWVzdGlvbiUzRVxuXG5cIlxuYClcbiAgfSlcblxuICBpdChcInRocm93cyBhbiBlcnJvciB3aXRoIGNkIGluc3RydWN0aW9uIGZvciB1bmhvaXN0ZWQgcGFja2FnZXNcIiwgKCkgPT4ge1xuICAgIGNvbnN0IHBhdGNoRmlsZU5hbWUgPSBcIkBkYXZpZCt0ZXN0KytyZWFjdC1uYXRpdmUrMS4yLjMucGF0Y2hcIlxuICAgIHJlYWRQYXRjaCh7XG4gICAgICBwYXRjaEZpbGVQYXRoOiBgL3Rlc3Qvcm9vdC9wYWNrYWdlcy9iYW5hbmEvcGF0Y2hlcy8ke3BhdGNoRmlsZU5hbWV9YCxcbiAgICAgIHBhdGNoRGV0YWlsczogZ2V0UGFja2FnZURldGFpbHNGcm9tUGF0Y2hGaWxlbmFtZShwYXRjaEZpbGVOYW1lKSEsXG4gICAgICBwYXRjaERpcjogXCJwYXRjaGVzL1wiLFxuICAgIH0pXG5cbiAgICBleHBlY3QocHJvY2Vzcy5jd2QpLnRvSGF2ZUJlZW5DYWxsZWQoKVxuXG4gICAgZXhwZWN0KHJlbW92ZUFuc2lDb2RlcyhsYXN0TG9nKCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuXCJcbioqRVJST1IqKiBGYWlsZWQgdG8gYXBwbHkgcGF0Y2ggZm9yIHBhY2thZ2UgQGRhdmlkL3Rlc3QgPT4gcmVhY3QtbmF0aXZlXG4gICAgXG4gIFRoaXMgaGFwcGVuZWQgYmVjYXVzZSB0aGUgcGF0Y2ggZmlsZSBwYWNrYWdlcy9iYW5hbmEvcGF0Y2hlcy9AZGF2aWQrdGVzdCsrcmVhY3QtbmF0aXZlKzEuMi4zLnBhdGNoIGNvdWxkIG5vdCBiZSBwYXJzZWQuXG4gICBcbiAgSWYgeW91IGp1c3QgdXBncmFkZWQgcGF0Y2gtcGFja2FnZSwgeW91IGNhbiB0cnkgcnVubmluZzpcbiAgXG4gICAgY2QgcGFja2FnZXMvYmFuYW5hL1xuICAgIHBhdGNoIC1wMSAtaSBwYXRjaGVzL0BkYXZpZCt0ZXN0KytyZWFjdC1uYXRpdmUrMS4yLjMucGF0Y2hcbiAgICBucHggcGF0Y2gtcGFja2FnZSBAZGF2aWQvdGVzdC9yZWFjdC1uYXRpdmVcbiAgICBjZCAuLi8uLlxuICAgIFxuICBPdGhlcndpc2UsIHRyeSBtYW51YWxseSBjcmVhdGluZyB0aGUgcGF0Y2ggZmlsZSBhZ2Fpbi5cbiAgXG4gIElmIHRoZSBwcm9ibGVtIHBlcnNpc3RzLCBwbGVhc2Ugc3VibWl0IGEgYnVnIHJlcG9ydDpcbiAgXG4gICAgaHR0cHM6Ly9naXRodWIuY29tL2RzMzAwL3BhdGNoLXBhY2thZ2UvaXNzdWVzL25ldz90aXRsZT1QYXRjaCtmaWxlK3BhcnNlK2Vycm9yJmJvZHk9JTNDUGxlYXNlK2F0dGFjaCt0aGUrcGF0Y2grZmlsZStpbitxdWVzdGlvbiUzRVxuXG5cIlxuYClcbiAgfSlcblxuICBpdChcInRocm93cyBhbiBlcnJvciB3aXRoIGNkIGluc3RydWN0aW9uIGZvciB1bmhvaXN0ZWQgcGFja2FnZXMgYW5kIGN1c3RvbSBwYXRjaERpclwiLCAoKSA9PiB7XG4gICAgY29uc3QgcGF0Y2hGaWxlTmFtZSA9IFwiQGRhdmlkK3Rlc3QrK3JlYWN0LW5hdGl2ZSsxLjIuMy5wYXRjaFwiXG4gICAgcmVhZFBhdGNoKHtcbiAgICAgIHBhdGNoRmlsZVBhdGg6IGAvdGVzdC9yb290L3BhY2thZ2VzL2JhbmFuYS8ucGF0Y2hlcy8ke3BhdGNoRmlsZU5hbWV9YCxcbiAgICAgIHBhdGNoRGV0YWlsczogZ2V0UGFja2FnZURldGFpbHNGcm9tUGF0Y2hGaWxlbmFtZShwYXRjaEZpbGVOYW1lKSEsXG4gICAgICBwYXRjaERpcjogXCIucGF0Y2hlcy9cIixcbiAgICB9KVxuXG4gICAgZXhwZWN0KHByb2Nlc3MuY3dkKS50b0hhdmVCZWVuQ2FsbGVkKClcblxuICAgIGV4cGVjdChyZW1vdmVBbnNpQ29kZXMobGFzdExvZygpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcblwiXG4qKkVSUk9SKiogRmFpbGVkIHRvIGFwcGx5IHBhdGNoIGZvciBwYWNrYWdlIEBkYXZpZC90ZXN0ID0+IHJlYWN0LW5hdGl2ZVxuICAgIFxuICBUaGlzIGhhcHBlbmVkIGJlY2F1c2UgdGhlIHBhdGNoIGZpbGUgcGFja2FnZXMvYmFuYW5hLy5wYXRjaGVzL0BkYXZpZCt0ZXN0KytyZWFjdC1uYXRpdmUrMS4yLjMucGF0Y2ggY291bGQgbm90IGJlIHBhcnNlZC5cbiAgIFxuICBJZiB5b3UganVzdCB1cGdyYWRlZCBwYXRjaC1wYWNrYWdlLCB5b3UgY2FuIHRyeSBydW5uaW5nOlxuICBcbiAgICBjZCBwYWNrYWdlcy9iYW5hbmEvXG4gICAgcGF0Y2ggLXAxIC1pIC5wYXRjaGVzL0BkYXZpZCt0ZXN0KytyZWFjdC1uYXRpdmUrMS4yLjMucGF0Y2hcbiAgICBucHggcGF0Y2gtcGFja2FnZSBAZGF2aWQvdGVzdC9yZWFjdC1uYXRpdmVcbiAgICBjZCAuLi8uLlxuICAgIFxuICBPdGhlcndpc2UsIHRyeSBtYW51YWxseSBjcmVhdGluZyB0aGUgcGF0Y2ggZmlsZSBhZ2Fpbi5cbiAgXG4gIElmIHRoZSBwcm9ibGVtIHBlcnNpc3RzLCBwbGVhc2Ugc3VibWl0IGEgYnVnIHJlcG9ydDpcbiAgXG4gICAgaHR0cHM6Ly9naXRodWIuY29tL2RzMzAwL3BhdGNoLXBhY2thZ2UvaXNzdWVzL25ldz90aXRsZT1QYXRjaCtmaWxlK3BhcnNlK2Vycm9yJmJvZHk9JTNDUGxlYXNlK2F0dGFjaCt0aGUrcGF0Y2grZmlsZStpbitxdWVzdGlvbiUzRVxuXG5cIlxuYClcbiAgfSlcbn0pXG4iXX0= \ No newline at end of file diff --git a/dist/patch/reverse.js b/dist/patch/reverse.js new file mode 100644 index 00000000..f3752054 --- /dev/null +++ b/dist/patch/reverse.js @@ -0,0 +1,97 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.reversePatch = void 0; +const parse_1 = require("./parse"); +const assertNever_1 = require("../assertNever"); +function reverseHunk(hunk) { + const header = { + original: hunk.header.patched, + patched: hunk.header.original, + }; + const parts = []; + for (const part of hunk.parts) { + switch (part.type) { + case "context": + parts.push(part); + break; + case "deletion": + parts.push({ + type: "insertion", + lines: part.lines, + noNewlineAtEndOfFile: part.noNewlineAtEndOfFile, + }); + break; + case "insertion": + parts.push({ + type: "deletion", + lines: part.lines, + noNewlineAtEndOfFile: part.noNewlineAtEndOfFile, + }); + break; + default: + (0, assertNever_1.assertNever)(part.type); + } + } + // swap insertions and deletions over so deletions always come first + for (let i = 0; i < parts.length - 1; i++) { + if (parts[i].type === "insertion" && parts[i + 1].type === "deletion") { + const tmp = parts[i]; + parts[i] = parts[i + 1]; + parts[i + 1] = tmp; + i += 1; + } + } + const result = { + header, + parts, + source: hunk.source, + }; + (0, parse_1.verifyHunkIntegrity)(result); + return result; +} +function reversePatchPart(part) { + switch (part.type) { + case "file creation": + return { + type: "file deletion", + path: part.path, + hash: part.hash, + hunk: part.hunk && reverseHunk(part.hunk), + mode: part.mode, + }; + case "file deletion": + return { + type: "file creation", + path: part.path, + hunk: part.hunk && reverseHunk(part.hunk), + mode: part.mode, + hash: part.hash, + }; + case "rename": + return { + type: "rename", + fromPath: part.toPath, + toPath: part.fromPath, + }; + case "patch": + return { + type: "patch", + path: part.path, + hunks: part.hunks.map(reverseHunk), + beforeHash: part.afterHash, + afterHash: part.beforeHash, + }; + case "mode change": + return { + type: "mode change", + path: part.path, + newMode: part.oldMode, + oldMode: part.newMode, + }; + } +} +const reversePatch = (patch) => { + return patch.map(reversePatchPart).reverse(); +}; +exports.reversePatch = reversePatch; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2ZXJzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9yZXZlcnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQU1nQjtBQUNoQixnREFBNEM7QUFFNUMsU0FBUyxXQUFXLENBQUMsSUFBVTtJQUM3QixNQUFNLE1BQU0sR0FBZTtRQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO1FBQzdCLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7S0FDOUIsQ0FBQTtJQUNELE1BQU0sS0FBSyxHQUFrQixFQUFFLENBQUE7SUFFL0IsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDOUIsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEIsS0FBSyxTQUFTO2dCQUNaLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBQ2hCLE1BQUs7WUFDUCxLQUFLLFVBQVU7Z0JBQ2IsS0FBSyxDQUFDLElBQUksQ0FBQztvQkFDVCxJQUFJLEVBQUUsV0FBVztvQkFDakIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO29CQUNqQixvQkFBb0IsRUFBRSxJQUFJLENBQUMsb0JBQW9CO2lCQUNoRCxDQUFDLENBQUE7Z0JBQ0YsTUFBSztZQUNQLEtBQUssV0FBVztnQkFDZCxLQUFLLENBQUMsSUFBSSxDQUFDO29CQUNULElBQUksRUFBRSxVQUFVO29CQUNoQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7b0JBQ2pCLG9CQUFvQixFQUFFLElBQUksQ0FBQyxvQkFBb0I7aUJBQ2hELENBQUMsQ0FBQTtnQkFDRixNQUFLO1lBQ1A7Z0JBQ0UsSUFBQSx5QkFBVyxFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVELG9FQUFvRTtJQUNwRSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUMxQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssV0FBVyxJQUFJLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ3RFLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUNwQixLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtZQUN2QixLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQTtZQUNsQixDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ1IsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBUztRQUNuQixNQUFNO1FBQ04sS0FBSztRQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtLQUNwQixDQUFBO0lBRUQsSUFBQSwyQkFBbUIsRUFBQyxNQUFNLENBQUMsQ0FBQTtJQUUzQixPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLElBQW1CO0lBQzNDLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLEtBQUssZUFBZTtZQUNsQixPQUFPO2dCQUNMLElBQUksRUFBRSxlQUFlO2dCQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUN6QyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7YUFDaEIsQ0FBQTtRQUNILEtBQUssZUFBZTtZQUNsQixPQUFPO2dCQUNMLElBQUksRUFBRSxlQUFlO2dCQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ3pDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7YUFDaEIsQ0FBQTtRQUNILEtBQUssUUFBUTtZQUNYLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNyQixNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVE7YUFDdEIsQ0FBQTtRQUNILEtBQUssT0FBTztZQUNWLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7Z0JBQ2xDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUztnQkFDMUIsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVO2FBQzNCLENBQUE7UUFDSCxLQUFLLGFBQWE7WUFDaEIsT0FBTztnQkFDTCxJQUFJLEVBQUUsYUFBYTtnQkFDbkIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztnQkFDckIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2FBQ3RCLENBQUE7SUFDTCxDQUFDO0FBQ0gsQ0FBQztBQUVNLE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBc0IsRUFBbUIsRUFBRTtJQUN0RSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtBQUM5QyxDQUFDLENBQUE7QUFGWSxRQUFBLFlBQVksZ0JBRXhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUGFyc2VkUGF0Y2hGaWxlLFxuICBQYXRjaEZpbGVQYXJ0LFxuICBIdW5rLFxuICBIdW5rSGVhZGVyLFxuICB2ZXJpZnlIdW5rSW50ZWdyaXR5LFxufSBmcm9tIFwiLi9wYXJzZVwiXG5pbXBvcnQgeyBhc3NlcnROZXZlciB9IGZyb20gXCIuLi9hc3NlcnROZXZlclwiXG5cbmZ1bmN0aW9uIHJldmVyc2VIdW5rKGh1bms6IEh1bmspOiBIdW5rIHtcbiAgY29uc3QgaGVhZGVyOiBIdW5rSGVhZGVyID0ge1xuICAgIG9yaWdpbmFsOiBodW5rLmhlYWRlci5wYXRjaGVkLFxuICAgIHBhdGNoZWQ6IGh1bmsuaGVhZGVyLm9yaWdpbmFsLFxuICB9XG4gIGNvbnN0IHBhcnRzOiBIdW5rW1wicGFydHNcIl0gPSBbXVxuXG4gIGZvciAoY29uc3QgcGFydCBvZiBodW5rLnBhcnRzKSB7XG4gICAgc3dpdGNoIChwYXJ0LnR5cGUpIHtcbiAgICAgIGNhc2UgXCJjb250ZXh0XCI6XG4gICAgICAgIHBhcnRzLnB1c2gocGFydClcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgXCJkZWxldGlvblwiOlxuICAgICAgICBwYXJ0cy5wdXNoKHtcbiAgICAgICAgICB0eXBlOiBcImluc2VydGlvblwiLFxuICAgICAgICAgIGxpbmVzOiBwYXJ0LmxpbmVzLFxuICAgICAgICAgIG5vTmV3bGluZUF0RW5kT2ZGaWxlOiBwYXJ0Lm5vTmV3bGluZUF0RW5kT2ZGaWxlLFxuICAgICAgICB9KVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcImluc2VydGlvblwiOlxuICAgICAgICBwYXJ0cy5wdXNoKHtcbiAgICAgICAgICB0eXBlOiBcImRlbGV0aW9uXCIsXG4gICAgICAgICAgbGluZXM6IHBhcnQubGluZXMsXG4gICAgICAgICAgbm9OZXdsaW5lQXRFbmRPZkZpbGU6IHBhcnQubm9OZXdsaW5lQXRFbmRPZkZpbGUsXG4gICAgICAgIH0pXG4gICAgICAgIGJyZWFrXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBhc3NlcnROZXZlcihwYXJ0LnR5cGUpXG4gICAgfVxuICB9XG5cbiAgLy8gc3dhcCBpbnNlcnRpb25zIGFuZCBkZWxldGlvbnMgb3ZlciBzbyBkZWxldGlvbnMgYWx3YXlzIGNvbWUgZmlyc3RcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXJ0cy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICBpZiAocGFydHNbaV0udHlwZSA9PT0gXCJpbnNlcnRpb25cIiAmJiBwYXJ0c1tpICsgMV0udHlwZSA9PT0gXCJkZWxldGlvblwiKSB7XG4gICAgICBjb25zdCB0bXAgPSBwYXJ0c1tpXVxuICAgICAgcGFydHNbaV0gPSBwYXJ0c1tpICsgMV1cbiAgICAgIHBhcnRzW2kgKyAxXSA9IHRtcFxuICAgICAgaSArPSAxXG4gICAgfVxuICB9XG5cbiAgY29uc3QgcmVzdWx0OiBIdW5rID0ge1xuICAgIGhlYWRlcixcbiAgICBwYXJ0cyxcbiAgICBzb3VyY2U6IGh1bmsuc291cmNlLFxuICB9XG5cbiAgdmVyaWZ5SHVua0ludGVncml0eShyZXN1bHQpXG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5mdW5jdGlvbiByZXZlcnNlUGF0Y2hQYXJ0KHBhcnQ6IFBhdGNoRmlsZVBhcnQpOiBQYXRjaEZpbGVQYXJ0IHtcbiAgc3dpdGNoIChwYXJ0LnR5cGUpIHtcbiAgICBjYXNlIFwiZmlsZSBjcmVhdGlvblwiOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogXCJmaWxlIGRlbGV0aW9uXCIsXG4gICAgICAgIHBhdGg6IHBhcnQucGF0aCxcbiAgICAgICAgaGFzaDogcGFydC5oYXNoLFxuICAgICAgICBodW5rOiBwYXJ0Lmh1bmsgJiYgcmV2ZXJzZUh1bmsocGFydC5odW5rKSxcbiAgICAgICAgbW9kZTogcGFydC5tb2RlLFxuICAgICAgfVxuICAgIGNhc2UgXCJmaWxlIGRlbGV0aW9uXCI6XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBcImZpbGUgY3JlYXRpb25cIixcbiAgICAgICAgcGF0aDogcGFydC5wYXRoLFxuICAgICAgICBodW5rOiBwYXJ0Lmh1bmsgJiYgcmV2ZXJzZUh1bmsocGFydC5odW5rKSxcbiAgICAgICAgbW9kZTogcGFydC5tb2RlLFxuICAgICAgICBoYXNoOiBwYXJ0Lmhhc2gsXG4gICAgICB9XG4gICAgY2FzZSBcInJlbmFtZVwiOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogXCJyZW5hbWVcIixcbiAgICAgICAgZnJvbVBhdGg6IHBhcnQudG9QYXRoLFxuICAgICAgICB0b1BhdGg6IHBhcnQuZnJvbVBhdGgsXG4gICAgICB9XG4gICAgY2FzZSBcInBhdGNoXCI6XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBcInBhdGNoXCIsXG4gICAgICAgIHBhdGg6IHBhcnQucGF0aCxcbiAgICAgICAgaHVua3M6IHBhcnQuaHVua3MubWFwKHJldmVyc2VIdW5rKSxcbiAgICAgICAgYmVmb3JlSGFzaDogcGFydC5hZnRlckhhc2gsXG4gICAgICAgIGFmdGVySGFzaDogcGFydC5iZWZvcmVIYXNoLFxuICAgICAgfVxuICAgIGNhc2UgXCJtb2RlIGNoYW5nZVwiOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogXCJtb2RlIGNoYW5nZVwiLFxuICAgICAgICBwYXRoOiBwYXJ0LnBhdGgsXG4gICAgICAgIG5ld01vZGU6IHBhcnQub2xkTW9kZSxcbiAgICAgICAgb2xkTW9kZTogcGFydC5uZXdNb2RlLFxuICAgICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCByZXZlcnNlUGF0Y2ggPSAocGF0Y2g6IFBhcnNlZFBhdGNoRmlsZSk6IFBhcnNlZFBhdGNoRmlsZSA9PiB7XG4gIHJldHVybiBwYXRjaC5tYXAocmV2ZXJzZVBhdGNoUGFydCkucmV2ZXJzZSgpXG59XG4iXX0= \ No newline at end of file diff --git a/dist/patchFs.js b/dist/patchFs.js new file mode 100644 index 00000000..9a9ce3e1 --- /dev/null +++ b/dist/patchFs.js @@ -0,0 +1,56 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getGroupedPatches = exports.getPatchFiles = void 0; +const PackageDetails_1 = require("./PackageDetails"); +const path_1 = require("./path"); +const klaw_sync_1 = __importDefault(require("klaw-sync")); +const getPatchFiles = (patchesDir) => { + try { + return (0, klaw_sync_1.default)(patchesDir, { nodir: true }) + .map(({ path }) => (0, path_1.relative)(patchesDir, path)) + .filter((path) => path.endsWith(".patch")); + } + catch (e) { + return []; + } +}; +exports.getPatchFiles = getPatchFiles; +const getGroupedPatches = (patchesDirectory) => { + const files = (0, exports.getPatchFiles)(patchesDirectory); + if (files.length === 0) { + return { + numPatchFiles: 0, + pathSpecifierToPatchFiles: {}, + warnings: [], + }; + } + const warnings = []; + const pathSpecifierToPatchFiles = {}; + for (const file of files) { + const details = (0, PackageDetails_1.getPackageDetailsFromPatchFilename)(file); + if (!details) { + warnings.push(`Unrecognized patch file in patches directory ${file}`); + continue; + } + if (!pathSpecifierToPatchFiles[details.pathSpecifier]) { + pathSpecifierToPatchFiles[details.pathSpecifier] = []; + } + pathSpecifierToPatchFiles[details.pathSpecifier].push(details); + } + for (const arr of Object.values(pathSpecifierToPatchFiles)) { + arr.sort((a, b) => { + var _a, _b; + return ((_a = a.sequenceNumber) !== null && _a !== void 0 ? _a : 0) - ((_b = b.sequenceNumber) !== null && _b !== void 0 ? _b : 0); + }); + } + return { + numPatchFiles: files.length, + pathSpecifierToPatchFiles, + warnings, + }; +}; +exports.getGroupedPatches = getGroupedPatches; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2hGcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXRjaEZzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHFEQUd5QjtBQUN6QixpQ0FBaUM7QUFDakMsMERBQWdDO0FBRXpCLE1BQU0sYUFBYSxHQUFHLENBQUMsVUFBa0IsRUFBRSxFQUFFO0lBQ2xELElBQUksQ0FBQztRQUNILE9BQU8sSUFBQSxtQkFBUSxFQUFDLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQzthQUN6QyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFBLGVBQVEsRUFBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDN0MsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7SUFDOUMsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxPQUFPLEVBQUUsQ0FBQTtJQUNYLENBQUM7QUFDSCxDQUFDLENBQUE7QUFSWSxRQUFBLGFBQWEsaUJBUXpCO0FBT00sTUFBTSxpQkFBaUIsR0FBRyxDQUFDLGdCQUF3QixFQUFrQixFQUFFO0lBQzVFLE1BQU0sS0FBSyxHQUFHLElBQUEscUJBQWEsRUFBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBRTdDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN2QixPQUFPO1lBQ0wsYUFBYSxFQUFFLENBQUM7WUFDaEIseUJBQXlCLEVBQUUsRUFBRTtZQUM3QixRQUFRLEVBQUUsRUFBRTtTQUNiLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQWEsRUFBRSxDQUFBO0lBRTdCLE1BQU0seUJBQXlCLEdBQTRDLEVBQUUsQ0FBQTtJQUM3RSxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLElBQUEsbURBQWtDLEVBQUMsSUFBSSxDQUFDLENBQUE7UUFDeEQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsUUFBUSxDQUFDLElBQUksQ0FBQyxnREFBZ0QsSUFBSSxFQUFFLENBQUMsQ0FBQTtZQUNyRSxTQUFRO1FBQ1YsQ0FBQztRQUNELElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUN0RCx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBQ3ZELENBQUM7UUFDRCx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ2hFLENBQUM7SUFDRCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMseUJBQXlCLENBQUMsRUFBRSxDQUFDO1FBQzNELEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7O1lBQ2hCLE9BQU8sQ0FBQyxNQUFBLENBQUMsQ0FBQyxjQUFjLG1DQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBQSxDQUFDLENBQUMsY0FBYyxtQ0FBSSxDQUFDLENBQUMsQ0FBQTtRQUMxRCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxPQUFPO1FBQ0wsYUFBYSxFQUFFLEtBQUssQ0FBQyxNQUFNO1FBQzNCLHlCQUF5QjtRQUN6QixRQUFRO0tBQ1QsQ0FBQTtBQUNILENBQUMsQ0FBQTtBQXBDWSxRQUFBLGlCQUFpQixxQkFvQzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUGF0Y2hlZFBhY2thZ2VEZXRhaWxzLFxuICBnZXRQYWNrYWdlRGV0YWlsc0Zyb21QYXRjaEZpbGVuYW1lLFxufSBmcm9tIFwiLi9QYWNrYWdlRGV0YWlsc1wiXG5pbXBvcnQgeyByZWxhdGl2ZSB9IGZyb20gXCIuL3BhdGhcIlxuaW1wb3J0IGtsYXdTeW5jIGZyb20gXCJrbGF3LXN5bmNcIlxuXG5leHBvcnQgY29uc3QgZ2V0UGF0Y2hGaWxlcyA9IChwYXRjaGVzRGlyOiBzdHJpbmcpID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4ga2xhd1N5bmMocGF0Y2hlc0RpciwgeyBub2RpcjogdHJ1ZSB9KVxuICAgICAgLm1hcCgoeyBwYXRoIH0pID0+IHJlbGF0aXZlKHBhdGNoZXNEaXIsIHBhdGgpKVxuICAgICAgLmZpbHRlcigocGF0aCkgPT4gcGF0aC5lbmRzV2l0aChcIi5wYXRjaFwiKSlcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBbXVxuICB9XG59XG5cbmludGVyZmFjZSBHcm91cGVkUGF0Y2hlcyB7XG4gIG51bVBhdGNoRmlsZXM6IG51bWJlclxuICBwYXRoU3BlY2lmaWVyVG9QYXRjaEZpbGVzOiBSZWNvcmQ8c3RyaW5nLCBQYXRjaGVkUGFja2FnZURldGFpbHNbXT5cbiAgd2FybmluZ3M6IHN0cmluZ1tdXG59XG5leHBvcnQgY29uc3QgZ2V0R3JvdXBlZFBhdGNoZXMgPSAocGF0Y2hlc0RpcmVjdG9yeTogc3RyaW5nKTogR3JvdXBlZFBhdGNoZXMgPT4ge1xuICBjb25zdCBmaWxlcyA9IGdldFBhdGNoRmlsZXMocGF0Y2hlc0RpcmVjdG9yeSlcblxuICBpZiAoZmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG51bVBhdGNoRmlsZXM6IDAsXG4gICAgICBwYXRoU3BlY2lmaWVyVG9QYXRjaEZpbGVzOiB7fSxcbiAgICAgIHdhcm5pbmdzOiBbXSxcbiAgICB9XG4gIH1cblxuICBjb25zdCB3YXJuaW5nczogc3RyaW5nW10gPSBbXVxuXG4gIGNvbnN0IHBhdGhTcGVjaWZpZXJUb1BhdGNoRmlsZXM6IFJlY29yZDxzdHJpbmcsIFBhdGNoZWRQYWNrYWdlRGV0YWlsc1tdPiA9IHt9XG4gIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgIGNvbnN0IGRldGFpbHMgPSBnZXRQYWNrYWdlRGV0YWlsc0Zyb21QYXRjaEZpbGVuYW1lKGZpbGUpXG4gICAgaWYgKCFkZXRhaWxzKSB7XG4gICAgICB3YXJuaW5ncy5wdXNoKGBVbnJlY29nbml6ZWQgcGF0Y2ggZmlsZSBpbiBwYXRjaGVzIGRpcmVjdG9yeSAke2ZpbGV9YClcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmICghcGF0aFNwZWNpZmllclRvUGF0Y2hGaWxlc1tkZXRhaWxzLnBhdGhTcGVjaWZpZXJdKSB7XG4gICAgICBwYXRoU3BlY2lmaWVyVG9QYXRjaEZpbGVzW2RldGFpbHMucGF0aFNwZWNpZmllcl0gPSBbXVxuICAgIH1cbiAgICBwYXRoU3BlY2lmaWVyVG9QYXRjaEZpbGVzW2RldGFpbHMucGF0aFNwZWNpZmllcl0ucHVzaChkZXRhaWxzKVxuICB9XG4gIGZvciAoY29uc3QgYXJyIG9mIE9iamVjdC52YWx1ZXMocGF0aFNwZWNpZmllclRvUGF0Y2hGaWxlcykpIHtcbiAgICBhcnIuc29ydCgoYSwgYikgPT4ge1xuICAgICAgcmV0dXJuIChhLnNlcXVlbmNlTnVtYmVyID8/IDApIC0gKGIuc2VxdWVuY2VOdW1iZXIgPz8gMClcbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBudW1QYXRjaEZpbGVzOiBmaWxlcy5sZW5ndGgsXG4gICAgcGF0aFNwZWNpZmllclRvUGF0Y2hGaWxlcyxcbiAgICB3YXJuaW5ncyxcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/dist/path.js b/dist/path.js new file mode 100644 index 00000000..a820b597 --- /dev/null +++ b/dist/path.js @@ -0,0 +1,17 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.relative = exports.resolve = exports.dirname = exports.join = void 0; +const slash_1 = __importDefault(require("slash")); +const path_1 = __importDefault(require("path")); +const join = (...args) => (0, slash_1.default)(path_1.default.join(...args)); +exports.join = join; +var path_2 = require("path"); +Object.defineProperty(exports, "dirname", { enumerable: true, get: function () { return path_2.dirname; } }); +const resolve = (...args) => (0, slash_1.default)(path_1.default.resolve(...args)); +exports.resolve = resolve; +const relative = (...args) => (0, slash_1.default)(path_1.default.relative(...args)); +exports.relative = relative; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUF5QjtBQUN6QixnREFBdUI7QUFFaEIsTUFBTSxJQUFJLEdBQXFCLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUEsZUFBSyxFQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFBO0FBQS9ELFFBQUEsSUFBSSxRQUEyRDtBQUU1RSw2QkFBOEI7QUFBckIsK0ZBQUEsT0FBTyxPQUFBO0FBRVQsTUFBTSxPQUFPLEdBQXdCLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUN0RCxJQUFBLGVBQUssRUFBQyxjQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQTtBQURqQixRQUFBLE9BQU8sV0FDVTtBQUV2QixNQUFNLFFBQVEsR0FBeUIsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLENBQ3hELElBQUEsZUFBSyxFQUFDLGNBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFBO0FBRGxCLFFBQUEsUUFBUSxZQUNVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNsYXNoIGZyb20gXCJzbGFzaFwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmV4cG9ydCBjb25zdCBqb2luOiB0eXBlb2YgcGF0aC5qb2luID0gKC4uLmFyZ3MpID0+IHNsYXNoKHBhdGguam9pbiguLi5hcmdzKSlcblxuZXhwb3J0IHsgZGlybmFtZSB9IGZyb20gXCJwYXRoXCJcblxuZXhwb3J0IGNvbnN0IHJlc29sdmU6IHR5cGVvZiBwYXRoLnJlc29sdmUgPSAoLi4uYXJncykgPT5cbiAgc2xhc2gocGF0aC5yZXNvbHZlKC4uLmFyZ3MpKVxuXG5leHBvcnQgY29uc3QgcmVsYXRpdmU6IHR5cGVvZiBwYXRoLnJlbGF0aXZlID0gKC4uLmFyZ3MpID0+XG4gIHNsYXNoKHBhdGgucmVsYXRpdmUoLi4uYXJncykpXG4iXX0= \ No newline at end of file diff --git a/dist/rebase.js b/dist/rebase.js new file mode 100644 index 00000000..e2c38cbe --- /dev/null +++ b/dist/rebase.js @@ -0,0 +1,147 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.rebase = rebase; +const chalk_1 = __importDefault(require("chalk")); +const path_1 = require("path"); +const applyPatches_1 = require("./applyPatches"); +const hash_1 = require("./hash"); +const patchFs_1 = require("./patchFs"); +const stateFile_1 = require("./stateFile"); +function rebase({ appPath, patchDir, packagePathSpecifier, targetPatch, }) { + const patchesDirectory = (0, path_1.join)(appPath, patchDir); + const groupedPatches = (0, patchFs_1.getGroupedPatches)(patchesDirectory); + if (groupedPatches.numPatchFiles === 0) { + console.log(chalk_1.default.blueBright("No patch files found")); + process.exit(1); + } + const packagePatches = groupedPatches.pathSpecifierToPatchFiles[packagePathSpecifier]; + if (!packagePatches) { + console.log(chalk_1.default.blueBright("No patch files found for package"), packagePathSpecifier); + process.exit(1); + } + const state = (0, stateFile_1.getPatchApplicationState)(packagePatches[0]); + if (!state) { + console.log(chalk_1.default.blueBright("No patch state found"), "Did you forget to run", chalk_1.default.bold("patch-package"), "(without arguments) first?"); + process.exit(1); + } + if (state.isRebasing) { + console.log(chalk_1.default.blueBright("Already rebasing"), "Make changes to the files in", chalk_1.default.bold(packagePatches[0].path), "and then run `patch-package", packagePathSpecifier, "--continue` to", packagePatches.length === state.patches.length + ? "append a patch file" + : `update the ${packagePatches[packagePatches.length - 1].patchFilename} file`); + console.log(`💡 To remove a broken patch file, delete it and reinstall node_modules`); + process.exit(1); + } + if (state.patches.length !== packagePatches.length) { + console.log(chalk_1.default.blueBright("Some patches have not been applied."), "Reinstall node_modules and try again."); + } + // check hashes + (0, stateFile_1.verifyAppliedPatches)({ appPath, patchDir, state }); + if (targetPatch === "0") { + // unapply all + unApplyPatches({ + patches: packagePatches, + appPath, + patchDir, + }); + (0, stateFile_1.savePatchApplicationState)({ + packageDetails: packagePatches[0], + isRebasing: true, + patches: [], + }); + console.log(` +Make any changes you need inside ${chalk_1.default.bold(packagePatches[0].path)} + +When you are done, run + + ${chalk_1.default.bold(`patch-package ${packagePathSpecifier} --append 'MyChangeDescription'`)} + +to insert a new patch file. +`); + return; + } + // find target patch + const target = packagePatches.find((p) => { + if (p.patchFilename === targetPatch) { + return true; + } + if ((0, path_1.resolve)(process.cwd(), targetPatch) === + (0, path_1.join)(patchesDirectory, p.patchFilename)) { + return true; + } + if (targetPatch === p.sequenceName) { + return true; + } + const n = Number(targetPatch.replace(/^0+/g, "")); + if (!isNaN(n) && n === p.sequenceNumber) { + return true; + } + return false; + }); + if (!target) { + console.log(chalk_1.default.red("Could not find target patch file"), chalk_1.default.bold(targetPatch)); + console.log(); + console.log("The list of available patch files is:"); + packagePatches.forEach((p) => { + console.log(` - ${p.patchFilename}`); + }); + process.exit(1); + } + const currentHash = (0, hash_1.hashFile)((0, path_1.join)(patchesDirectory, target.patchFilename)); + const prevApplication = state.patches.find((p) => p.patchContentHash === currentHash); + if (!prevApplication) { + console.log(chalk_1.default.red("Could not find previous application of patch file"), chalk_1.default.bold(target.patchFilename)); + console.log(); + console.log("You should reinstall node_modules and try again."); + process.exit(1); + } + // ok, we are good to start undoing all the patches that were applied up to but not including the target patch + const targetIdx = state.patches.indexOf(prevApplication); + unApplyPatches({ + patches: packagePatches.slice(targetIdx + 1), + appPath, + patchDir, + }); + (0, stateFile_1.savePatchApplicationState)({ + packageDetails: packagePatches[0], + isRebasing: true, + patches: packagePatches.slice(0, targetIdx + 1).map((p) => ({ + patchFilename: p.patchFilename, + patchContentHash: (0, hash_1.hashFile)((0, path_1.join)(patchesDirectory, p.patchFilename)), + didApply: true, + })), + }); + console.log(` +Make any changes you need inside ${chalk_1.default.bold(packagePatches[0].path)} + +When you are done, do one of the following: + + To update ${chalk_1.default.bold(packagePatches[targetIdx].patchFilename)} run + + ${chalk_1.default.bold(`patch-package ${packagePathSpecifier}`)} + + To create a new patch file after ${chalk_1.default.bold(packagePatches[targetIdx].patchFilename)} run + + ${chalk_1.default.bold(`patch-package ${packagePathSpecifier} --append 'MyChangeDescription'`)} + + `); +} +function unApplyPatches({ patches, appPath, patchDir, }) { + for (const patch of patches.slice().reverse()) { + if (!(0, applyPatches_1.applyPatch)({ + patchFilePath: (0, path_1.join)(appPath, patchDir, patch.patchFilename), + reverse: true, + patchDetails: patch, + patchDir, + cwd: process.cwd(), + bestEffort: false, + })) { + console.log(chalk_1.default.red("Failed to un-apply patch file"), chalk_1.default.bold(patch.patchFilename), "Try completely reinstalling node_modules."); + process.exit(1); + } + console.log(chalk_1.default.cyan.bold("Un-applied"), patch.patchFilename); + } +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmViYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JlYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVlBLHdCQW9MQztBQWhNRCxrREFBeUI7QUFDekIsK0JBQW9DO0FBQ3BDLGlEQUEyQztBQUMzQyxpQ0FBaUM7QUFFakMsdUNBQTZDO0FBQzdDLDJDQUlvQjtBQUVwQixTQUFnQixNQUFNLENBQUMsRUFDckIsT0FBTyxFQUNQLFFBQVEsRUFDUixvQkFBb0IsRUFDcEIsV0FBVyxHQU1aO0lBQ0MsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLFdBQUksRUFBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDaEQsTUFBTSxjQUFjLEdBQUcsSUFBQSwyQkFBaUIsRUFBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBRTFELElBQUksY0FBYyxDQUFDLGFBQWEsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN2QyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQUssQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFBO1FBQ3JELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDakIsQ0FBQztJQUVELE1BQU0sY0FBYyxHQUNsQixjQUFjLENBQUMseUJBQXlCLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtJQUNoRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FDVCxlQUFLLENBQUMsVUFBVSxDQUFDLGtDQUFrQyxDQUFDLEVBQ3BELG9CQUFvQixDQUNyQixDQUFBO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNqQixDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsSUFBQSxvQ0FBd0IsRUFBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUV6RCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxPQUFPLENBQUMsR0FBRyxDQUNULGVB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QUMsQ0FBQTtBQUNKLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxFQUN0QixPQUFPLEVBQ1AsT0FBTyxFQUNQLFFBQVEsR0FLVDtJQUNDLEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDOUMsSUFDRSxDQUFDLElBQUEseUJBQVUsRUFBQztZQUNWLGFBQWEsRUFBRSxJQUFBLFdBQUksRUFBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQVc7WUFDckUsT0FBTyxFQUFFLElBQUk7WUFDYixZQUFZLEVBQUUsS0FBSztZQUNuQixRQUFRO1lBQ1IsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUU7WUFDbEIsVUFBVSxFQUFFLEtBQUs7U0FDbEIsQ0FBQyxFQUNGLENBQUM7WUFDRCxPQUFPLENBQUMsR0FBRyxDQUNULGVBQUssQ0FBQyxHQUFHLENBQUMsK0JBQStCLENBQUMsRUFDMUMsZUFBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQy9CLDJDQUEyQyxDQUM1QyxDQUFBO1lBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNqQixDQUFDO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDakUsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCJcbmltcG9ydCB7IGpvaW4sIHJlc29sdmUgfSBmcm9tIFwicGF0aFwiXG5pbXBvcnQgeyBhcHBseVBhdGNoIH0gZnJvbSBcIi4vYXBwbHlQYXRjaGVzXCJcbmltcG9ydCB7IGhhc2hGaWxlIH0gZnJvbSBcIi4vaGFzaFwiXG5pbXBvcnQgeyBQYXRjaGVkUGFja2FnZURldGFpbHMgfSBmcm9tIFwiLi9QYWNrYWdlRGV0YWlsc1wiXG5pbXBvcnQgeyBnZXRHcm91cGVkUGF0Y2hlcyB9IGZyb20gXCIuL3BhdGNoRnNcIlxuaW1wb3J0IHtcbiAgZ2V0UGF0Y2hBcHBsaWNhdGlvblN0YXRlLFxuICBzYXZlUGF0Y2hBcHBsaWNhdGlvblN0YXRlLFxuICB2ZXJpZnlBcHBsaWVkUGF0Y2hlcyxcbn0gZnJvbSBcIi4vc3RhdGVGaWxlXCJcblxuZXhwb3J0IGZ1bmN0aW9uIHJlYmFzZSh7XG4gIGFwcFBhdGgsXG4gIHBhdGNoRGlyLFxuICBwYWNrYWdlUGF0aFNwZWNpZmllcixcbiAgdGFyZ2V0UGF0Y2gsXG59OiB7XG4gIGFwcFBhdGg6IHN0cmluZ1xuICBwYXRjaERpcjogc3RyaW5nXG4gIHBhY2thZ2VQYXRoU3BlY2lmaWVyOiBzdHJpbmdcbiAgdGFyZ2V0UGF0Y2g6IHN0cmluZ1xufSk6IHZvaWQge1xuICBjb25zdCBwYXRjaGVzRGlyZWN0b3J5ID0gam9pbihhcHBQYXRoLCBwYXRjaERpcilcbiAgY29uc3QgZ3JvdXBlZFBhdGNoZXMgPSBnZXRHcm91cGVkUGF0Y2hlcyhwYXRjaGVzRGlyZWN0b3J5KVxuXG4gIGlmIChncm91cGVkUGF0Y2hlcy5udW1QYXRjaEZpbGVzID09PSAwKSB7XG4gICAgY29uc29sZS5sb2coY2hhbGsuYmx1ZUJyaWdodChcIk5vIHBhdGNoIGZpbGVzIGZvdW5kXCIpKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9XG5cbiAgY29uc3QgcGFja2FnZVBhdGNoZXMgPVxuICAgIGdyb3VwZWRQYXRjaGVzLnBhdGhTcGVjaWZpZXJUb1BhdGNoRmlsZXNbcGFja2FnZVBhdGhTcGVjaWZpZXJdXG4gIGlmICghcGFja2FnZVBhdGNoZXMpIHtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGNoYWxrLmJsdWVCcmlnaHQoXCJObyBwYXRjaCBmaWxlcyBmb3VuZCBmb3IgcGFja2FnZVwiKSxcbiAgICAgIHBhY2thZ2VQYXRoU3BlY2lmaWVyLFxuICAgIClcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfVxuXG4gIGNvbnN0IHN0YXRlID0gZ2V0UGF0Y2hBcHBsaWNhdGlvblN0YXRlKHBhY2thZ2VQYXRjaGVzWzBdKVxuXG4gIGlmICghc3RhdGUpIHtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGNoYWxrLmJsdWVCcmlnaHQoXCJObyBwYXRjaCBzdGF0ZSBmb3VuZFwiKSxcbiAgICAgIFwiRGlkIHlvdSBmb3JnZXQgdG8gcnVuXCIsXG4gICAgICBjaGFsay5ib2xkKFwicGF0Y2gtcGFja2FnZVwiKSxcbiAgICAgIFwiKHdpdGhvdXQgYXJndW1lbnRzKSBmaXJzdD9cIixcbiAgICApXG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH1cbiAgaWYgKHN0YXRlLmlzUmViYXNpbmcpIHtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGNoYWxrLmJsdWVCcmlnaHQoXCJBbHJlYWR5IHJlYmFzaW5nXCIpLFxuICAgICAgXCJNYWtlIGNoYW5nZXMgdG8gdGhlIGZpbGVzIGluXCIsXG4gICAgICBjaGFsay5ib2xkKHBhY2thZ2VQYXRjaGVzWzBdLnBhdGgpLFxuICAgICAgXCJhbmQgdGhlbiBydW4gYHBhdGNoLXBhY2thZ2VcIixcbiAgICAgIHBhY2thZ2VQYXRoU3BlY2lmaWVyLFxuICAgICAgXCItLWNvbnRpbnVlYCB0b1wiLFxuICAgICAgcGFja2FnZVBhdGNoZXMubGVuZ3RoID09PSBzdGF0ZS5wYXRjaGVzLmxlbmd0aFxuICAgICAgICA/IFwiYXBwZW5kIGEgcGF0Y2ggZmlsZVwiXG4gICAgICAgIDogYHVwZGF0ZSB0aGUgJHtcbiAgICAgICAgICAgIHBhY2thZ2VQYXRjaGVzW3BhY2thZ2VQYXRjaGVzLmxlbmd0aCAtIDFdLnBhdGNoRmlsZW5hbWVcbiAgICAgICAgICB9IGZpbGVgLFxuICAgIClcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGDwn5KhIFRvIHJlbW92ZSBhIGJyb2tlbiBwYXRjaCBmaWxlLCBkZWxldGUgaXQgYW5kIHJlaW5zdGFsbCBub2RlX21vZHVsZXNgLFxuICAgIClcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfVxuICBpZiAoc3RhdGUucGF0Y2hlcy5sZW5ndGggIT09IHBhY2thZ2VQYXRjaGVzLmxlbmd0aCkge1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgY2hhbGsuYmx1ZUJyaWdodChcIlNvbWUgcGF0Y2hlcyBoYXZlIG5vdCBiZWVuIGFwcGxpZWQuXCIpLFxuICAgICAgXCJSZWluc3RhbGwgbm9kZV9tb2R1bGVzIGFuZCB0cnkgYWdhaW4uXCIsXG4gICAgKVxuICB9XG4gIC8vIGNoZWNrIGhhc2hlc1xuICB2ZXJpZnlBcHBsaWVkUGF0Y2hlcyh7IGFwcFBhdGgsIHBhdGNoRGlyLCBzdGF0ZSB9KVxuXG4gIGlmICh0YXJnZXRQYXRjaCA9PT0gXCIwXCIpIHtcbiAgICAvLyB1bmFwcGx5IGFsbFxuICAgIHVuQXBwbHlQYXRjaGVzKHtcbiAgICAgIHBhdGNoZXM6IHBhY2thZ2VQYXRjaGVzLFxuICAgICAgYXBwUGF0aCxcbiAgICAgIHBhdGNoRGlyLFxuICAgIH0pXG4gICAgc2F2ZVBhdGNoQXBwbGljYXRpb25TdGF0ZSh7XG4gICAgICBwYWNrYWdlRGV0YWlsczogcGFja2FnZVBhdGNoZXNbMF0sXG4gICAgICBpc1JlYmFzaW5nOiB0cnVlLFxuICAgICAgcGF0Y2hlczogW10sXG4gICAgfSlcbiAgICBjb25zb2xlLmxvZyhgXG5NYWtlIGFueSBjaGFuZ2VzIHlvdSBuZWVkIGluc2lkZSAke2NoYWxrLmJvbGQocGFja2FnZVBhdGNoZXNbMF0ucGF0aCl9XG5cbldoZW4geW91IGFyZSBkb25lLCBydW5cblxuICAke2NoYWxrLmJvbGQoXG4gICAgYHBhdGNoLXBhY2thZ2UgJHtwYWNrYWdlUGF0aFNwZWNpZmllcn0gLS1hcHBlbmQgJ015Q2hhbmdlRGVzY3JpcHRpb24nYCxcbiAgKX1cbiAgXG50byBpbnNlcnQgYSBuZXcgcGF0Y2ggZmlsZS5cbmApXG4gICAgcmV0dXJuXG4gIH1cblxuICAvLyBmaW5kIHRhcmdldCBwYXRjaFxuICBjb25zdCB0YXJnZXQgPSBwYWNrYWdlUGF0Y2hlcy5maW5kKChwKSA9PiB7XG4gICAgaWYgKHAucGF0Y2hGaWxlbmFtZSA9PT0gdGFyZ2V0UGF0Y2gpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIGlmIChcbiAgICAgIHJlc29sdmUocHJvY2Vzcy5jd2QoKSwgdGFyZ2V0UGF0Y2gpID09PVxuICAgICAgam9pbihwYXRjaGVzRGlyZWN0b3J5LCBwLnBhdGNoRmlsZW5hbWUpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmICh0YXJnZXRQYXRjaCA9PT0gcC5zZXF1ZW5jZU5hbWUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIGNvbnN0IG4gPSBOdW1iZXIodGFyZ2V0UGF0Y2gucmVwbGFjZSgvXjArL2csIFwiXCIpKVxuICAgIGlmICghaXNOYU4obikgJiYgbiA9PT0gcC5zZXF1ZW5jZU51bWJlcikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH0pXG5cbiAgaWYgKCF0YXJnZXQpIHtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGNoYWxrLnJlZChcIkNvdWxkIG5vdCBmaW5kIHRhcmdldCBwYXRjaCBmaWxlXCIpLFxuICAgICAgY2hhbGsuYm9sZCh0YXJnZXRQYXRjaCksXG4gICAgKVxuICAgIGNvbnNvbGUubG9nKClcbiAgICBjb25zb2xlLmxvZyhcIlRoZSBsaXN0IG9mIGF2YWlsYWJsZSBwYXRjaCBmaWxlcyBpczpcIilcbiAgICBwYWNrYWdlUGF0Y2hlcy5mb3JFYWNoKChwKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhgICAtICR7cC5wYXRjaEZpbGVuYW1lfWApXG4gICAgfSlcblxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9XG4gIGNvbnN0IGN1cnJlbnRIYXNoID0gaGFzaEZpbGUoam9pbihwYXRjaGVzRGlyZWN0b3J5LCB0YXJnZXQucGF0Y2hGaWxlbmFtZSkpXG5cbiAgY29uc3QgcHJldkFwcGxpY2F0aW9uID0gc3RhdGUucGF0Y2hlcy5maW5kKFxuICAgIChwKSA9PiBwLnBhdGNoQ29udGVudEhhc2ggPT09IGN1cnJlbnRIYXNoLFxuICApXG4gIGlmICghcHJldkFwcGxpY2F0aW9uKSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBjaGFsay5yZWQoXCJDb3VsZCBub3QgZmluZCBwcmV2aW91cyBhcHBsaWNhdGlvbiBvZiBwYXRjaCBmaWxlXCIpLFxuICAgICAgY2hhbGsuYm9sZCh0YXJnZXQucGF0Y2hGaWxlbmFtZSksXG4gICAgKVxuICAgIGNvbnNvbGUubG9nKClcbiAgICBjb25zb2xlLmxvZyhcIllvdSBzaG91bGQgcmVpbnN0YWxsIG5vZGVfbW9kdWxlcyBhbmQgdHJ5IGFnYWluLlwiKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9XG5cbiAgLy8gb2ssIHdlIGFyZSBnb29kIHRvIHN0YXJ0IHVuZG9pbmcgYWxsIHRoZSBwYXRjaGVzIHRoYXQgd2VyZSBhcHBsaWVkIHVwIHRvIGJ1dCBub3QgaW5jbHVkaW5nIHRoZSB0YXJnZXQgcGF0Y2hcbiAgY29uc3QgdGFyZ2V0SWR4ID0gc3RhdGUucGF0Y2hlcy5pbmRleE9mKHByZXZBcHBsaWNhdGlvbilcblxuICB1bkFwcGx5UGF0Y2hlcyh7XG4gICAgcGF0Y2hlczogcGFja2FnZVBhdGNoZXMuc2xpY2UodGFyZ2V0SWR4ICsgMSksXG4gICAgYXBwUGF0aCxcbiAgICBwYXRjaERpcixcbiAgfSlcbiAgc2F2ZVBhdGNoQXBwbGljYXRpb25TdGF0ZSh7XG4gICAgcGFja2FnZURldGFpbHM6IHBhY2thZ2VQYXRjaGVzWzBdLFxuICAgIGlzUmViYXNpbmc6IHRydWUsXG4gICAgcGF0Y2hlczogcGFja2FnZVBhdGNoZXMuc2xpY2UoMCwgdGFyZ2V0SWR4ICsgMSkubWFwKChwKSA9PiAoe1xuICAgICAgcGF0Y2hGaWxlbmFtZTogcC5wYXRjaEZpbGVuYW1lLFxuICAgICAgcGF0Y2hDb250ZW50SGFzaDogaGFzaEZpbGUoam9pbihwYXRjaGVzRGlyZWN0b3J5LCBwLnBhdGNoRmlsZW5hbWUpKSxcbiAgICAgIGRpZEFwcGx5OiB0cnVlLFxuICAgIH0pKSxcbiAgfSlcblxuICBjb25zb2xlLmxvZyhgXG5NYWtlIGFueSBjaGFuZ2VzIHlvdSBuZWVkIGluc2lkZSAke2NoYWxrLmJvbGQocGFja2FnZVBhdGNoZXNbMF0ucGF0aCl9XG5cbldoZW4geW91IGFyZSBkb25lLCBkbyBvbmUgb2YgdGhlIGZvbGxvd2luZzpcblxuICBUbyB1cGRhdGUgJHtjaGFsay5ib2xkKHBhY2thZ2VQYXRjaGVzW3RhcmdldElkeF0ucGF0Y2hGaWxlbmFtZSl9IHJ1blxuXG4gICAgJHtjaGFsay5ib2xkKGBwYXRjaC1wYWNrYWdlICR7cGFja2FnZVBhdGhTcGVjaWZpZXJ9YCl9XG4gICAgXG4gIFRvIGNyZWF0ZSBhIG5ldyBwYXRjaCBmaWxlIGFmdGVyICR7Y2hhbGsuYm9sZChcbiAgICBwYWNrYWdlUGF0Y2hlc1t0YXJnZXRJZHhdLnBhdGNoRmlsZW5hbWUsXG4gICl9IHJ1blxuICBcbiAgICAke2NoYWxrLmJvbGQoXG4gICAgICBgcGF0Y2gtcGFja2FnZSAke3BhY2thZ2VQYXRoU3BlY2lmaWVyfSAtLWFwcGVuZCAnTXlDaGFuZ2VEZXNjcmlwdGlvbidgLFxuICAgICl9XG5cbiAgYClcbn1cblxuZnVuY3Rpb24gdW5BcHBseVBhdGNoZXMoe1xuICBwYXRjaGVzLFxuICBhcHBQYXRoLFxuICBwYXRjaERpcixcbn06IHtcbiAgcGF0Y2hlczogUGF0Y2hlZFBhY2thZ2VEZXRhaWxzW11cbiAgYXBwUGF0aDogc3RyaW5nXG4gIHBhdGNoRGlyOiBzdHJpbmdcbn0pIHtcbiAgZm9yIChjb25zdCBwYXRjaCBvZiBwYXRjaGVzLnNsaWNlKCkucmV2ZXJzZSgpKSB7XG4gICAgaWYgKFxuICAgICAgIWFwcGx5UGF0Y2goe1xuICAgICAgICBwYXRjaEZpbGVQYXRoOiBqb2luKGFwcFBhdGgsIHBhdGNoRGlyLCBwYXRjaC5wYXRjaEZpbGVuYW1lKSBhcyBzdHJpbmcsXG4gICAgICAgIHJldmVyc2U6IHRydWUsXG4gICAgICAgIHBhdGNoRGV0YWlsczogcGF0Y2gsXG4gICAgICAgIHBhdGNoRGlyLFxuICAgICAgICBjd2Q6IHByb2Nlc3MuY3dkKCksXG4gICAgICAgIGJlc3RFZmZvcnQ6IGZhbHNlLFxuICAgICAgfSlcbiAgICApIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBjaGFsay5yZWQoXCJGYWlsZWQgdG8gdW4tYXBwbHkgcGF0Y2ggZmlsZVwiKSxcbiAgICAgICAgY2hhbGsuYm9sZChwYXRjaC5wYXRjaEZpbGVuYW1lKSxcbiAgICAgICAgXCJUcnkgY29tcGxldGVseSByZWluc3RhbGxpbmcgbm9kZV9tb2R1bGVzLlwiLFxuICAgICAgKVxuICAgICAgcHJvY2Vzcy5leGl0KDEpXG4gICAgfVxuICAgIGNvbnNvbGUubG9nKGNoYWxrLmN5YW4uYm9sZChcIlVuLWFwcGxpZWRcIiksIHBhdGNoLnBhdGNoRmlsZW5hbWUpXG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/dist/resolveRelativeFileDependencies.js b/dist/resolveRelativeFileDependencies.js new file mode 100644 index 00000000..e1067a81 --- /dev/null +++ b/dist/resolveRelativeFileDependencies.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.resolveRelativeFileDependencies = resolveRelativeFileDependencies; +const path_1 = require("./path"); +function transformVersionString(version, appRootPath) { + if (version.startsWith("file:") && version[5] !== "/") { + return "file:" + (0, path_1.resolve)(appRootPath, version.slice(5)); + } + else { + return version; + } +} +function resolveRelativeFileDependencies(appRootPath, resolutions) { + const result = {}; + for (const packageName of Object.keys(resolutions)) { + result[packageName] = transformVersionString(resolutions[packageName], appRootPath); + } + return result; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZVJlbGF0aXZlRmlsZURlcGVuZGVuY2llcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yZXNvbHZlUmVsYXRpdmVGaWxlRGVwZW5kZW5jaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBVUEsMEVBWUM7QUF0QkQsaUNBQWdDO0FBRWhDLFNBQVMsc0JBQXNCLENBQUMsT0FBZSxFQUFFLFdBQW1CO0lBQ2xFLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDdEQsT0FBTyxPQUFPLEdBQUcsSUFBQSxjQUFPLEVBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN6RCxDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0IsK0JBQStCLENBQzdDLFdBQW1CLEVBQ25CLFdBQThDO0lBRTlDLE1BQU0sTUFBTSxHQUFHLEVBQXVDLENBQUE7SUFDdEQsS0FBSyxNQUFNLFdBQVcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDbkQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLHNCQUFzQixDQUMxQyxXQUFXLENBQUMsV0FBVyxDQUFDLEVBQ3hCLFdBQVcsQ0FDWixDQUFBO0lBQ0gsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlc29sdmUgfSBmcm9tIFwiLi9wYXRoXCJcblxuZnVuY3Rpb24gdHJhbnNmb3JtVmVyc2lvblN0cmluZyh2ZXJzaW9uOiBzdHJpbmcsIGFwcFJvb3RQYXRoOiBzdHJpbmcpIHtcbiAgaWYgKHZlcnNpb24uc3RhcnRzV2l0aChcImZpbGU6XCIpICYmIHZlcnNpb25bNV0gIT09IFwiL1wiKSB7XG4gICAgcmV0dXJuIFwiZmlsZTpcIiArIHJlc29sdmUoYXBwUm9vdFBhdGgsIHZlcnNpb24uc2xpY2UoNSkpXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHZlcnNpb25cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVJlbGF0aXZlRmlsZURlcGVuZGVuY2llcyhcbiAgYXBwUm9vdFBhdGg6IHN0cmluZyxcbiAgcmVzb2x1dGlvbnM6IHsgW3BhY2thZ2VOYW1lOiBzdHJpbmddOiBzdHJpbmcgfSxcbikge1xuICBjb25zdCByZXN1bHQgPSB7fSBhcyB7IFtwYWNrYWdlTmFtZTogc3RyaW5nXTogc3RyaW5nIH1cbiAgZm9yIChjb25zdCBwYWNrYWdlTmFtZSBvZiBPYmplY3Qua2V5cyhyZXNvbHV0aW9ucykpIHtcbiAgICByZXN1bHRbcGFja2FnZU5hbWVdID0gdHJhbnNmb3JtVmVyc2lvblN0cmluZyhcbiAgICAgIHJlc29sdXRpb25zW3BhY2thZ2VOYW1lXSxcbiAgICAgIGFwcFJvb3RQYXRoLFxuICAgIClcbiAgfVxuICByZXR1cm4gcmVzdWx0XG59XG4iXX0= \ No newline at end of file diff --git a/dist/resolveRelativeFileDependencies.test.js b/dist/resolveRelativeFileDependencies.test.js new file mode 100644 index 00000000..8380eb01 --- /dev/null +++ b/dist/resolveRelativeFileDependencies.test.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const resolveRelativeFileDependencies_1 = require("./resolveRelativeFileDependencies"); +describe("resolveRelativeFileDependencies", () => { + it("works for package.json", () => { + const appRootPath = "/foo/bar"; + const resolutions = { + absolute: "file:/not-foo/bar", + relative: "file:../baz", + remote: "git+https://blah.com/blah.git", + version: "^434.34.34", + }; + const expected = { + absolute: "file:/not-foo/bar", + relative: "file:/foo/baz", + remote: "git+https://blah.com/blah.git", + version: "^434.34.34", + }; + expect((0, resolveRelativeFileDependencies_1.resolveRelativeFileDependencies)(appRootPath, JSON.parse(JSON.stringify(resolutions)))).toEqual(expected); + }); +}); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZVJlbGF0aXZlRmlsZURlcGVuZGVuY2llcy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Jlc29sdmVSZWxhdGl2ZUZpbGVEZXBlbmRlbmNpZXMudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHVGQUFtRjtBQUVuRixRQUFRLENBQUMsaUNBQWlDLEVBQUUsR0FBRyxFQUFFO0lBQy9DLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLEVBQUU7UUFDaEMsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFBO1FBRTlCLE1BQU0sV0FBVyxHQUFHO1lBQ2xCLFFBQVEsRUFBRSxtQkFBbUI7WUFDN0IsUUFBUSxFQUFFLGFBQWE7WUFDdkIsTUFBTSxFQUFFLCtCQUErQjtZQUN2QyxPQUFPLEVBQUUsWUFBWTtTQUN0QixDQUFBO1FBRUQsTUFBTSxRQUFRLEdBQUc7WUFDZixRQUFRLEVBQUUsbUJBQW1CO1lBQzdCLFFBQVEsRUFBRSxlQUFlO1lBQ3pCLE1BQU0sRUFBRSwrQkFBK0I7WUFDdkMsT0FBTyxFQUFFLFlBQVk7U0FDdEIsQ0FBQTtRQUVELE1BQU0sQ0FDSixJQUFBLGlFQUErQixFQUM3QixXQUFXLEVBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQ3hDLENBQ0YsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDckIsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlc29sdmVSZWxhdGl2ZUZpbGVEZXBlbmRlbmNpZXMgfSBmcm9tIFwiLi9yZXNvbHZlUmVsYXRpdmVGaWxlRGVwZW5kZW5jaWVzXCJcblxuZGVzY3JpYmUoXCJyZXNvbHZlUmVsYXRpdmVGaWxlRGVwZW5kZW5jaWVzXCIsICgpID0+IHtcbiAgaXQoXCJ3b3JrcyBmb3IgcGFja2FnZS5qc29uXCIsICgpID0+IHtcbiAgICBjb25zdCBhcHBSb290UGF0aCA9IFwiL2Zvby9iYXJcIlxuXG4gICAgY29uc3QgcmVzb2x1dGlvbnMgPSB7XG4gICAgICBhYnNvbHV0ZTogXCJmaWxlOi9ub3QtZm9vL2JhclwiLFxuICAgICAgcmVsYXRpdmU6IFwiZmlsZTouLi9iYXpcIixcbiAgICAgIHJlbW90ZTogXCJnaXQraHR0cHM6Ly9ibGFoLmNvbS9ibGFoLmdpdFwiLFxuICAgICAgdmVyc2lvbjogXCJeNDM0LjM0LjM0XCIsXG4gICAgfVxuXG4gICAgY29uc3QgZXhwZWN0ZWQgPSB7XG4gICAgICBhYnNvbHV0ZTogXCJmaWxlOi9ub3QtZm9vL2JhclwiLFxuICAgICAgcmVsYXRpdmU6IFwiZmlsZTovZm9vL2JhelwiLFxuICAgICAgcmVtb3RlOiBcImdpdCtodHRwczovL2JsYWguY29tL2JsYWguZ2l0XCIsXG4gICAgICB2ZXJzaW9uOiBcIl40MzQuMzQuMzRcIixcbiAgICB9XG5cbiAgICBleHBlY3QoXG4gICAgICByZXNvbHZlUmVsYXRpdmVGaWxlRGVwZW5kZW5jaWVzKFxuICAgICAgICBhcHBSb290UGF0aCxcbiAgICAgICAgSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShyZXNvbHV0aW9ucykpLFxuICAgICAgKSxcbiAgICApLnRvRXF1YWwoZXhwZWN0ZWQpXG4gIH0pXG59KVxuIl19 \ No newline at end of file diff --git a/dist/spawnSafe.js b/dist/spawnSafe.js new file mode 100644 index 00000000..42e5e9ff --- /dev/null +++ b/dist/spawnSafe.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.spawnSafeSync = void 0; +const cross_spawn_1 = require("cross-spawn"); +const defaultOptions = { + logStdErrOnError: true, + throwOnError: true, +}; +const spawnSafeSync = (command, args, options) => { + const mergedOptions = Object.assign({}, defaultOptions, options); + const result = (0, cross_spawn_1.sync)(command, args, options); + if (result.error || result.status !== 0) { + if (mergedOptions.logStdErrOnError) { + if (result.stderr) { + console.log(result.stderr.toString()); + } + else if (result.error) { + console.log(result.error); + } + } + if (mergedOptions.throwOnError) { + throw result; + } + } + return result; +}; +exports.spawnSafeSync = spawnSafeSync; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bhd25TYWZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NwYXduU2FmZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBK0M7QUFTL0MsTUFBTSxjQUFjLEdBQXFCO0lBQ3ZDLGdCQUFnQixFQUFFLElBQUk7SUFDdEIsWUFBWSxFQUFFLElBQUk7Q0FDbkIsQ0FBQTtBQUVNLE1BQU0sYUFBYSxHQUFHLENBQzNCLE9BQWUsRUFDZixJQUFlLEVBQ2YsT0FBMEIsRUFDMUIsRUFBRTtJQUNGLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUNoRSxNQUFNLE1BQU0sR0FBRyxJQUFBLGtCQUFTLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUNoRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN4QyxJQUFJLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ25DLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNsQixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtZQUN2QyxDQUFDO2lCQUFNLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUMzQixDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQy9CLE1BQU0sTUFBTSxDQUFBO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMsQ0FBQTtBQXBCWSxRQUFBLGFBQWEsaUJBb0J6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN5bmMgYXMgc3Bhd25TeW5jIH0gZnJvbSBcImNyb3NzLXNwYXduXCJcbmltcG9ydCB7IFNwYXduT3B0aW9ucyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCJcblxuZXhwb3J0IGludGVyZmFjZSBTcGF3blNhZmVPcHRpb25zIGV4dGVuZHMgU3Bhd25PcHRpb25zIHtcbiAgdGhyb3dPbkVycm9yPzogYm9vbGVhblxuICBsb2dTdGRFcnJPbkVycm9yPzogYm9vbGVhblxuICBtYXhCdWZmZXI/OiBudW1iZXJcbn1cblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IFNwYXduU2FmZU9wdGlvbnMgPSB7XG4gIGxvZ1N0ZEVyck9uRXJyb3I6IHRydWUsXG4gIHRocm93T25FcnJvcjogdHJ1ZSxcbn1cblxuZXhwb3J0IGNvbnN0IHNwYXduU2FmZVN5bmMgPSAoXG4gIGNvbW1hbmQ6IHN0cmluZyxcbiAgYXJncz86IHN0cmluZ1tdLFxuICBvcHRpb25zPzogU3Bhd25TYWZlT3B0aW9ucyxcbikgPT4ge1xuICBjb25zdCBtZXJnZWRPcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdE9wdGlvbnMsIG9wdGlvbnMpXG4gIGNvbnN0IHJlc3VsdCA9IHNwYXduU3luYyhjb21tYW5kLCBhcmdzLCBvcHRpb25zKVxuICBpZiAocmVzdWx0LmVycm9yIHx8IHJlc3VsdC5zdGF0dXMgIT09IDApIHtcbiAgICBpZiAobWVyZ2VkT3B0aW9ucy5sb2dTdGRFcnJPbkVycm9yKSB7XG4gICAgICBpZiAocmVzdWx0LnN0ZGVycikge1xuICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHQuc3RkZXJyLnRvU3RyaW5nKCkpXG4gICAgICB9IGVsc2UgaWYgKHJlc3VsdC5lcnJvcikge1xuICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHQuZXJyb3IpXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChtZXJnZWRPcHRpb25zLnRocm93T25FcnJvcikge1xuICAgICAgdGhyb3cgcmVzdWx0XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHRcbn1cbiJdfQ== \ No newline at end of file diff --git a/dist/stateFile.js b/dist/stateFile.js new file mode 100644 index 00000000..66bad331 --- /dev/null +++ b/dist/stateFile.js @@ -0,0 +1,71 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.STATE_FILE_NAME = void 0; +exports.getPatchApplicationState = getPatchApplicationState; +exports.savePatchApplicationState = savePatchApplicationState; +exports.clearPatchApplicationState = clearPatchApplicationState; +exports.verifyAppliedPatches = verifyAppliedPatches; +const fs_1 = require("fs"); +const path_1 = require("path"); +const json_stable_stringify_1 = __importDefault(require("json-stable-stringify")); +const hash_1 = require("./hash"); +const chalk_1 = __importDefault(require("chalk")); +const version = 1; +exports.STATE_FILE_NAME = ".patch-package.json"; +function getPatchApplicationState(packageDetails) { + const fileName = (0, path_1.join)(packageDetails.path, exports.STATE_FILE_NAME); + let state = null; + try { + state = JSON.parse((0, fs_1.readFileSync)(fileName, "utf8")); + } + catch (e) { + // noop + } + if (!state) { + return null; + } + if (state.version !== version) { + console.log(`You upgraded patch-package and need to fully reinstall node_modules to continue.`); + process.exit(1); + } + return state; +} +function savePatchApplicationState({ packageDetails, patches, isRebasing, }) { + const fileName = (0, path_1.join)(packageDetails.path, exports.STATE_FILE_NAME); + const state = { + patches, + version, + isRebasing, + }; + (0, fs_1.writeFileSync)(fileName, (0, json_stable_stringify_1.default)(state, { space: 4 }), "utf8"); +} +function clearPatchApplicationState(packageDetails) { + const fileName = (0, path_1.join)(packageDetails.path, exports.STATE_FILE_NAME); + try { + (0, fs_1.unlinkSync)(fileName); + } + catch (e) { + // noop + } +} +function verifyAppliedPatches({ appPath, patchDir, state, }) { + const patchesDirectory = (0, path_1.join)(appPath, patchDir); + for (const patch of state.patches) { + if (!patch.didApply) { + break; + } + const fullPatchPath = (0, path_1.join)(patchesDirectory, patch.patchFilename); + if (!(0, fs_1.existsSync)(fullPatchPath)) { + console.log(chalk_1.default.blueBright("Expected patch file"), fullPatchPath, "to exist but it is missing. Try removing and reinstalling node_modules first."); + process.exit(1); + } + if (patch.patchContentHash !== (0, hash_1.hashFile)(fullPatchPath)) { + console.log(chalk_1.default.blueBright("Patch file"), fullPatchPath, "has changed since it was applied. Try removing and reinstalling node_modules first."); + process.exit(1); + } + } +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGVGaWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3N0YXRlRmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFxQkEsNERBcUJDO0FBRUQsOERBa0JDO0FBRUQsZ0VBUUM7QUFFRCxvREFnQ0M7QUExR0QsMkJBQXdFO0FBQ3hFLCtCQUEyQjtBQUUzQixrRkFBNkM7QUFDN0MsaUNBQWlDO0FBQ2pDLGtEQUF5QjtBQU96QixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUE7QUFPSixRQUFBLGVBQWUsR0FBRyxxQkFBcUIsQ0FBQTtBQUVwRCxTQUFnQix3QkFBd0IsQ0FDdEMsY0FBOEI7SUFFOUIsTUFBTSxRQUFRLEdBQUcsSUFBQSxXQUFJLEVBQUMsY0FBYyxDQUFDLElBQUksRUFBRSx1QkFBZSxDQUFDLENBQUE7SUFFM0QsSUFBSSxLQUFLLEdBQWlDLElBQUksQ0FBQTtJQUM5QyxJQUFJLENBQUM7UUFDSCxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFBLGlCQUFZLEVBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUE7SUFDcEQsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxPQUFPO0lBQ1QsQ0FBQztJQUNELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUM5QixPQUFPLENBQUMsR0FBRyxDQUNULGtGQUFrRixDQUNuRixDQUFBO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNqQixDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDO0FBRUQsU0FBZ0IseUJBQXlCLENBQUMsRUFDeEMsY0FBYyxFQUNkLE9BQU8sRUFDUCxVQUFVLEdBS1g7SUFDQyxNQUFNLFFBQVEsR0FBRyxJQUFBLFdBQUksRUFBQyxjQUFjLENBQUMsSUFBSSxFQUFFLHVCQUFlLENBQUMsQ0FBQTtJQUUzRCxNQUFNLEtBQUssR0FBMEI7UUFDbkMsT0FBTztRQUNQLE9BQU87UUFDUCxVQUFVO0tBQ1gsQ0FBQTtJQUVELElBQUEsa0JBQWEsRUFBQyxRQUFRLEVBQUUsSUFBQSwrQkFBUyxFQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQ2pFLENBQUM7QUFFRCxTQUFnQiwwQkFBMEIsQ0FBQyxjQUE4QjtJQUN2RSxNQUFNLFFBQVEsR0FBRyxJQUFBLFdBQUksRUFBQyxjQUFjLENBQUMsSUFBSSxFQUFFLHVCQUFlLENBQUMsQ0FBQTtJQUUzRCxJQUFJLENBQUM7UUFDSCxJQUFBLGVBQVUsRUFBQyxRQUFRLENBQUMsQ0FBQTtJQUN0QixDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE9BQU87SUFDVCxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQWdCLG9CQUFvQixDQUFDLEVBQ25DLE9BQU8sRUFDUCxRQUFRLEVBQ1IsS0FBSyxHQUtOO0lBQ0MsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLFdBQUksRUFBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDaEQsS0FBSyxNQUFNLEtBQUssSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwQixNQUFLO1FBQ1AsQ0FBQztRQUNELE1BQU0sYUFBYSxHQUFHLElBQUEsV0FBSSxFQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUNqRSxJQUFJLENBQUMsSUFBQSxlQUFVLEVBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUMvQixPQUFPLENBQUMsR0FBRyxDQUNULGVBQUssQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsRUFDdkMsYUFBYSxFQUNiLCtFQUErRSxDQUNoRixDQUFBO1lBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNqQixDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLEtBQUssSUFBQSxlQUFRLEVBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUN2RCxPQUFPLENBQUMsR0FBRyxDQUNULGVBQUssQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQzlCLGFBQWEsRUFDYixxRkFBcUYsQ0FDdEYsQ0FBQTtZQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDakIsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhpc3RzU3luYywgcmVhZEZpbGVTeW5jLCB1bmxpbmtTeW5jLCB3cml0ZUZpbGVTeW5jIH0gZnJvbSBcImZzXCJcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwicGF0aFwiXG5pbXBvcnQgeyBQYWNrYWdlRGV0YWlscyB9IGZyb20gXCIuL1BhY2thZ2VEZXRhaWxzXCJcbmltcG9ydCBzdHJpbmdpZnkgZnJvbSBcImpzb24tc3RhYmxlLXN0cmluZ2lmeVwiXG5pbXBvcnQgeyBoYXNoRmlsZSB9IGZyb20gXCIuL2hhc2hcIlxuaW1wb3J0IGNoYWxrIGZyb20gXCJjaGFsa1wiXG5leHBvcnQgaW50ZXJmYWNlIFBhdGNoU3RhdGUge1xuICBwYXRjaEZpbGVuYW1lOiBzdHJpbmdcbiAgcGF0Y2hDb250ZW50SGFzaDogc3RyaW5nXG4gIGRpZEFwcGx5OiBib29sZWFuXG59XG5cbmNvbnN0IHZlcnNpb24gPSAxXG5leHBvcnQgaW50ZXJmYWNlIFBhdGNoQXBwbGljYXRpb25TdGF0ZSB7XG4gIHZlcnNpb246IG51bWJlclxuICBwYXRjaGVzOiBQYXRjaFN0YXRlW11cbiAgaXNSZWJhc2luZzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgU1RBVEVfRklMRV9OQU1FID0gXCIucGF0Y2gtcGFja2FnZS5qc29uXCJcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBhdGNoQXBwbGljYXRpb25TdGF0ZShcbiAgcGFja2FnZURldGFpbHM6IFBhY2thZ2VEZXRhaWxzLFxuKTogUGF0Y2hBcHBsaWNhdGlvblN0YXRlIHwgbnVsbCB7XG4gIGNvbnN0IGZpbGVOYW1lID0gam9pbihwYWNrYWdlRGV0YWlscy5wYXRoLCBTVEFURV9GSUxFX05BTUUpXG5cbiAgbGV0IHN0YXRlOiBudWxsIHwgUGF0Y2hBcHBsaWNhdGlvblN0YXRlID0gbnVsbFxuICB0cnkge1xuICAgIHN0YXRlID0gSlNPTi5wYXJzZShyZWFkRmlsZVN5bmMoZmlsZU5hbWUsIFwidXRmOFwiKSlcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIG5vb3BcbiAgfVxuICBpZiAoIXN0YXRlKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBpZiAoc3RhdGUudmVyc2lvbiAhPT0gdmVyc2lvbikge1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgYFlvdSB1cGdyYWRlZCBwYXRjaC1wYWNrYWdlIGFuZCBuZWVkIHRvIGZ1bGx5IHJlaW5zdGFsbCBub2RlX21vZHVsZXMgdG8gY29udGludWUuYCxcbiAgICApXG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH1cbiAgcmV0dXJuIHN0YXRlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYXZlUGF0Y2hBcHBsaWNhdGlvblN0YXRlKHtcbiAgcGFja2FnZURldGFpbHMsXG4gIHBhdGNoZXMsXG4gIGlzUmViYXNpbmcsXG59OiB7XG4gIHBhY2thZ2VEZXRhaWxzOiBQYWNrYWdlRGV0YWlsc1xuICBwYXRjaGVzOiBQYXRjaFN0YXRlW11cbiAgaXNSZWJhc2luZzogYm9vbGVhblxufSkge1xuICBjb25zdCBmaWxlTmFtZSA9IGpvaW4ocGFja2FnZURldGFpbHMucGF0aCwgU1RBVEVfRklMRV9OQU1FKVxuXG4gIGNvbnN0IHN0YXRlOiBQYXRjaEFwcGxpY2F0aW9uU3RhdGUgPSB7XG4gICAgcGF0Y2hlcyxcbiAgICB2ZXJzaW9uLFxuICAgIGlzUmViYXNpbmcsXG4gIH1cblxuICB3cml0ZUZpbGVTeW5jKGZpbGVOYW1lLCBzdHJpbmdpZnkoc3RhdGUsIHsgc3BhY2U6IDQgfSksIFwidXRmOFwiKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJQYXRjaEFwcGxpY2F0aW9uU3RhdGUocGFja2FnZURldGFpbHM6IFBhY2thZ2VEZXRhaWxzKSB7XG4gIGNvbnN0IGZpbGVOYW1lID0gam9pbihwYWNrYWdlRGV0YWlscy5wYXRoLCBTVEFURV9GSUxFX05BTUUpXG5cbiAgdHJ5IHtcbiAgICB1bmxpbmtTeW5jKGZpbGVOYW1lKVxuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gbm9vcFxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlBcHBsaWVkUGF0Y2hlcyh7XG4gIGFwcFBhdGgsXG4gIHBhdGNoRGlyLFxuICBzdGF0ZSxcbn06IHtcbiAgYXBwUGF0aDogc3RyaW5nXG4gIHBhdGNoRGlyOiBzdHJpbmdcbiAgc3RhdGU6IFBhdGNoQXBwbGljYXRpb25TdGF0ZVxufSkge1xuICBjb25zdCBwYXRjaGVzRGlyZWN0b3J5ID0gam9pbihhcHBQYXRoLCBwYXRjaERpcilcbiAgZm9yIChjb25zdCBwYXRjaCBvZiBzdGF0ZS5wYXRjaGVzKSB7XG4gICAgaWYgKCFwYXRjaC5kaWRBcHBseSkge1xuICAgICAgYnJlYWtcbiAgICB9XG4gICAgY29uc3QgZnVsbFBhdGNoUGF0aCA9IGpvaW4ocGF0Y2hlc0RpcmVjdG9yeSwgcGF0Y2gucGF0Y2hGaWxlbmFtZSlcbiAgICBpZiAoIWV4aXN0c1N5bmMoZnVsbFBhdGNoUGF0aCkpIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBjaGFsay5ibHVlQnJpZ2h0KFwiRXhwZWN0ZWQgcGF0Y2ggZmlsZVwiKSxcbiAgICAgICAgZnVsbFBhdGNoUGF0aCxcbiAgICAgICAgXCJ0byBleGlzdCBidXQgaXQgaXMgbWlzc2luZy4gVHJ5IHJlbW92aW5nIGFuZCByZWluc3RhbGxpbmcgbm9kZV9tb2R1bGVzIGZpcnN0LlwiLFxuICAgICAgKVxuICAgICAgcHJvY2Vzcy5leGl0KDEpXG4gICAgfVxuICAgIGlmIChwYXRjaC5wYXRjaENvbnRlbnRIYXNoICE9PSBoYXNoRmlsZShmdWxsUGF0Y2hQYXRoKSkge1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGNoYWxrLmJsdWVCcmlnaHQoXCJQYXRjaCBmaWxlXCIpLFxuICAgICAgICBmdWxsUGF0Y2hQYXRoLFxuICAgICAgICBcImhhcyBjaGFuZ2VkIHNpbmNlIGl0IHdhcyBhcHBsaWVkLiBUcnkgcmVtb3ZpbmcgYW5kIHJlaW5zdGFsbGluZyBub2RlX21vZHVsZXMgZmlyc3QuXCIsXG4gICAgICApXG4gICAgICBwcm9jZXNzLmV4aXQoMSlcbiAgICB9XG4gIH1cbn1cbiJdfQ== \ No newline at end of file