VYPR
Moderate severityNVD Advisory· Published Sep 19, 2023· Updated Sep 25, 2024

CVE-2023-26143

CVE-2023-26143

Description

The blamer npm package before version 1.0.4 is vulnerable to arbitrary argument injection via its blameByFile() API, allowing an attacker to write arbitrary files using git's --output option.

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

The blamer npm package before version 1.0.4 is vulnerable to arbitrary argument injection via its blameByFile() API, allowing an attacker to write arbitrary files using git's --output option.

The blamer library, which provides Git blame functionality, is vulnerable to arbitrary argument injection in versions prior to 1.0.4. The blameByFile() API does not sanitize user-supplied file paths nor does it use the POSIX double-dash (--) to signal the end of command options when invoking the Git binary. This allows an attacker to inject arbitrary Git command-line arguments [1][3].

An attacker can exploit this by providing a malicious file path that includes Git arguments, such as --output=/tmp/arbitrary, as input to blameByFile(). Because the library passes the path directly to git blame without proper separation, the injected arguments are interpreted by Git. The proof-of-concept demonstrates that providing --output=/tmp/r2d2 results in the creation of an arbitrary file on the filesystem [3][4].

Successful exploitation enables an attacker to write arbitrary content to any file on the system, potentially leading to code execution, data corruption, or other severe impacts. No authentication is required beyond the ability to supply a crafted path to the vulnerable function [1][4].

A fix was released in blamer version 1.0.4, which includes a check that the provided file path exists before proceeding (using existsSync) and likely introduces proper argument sanitization [2][4]. Users should upgrade to version 1.0.4 or later to remediate this vulnerability.

AI Insight generated on May 20, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
blamernpm
< 1.0.41.0.4

Affected products

2

Patches

1
0965877f1157

fix(vulnerability): https://gist.github.com/lirantal/14c3686370a86461f555d3f0703e02f9

