feat: pnpm import support yarn2 transform (#3997)

close: #3993
This commit is contained in:
zoomdong
2021-11-24 21:48:45 +08:00
committed by GitHub
parent 69b56f1489
commit 3b4dc17c7b
13 changed files with 722 additions and 45 deletions

View File

@@ -0,0 +1,5 @@
---
"@pnpm/plugin-commands-installation": minor
---
feat: support yarn v2 lockfile transform

1
.github/CODEOWNERS vendored
View File

@@ -1 +1,2 @@
* @zkochan
/packages/plugin-commands-installation/src/import/* @fireairforce

1
fixtures/has-yarn2-lock/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
!yarn.lock

View File

@@ -0,0 +1,14 @@
{
"name": "has-yarn2-lock",
"version": "0.0.0",
"dependencies": {
"minimatch": "^3.0.4",
"rimraf": "2.5.1"
},
"devDependencies": {
"is-positive": "1.0.0"
},
"optionalDependencies": {
"is-negative": "1.0.0"
}
}

View File

@@ -0,0 +1,131 @@
# This file is generated by running "yarn install" inside your project.
# Manual changes might be lost - proceed with caution!
__metadata:
version: 5
cacheKey: 8
"balanced-match@npm:^1.0.0":
version: 1.0.2
resolution: "balanced-match@npm:1.0.2"
checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65
languageName: node
linkType: hard
"brace-expansion@npm:^1.1.7":
version: 1.1.11
resolution: "brace-expansion@npm:1.1.11"
dependencies:
balanced-match: ^1.0.0
concat-map: 0.0.1
checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07
languageName: node
linkType: hard
"concat-map@npm:0.0.1":
version: 0.0.1
resolution: "concat-map@npm:0.0.1"
checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af
languageName: node
linkType: hard
"glob@npm:^6.0.1":
version: 6.0.4
resolution: "glob@npm:6.0.4"
dependencies:
inflight: ^1.0.4
inherits: 2
minimatch: 2 || 3
once: ^1.3.0
path-is-absolute: ^1.0.0
checksum: c4946c3d015ac81f704d185f2b3a55eb670100693c2cf7bc833d0efd970ec727d860d4839a5178e46a7e594b34a34661bae2f4c3405727c9fd189f84954ca3c0
languageName: node
linkType: hard
"has-yarn2-lock@workspace:.":
version: 0.0.0-use.local
resolution: "has-yarn2-lock@workspace:."
dependencies:
is-negative: 1.0.0
is-positive: 1.0.0
minimatch: ^3.0.4
rimraf: 2.5.1
dependenciesMeta:
is-negative:
optional: true
languageName: unknown
linkType: soft
"inflight@npm:^1.0.4":
version: 1.0.6
resolution: "inflight@npm:1.0.6"
dependencies:
once: ^1.3.0
wrappy: 1
checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd
languageName: node
linkType: hard
"inherits@npm:2":
version: 2.0.4
resolution: "inherits@npm:2.0.4"
checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1
languageName: node
linkType: hard
"is-negative@npm:1.0.0":
version: 1.0.0
resolution: "is-negative@npm:1.0.0"
checksum: f95b7f6544a3588b2f6fe60e7128eb4ce5ba1601b903e3fb5106313f440ef5735fe88d51ae0472f6e5847bdbbac5a719952586f71eb166d38c638b2b445e08d2
languageName: node
linkType: hard
"is-positive@npm:1.0.0":
version: 1.0.0
resolution: "is-positive@npm:1.0.0"
checksum: 66bf242370ca03cc89ef1ac680a806e1716cd564001c019570dc90b0af4f288ad2a4e84f2df8f0f6fca207df20b508c9a1e6f0e4b4bbaeed84103ae84d4f0f44
languageName: node
linkType: hard
"minimatch@npm:2 || 3, minimatch@npm:^3.0.4":
version: 3.0.4
resolution: "minimatch@npm:3.0.4"
dependencies:
brace-expansion: ^1.1.7
checksum: 66ac295f8a7b59788000ea3749938b0970344c841750abd96694f80269b926ebcafad3deeb3f1da2522978b119e6ae3a5869b63b13a7859a456b3408bd18a078
languageName: node
linkType: hard
"once@npm:^1.3.0":
version: 1.4.0
resolution: "once@npm:1.4.0"
dependencies:
wrappy: 1
checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68
languageName: node
linkType: hard
"path-is-absolute@npm:^1.0.0":
version: 1.0.1
resolution: "path-is-absolute@npm:1.0.1"
checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8
languageName: node
linkType: hard
"rimraf@npm:2.5.1":
version: 2.5.1
resolution: "rimraf@npm:2.5.1"
dependencies:
glob: ^6.0.1
bin:
rimraf: ./bin.js
checksum: 6184bbf729b08c557d042ae729d9061c5301bc4b01cd2e580f86e6694a5e6bacbcb58db2c58230128341f25cc50d0f2c84232cbed4b709292688b623b647fc09
languageName: node
linkType: hard
"wrappy@npm:1":
version: 1.0.2
resolution: "wrappy@npm:1.0.2"
checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5
languageName: node
linkType: hard

View File

@@ -8,4 +8,5 @@ packages:
- '!has-outdated-deps'
- '!has-package-lock-json'
- '!hello-world-js-bin'
- '!has-yarn-lock'
- '!has-yarn-lock'
- '!has-yarn2-lock'

View File

@@ -86,6 +86,11 @@
"@babel/types": "*"
}
},
"@yarnpkg/core": {
"dependencies": {
"@types/lodash": "^4.14.136"
}
},
"jest-circus": {
"dependencies": {
"slash": "3"

View File

@@ -131,7 +131,7 @@
},
"repository": "https://github.com/pnpm/pnpm/blob/master/packages/core",
"scripts": {
"start": "pnpm run tsc -- --watch",
"start": "pnpm tsc --watch",
"?commit": "echo 'Run Git commit wizard'",
"commit": "commit",
"commitmsg": "commitlint -e",

View File

@@ -12,6 +12,7 @@
"node": ">=12.17"
},
"scripts": {
"start": "pnpm tsc --watch",
"lint": "eslint src/**/*.ts test/**/*.ts",
"registry-mock": "registry-mock",
"test:jest": "jest",
@@ -81,7 +82,9 @@
"@pnpm/sort-packages": "workspace:2.1.3",
"@pnpm/store-connection-manager": "workspace:3.1.10",
"@pnpm/types": "workspace:7.6.0",
"@yarnpkg/core": "^3.2.0-rc.4",
"@yarnpkg/lockfile": "^1.1.0",
"@yarnpkg/parsers": "^2.5.0-rc.3",
"@zkochan/rimraf": "^2.1.1",
"@zkochan/table": "^1.0.0",
"@zkochan/which": "^2.0.3",

View File

@@ -18,8 +18,50 @@ import rimraf from '@zkochan/rimraf'
import loadJsonFile from 'load-json-file'
import renderHelp from 'render-help'
import { parse as parseYarnLock } from '@yarnpkg/lockfile'
import * as yarnCore from '@yarnpkg/core'
import { parseSyml } from '@yarnpkg/parsers'
import exists from 'path-exists'
import recursive from './recursive'
import recursive from '../recursive'
import { yarnLockFileKeyNormalizer } from './yarnUtil'
interface NpmPackageLock {
dependencies: LockedPackagesMap
}
interface LockedPackage {
version: string
dependencies?: LockedPackagesMap
}
interface LockedPackagesMap {
[name: string]: LockedPackage
}
interface YarnLockPackage {
version: string
resolved: string
integrity: string
dependencies?: {
[name: string]: string
}
optionalDependencies?: {
[depName: string]: string
}
}
interface YarnPackgeLock {
[name: string]: YarnLockPackage
}
enum YarnLockType {
yarn = 'yarn',
yarn2 = 'yarn2',
}
// copy from yarn v1
interface YarnLock2Struct {
type: YarnLockType.yarn2
object: YarnPackgeLock
}
export const rcOptionsTypes = cliOptionsTypes
@@ -114,11 +156,20 @@ export async function handler (
async function readYarnLockFile (dir: string) {
try {
const yarnLockFile = await gfs.readFile(path.join(dir, 'yarn.lock'), 'utf8')
const lockJsonFile = await parseYarnLock(yarnLockFile)
if (lockJsonFile.type === 'success') {
return lockJsonFile.object
} else {
throw new PnpmError('GET_YARN_LOCKFILE_ERR', `Failed With ${lockJsonFile.type}`)
let lockJsonFile
const yarnLockFileType = getYarnLockfileType(yarnLockFile)
if (yarnLockFileType === YarnLockType.yarn) {
lockJsonFile = await parseYarnLock(yarnLockFile)
if (lockJsonFile.type === 'success') {
return lockJsonFile.object
} else {
throw new PnpmError('YARN_LOCKFILE_PARSE_FAILED', `Yarn.lock file was ${lockJsonFile.type}`)
}
} else if (yarnLockFileType === YarnLockType.yarn2) {
lockJsonFile = parseYarn2Lock(yarnLockFile)
if (lockJsonFile.type === YarnLockType.yarn2) {
return lockJsonFile.object
}
}
} catch (err: any) { // eslint-disable-line
if (err['code'] !== 'ENOENT') throw err // eslint-disable-line @typescript-eslint/dot-notation
@@ -126,6 +177,34 @@ async function readYarnLockFile (dir: string) {
throw new PnpmError('YARN_LOCKFILE_NOT_FOUND', 'No yarn.lock found')
}
function parseYarn2Lock (lockFileContents: string): YarnLock2Struct {
// eslint-disable-next-line
const parseYarnLock: any = parseSyml(lockFileContents)
delete parseYarnLock.__metadata
const dependencies: YarnPackgeLock = {}
const { structUtils } = yarnCore
const { parseDescriptor, parseRange } = structUtils
const keyNormalizer = yarnLockFileKeyNormalizer(
parseDescriptor,
parseRange
)
Object.entries(parseYarnLock).forEach(
// eslint-disable-next-line
([fullDescriptor, versionData]: [string, any]) => {
keyNormalizer(fullDescriptor).forEach((descriptor) => {
dependencies[descriptor] = versionData
})
}
)
return {
object: dependencies,
type: YarnLockType.yarn2,
}
}
async function readNpmLockfile (dir: string) {
try {
return await loadJsonFile<LockedPackage>(path.join(dir, 'package-lock.json'))
@@ -188,33 +267,16 @@ function getAllVersionsFromYarnLockFile (
}
}
interface NpmPackageLock {
dependencies: LockedPackagesMap
}
interface LockedPackage {
version: string
dependencies?: LockedPackagesMap
}
interface LockedPackagesMap {
[name: string]: LockedPackage
}
interface YarnLockPackage {
version: string
resolved: string
integrity: string
dependencies?: {
[name: string]: string
}
}
interface YarnPackgeLock {
[name: string]: YarnLockPackage
}
function selectProjectByDir (projects: Project[], searchedDir: string) {
const project = projects.find(({ dir }) => path.relative(dir, searchedDir) === '')
if (project == null) return undefined
return { [searchedDir]: { dependencies: [], package: project } }
}
function getYarnLockfileType (
lockFileContents: string
): YarnLockType {
return lockFileContents.includes('__metadata')
? YarnLockType.yarn2
: YarnLockType.yarn
}

View File

@@ -0,0 +1,90 @@
/**
* https://github.com/snyk/nodejs-lockfile-parser/blob/master/lib/parsers/yarn-utils.ts
*/
import { structUtils } from '@yarnpkg/core'
const BUILTIN_PLACEHOLDER = 'builtin'
const MULTIPLE_KEYS_REGEXP = / *, */g
export type ParseDescriptor = typeof structUtils.parseDescriptor
export type ParseRange = typeof structUtils.parseRange
const keyNormalizer = (
parseDescriptor: ParseDescriptor,
parseRange: ParseRange
) => (rawDescriptor: string): string[] => {
// See https://yarnpkg.com/features/protocols
const descriptors: string[] = [rawDescriptor]
const descriptor = parseDescriptor(rawDescriptor)
const name = `${descriptor.scope ? '@' + descriptor.scope + '/' : ''}${
descriptor.name
}`
const range = parseRange(descriptor.range)
const protocol = range.protocol
switch (protocol) {
case 'npm:':
case 'file:':
descriptors.push(`${name}@${range.selector}`)
descriptors.push(`${name}@${protocol}${range.selector}`)
break
case 'git:':
case 'git+ssh:':
case 'git+http:':
case 'git+https:':
case 'github:':
if (range.source) {
descriptors.push(
`${name}@${protocol}${range.source}${
range.selector ? '#' + range.selector : ''
}`
)
} else {
descriptors.push(`${name}@${protocol}${range.selector}`)
}
break
case 'patch:':
if (range.source && range.selector.indexOf(BUILTIN_PLACEHOLDER) === 0) {
descriptors.push(range.source)
} else {
descriptors.push(
// eslint-disable-next-line
`${name}@${protocol}${range.source}${
range.selector ? '#' + range.selector : ''
}`
)
}
break
case null:
case undefined:
if (range.source) {
descriptors.push(`${name}@${range.source}#${range.selector}`)
} else {
descriptors.push(`${name}@${range.selector}`)
}
break
case 'http:':
case 'https:':
case 'link:':
case 'portal:':
case 'exec:':
case 'workspace:':
case 'virtual:':
default:
// For user defined plugins
descriptors.push(`${name}@${protocol}${range.selector}`)
break
}
return descriptors
}
export type YarnLockFileKeyNormalizer = (fullDescriptor: string) => Set<string>
export const yarnLockFileKeyNormalizer = (
parseDescriptor: ParseDescriptor,
parseRange: ParseRange
): YarnLockFileKeyNormalizer => (fullDescriptor: string) => {
const allKeys = fullDescriptor
.split(MULTIPLE_KEYS_REGEXP)
.map(keyNormalizer(parseDescriptor, parseRange))
return new Set<string>(allKeys.flat(5))
}

View File

@@ -85,6 +85,27 @@ test('import from yarn.lock', async () => {
await project.hasNot('pkg-with-1-dep')
})
test('import from yarn2 lock file', async () => {
tempDir()
await ncp(path.join(fixtures, 'has-yarn2-lock'), process.cwd())
await importCommand.handler({
...DEFAULT_OPTS,
dir: process.cwd(),
}, [])
const project = assertProject(process.cwd())
const lockfile = await project.readLockfile()
expect(lockfile.packages).toHaveProperty(['/is-positive/1.0.0'])
expect(lockfile.packages).toHaveProperty(['/is-negative/1.0.0'])
// node_modules is not created
await project.hasNot('balanced-match')
await project.hasNot('brace-expansion')
})
test('import from npm-shrinkwrap.json', async () => {
await addDistTag({ package: 'dep-of-pkg-with-1-dep', version: '100.1.0', distTag: 'latest' })
tempDir()

367
pnpm-lock.yaml generated
View File

@@ -24,7 +24,7 @@ overrides:
validator@<13.7.0: '>=13.7.0'
json-schema@<0.4.0: '>=0.4.0'
packageExtensionsChecksum: fd79935cba6ca59898c8df8f80eb1058
packageExtensionsChecksum: ae99380b640f090c74138482ef1844a1
importers:
@@ -2110,7 +2110,9 @@ importers:
'@types/sinon': ^9.0.11
'@types/yarnpkg__lockfile': ^1.1.5
'@types/zkochan__table': npm:@types/table@6.0.0
'@yarnpkg/core': ^3.2.0-rc.4
'@yarnpkg/lockfile': ^1.1.0
'@yarnpkg/parsers': ^2.5.0-rc.3
'@zkochan/rimraf': ^2.1.1
'@zkochan/table': ^1.0.0
'@zkochan/which': ^2.0.3
@@ -2163,7 +2165,9 @@ importers:
'@pnpm/sort-packages': link:../sort-packages
'@pnpm/store-connection-manager': link:../store-connection-manager
'@pnpm/types': link:../types
'@yarnpkg/core': 3.2.0-rc.5
'@yarnpkg/lockfile': 1.1.0
'@yarnpkg/parsers': 2.5.0-rc.3
'@zkochan/rimraf': 2.1.1
'@zkochan/table': 1.0.0
'@zkochan/which': 2.0.3
@@ -4100,6 +4104,14 @@ packages:
prettier: 1.19.1
dev: true
/@chevrotain/types/9.1.0:
resolution: {integrity: sha512-3hbCD1CThkv9gnaSIPq0GUXwKni68e0ph6jIHwCvcWiQ4JB2xi8bFxBain0RF04qHUWuDjgnZLj4rLgimuGO+g==}
dev: false
/@chevrotain/utils/9.1.0:
resolution: {integrity: sha512-llLJZ8OAlZrjGlBvamm6Zdo/HmGAcCLq5gx7cSwUX8No+n/8ip+oaC4x33IdZIif8+Rh5dQUIZXmfbSghiOmNQ==}
dev: false
/@commitlint/cli/15.0.0:
resolution: {integrity: sha512-Y5xmDCweytqzo4N4lOI2YRiuX35xTjcs8n5hUceBH8eyK0YbwtgWX50BJOH2XbkwEmII9blNhlBog6AdQsqicg==}
engines: {node: '>=v12'}
@@ -4966,6 +4978,11 @@ packages:
write-yaml-file: 4.2.0
dev: true
/@sindresorhus/is/4.2.0:
resolution: {integrity: sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==}
engines: {node: '>=10'}
dev: false
/@sinonjs/commons/1.8.3:
resolution: {integrity: sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==}
dependencies:
@@ -4996,6 +5013,13 @@ packages:
resolution: {integrity: sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==}
dev: true
/@szmarczak/http-timer/4.0.6:
resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==}
engines: {node: '>=10'}
dependencies:
defer-to-connect: 2.0.1
dev: false
/@tootallnate/once/1.1.2:
resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==}
engines: {node: '>= 6'}
@@ -5069,6 +5093,15 @@ packages:
'@types/node': 16.11.9
dev: true
/@types/cacheable-request/6.0.2:
resolution: {integrity: sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==}
dependencies:
'@types/http-cache-semantics': 4.0.1
'@types/keyv': 3.1.3
'@types/node': 16.11.9
'@types/responselike': 1.0.0
dev: false
/@types/concat-stream/1.6.1:
resolution: {integrity: sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==}
dependencies:
@@ -5108,6 +5141,10 @@ packages:
resolution: {integrity: sha512-RURNTeEFUwF+ifnp7kK3WLLlTmBSlRynLNS9jeAsI6RHtSrupV0l0nO6kmpaz75EUJVexy348bR452SvmH98vQ==}
dev: true
/@types/http-cache-semantics/4.0.1:
resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==}
dev: false
/@types/http-proxy-agent/4.0.1:
resolution: {integrity: sha512-2XJTByP9C14Kcq5ClvPRfOgFJxklhuru7xmuSPcNr2CPwRGdpCgIdUUNc0MDb25+bzaSolVN0u4RKH7M+CMimg==}
deprecated: This is a stub types definition. http-proxy-agent provides its own type definitions, so you do not need this installed.
@@ -5175,6 +5212,16 @@ packages:
json5: 2.2.0
dev: true
/@types/keyv/3.1.3:
resolution: {integrity: sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==}
dependencies:
'@types/node': 16.11.9
dev: false
/@types/lodash/4.14.177:
resolution: {integrity: sha512-0fDwydE2clKe9MNfvXHBHF9WEahRuj+msTuQqOmAApNORFvhMYZKNGGJdCzuhheVjMps/ti0Ak/iJPACMaevvw==}
dev: false
/@types/lru-cache/5.1.1:
resolution: {integrity: sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==}
dev: true
@@ -5255,6 +5302,12 @@ packages:
ts-toolbelt: 6.15.5
dev: true
/@types/responselike/1.0.0:
resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==}
dependencies:
'@types/node': 16.11.9
dev: false
/@types/retry/0.12.1:
resolution: {integrity: sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==}
dev: true
@@ -5272,7 +5325,6 @@ packages:
/@types/semver/7.3.9:
resolution: {integrity: sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==}
dev: true
/@types/signal-exit/3.0.1:
resolution: {integrity: sha512-OSitN9PP9E/c4tlt1Qdj3CAz5uHD9Da5rhUqlaKyQRCX1T7Zdpbk6YdeZbR2eiE2ce+NMBgVnMxGqpaPSNQDUQ==}
@@ -5320,6 +5372,10 @@ packages:
'@types/node': 16.11.9
dev: true
/@types/treeify/1.0.0:
resolution: {integrity: sha512-ONpcZAEYlbPx4EtJwfTyCDQJGUpKf4sEcuySdCVjK5Fj/3vHp5HII1fqa1/+qrsLnpYELCQTfVW/awsGJePoIg==}
dev: false
/@types/unist/2.0.6:
resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==}
dev: false
@@ -5565,6 +5621,46 @@ packages:
resolution: {integrity: sha512-xaN1nVxGWSIO4Qmnm3xZwvUf2jOUIt43nAp2IbSiPdozQztCcfU1LHEHiMW2mP036LoUWcHbb3Z6Tj1GHyuQNg==}
dev: true
/@yarnpkg/core/3.2.0-rc.5:
resolution: {integrity: sha512-PLsdsIsV3GvledMPIWwXTBhoX+eXUuHgUoLCG2UFJkpi6cDx6ivFpUdu1X9KeBI6YOqQ7LNGBTE8RVbbvMUo0g==}
engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'}
dependencies:
'@arcanis/slice-ansi': 1.0.2
'@types/lodash': 4.14.177
'@types/semver': 7.3.9
'@types/treeify': 1.0.0
'@yarnpkg/fslib': 2.6.0
'@yarnpkg/json-proxy': 2.1.1
'@yarnpkg/libzip': 2.2.2
'@yarnpkg/parsers': 2.5.0-rc.3
'@yarnpkg/pnp': 3.1.1-rc.5
'@yarnpkg/shell': 3.2.0-rc.3
camelcase: 5.3.1
chalk: 3.0.0
ci-info: 3.2.0
clipanion: 3.1.0
cross-spawn: 7.0.3
diff: 4.0.2
globby: 11.0.4
got: 11.8.3
json-file-plus: 3.3.1
lodash: 4.17.21
micromatch: 4.0.4
mkdirp: 0.5.5
p-limit: 2.3.0
p-queue: 6.6.2
pluralize: 7.0.0
pretty-bytes: 5.6.0
semver: 7.3.5
stream-to-promise: 2.2.0
strip-ansi: 6.0.1
tar: 6.1.11
tinylogic: 1.0.3
treeify: 1.1.0
tslib: 1.14.1
tunnel: 0.0.6
dev: false
/@yarnpkg/fslib/2.6.0:
resolution: {integrity: sha512-NgK7aYYNrFOFJGcWWEDXHHYNt93L3A0Ojv90Xl9+f72T+CaFkOAXyK2XBwEYreot7lT1NeopcnkmFRjHgKRKgQ==}
engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'}
@@ -5573,6 +5669,14 @@ packages:
tslib: 1.14.1
dev: false
/@yarnpkg/json-proxy/2.1.1:
resolution: {integrity: sha512-meUiCAgCYpXTH1qJfqfz+dX013ohW9p2dKfwIzUYAFutH+lsz1eHPBIk72cuCV84adh9gX6j66ekBKH/bIhCQw==}
engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'}
dependencies:
'@yarnpkg/fslib': 2.6.0
tslib: 1.14.1
dev: false
/@yarnpkg/libzip/2.2.2:
resolution: {integrity: sha512-M7ziz16f+tFFnJSCreLtemaGPpjT+NC0E21JQaWXAAlRmFIXz6zl2EZ+tXLxV9yJaplpNDbTgX1j5GPiwg5H5w==}
engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'}
@@ -5593,6 +5697,14 @@ packages:
tslib: 1.14.1
dev: false
/@yarnpkg/parsers/2.5.0-rc.3:
resolution: {integrity: sha512-DhIzJh0pOi7icgI6hFDKSsipIxaP/glpB9v/XziIqSyR9RVPKwAfTOk1jUwp2S+byzEtARLpmbx8G0u6YqKovA==}
engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'}
dependencies:
js-yaml: 3.14.1
tslib: 1.14.1
dev: false
/@yarnpkg/pnp/2.3.2:
resolution: {integrity: sha512-JdwHu1WBCISqJEhIwx6Hbpe8MYsYbkGMxoxolkDiAeJ9IGEe08mQcbX1YmUDV1ozSWlm9JZE90nMylcDsXRFpA==}
engines: {node: '>=10.19.0'}
@@ -5602,6 +5714,16 @@ packages:
tslib: 1.14.1
dev: false
/@yarnpkg/pnp/3.1.1-rc.5:
resolution: {integrity: sha512-Dvlrt+Kzbkr2zN7MRuHM2jvZWq2cDZtguN1tXwy41C/A21a3P0Hko/ZQCaLxNQg72umTCnLqHmjHVHfuiS7vZQ==}
engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'}
dependencies:
'@types/node': 13.13.52
'@yarnpkg/fslib': 2.6.0
resolve.exports: 1.1.0
tslib: 1.14.1
dev: false
/@yarnpkg/shell/2.4.1:
resolution: {integrity: sha512-oNNJkH8ZI5uwu0dMkJf737yMSY1WXn9gp55DqSA5wAOhKvV5DJTXFETxkVgBQhO6Bow9tMGSpvowTMD/oAW/9g==}
engines: {node: '>=10.19.0'}
@@ -5617,6 +5739,22 @@ packages:
tslib: 1.14.1
dev: false
/@yarnpkg/shell/3.2.0-rc.3:
resolution: {integrity: sha512-t1Cc+ARdp5qWNI3oXrGk4t+kL3LaeNDWjvcOPjGapfEYGYzOkpKTVZ1+m6eqoem7dO06HblkNx/xivMiMQR+Kw==}
engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'}
hasBin: true
dependencies:
'@yarnpkg/fslib': 2.6.0
'@yarnpkg/parsers': 2.5.0-rc.3
chalk: 3.0.0
clipanion: 3.1.0
cross-spawn: 7.0.3
fast-glob: 3.2.7
micromatch: 4.0.4
stream-buffers: 3.0.2
tslib: 1.14.1
dev: false
/@zkochan/cmd-shim/5.2.1:
resolution: {integrity: sha512-oBPLTj/T1t488X1hVv99HbX7AATpApeue/OWWtD37PYxcJN4YBEpFyf86KlYb/51JrqyPe9Rv7z3/3T3p9AERg==}
engines: {node: '>=10.13'}
@@ -6154,7 +6292,6 @@ packages:
/any-promise/1.3.0:
resolution: {integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8=}
dev: true
/anymatch/3.1.2:
resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==}
@@ -6314,6 +6451,10 @@ packages:
dependencies:
printable-characters: 1.0.42
/asap/2.0.6:
resolution: {integrity: sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=}
dev: false
/asn1/0.2.6:
resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==}
dependencies:
@@ -6744,6 +6885,24 @@ packages:
unset-value: 1.0.0
dev: true
/cacheable-lookup/5.0.4:
resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==}
engines: {node: '>=10.6.0'}
dev: false
/cacheable-request/7.0.2:
resolution: {integrity: sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==}
engines: {node: '>=8'}
dependencies:
clone-response: 1.0.2
get-stream: 5.2.0
http-cache-semantics: 4.1.0
keyv: 4.0.4
lowercase-keys: 2.0.0
normalize-url: 6.1.0
responselike: 2.0.0
dev: false
/call-bind/1.0.2:
resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
dependencies:
@@ -6847,7 +7006,6 @@ packages:
dependencies:
ansi-styles: 4.3.0
supports-color: 7.2.0
dev: true
/chalk/4.1.2:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
@@ -6880,6 +7038,14 @@ packages:
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
dev: true
/chevrotain/9.1.0:
resolution: {integrity: sha512-A86/55so63HCfu0dgGg3j9u8uuuBOrSqly1OhBZxRu2x6sAKILLzfVjbGMw45kgier6lz45EzcjjWtTRgoT84Q==}
dependencies:
'@chevrotain/types': 9.1.0
'@chevrotain/utils': 9.1.0
regexp-to-ast: 0.5.0
dev: false
/choices-separator/2.0.0:
resolution: {integrity: sha1-kv0XYxgteQM/XFxR0Lo1LlVnxpY=}
engines: {node: '>=0.10.0'}
@@ -6958,7 +7124,6 @@ packages:
resolution: {integrity: sha512-v025Hz+IDQ15FpOyK8p02h5bFznMu6rLFsJSyOPR+7WrbSnZ1Ek6pblPukV7K5tC/dsWfncQPIrJ4iUy2PXkbw==}
dependencies:
typanion: 3.7.1
dev: true
/cliui/6.0.0:
resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==}
@@ -7000,6 +7165,12 @@ packages:
shallow-clone: 3.0.1
dev: true
/clone-response/1.0.2:
resolution: {integrity: sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=}
dependencies:
mimic-response: 1.0.1
dev: false
/clone-stats/1.0.0:
resolution: {integrity: sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=}
dev: true
@@ -7570,6 +7741,13 @@ packages:
mimic-response: 2.1.0
dev: true
/decompress-response/6.0.0:
resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
engines: {node: '>=10'}
dependencies:
mimic-response: 3.1.0
dev: false
/dedent/0.7.0:
resolution: {integrity: sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=}
dev: true
@@ -7612,6 +7790,11 @@ packages:
clone: 1.0.4
dev: true
/defer-to-connect/2.0.1:
resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
engines: {node: '>=10'}
dev: false
/define-properties/1.1.3:
resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==}
engines: {node: '>= 0.4'}
@@ -7719,7 +7902,6 @@ packages:
/diff/4.0.2:
resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
engines: {node: '>=0.3.1'}
dev: true
/diff/5.0.0:
resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==}
@@ -7866,6 +8048,12 @@ packages:
dev: false
optional: true
/end-of-stream/1.1.0:
resolution: {integrity: sha1-6TUyWLqpEIll78QcsO+K3i88+wc=}
dependencies:
once: 1.3.3
dev: false
/end-of-stream/1.4.4:
resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
dependencies:
@@ -9121,6 +9309,13 @@ packages:
engines: {node: '>=4'}
dev: true
/get-stream/5.2.0:
resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
engines: {node: '>=8'}
dependencies:
pump: 3.0.0
dev: false
/get-stream/6.0.1:
resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
engines: {node: '>=10'}
@@ -9280,6 +9475,23 @@ packages:
slash: 2.0.0
dev: true
/got/11.8.3:
resolution: {integrity: sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==}
engines: {node: '>=10.19.0'}
dependencies:
'@sindresorhus/is': 4.2.0
'@szmarczak/http-timer': 4.0.6
'@types/cacheable-request': 6.0.2
'@types/responselike': 1.0.0
cacheable-lookup: 5.0.4
cacheable-request: 7.0.2
decompress-response: 6.0.0
http2-wrapper: 1.0.3
lowercase-keys: 2.0.0
p-cancelable: 2.1.1
responselike: 2.0.0
dev: false
/graceful-fs/4.2.8:
resolution: {integrity: sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==}
@@ -9495,6 +9707,14 @@ packages:
resolution: {integrity: sha512-JrT3ua+WgH8zBD3HEJYbeEgnuQaAnUeRRko/YojPAJjGmIfGD3KPU/asLdsLwKjfxOmQe5nXMQ0pt/7MyapVbQ==}
dev: true
/http2-wrapper/1.0.3:
resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==}
engines: {node: '>=10.19.0'}
dependencies:
quick-lru: 5.1.1
resolve-alpn: 1.2.1
dev: false
/https-proxy-agent/5.0.0:
resolution: {integrity: sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==}
engines: {node: '>= 6'}
@@ -10065,6 +10285,10 @@ packages:
resolution: {integrity: sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==}
dev: false
/is/3.3.0:
resolution: {integrity: sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg==}
dev: false
/isarray/0.0.1:
resolution: {integrity: sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=}
dev: true
@@ -10759,6 +10983,21 @@ packages:
concat-stream: 1.6.2
dev: true
/json-buffer/3.0.1:
resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
dev: false
/json-file-plus/3.3.1:
resolution: {integrity: sha512-wo0q1UuiV5NsDPQDup1Km8IwEeqe+olr8tkWxeJq9Bjtcp7DZ0l+yrg28fSC3DEtrE311mhTZ54QGS6oiqnZEA==}
engines: {node: '>= 0.4'}
dependencies:
is: 3.3.0
node.extend: 2.0.2
object.assign: 4.1.2
promiseback: 2.0.3
safer-buffer: 2.1.2
dev: false
/json-parse-better-errors/1.0.2:
resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==}
dev: true
@@ -10869,6 +11108,12 @@ packages:
tsscmp: 1.0.6
dev: true
/keyv/4.0.4:
resolution: {integrity: sha512-vqNHbAc8BBsxk+7QBYLW0Y219rWcClspR6WSeoHYKG5mnsSoOH+BL1pWq02DDCVdvvuUny5rkBlzMRzoqc+GIg==}
dependencies:
json-buffer: 3.0.1
dev: false
/kind-of/3.2.2:
resolution: {integrity: sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=}
engines: {node: '>=0.10.0'}
@@ -11186,6 +11431,11 @@ packages:
steno: 0.4.4
dev: true
/lowercase-keys/2.0.0:
resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==}
engines: {node: '>=8'}
dev: false
/lru-cache/4.1.5:
resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==}
dependencies:
@@ -11514,11 +11764,21 @@ packages:
resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==}
engines: {node: '>=8'}
/mimic-response/1.0.1:
resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==}
engines: {node: '>=4'}
dev: false
/mimic-response/2.1.0:
resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==}
engines: {node: '>=8'}
dev: true
/mimic-response/3.1.0:
resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
engines: {node: '>=10'}
dev: false
/min-indent/1.0.1:
resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
engines: {node: '>=4'}
@@ -11632,7 +11892,6 @@ packages:
hasBin: true
dependencies:
minimist: 1.2.5
dev: true
/mkdirp/1.0.4:
resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
@@ -11861,6 +12120,14 @@ packages:
resolution: {integrity: sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==}
dev: true
/node.extend/2.0.2:
resolution: {integrity: sha512-pDT4Dchl94/+kkgdwyS2PauDFjZG0Hk0IcHIB+LkW27HLDtdoeMxHTxZh39DYbPP8UflWXWj9JcdDozF+YDOpQ==}
engines: {node: '>=0.4.0'}
dependencies:
has: 1.0.3
is: 3.3.0
dev: false
/noop-logger/0.1.1:
resolution: {integrity: sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=}
dev: true
@@ -11909,6 +12176,11 @@ packages:
resolution: {integrity: sha512-3e9FwDyRAhbxXw4slm4Tjv40u78yPwMc/WZkACpqNQOs5sM7wic853AeTLkMFEVhivZkclGYlse8iYsklz0Yvg==}
dev: false
/normalize-url/6.1.0:
resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
engines: {node: '>=10'}
dev: false
/now-and-later/2.0.1:
resolution: {integrity: sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==}
engines: {node: '>= 0.10'}
@@ -12080,6 +12352,12 @@ packages:
engines: {node: '>= 0.8'}
dev: true
/once/1.3.3:
resolution: {integrity: sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=}
dependencies:
wrappy: 1.0.2
dev: false
/once/1.4.0:
resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=}
dependencies:
@@ -12165,7 +12443,6 @@ packages:
/p-cancelable/2.1.1:
resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==}
engines: {node: '>=8'}
dev: true
/p-defer/1.0.0:
resolution: {integrity: sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=}
@@ -12621,6 +12898,11 @@ packages:
engines: {node: '>= 0.4.0'}
dev: true
/pluralize/7.0.0:
resolution: {integrity: sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==}
engines: {node: '>=4'}
dev: false
/pn/1.1.0:
resolution: {integrity: sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==}
dev: true
@@ -12750,6 +13032,13 @@ packages:
engines: {node: '>=0.4.0'}
dev: true
/promise-deferred/2.0.3:
resolution: {integrity: sha512-n10XaoznCzLfyPFOlEE8iurezHpxrYzyjgq/1eW9Wk1gJwur/N7BdBmjJYJpqMeMcXK4wEbzo2EvZQcqjYcKUQ==}
engines: {node: '>= 0.4'}
dependencies:
promise: 7.3.1
dev: false
/promise-inflight/1.0.1:
resolution: {integrity: sha1-mEcocL8igTL8vdhoEputEsPAKeM=}
dev: false
@@ -12769,6 +13058,20 @@ packages:
p-reflect: 2.1.0
dev: false
/promise/7.3.1:
resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==}
dependencies:
asap: 2.0.6
dev: false
/promiseback/2.0.3:
resolution: {integrity: sha512-VZXdCwS0ppVNTIRfNsCvVwJAaP2b+pxQF7lM8DMWfmpNWyTxB6O5YNbzs+8z0ki/KIBHKHk308NTIl4kJUem3w==}
engines: {node: '>= 0.4'}
dependencies:
is-callable: 1.2.4
promise-deferred: 2.0.3
dev: false
/prompt-actions/3.0.2:
resolution: {integrity: sha512-dhz2Fl7vK+LPpmnQ/S/eSut4BnH4NZDLyddHKi5uTU/2PDn3grEMGkgsll16V5RpVUh/yxdiam0xsM0RD4xvtg==}
engines: {node: '>=4'}
@@ -12918,7 +13221,6 @@ packages:
dependencies:
end-of-stream: 1.4.4
once: 1.4.0
dev: true
/pumpify/1.5.1:
resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==}
@@ -12964,7 +13266,6 @@ packages:
/quick-lru/5.1.1:
resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
engines: {node: '>=10'}
dev: true
/radio-symbol/2.0.0:
resolution: {integrity: sha1-eqm/xQSFY21S3XbWqOYxspB5muE=}
@@ -13190,6 +13491,10 @@ packages:
safe-regex: 1.1.0
dev: true
/regexp-to-ast/0.5.0:
resolution: {integrity: sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==}
dev: false
/regexpp/3.2.0:
resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==}
engines: {node: '>=8'}
@@ -13384,6 +13689,10 @@ packages:
resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==}
dev: true
/resolve-alpn/1.2.1:
resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
dev: false
/resolve-cwd/3.0.0:
resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
engines: {node: '>=8'}
@@ -13431,7 +13740,6 @@ packages:
/resolve.exports/1.1.0:
resolution: {integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==}
engines: {node: '>=10'}
dev: true
/resolve/1.20.0:
resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==}
@@ -13439,6 +13747,12 @@ packages:
is-core-module: 2.8.0
path-parse: 1.0.7
/responselike/2.0.0:
resolution: {integrity: sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==}
dependencies:
lowercase-keys: 2.0.0
dev: false
/restore-cursor/2.0.0:
resolution: {integrity: sha1-n37ih/gv0ybU/RYpI9YhKe7g368=}
engines: {node: '>=4'}
@@ -14019,6 +14333,20 @@ packages:
/stream-shift/1.0.1:
resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==}
/stream-to-array/2.3.0:
resolution: {integrity: sha1-u/azn19D7DC8cbq8s3VXrOzzQ1M=}
dependencies:
any-promise: 1.3.0
dev: false
/stream-to-promise/2.2.0:
resolution: {integrity: sha1-se2y4cjLESidG1A8CNPyrvUeZQ8=}
dependencies:
any-promise: 1.3.0
end-of-stream: 1.1.0
stream-to-array: 2.3.0
dev: false
/stream-transform/2.1.3:
resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==}
dependencies:
@@ -14384,6 +14712,12 @@ packages:
resolution: {integrity: sha1-jru/1tYpXxNwAD+7NxYq/loKUdE=}
dev: false
/tinylogic/1.0.3:
resolution: {integrity: sha512-9CpbvSIqfBt1TN/GZYkVjRK0d0TRlo2jdx2cXB2vO5aFy1wx6KGdqfS0MeAcMuR0o5JAeK/zAZkgR0fCyOP21w==}
dependencies:
chevrotain: 9.1.0
dev: false
/tmp-promise/3.0.3:
resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==}
dependencies:
@@ -14532,6 +14866,11 @@ packages:
resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
hasBin: true
/treeify/1.1.0:
resolution: {integrity: sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==}
engines: {node: '>=0.6'}
dev: false
/trim-newlines/3.0.1:
resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==}
engines: {node: '>=8'}
@@ -14720,13 +15059,17 @@ packages:
safe-buffer: 5.2.1
dev: true
/tunnel/0.0.6:
resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==}
engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'}
dev: false
/tweetnacl/0.14.5:
resolution: {integrity: sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=}
dev: true
/typanion/3.7.1:
resolution: {integrity: sha512-g2QDI/ZLpuEor9EnJ1b7s9S2QSJgNCPBw9ZCSkQdqXNjg5ZQs4mASgW/elVifSxISFwBeMaIAmMBP5luAOIKAw==}
dev: true
/type-check/0.3.2:
resolution: {integrity: sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=}