https://github.com/kucherenko/blamerAndrey KucherenkoSep 17, 2023via ghsa
4 files changed · +311 103
  • package.json+2 1 modified
    @@ -21,7 +21,7 @@
         "cov": "run-s build test:unit cov:html && open-cli coverage/index.html",
         "cov:html": "nyc report --reporter=lcov",
         "cov:send": "nyc report --reporter=lcov && codecov",
    -    "cov:check": "nyc report && nyc check-coverage --lines 100 --functions 100 --branches 100",
    +    "cov:check": "nyc report && nyc check-coverage --lines 90 --functions 100 --branches 80",
         "version": "standard-version",
         "reset": "git clean -dfx && git reset --hard && npm i",
         "clean": "trash build test",
    @@ -48,6 +48,7 @@
       "devDependencies": {
         "@bitjson/npm-scripts-info": "^1.0.0",
         "@istanbuljs/nyc-config-typescript": "^0.1.3",
    +    "@types/node": "^20.6.2",
         "@types/sinon": "^7.5.2",
         "@types/which": "^1.3.2",
         "ava": "^3.5.0",
    
  • src/vcs/git.spec.ts+2 1 modified
    @@ -14,7 +14,8 @@ const stubExeca = {
     const stubWhich = sinon.stub().returns(pathToGit);
     const { git } = proxyquire('./git', {
       execa: stubExeca,
    -  which: stubWhich
    +  which: stubWhich,
    +  'node:fs': {existsSync: sinon.stub().returns(true)}
     });
     
     test('should parse git blame command output', async (t: ExecutionContext) => {
    
  • src/vcs/git.ts+6 0 modified
    @@ -1,6 +1,7 @@
     import execa from 'execa';
     import which from 'which';
     import { BlamedLine, BlameResult } from '../blame-result.interface';
    +import { existsSync } from 'node:fs';
     
     const convertStringToObject = (sourceLine: string): BlamedLine => {
       const matches = sourceLine.match(
    @@ -20,6 +21,11 @@ const convertStringToObject = (sourceLine: string): BlamedLine => {
     export async function git(path: string): Promise<BlameResult> {
       const blamedLines: { [line: string]: BlamedLine } = {};
       const pathToGit: string = await which('git');
    +
    +  if (!existsSync(path)) {
    +    throw new Error(`File ${path} does not exist`);
    +  }
    +
       const result = execa.sync(pathToGit, ['blame', '-w', path]);
       result.stdout.split('\n').forEach(line => {
         if (line !== '') {
    
  • yarn.lock+301 101 modified
    @@ -105,6 +105,13 @@
       dependencies:
         arrify "^1.0.1"
     
    +"@cspotcode/source-map-support@^0.8.0":
    +  version "0.8.1"
    +  resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz"
    +  integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==
    +  dependencies:
    +    "@jridgewell/trace-mapping" "0.3.9"
    +
     "@hutson/parse-repository-url@^3.0.0":
       version "3.0.2"
       resolved "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz"
    @@ -115,6 +122,24 @@
       resolved "https://registry.npmjs.org/@istanbuljs/nyc-config-typescript/-/nyc-config-typescript-0.1.3.tgz"
       integrity sha512-EzRFg92bRSD1W/zeuNkeGwph0nkWf+pP2l/lYW4/5hav7RjKKBN5kV1Ix7Tvi0CMu3pC4Wi/U7rNisiJMR3ORg==
     
    +"@jridgewell/resolve-uri@^3.0.3":
    +  version "3.1.1"
    +  resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz"
    +  integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
    +
    +"@jridgewell/sourcemap-codec@^1.4.10":
    +  version "1.4.15"
    +  resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz"
    +  integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
    +
    +"@jridgewell/trace-mapping@0.3.9":
    +  version "0.3.9"
    +  resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz"
    +  integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==
    +  dependencies:
    +    "@jridgewell/resolve-uri" "^3.0.3"
    +    "@jridgewell/sourcemap-codec" "^1.4.10"
    +
     "@nodelib/fs.scandir@2.1.3":
       version "2.1.3"
       resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz"
    @@ -123,7 +148,7 @@
         "@nodelib/fs.stat" "2.0.3"
         run-parallel "^1.1.9"
     
    -"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2":
    +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.3":
       version "2.0.3"
       resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz"
       integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==
    @@ -198,11 +223,36 @@
       resolved "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz"
       integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==
     
    +"@tsconfig/node10@^1.0.7":
    +  version "1.0.9"
    +  resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz"
    +  integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==
    +
    +"@tsconfig/node12@^1.0.7":
    +  version "1.0.11"
    +  resolved "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz"
    +  integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==
    +
    +"@tsconfig/node14@^1.0.0":
    +  version "1.0.3"
    +  resolved "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz"
    +  integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==
    +
    +"@tsconfig/node16@^1.0.2":
    +  version "1.0.4"
    +  resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz"
    +  integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==
    +
     "@types/minimist@^1.2.0":
       version "1.2.2"
       resolved "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz"
       integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==
     
    +"@types/node@*", "@types/node@^20.6.2":
    +  version "20.6.2"
    +  resolved "https://registry.npmjs.org/@types/node/-/node-20.6.2.tgz"
    +  integrity sha512-Y+/1vGBHV/cYk6OI1Na/LHzwnlNCAfU3ZNGrc1LdRe/LAIbdDPTTv/HU3M7yXN448aTVDq3eKRm2cg7iKLb8gw==
    +
     "@types/normalize-package-data@^2.4.0":
       version "2.4.1"
       resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz"
    @@ -218,20 +268,12 @@
       resolved "https://registry.npmjs.org/@types/which/-/which-1.3.2.tgz"
       integrity sha512-8oDqyLC7eD4HM307boe2QWKyuzdzWBj56xI/imSl2cpL+U3tCMaTAkMJ4ee5JBZ/FsOJlvRGeIShiZDAl1qERA==
     
    -JSONStream@^1.0.4:
    -  version "1.3.5"
    -  resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz"
    -  integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==
    -  dependencies:
    -    jsonparse "^1.2.0"
    -    through ">=2.2.7 <3"
    -
    -acorn-walk@^8.0.0:
    +acorn-walk@^8.0.0, acorn-walk@^8.1.1:
       version "8.2.0"
       resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz"
       integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
     
    -acorn@^8.0.4:
    +acorn@^8.0.4, acorn@^8.4.1:
       version "8.8.2"
       resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz"
       integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==
    @@ -273,14 +315,28 @@ ansi-regex@^5.0.1:
       resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
       integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
     
    -ansi-styles@^3.2.0, ansi-styles@^3.2.1:
    +ansi-styles@^3.2.0:
    +  version "3.2.1"
    +  resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
    +  integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
    +  dependencies:
    +    color-convert "^1.9.0"
    +
    +ansi-styles@^3.2.1:
       version "3.2.1"
       resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
       integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
       dependencies:
         color-convert "^1.9.0"
     
    -ansi-styles@^4.0.0, ansi-styles@^4.1.0:
    +ansi-styles@^4.0.0:
    +  version "4.3.0"
    +  resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
    +  integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
    +  dependencies:
    +    color-convert "^2.0.1"
    +
    +ansi-styles@^4.1.0:
       version "4.3.0"
       resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
       integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
    @@ -312,6 +368,11 @@ archy@^1.0.0:
       resolved "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz"
       integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==
     
    +arg@^4.1.0:
    +  version "4.1.3"
    +  resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz"
    +  integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
    +
     argparse@^1.0.7:
       version "1.0.10"
       resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz"
    @@ -759,16 +820,16 @@ color-convert@^2.0.1:
       dependencies:
         color-name "~1.1.4"
     
    -color-name@1.1.3:
    -  version "1.1.3"
    -  resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
    -  integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
    -
     color-name@~1.1.4:
       version "1.1.4"
       resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
       integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
     
    +color-name@1.1.3:
    +  version "1.1.3"
    +  resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
    +  integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
    +
     commander@^2.18.0:
       version "2.20.3"
       resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz"
    @@ -868,7 +929,7 @@ conventional-changelog-config-spec@2.1.0:
       resolved "https://registry.npmjs.org/conventional-changelog-config-spec/-/conventional-changelog-config-spec-2.1.0.tgz"
       integrity sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ==
     
    -conventional-changelog-conventionalcommits@4.3.0, conventional-changelog-conventionalcommits@^4.3.0:
    +conventional-changelog-conventionalcommits@^4.3.0, conventional-changelog-conventionalcommits@4.3.0:
       version "4.3.0"
       resolved "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.3.0.tgz"
       integrity sha512-oYHydvZKU+bS8LnGqTMlNrrd7769EsuEHKy4fh1oMdvvDi7fem8U+nvfresJ1IDB8K00Mn4LpiA/lR+7Gs6rgg==
    @@ -988,8 +1049,8 @@ conventional-commits-parser@^3.1.0, conventional-commits-parser@^3.2.0:
       resolved "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz"
       integrity sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==
       dependencies:
    -    JSONStream "^1.0.4"
         is-text-path "^1.0.1"
    +    JSONStream "^1.0.4"
         lodash "^4.17.15"
         meow "^8.0.0"
         split2 "^3.0.0"
    @@ -1035,6 +1096,11 @@ cp-file@^6.1.0, cp-file@^6.2.0:
         pify "^4.0.1"
         safe-buffer "^5.0.1"
     
    +create-require@^1.1.0:
    +  version "1.1.1"
    +  resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz"
    +  integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
    +
     cross-spawn-async@^2.1.1:
       version "2.2.5"
       resolved "https://registry.npmjs.org/cross-spawn-async/-/cross-spawn-async-2.2.5.tgz"
    @@ -1118,7 +1184,7 @@ dateformat@^3.0.0:
       resolved "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz"
       integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==
     
    -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1:
    +debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@4:
       version "4.3.4"
       resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
       integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
    @@ -1201,7 +1267,7 @@ detect-newline@^3.1.0:
       resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz"
       integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==
     
    -diff@^4.0.2:
    +diff@^4.0.1, diff@^4.0.2:
       version "4.0.2"
       resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz"
       integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
    @@ -1520,7 +1586,15 @@ find-up@^3.0.0:
       dependencies:
         locate-path "^3.0.0"
     
    -find-up@^4.0.0, find-up@^4.1.0:
    +find-up@^4.0.0:
    +  version "4.1.0"
    +  resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz"
    +  integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
    +  dependencies:
    +    locate-path "^5.0.0"
    +    path-exists "^4.0.0"
    +
    +find-up@^4.1.0:
       version "4.1.0"
       resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz"
       integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
    @@ -1657,17 +1731,6 @@ gh-pages@^2.0.1:
         fs-extra "^8.1.0"
         globby "^6.1.0"
     
    -git-raw-commits@2.0.0:
    -  version "2.0.0"
    -  resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz"
    -  integrity sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg==
    -  dependencies:
    -    dargs "^4.0.1"
    -    lodash.template "^4.0.2"
    -    meow "^4.0.0"
    -    split2 "^2.0.0"
    -    through2 "^2.0.0"
    -
     git-raw-commits@^2.0.8:
       version "2.0.11"
       resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz"
    @@ -1679,6 +1742,17 @@ git-raw-commits@^2.0.8:
         split2 "^3.0.0"
         through2 "^4.0.0"
     
    +git-raw-commits@2.0.0:
    +  version "2.0.0"
    +  resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz"
    +  integrity sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg==
    +  dependencies:
    +    dargs "^4.0.1"
    +    lodash.template "^4.0.2"
    +    meow "^4.0.0"
    +    split2 "^2.0.0"
    +    through2 "^2.0.0"
    +
     git-remote-origin-url@^2.0.0:
       version "2.0.0"
       resolved "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz"
    @@ -1884,7 +1958,14 @@ hosted-git-info@^2.1.4:
       resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz"
       integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
     
    -hosted-git-info@^4.0.0, hosted-git-info@^4.0.1:
    +hosted-git-info@^4.0.0:
    +  version "4.1.0"
    +  resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz"
    +  integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==
    +  dependencies:
    +    lru-cache "^6.0.0"
    +
    +hosted-git-info@^4.0.1:
       version "4.1.0"
       resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz"
       integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==
    @@ -2001,21 +2082,21 @@ inflight@^1.0.4:
         once "^1.3.0"
         wrappy "1"
     
    -inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3:
    +inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@2:
       version "2.0.4"
       resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
       integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
     
    -ini@2.0.0:
    -  version "2.0.0"
    -  resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz"
    -  integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==
    -
     ini@^1.3.2, ini@~1.3.0:
       version "1.3.8"
       resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz"
       integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
     
    +ini@2.0.0:
    +  version "2.0.0"
    +  resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz"
    +  integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==
    +
     internal-slot@^1.0.5:
       version "1.0.5"
       resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz"
    @@ -2288,16 +2369,16 @@ is-yarn-global@^0.3.0:
       resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz"
       integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==
     
    -isarray@0.0.1:
    -  version "0.0.1"
    -  resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
    -  integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==
    -
     isarray@~1.0.0:
       version "1.0.0"
       resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
       integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
     
    +isarray@0.0.1:
    +  version "0.0.1"
    +  resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
    +  integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==
    +
     isexe@^2.0.0:
       version "2.0.0"
       resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
    @@ -2365,7 +2446,7 @@ js-tokens@^4.0.0:
       resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
       integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
     
    -js-yaml@3.14.1, js-yaml@^3.13.1, js-yaml@^3.14.0:
    +js-yaml@^3.13.1, js-yaml@^3.14.0, js-yaml@3.14.1:
       version "3.14.1"
       resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz"
       integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
    @@ -2410,6 +2491,14 @@ jsonparse@^1.2.0:
       resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz"
       integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==
     
    +JSONStream@^1.0.4:
    +  version "1.3.5"
    +  resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz"
    +  integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==
    +  dependencies:
    +    jsonparse "^1.2.0"
    +    through ">=2.2.7 <3"
    +
     just-extend@^4.0.2:
       version "4.2.1"
       resolved "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz"
    @@ -2570,7 +2659,15 @@ lowercase-keys@^2.0.0:
       resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz"
       integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==
     
    -lru-cache@^4.0.0, lru-cache@^4.0.1:
    +lru-cache@^4.0.0:
    +  version "4.1.5"
    +  resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz"
    +  integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
    +  dependencies:
    +    pseudomap "^1.0.2"
    +    yallist "^2.1.2"
    +
    +lru-cache@^4.0.1:
       version "4.1.5"
       resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz"
       integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
    @@ -2600,6 +2697,11 @@ make-dir@^3.0.0:
       dependencies:
         semver "^6.0.0"
     
    +make-error@^1.1.1:
    +  version "1.3.6"
    +  resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz"
    +  integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
    +
     map-age-cleaner@^0.1.3:
       version "0.1.3"
       resolved "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz"
    @@ -2786,6 +2888,14 @@ minimatch@^3.0.4, minimatch@^3.1.1:
       dependencies:
         brace-expansion "^1.1.7"
     
    +minimist-options@^3.0.1:
    +  version "3.0.2"
    +  resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz"
    +  integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==
    +  dependencies:
    +    arrify "^1.0.1"
    +    is-plain-obj "^1.1.0"
    +
     minimist-options@4.1.0:
       version "4.1.0"
       resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz"
    @@ -2795,14 +2905,6 @@ minimist-options@4.1.0:
         is-plain-obj "^1.1.0"
         kind-of "^6.0.3"
     
    -minimist-options@^3.0.1:
    -  version "3.0.2"
    -  resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz"
    -  integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==
    -  dependencies:
    -    arrify "^1.0.1"
    -    is-plain-obj "^1.1.0"
    -
     minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6:
       version "1.2.8"
       resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz"
    @@ -2843,16 +2945,16 @@ move-file@^1.1.0:
         make-dir "^3.0.0"
         path-exists "^3.0.0"
     
    -ms@2.1.2:
    -  version "2.1.2"
    -  resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
    -  integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
    -
     ms@^2.1.3:
       version "2.1.3"
       resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
       integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
     
    +ms@2.1.2:
    +  version "2.1.2"
    +  resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
    +  integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
    +
     neo-async@^2.6.0:
       version "2.6.2"
       resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz"
    @@ -3291,7 +3393,17 @@ pidtree@^0.3.0:
       resolved "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz"
       integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==
     
    -pify@^2.0.0, pify@^2.2.0, pify@^2.3.0:
    +pify@^2.0.0:
    +  version "2.3.0"
    +  resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
    +  integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
    +
    +pify@^2.2.0:
    +  version "2.3.0"
    +  resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
    +  integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
    +
    +pify@^2.3.0:
       version "2.3.0"
       resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
       integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
    @@ -3436,7 +3548,7 @@ quick-lru@^4.0.1:
       resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz"
       integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==
     
    -rc@1.2.8, rc@^1.2.8:
    +rc@^1.2.8, rc@1.2.8:
       version "1.2.8"
       resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz"
       integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
    @@ -3507,7 +3619,7 @@ read-pkg@^5.2.0:
         parse-json "^5.0.0"
         type-fest "^0.6.0"
     
    -readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.4.0:
    +readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.4.0, readable-stream@3:
       version "3.6.2"
       resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz"
       integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
    @@ -3658,7 +3770,14 @@ right-pad@^1.0.1:
       resolved "https://registry.npmjs.org/right-pad/-/right-pad-1.0.1.tgz"
       integrity sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==
     
    -rimraf@^2.6.2, rimraf@^2.6.3:
    +rimraf@^2.6.2:
    +  version "2.7.1"
    +  resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz"
    +  integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
    +  dependencies:
    +    glob "^7.1.3"
    +
    +rimraf@^2.6.3:
       version "2.7.1"
       resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz"
       integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
    @@ -3705,12 +3824,27 @@ semver-diff@^3.1.1:
       dependencies:
         semver "^6.3.0"
     
    -"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0:
    +semver@^5.5.0:
       version "5.7.1"
       resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"
       integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
     
    -semver@^6.0.0, semver@^6.2.0, semver@^6.3.0:
    +semver@^5.6.0:
    +  version "5.7.1"
    +  resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"
    +  integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
    +
    +semver@^6.0.0:
    +  version "6.3.0"
    +  resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz"
    +  integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
    +
    +semver@^6.2.0:
    +  version "6.3.0"
    +  resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz"
    +  integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
    +
    +semver@^6.3.0:
       version "6.3.0"
       resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz"
       integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
    @@ -3722,6 +3856,11 @@ semver@^7.1.1, semver@^7.3.2, semver@^7.3.4:
       dependencies:
         lru-cache "^6.0.0"
     
    +"semver@2 || 3 || 4 || 5":
    +  version "5.7.1"
    +  resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"
    +  integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
    +
     serialize-error@^7.0.1:
       version "7.0.1"
       resolved "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz"
    @@ -3815,7 +3954,7 @@ sort-keys@^1.0.0:
       dependencies:
         is-plain-obj "^1.0.0"
     
    -source-map-support@^0.5.19:
    +source-map-support@*, source-map-support@^0.5.19:
       version "0.5.21"
       resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz"
       integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
    @@ -3828,7 +3967,12 @@ source-map@^0.5.0:
       resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
       integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==
     
    -source-map@^0.6.0, source-map@^0.6.1:
    +source-map@^0.6.0:
    +  version "0.6.1"
    +  resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
    +  integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
    +
    +source-map@^0.6.1:
       version "0.6.1"
       resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
       integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
    @@ -3871,6 +4015,13 @@ spdx-license-ids@^3.0.0:
       resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz"
       integrity sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==
     
    +split@^1.0.0:
    +  version "1.0.1"
    +  resolved "https://registry.npmjs.org/split/-/split-1.0.1.tgz"
    +  integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==
    +  dependencies:
    +    through "2"
    +
     split2@^2.0.0:
       version "2.2.0"
       resolved "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz"
    @@ -3885,13 +4036,6 @@ split2@^3.0.0:
       dependencies:
         readable-stream "^3.0.0"
     
    -split@^1.0.0:
    -  version "1.0.1"
    -  resolved "https://registry.npmjs.org/split/-/split-1.0.1.tgz"
    -  integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==
    -  dependencies:
    -    through "2"
    -
     sprintf-js@~1.0.2:
       version "1.0.3"
       resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"
    @@ -3937,6 +4081,20 @@ strict-uri-encode@^1.0.0:
       resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz"
       integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==
     
    +string_decoder@^1.1.1:
    +  version "1.3.0"
    +  resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz"
    +  integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
    +  dependencies:
    +    safe-buffer "~5.2.0"
    +
    +string_decoder@~1.1.1:
    +  version "1.1.1"
    +  resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"
    +  integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
    +  dependencies:
    +    safe-buffer "~5.1.0"
    +
     string-width@^3.0.0, string-width@^3.1.0:
       version "3.1.0"
       resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz"
    @@ -3991,20 +4149,6 @@ string.prototype.trimstart@^1.0.6:
         define-properties "^1.1.4"
         es-abstract "^1.20.4"
     
    -string_decoder@^1.1.1:
    -  version "1.3.0"
    -  resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz"
    -  integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
    -  dependencies:
    -    safe-buffer "~5.2.0"
    -
    -string_decoder@~1.1.1:
    -  version "1.1.1"
    -  resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"
    -  integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
    -  dependencies:
    -    safe-buffer "~5.1.0"
    -
     stringify-package@^1.0.1:
       version "1.0.1"
       resolved "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz"
    @@ -4171,6 +4315,11 @@ text-extensions@^1.0.0:
       resolved "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz"
       integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==
     
    +"through@>=2.2.7 <3", through@2:
    +  version "2.3.8"
    +  resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
    +  integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
    +
     through2@^2.0.0, through2@^2.0.2:
       version "2.0.5"
       resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz"
    @@ -4186,11 +4335,6 @@ through2@^4.0.0:
       dependencies:
         readable-stream "3"
     
    -through@2, "through@>=2.2.7 <3":
    -  version "2.3.8"
    -  resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
    -  integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
    -
     time-zone@^1.0.0:
       version "1.0.0"
       resolved "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz"
    @@ -4268,7 +4412,26 @@ trim-repeated@^1.0.0:
       dependencies:
         escape-string-regexp "^1.0.2"
     
    -type-detect@4.0.8, type-detect@^4.0.8:
    +ts-node@*:
    +  version "10.9.1"
    +  resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz"
    +  integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==
    +  dependencies:
    +    "@cspotcode/source-map-support" "^0.8.0"
    +    "@tsconfig/node10" "^1.0.7"
    +    "@tsconfig/node12" "^1.0.7"
    +    "@tsconfig/node14" "^1.0.0"
    +    "@tsconfig/node16" "^1.0.2"
    +    acorn "^8.4.1"
    +    acorn-walk "^8.1.1"
    +    arg "^4.1.0"
    +    create-require "^1.1.0"
    +    diff "^4.0.1"
    +    make-error "^1.1.1"
    +    v8-compile-cache-lib "^3.0.1"
    +    yn "3.1.1"
    +
    +type-detect@^4.0.8, type-detect@4.0.8:
       version "4.0.8"
       resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz"
       integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
    @@ -4324,7 +4487,7 @@ typedarray@^0.0.6:
       resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"
       integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==
     
    -typescript@^5.0.4:
    +typescript@^5.0.4, typescript@>=2.7:
       version "5.0.4"
       resolved "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz"
       integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==
    @@ -4417,6 +4580,11 @@ uuid@^8.0.0:
       resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz"
       integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
     
    +v8-compile-cache-lib@^3.0.1:
    +  version "3.0.1"
    +  resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz"
    +  integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==
    +
     validate-npm-package-license@^3.0.1:
       version "3.0.4"
       resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz"
    @@ -4478,7 +4646,21 @@ which-typed-array@^1.1.9:
         has-tostringtag "^1.0.0"
         is-typed-array "^1.1.10"
     
    -which@^1.2.8, which@^1.2.9, which@^1.3.0:
    +which@^1.2.8:
    +  version "1.3.1"
    +  resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz"
    +  integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
    +  dependencies:
    +    isexe "^2.0.0"
    +
    +which@^1.2.9:
    +  version "1.3.1"
    +  resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz"
    +  integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
    +  dependencies:
    +    isexe "^2.0.0"
    +
    +which@^1.3.0:
       version "1.3.1"
       resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz"
       integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
    @@ -4501,7 +4683,7 @@ widest-line@^3.1.0:
     
     word-wrap@^1.0.3:
       version "1.2.4"
    -  resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.4.tgz#cb4b50ec9aca570abd1f52f33cd45b6c61739a9f"
    +  resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz"
       integrity sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==
     
     wordwrap@^1.0.0:
    @@ -4623,15 +4805,28 @@ yargs-parser@^13.0.0, yargs-parser@^13.1.2:
         camelcase "^5.0.0"
         decamelize "^1.2.0"
     
    -yargs-parser@^18.1.2, yargs-parser@^18.1.3:
    +yargs-parser@^18.1.2:
    +  version "18.1.3"
    +  resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz"
    +  integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==
    +  dependencies:
    +    camelcase "^5.0.0"
    +    decamelize "^1.2.0"
    +
    +yargs-parser@^18.1.3:
       version "18.1.3"
       resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz"
       integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==
       dependencies:
         camelcase "^5.0.0"
         decamelize "^1.2.0"
     
    -yargs-parser@^20.2.2, yargs-parser@^20.2.3:
    +yargs-parser@^20.2.2:
    +  version "20.2.9"
    +  resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz"
    +  integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
    +
    +yargs-parser@^20.2.3:
       version "20.2.9"
       resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz"
       integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
    @@ -4681,3 +4876,8 @@ yargs@^16.2.0:
         string-width "^4.2.0"
         y18n "^5.0.5"
         yargs-parser "^20.2.2"
    +
    +yn@3.1.1:
    +  version "3.1.1"
    +  resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz"
    +  integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
    

Vulnerability mechanics

Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

5

News mentions

0

No linked articles in our index yet.