Fork of github.com/did-method-plc/did-method-plc

init commit

dholms 0e8370fc

+11682
+35
.eslintrc
··· 1 + { 2 + "root": true, 3 + // parse TypeScript files 4 + // https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/parser 5 + "parser": "@typescript-eslint/parser", 6 + // configure eslint using options described at 7 + // https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/eslint-plugin 8 + "plugins": ["@typescript-eslint"], 9 + "extends": [ 10 + "eslint:recommended", 11 + "plugin:@typescript-eslint/eslint-recommended", 12 + "plugin:@typescript-eslint/recommended", 13 + "plugin:prettier/recommended", 14 + "prettier" 15 + ], 16 + "ignorePatterns":[ 17 + "dist", 18 + "node_modules", 19 + "jest.config.base.js", 20 + "jest.bench.config.js", 21 + "jest.config.js", 22 + "babel.config.js", 23 + "build.js", 24 + "update-pkg.js" 25 + ], 26 + "rules": { 27 + "no-var": "error", 28 + "prefer-const": "warn", 29 + "@typescript-eslint/no-unused-vars": ["warn", { "argsIgnorePattern": "^_" }], 30 + "@typescript-eslint/ban-ts-comment": "off", 31 + "@typescript-eslint/no-empty-interface": "off", 32 + "@typescript-eslint/explicit-module-boundary-types": "off", 33 + "@typescript-eslint/no-empty-function": "off" 34 + } 35 + }
+52
.github/workflows/build-and-push.yaml
··· 1 + name: build-and-push 2 + on: 3 + push: 4 + branches: 5 + - main 6 + env: 7 + REGISTRY: ghcr.io 8 + # github.repository as <account>/<repo> 9 + IMAGE_NAME: ${{ github.repository }} 10 + 11 + jobs: 12 + build: 13 + runs-on: ubuntu-latest 14 + permissions: 15 + contents: read 16 + packages: write 17 + id-token: write 18 + 19 + steps: 20 + - name: Checkout repository 21 + uses: actions/checkout@v3 22 + 23 + - name: Setup Docker buildx 24 + uses: docker/setup-buildx-action@v1 25 + 26 + - name: Log into registry ${{ env.REGISTRY }} 27 + uses: docker/login-action@v2 28 + with: 29 + registry: ${{ env.REGISTRY }} 30 + username: ${{ github.actor }} 31 + password: ${{ secrets.GITHUB_TOKEN }} 32 + 33 + - name: Extract Docker metadata 34 + id: meta 35 + uses: docker/metadata-action@v4 36 + with: 37 + images: | 38 + ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} 39 + tags: | 40 + type=sha,enable=true,priority=100,prefix=plc:,suffix=,format=long 41 + 42 + - name: Build and push Docker image 43 + id: build-and-push 44 + uses: docker/build-push-action@v4 45 + with: 46 + context: . 47 + push: ${{ github.event_name != 'pull_request' }} 48 + file: ./packages/server/Dockerfile 49 + tags: ${{ steps.meta.outputs.tags }} 50 + labels: ${{ steps.meta.outputs.labels }} 51 + cache-from: type=gha 52 + cache-to: type=gha,mode=max
+33
.github/workflows/repo.yaml
··· 1 + name: repo 2 + on: [push] 3 + jobs: 4 + build: 5 + runs-on: ubuntu-latest 6 + steps: 7 + - uses: actions/checkout@v3 8 + - uses: actions/setup-node@v3 9 + with: 10 + node-version: 18 11 + cache: "yarn" 12 + - run: yarn install --frozen-lockfile 13 + - run: yarn build 14 + test: 15 + runs-on: ubuntu-latest 16 + steps: 17 + - uses: actions/checkout@v3 18 + - uses: actions/setup-node@v3 19 + with: 20 + node-version: 18 21 + cache: "yarn" 22 + - run: yarn install --frozen-lockfile 23 + - run: yarn test 24 + verify: 25 + runs-on: ubuntu-latest 26 + steps: 27 + - uses: actions/checkout@v3 28 + - uses: actions/setup-node@v3 29 + with: 30 + node-version: 18 31 + cache: "yarn" 32 + - run: yarn install --frozen-lockfile 33 + - run: yarn verify
+16
.gitignore
··· 1 + node_modules 2 + lerna-debug.log 3 + npm-debug.log 4 + yarn-error.log 5 + packages/*/dist 6 + .idea 7 + packages/*/coverage 8 + .vscode/ 9 + test.sqlite 10 + .DS_Store 11 + *.log 12 + tsconfig.build.tsbuildinfo 13 + .dev.env 14 + \#*\# 15 + *~ 16 + *.swp
+14
.prettierrc
··· 1 + { 2 + "trailingComma": "all", 3 + "tabWidth": 2, 4 + "semi": false, 5 + "singleQuote": true, 6 + "overrides": [ 7 + { 8 + "files": "*.hbs", 9 + "options": { 10 + "singleQuote": false 11 + } 12 + } 13 + ] 14 + }
+21
LICENSE
··· 1 + MIT License 2 + 3 + Copyright (c) 2022-2023 Bluesky PBLLC 4 + 5 + Permission is hereby granted, free of charge, to any person obtaining a copy 6 + of this software and associated documentation files (the "Software"), to deal 7 + in the Software without restriction, including without limitation the rights 8 + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 + copies of the Software, and to permit persons to whom the Software is 10 + furnished to do so, subject to the following conditions: 11 + 12 + The above copyright notice and this permission notice shall be included in all 13 + copies or substantial portions of the Software. 14 + 15 + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 + SOFTWARE.
+51
Makefile
··· 1 + 2 + SHELL = /bin/bash 3 + .SHELLFLAGS = -o pipefail -c 4 + 5 + .PHONY: help 6 + help: ## Print info about all commands 7 + @echo "Helper Commands:" 8 + @echo 9 + @grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[01;32m%-20s\033[0m %s\n", $$1, $$2}' 10 + @echo 11 + @echo "NOTE: dependencies between commands are not automatic. Eg, you must run 'deps' and 'build' first, and after any changes" 12 + 13 + .PHONY: build 14 + build: ## Compile all modules 15 + yarn build 16 + 17 + .PHONY: test 18 + test: ## Run all tests 19 + yarn test 20 + 21 + .PHONY: run-dev-env 22 + run-dev-env: ## Run a "development environment" shell 23 + cd packages/dev-env; yarn run start 24 + 25 + .PHONY: run-pds 26 + run-pds: ## Run PDS locally 27 + if [ ! -f "packages/pds/.dev.env" ]; then cp packages/pds/example.dev.env packages/pds/.dev.env; fi 28 + cd packages/pds; ENV=dev yarn run start | yarn exec pino-pretty 29 + 30 + .PHONY: run-plc 31 + run-plc: ## Run DID:PLC server locally 32 + if [ ! -f "packages/plc/.dev.env" ]; then cp packages/plc/example.dev.env packages/plc/.dev.env; fi 33 + cd packages/plc; ENV=dev yarn run start | yarn exec pino-pretty 34 + 35 + .PHONY: lint 36 + lint: ## Run style checks and verify syntax 37 + yarn verify 38 + 39 + .PHONY: fmt 40 + fmt: ## Run syntax re-formatting 41 + yarn prettier 42 + 43 + .PHONY: deps 44 + deps: ## Installs dependent libs using 'yarn install' 45 + yarn install --frozen-lockfile 46 + 47 + .PHONY: nvm-setup 48 + nvm-setup: ## Use NVM to install and activate node+yarn 49 + nvm install 18 50 + nvm use 18 51 + npm install --global yarn
+160
README.md
··· 1 + # DID Placeholder (did:plc) 2 + 3 + DID Placeholder is a cryptographic, strongly-consistent, and recoverable [DID](https://www.w3.org/TR/did-core/) method. 4 + 5 + ## Motivation 6 + 7 + We introduced DID Placeholder because we weren't totally satisfied with any of the existing DID methods. 8 + We wanted a strongly consistent, highly available, recoverable, and cryptographically secure method with cheap and fast propagation of updates. 9 + 10 + We cheekily titled the method "Placeholder", because we _don't_ want it to stick around. We're actively hoping to replace it with something less centralized. 11 + We expect a method to emerge that fits the bill within the next few years, likely a permissioned DID consortium. 12 + 13 + ## How it works 14 + This is not a fully-expressive DID format. 15 + Though it adheres to the DID spec, it is domain-specific and only allows for representing specific data types in a specific manner. 16 + There is the possibility that it could be extended to be more general in the future. 17 + 18 + Each DID document is made up of just four pieces of data (for now): 19 + - `signingKey` 20 + - `recoveryKey` 21 + - `handle` 22 + - `atpPds` (Personal Data Server for the related AT Protocol repository) 23 + 24 + DID documents are derived from a log of signed operations, ordered by the PLC server. 25 + 26 + There are 5 operations that can be found in each log: `create`, `rotate_signing_key`, `rotate_recovery_key`, `update_handle`, and `update_atp_pds`. 27 + 28 + Each operation is of the shape: 29 + ```ts 30 + type Operation = { 31 + type: string // operation type 32 + prev: CID | null // pointer to the CID of the previous operation in the log 33 + sig: string // base64url encoded signature of the operation 34 + ... // other operation-specific data 35 + } 36 + ``` 37 + 38 + Each operation contains a reference the the immediately preceding operation in the log and is signed by either the `signingKey` or the `recoveryKey`. 39 + 40 + The DID itself is derived from the sha256 hash of the first operation in the log. 41 + It is then base32 encoded and truncated to 24 chars. 42 + 43 + To illustrate: 44 + `did:plc:${base32Encode(sha256(createOp)).slice(0,24)}` 45 + 46 + Operations are verified, ordered and made available by the PLC server. 47 + 48 + The PLC server is constrained in it's capabilities. 49 + The operation logs are fully self-certifying, with the exception of their ordering. 50 + 51 + Therefore, the PLC server's attacks are limited to: 52 + - Denial of service: rejecting valid operations, or refusing to serve some information about the DID 53 + - Misordering: In the event of a fork in DID document history, the server could choose to serve the "wrong" fork 54 + 55 + ### Signing and Recovery Keys 56 + 57 + Both the `signingKey` and the `recoveryKey` are permissioned to make changes to the DID document. 58 + However, these keys are not equal. 59 + 60 + As can be seen in the example document (below), only the `signingKey` is granted the ability to make assertions and invoke/delegate capabilities. 61 + 62 + The recovery key on the other hand is capable of performing a "recovery operation" 63 + 64 + ### Account Recovery 65 + 66 + The PLC server provides a 72hr window during which the `recoveryKey` can "rewrite" history. 67 + 68 + This is to be used in adversarial situations in which a user's `signingKey` leaks or is being held by some custodian who turns out to be a bad actor. 69 + 70 + In a situation such as this, the `recoveryKey` may be used to rotate both the `signingKey` and `recoveryKey`. 71 + 72 + If a user wishes to recover from this situation, they sign a new operation rotating the `signingKey` to a key that they hold and set the `prev` of that operation to point to the most recent pre-attack operation. 73 + 74 + ## Example 75 + 76 + Consider the following operation log: 77 + ```ts 78 + [ 79 + { 80 + type: 'create', 81 + signingKey: 'did:key:zDnaejYFhgFiVF89LhJ4UipACLKuqo6PteZf8eKDVKeExXUPk', 82 + recoveryKey: 'did:key:zDnaeSezF2TgCD71b5DiiFyhHQwKAfsBVqTTHRMvP597Z5Ztn', 83 + handle: 'alice.example.com', 84 + service: 'https://example.com', 85 + prev: null, 86 + sig: 'vi6JAl5W4FfyViD5_BKL9p0rbI3MxTWuh0g_egTFAjtf7gwoSfSe1O3qMOEUPX6QH3H0Q9M4y7gOLGblWkEwfQ' 87 + }, 88 + { 89 + type: 'update_handle', 90 + handle: 'ali.example2.com', 91 + prev: 'bafyreih2gihqzgq5qd6uqktyfpyxqxvpdnrpu2qunnkaxugbyquxumisuq', 92 + sig: 'KL98ORpGmAJTqDsC9mWAYbhoDIv_-eZ3Nv0YqiPkbgx0ra96gYa3fQhIpZVxXFyNbu_4Y3JhPCvyJb8yDMe9Sg' 93 + }, 94 + { 95 + type: 'update_atp_pds', 96 + service: 'https://example2.com', 97 + prev: 'bafyreickw7v7mwncrganw645agsmwjciolknt4f6f5an5wt3nrjepqaoiu', 98 + sig: 'AS-APea3xxR5-sq2i5v9IOsgbM5G5qAnB92tExZ8Z4vEy_GQbV8jmfY7zTx76P88AVXInZsO6yWX4UO7_xAIfg' 99 + }, 100 + { 101 + type: 'rotate_signing_key', 102 + key: 'did:key:zDnaeh9v2RmcMo13Du2d6pjUf5bZwtauYxj3n9dYjw4EZUAR7', 103 + prev: 'bafyreictfsrkdt5azni355vapqka5a7erqjsa3vv7iaf52yjlqqbzkwgga', 104 + sig: 'VvcCoYVDluLZghv3i6ARyk1r7m1M32BPryJlTma1HTOx2CdbmIOUkVUbFa2LWi571fe-2yjTWY0IEAKfRiPAZg' 105 + }, 106 + { 107 + type: 'rotate_recovery_key', 108 + key: 'did:key:zDnaedvvAsDE6H3BDdBejpx9ve2Tz95cymyCAKF66JbyMh1Lt', 109 + prev: 'bafyreiazzldal6642usrcowrpztb5gjb73qla343ifnt5dfbxz4swmf5vi', 110 + sig: 'Um1GVZZT9JgB2SKEbwoF4_Sip05QjH7r_g-Hcx7lIY-OhIg88ZKcN_N4TgzljgBGwe6qZb0u_0Vaq0c-S2WSDg' 111 + } 112 + ] 113 + ``` 114 + 115 + The log produces the following document data: 116 + ```ts 117 + { 118 + did: 'did:plc:7iza6de2dwap2sbkpav7c6c6', 119 + signingKey: 'did:key:zDnaeh9v2RmcMo13Du2d6pjUf5bZwtauYxj3n9dYjw4EZUAR7', 120 + recoveryKey: 'did:key:zDnaedvvAsDE6H3BDdBejpx9ve2Tz95cymyCAKF66JbyMh1Lt', 121 + handle: 'ali.example2.com', 122 + atpPds: 'https://example2.com' 123 + } 124 + ``` 125 + 126 + And the following DID document: 127 + ```ts 128 + { 129 + '@context': [ 130 + 'https://www.w3.org/ns/did/v1', 131 + 'https://w3id.org/security/suites/ecdsa-2019/v1' 132 + ], 133 + id: 'did:plc:7iza6de2dwap2sbkpav7c6c6', 134 + alsoKnownAs: [ 'https://ali.example2.com' ], 135 + verificationMethod: [ 136 + { 137 + id: 'did:plc:7iza6de2dwap2sbkpav7c6c6#signingKey', 138 + type: 'EcdsaSecp256r1VerificationKey2019', 139 + controller: 'did:plc:7iza6de2dwap2sbkpav7c6c6', 140 + publicKeyMultibase: 'zSSa7w8s5aApu6td45gWTAAFkqCnaWY6ZsJ8DpyzDdYmVy4fARKqbn5F1UYBUMeVvYTBsoSoLvZnPdjd3pVHbmAHP' 141 + }, 142 + { 143 + id: 'did:plc:7iza6de2dwap2sbkpav7c6c6#recoveryKey', 144 + type: 'EcdsaSecp256r1VerificationKey2019', 145 + controller: 'did:plc:7iza6de2dwap2sbkpav7c6c6', 146 + publicKeyMultibase: 'zRV2EDDvop2r2aKWTcCtei3NvuNEnR5ucTVd9U4CSCnJEiha2QFyTjdxoFZ6629iHxhmTModThGQzX1495ZS6iD4V' 147 + } 148 + ], 149 + assertionMethod: [ 'did:plc:7iza6de2dwap2sbkpav7c6c6#signingKey' ], 150 + capabilityInvocation: [ 'did:plc:7iza6de2dwap2sbkpav7c6c6#signingKey' ], 151 + capabilityDelegation: [ 'did:plc:7iza6de2dwap2sbkpav7c6c6#signingKey' ], 152 + service: [ 153 + { 154 + id: 'did:plc:7iza6de2dwap2sbkpav7c6c6#atpPds', 155 + type: 'AtpPersonalDataServer', 156 + serviceEndpoint: 'https://example2.com' 157 + } 158 + ] 159 + } 160 + ```
+3
babel.config.js
··· 1 + module.exports = { 2 + presets: [['@babel/preset-env']], 3 + }
+20
jest.config.base.js
··· 1 + // Jest doesn't like ES modules, so we need to transpile them 2 + // For each one, add them to this list, add them to 3 + // "workspaces.nohoist" in the root package.json, and 4 + // make sure that a babel.config.js is in the package root 5 + const esModules = ['get-port', 'node-fetch'].join('|') 6 + 7 + // jestconfig.base.js 8 + module.exports = { 9 + roots: ['<rootDir>/src', '<rootDir>/tests'], 10 + transform: { 11 + '^.+\\.ts$': 'ts-jest', 12 + "^.+\\.js?$": "babel-jest" 13 + }, 14 + transformIgnorePatterns: [`<rootDir>/node_modules/(?!${esModules})`], 15 + testRegex: '(/tests/.*.(test|spec)).(jsx?|tsx?)$', 16 + moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'], 17 + setupFiles: ["<rootDir>/../../test-setup.ts"], 18 + verbose: true, 19 + testTimeout: 30000 20 + }
+7
jest.config.js
··· 1 + // jest.config.js 2 + const base = require('./jest.config.base.js') 3 + 4 + module.exports = { 5 + ...base, 6 + projects: ['<rootDir>/packages/*/jest.config.js'], 7 + }
+6
lerna.json
··· 1 + { 2 + "packages": ["packages/*"], 3 + "npmClient": "yarn", 4 + "useWorkspaces": true, 5 + "version": "0.0.1" 6 + }
+49
package.json
··· 1 + { 2 + "name": "did-method-plc", 3 + "version": "0.0.1", 4 + "repository": "git@github.com:bluesky-social/did-method-plc.git", 5 + "author": "Bluesky PBLLC <hello@blueskyweb.xyz>", 6 + "license": "MIT", 7 + "private": true, 8 + "engines": { 9 + "node": ">=18" 10 + }, 11 + "scripts": { 12 + "prepublish": "yarn build", 13 + "verify": "lerna run verify --stream", 14 + "prettier": "lerna run prettier", 15 + "build": "lerna run build", 16 + "test": "NODE_ENV=development lerna run test --stream" 17 + }, 18 + "devDependencies": { 19 + "@babel/core": "^7.18.6", 20 + "@babel/preset-env": "^7.18.6", 21 + "@npmcli/package-json": "^3.0.0", 22 + "@types/jest": "^28.1.4", 23 + "@types/node": "^18.0.0", 24 + "@typescript-eslint/eslint-plugin": "^5.38.1", 25 + "@typescript-eslint/parser": "^5.38.1", 26 + "babel-eslint": "^10.1.0", 27 + "babel-jest": "^28.1.2", 28 + "dotenv": "^16.0.3", 29 + "esbuild": "^0.14.48", 30 + "esbuild-node-externals": "^1.5.0", 31 + "esbuild-plugin-copy": "^1.6.0", 32 + "eslint": "^8.24.0", 33 + "eslint-config-prettier": "^8.5.0", 34 + "jest": "^28.1.2", 35 + "lerna": "^4.0.0", 36 + "npm-run-all": "^4.1.5", 37 + "pino-pretty": "^9.1.0", 38 + "prettier": "^2.7.1", 39 + "prettier-config-standard": "^5.0.0", 40 + "ts-jest": "^28.0.5", 41 + "ts-node": "^10.8.2", 42 + "typescript": "^4.8.4" 43 + }, 44 + "workspaces": { 45 + "packages": [ 46 + "packages/*" 47 + ] 48 + } 49 + }
+2
packages/lib/README.md
··· 1 + # DID Placeholder Library 2 +
+26
packages/lib/build.js
··· 1 + const pkgJson = require('@npmcli/package-json') 2 + const { nodeExternalsPlugin } = require('esbuild-node-externals') 3 + 4 + const buildShallow = 5 + process.argv.includes('--shallow') || process.env.ATP_BUILD_SHALLOW === 'true' 6 + 7 + if (process.argv.includes('--update-main-to-dist')) { 8 + return pkgJson 9 + .load(__dirname) 10 + .then((pkg) => pkg.update({ main: 'dist/index.js' })) 11 + .then((pkg) => pkg.save()) 12 + } 13 + 14 + require('esbuild').build({ 15 + logLevel: 'info', 16 + entryPoints: [ 17 + 'src/index.ts', 18 + ], 19 + bundle: true, 20 + sourcemap: true, 21 + treeShaking: true, 22 + outdir: 'dist', 23 + platform: 'node', 24 + assetNames: 'src/static', 25 + plugins: buildShallow ? [nodeExternalsPlugin()] : [], 26 + })
+6
packages/lib/jest.config.js
··· 1 + const base = require('../../jest.config.base.js') 2 + 3 + module.exports = { 4 + ...base, 5 + displayName: 'lib', 6 + }
+33
packages/lib/package.json
··· 1 + { 2 + "name": "@did-plc/lib", 3 + "version": "0.0.1", 4 + "main": "src/index.ts", 5 + "license": "MIT", 6 + "scripts": { 7 + "test": "jest", 8 + "prettier": "prettier --check src/", 9 + "prettier:fix": "prettier --write src/", 10 + "lint": "eslint . --ext .ts,.tsx", 11 + "lint:fix": "yarn lint --fix", 12 + "verify": "run-p prettier lint", 13 + "verify:fix": "yarn prettier:fix && yarn lint:fix", 14 + "build": "node ./build.js", 15 + "postbuild": "tsc --build tsconfig.build.json", 16 + "update-main-to-dist": "node ./update-pkg.js --update-main-to-dist", 17 + "update-main-to-src": "node ./update-pkg.js --update-main-to-src", 18 + "prepublish": "npm run update-main-to-dist", 19 + "postpublish": "npm run update-main-to-src" 20 + }, 21 + "dependencies": { 22 + "@atproto/common": "0.1.0", 23 + "@atproto/crypto": "0.1.0", 24 + "@ipld/dag-cbor": "^7.0.3", 25 + "multiformats": "^9.6.4", 26 + "uint8arrays": "3.0.0", 27 + "zod": "^3.14.2" 28 + }, 29 + "devDependencies": { 30 + "@types/pg": "^8.6.5", 31 + "eslint-plugin-prettier": "^4.2.1" 32 + } 33 + }
+127
packages/lib/src/client.ts
··· 1 + import axios from 'axios' 2 + import { CID } from 'multiformats/cid' 3 + import { Keypair } from '@atproto/crypto' 4 + import { check, cidForCbor } from '@atproto/common' 5 + import * as operations from './operations' 6 + import * as t from './types' 7 + 8 + export class Client { 9 + constructor(public url: string) {} 10 + 11 + async getDocument(did: string): Promise<t.DidDocument> { 12 + const res = await axios.get(`${this.url}/${encodeURIComponent(did)}`) 13 + return res.data 14 + } 15 + 16 + async getDocumentData(did: string): Promise<t.DocumentData> { 17 + const res = await axios.get(`${this.url}/data/${encodeURIComponent(did)}`) 18 + return res.data 19 + } 20 + 21 + async getOperationLog(did: string): Promise<t.Operation[]> { 22 + const res = await axios.get(`${this.url}/log/${encodeURIComponent(did)}`) 23 + return res.data.log 24 + } 25 + 26 + postOpUrl(did: string): string { 27 + return `${this.url}/${encodeURIComponent(did)}` 28 + } 29 + 30 + async sendOperation(did: string, op: t.Operation) { 31 + await axios.post(this.postOpUrl(did), op) 32 + } 33 + 34 + async formatCreateOp( 35 + signingKey: Keypair, 36 + recoveryKey: string, 37 + handle: string, 38 + service: string, 39 + ): Promise<{ op: t.CreateOp; did: string }> { 40 + const op = await operations.create(signingKey, recoveryKey, handle, service) 41 + if (!check.is(op, t.def.createOp)) { 42 + throw new Error('Not a valid create operation') 43 + } 44 + const did = await operations.didForCreateOp(op) 45 + return { did, op } 46 + } 47 + 48 + async createDid( 49 + signingKey: Keypair, 50 + recoveryKey: string, 51 + handle: string, 52 + service: string, 53 + ): Promise<string> { 54 + const { op, did } = await this.formatCreateOp( 55 + signingKey, 56 + recoveryKey, 57 + handle, 58 + service, 59 + ) 60 + await this.sendOperation(did, op) 61 + return did 62 + } 63 + 64 + async getPrev(did): Promise<CID> { 65 + const log = await this.getOperationLog(did) 66 + if (log.length === 0) { 67 + throw new Error(`Could not make update: DID does not exist: ${did}`) 68 + } 69 + return cidForCbor(log[log.length - 1]) 70 + } 71 + 72 + async rotateSigningKey( 73 + did: string, 74 + newKey: string, 75 + signingKey: Keypair, 76 + prev?: CID, 77 + ) { 78 + prev = prev ? prev : await this.getPrev(did) 79 + const op = await operations.rotateSigningKey( 80 + newKey, 81 + prev.toString(), 82 + signingKey, 83 + ) 84 + await this.sendOperation(did, op) 85 + } 86 + 87 + async rotateRecoveryKey( 88 + did: string, 89 + newKey: string, 90 + signingKey: Keypair, 91 + prev?: CID, 92 + ) { 93 + prev = prev ? prev : await this.getPrev(did) 94 + const op = await operations.rotateRecoveryKey( 95 + newKey, 96 + prev.toString(), 97 + signingKey, 98 + ) 99 + await this.sendOperation(did, op) 100 + } 101 + 102 + async updateHandle(did: string, handle: string, signingKey: Keypair) { 103 + const prev = await this.getPrev(did) 104 + const op = await operations.updateHandle( 105 + handle, 106 + prev.toString(), 107 + signingKey, 108 + ) 109 + await this.sendOperation(did, op) 110 + } 111 + 112 + async updateAtpPds(did: string, service: string, signingKey: Keypair) { 113 + const prev = await this.getPrev(did) 114 + const op = await operations.updateAtpPds( 115 + service, 116 + prev.toString(), 117 + signingKey, 118 + ) 119 + await this.sendOperation(did, op) 120 + } 121 + 122 + async health() { 123 + return await axios.get(`${this.url}/_health`) 124 + } 125 + } 126 + 127 + export default Client
+246
packages/lib/src/document.ts
··· 1 + import { CID } from 'multiformats/cid' 2 + import * as uint8arrays from 'uint8arrays' 3 + import * as cbor from '@ipld/dag-cbor' 4 + import { check, cidForCbor } from '@atproto/common' 5 + import * as crypto from '@atproto/crypto' 6 + import * as t from './types' 7 + 8 + // @TODO fix this 9 + class ServerError extends Error { 10 + constructor(public code: number, msg: string) { 11 + super(msg) 12 + } 13 + } 14 + 15 + export const assureValidNextOp = async ( 16 + did: string, 17 + ops: t.IndexedOperation[], 18 + proposed: t.Operation, 19 + ): Promise<{ nullified: CID[]; prev: CID | null }> => { 20 + // special case if account creation 21 + if (ops.length === 0) { 22 + if (!check.is(proposed, t.def.createOp)) { 23 + throw new ServerError(400, 'Expected first operation to be `create`') 24 + } 25 + await assureValidCreationOp(did, proposed) 26 + return { nullified: [], prev: null } 27 + } 28 + 29 + // ensure we support the proposed key type 30 + if ( 31 + check.is(proposed, t.def.rotateSigningKeyOp) || 32 + check.is(proposed, t.def.rotateRecoveryKeyOp) 33 + ) { 34 + await crypto.parseDidKey(proposed.key) 35 + } 36 + 37 + const proposedPrev = proposed.prev ? CID.parse(proposed.prev) : undefined 38 + if (!proposedPrev) { 39 + throw new ServerError(400, `Invalid prev on operation: ${proposed.prev}`) 40 + } 41 + 42 + const indexOfPrev = ops.findIndex((op) => proposedPrev.equals(op.cid)) 43 + if (indexOfPrev < 0) { 44 + throw new ServerError(409, 'Operations not correctly ordered') 45 + } 46 + 47 + // if we are forking history, these are the ops still in the proposed canonical history 48 + const opsInHistory = ops.slice(0, indexOfPrev + 1) 49 + const nullified = ops.slice(indexOfPrev + 1) 50 + 51 + const doc = await validateOperationLog( 52 + did, 53 + opsInHistory.map((op) => op.operation), 54 + ) 55 + const allowedKeys = 56 + nullified.length === 0 57 + ? [doc.signingKey, doc.recoveryKey] 58 + : [doc.recoveryKey] // only the recovery key is allowed to do historical re-writes 59 + 60 + await assureValidSig(allowedKeys, proposed) 61 + 62 + // recovery key gets a 72hr window to do historical re-wrties 63 + if (nullified.length > 0) { 64 + const RECOVERY_WINDOW = 1000 * 60 * 60 * 72 65 + const firstNullfied = nullified[0] 66 + const timeLapsed = Date.now() - firstNullfied.createdAt.getTime() 67 + if (timeLapsed > RECOVERY_WINDOW) { 68 + throw new ServerError( 69 + 400, 70 + 'Recovery operation occured outside of the allowed 72 hr recovery window', 71 + ) 72 + } 73 + } 74 + 75 + return { 76 + nullified: nullified.map((op) => op.cid), 77 + prev: proposedPrev, 78 + } 79 + } 80 + 81 + export const validateOperationLog = async ( 82 + did: string, 83 + ops: t.Operation[], 84 + ): Promise<t.DocumentData> => { 85 + // make sure they're all validly formatted operations 86 + for (const op of ops) { 87 + if (!check.is(op, t.def.operation)) { 88 + throw new ServerError(400, `Improperly formatted operation: ${op}`) 89 + } 90 + } 91 + 92 + // ensure the first op is a valid & signed create operation 93 + const [first, ...rest] = ops 94 + if (!check.is(first, t.def.createOp)) { 95 + throw new ServerError(400, 'Expected first operation to be `create`') 96 + } 97 + await assureValidCreationOp(did, first) 98 + 99 + // iterate through operations to reconstruct the current state of the document 100 + const doc: t.DocumentData = { 101 + did, 102 + signingKey: first.signingKey, 103 + recoveryKey: first.recoveryKey, 104 + handle: first.handle, 105 + atpPds: first.service, 106 + } 107 + let prev = await cidForCbor(first) 108 + 109 + for (const op of rest) { 110 + if (!op.prev || !CID.parse(op.prev).equals(prev)) { 111 + throw new ServerError(400, 'Operations not correctly ordered') 112 + } 113 + 114 + await assureValidSig([doc.signingKey, doc.recoveryKey], op) 115 + if (check.is(op, t.def.createOp)) { 116 + throw new ServerError(400, 'Unexpected `create` after DID genesis') 117 + } else if (check.is(op, t.def.rotateSigningKeyOp)) { 118 + doc.signingKey = op.key 119 + } else if (check.is(op, t.def.rotateRecoveryKeyOp)) { 120 + doc.recoveryKey = op.key 121 + } else if (check.is(op, t.def.updateHandleOp)) { 122 + doc.handle = op.handle 123 + } else if (check.is(op, t.def.updateAtpPdsOp)) { 124 + doc.atpPds = op.service 125 + } else { 126 + throw new ServerError(400, `Unknown operation: ${JSON.stringify(op)}`) 127 + } 128 + prev = await cidForCbor(op) 129 + } 130 + 131 + return doc 132 + } 133 + 134 + export const hashAndFindDid = async (op: t.CreateOp, truncate = 24) => { 135 + const hashOfGenesis = await crypto.sha256(cbor.encode(op)) 136 + const hashB32 = uint8arrays.toString(hashOfGenesis, 'base32') 137 + const truncated = hashB32.slice(0, truncate) 138 + return `did:plc:${truncated}` 139 + } 140 + 141 + export const assureValidCreationOp = async (did: string, op: t.CreateOp) => { 142 + await assureValidSig([op.signingKey], op) 143 + const expectedDid = await hashAndFindDid(op, 64) 144 + if (!expectedDid.startsWith(did)) { 145 + throw new ServerError( 146 + 400, 147 + `Hash of genesis operation does not match DID identifier: ${expectedDid}`, 148 + ) 149 + } 150 + } 151 + 152 + export const assureValidSig = async ( 153 + allowedDids: string[], 154 + op: t.Operation, 155 + ) => { 156 + const { sig, ...opData } = op 157 + const sigBytes = uint8arrays.fromString(sig, 'base64url') 158 + const dataBytes = new Uint8Array(cbor.encode(opData)) 159 + let isValid = true 160 + for (const did of allowedDids) { 161 + isValid = await crypto.verifySignature(did, dataBytes, sigBytes) 162 + if (isValid) return 163 + } 164 + throw new ServerError(400, `Invalid signature on op: ${JSON.stringify(op)}`) 165 + } 166 + 167 + export const formatDidDoc = (data: t.DocumentData): t.DidDocument => { 168 + const context = ['https://www.w3.org/ns/did/v1'] 169 + 170 + const signingKeyInfo = formatKeyAndContext(data.signingKey) 171 + const recoveryKeyInfo = formatKeyAndContext(data.recoveryKey) 172 + const verificationMethods = [signingKeyInfo, recoveryKeyInfo] 173 + verificationMethods.forEach((method) => { 174 + if (!context.includes(method.context)) { 175 + context.push(method.context) 176 + } 177 + }) 178 + 179 + return { 180 + '@context': context, 181 + id: data.did, 182 + alsoKnownAs: [ensureHttpPrefix(data.handle)], 183 + verificationMethod: [ 184 + { 185 + id: `#signingKey`, 186 + type: signingKeyInfo.type, 187 + controller: data.did, 188 + publicKeyMultibase: signingKeyInfo.publicKeyMultibase, 189 + }, 190 + { 191 + id: `#recoveryKey`, 192 + type: recoveryKeyInfo.type, 193 + controller: data.did, 194 + publicKeyMultibase: recoveryKeyInfo.publicKeyMultibase, 195 + }, 196 + ], 197 + assertionMethod: [`#signingKey`], 198 + capabilityInvocation: [`#signingKey`], 199 + capabilityDelegation: [`#signingKey`], 200 + service: [ 201 + { 202 + id: `#atpPds`, 203 + type: 'AtpPersonalDataServer', 204 + serviceEndpoint: ensureHttpPrefix(data.atpPds), 205 + }, 206 + ], 207 + } 208 + } 209 + 210 + type KeyAndContext = { 211 + context: string 212 + type: string 213 + publicKeyMultibase 214 + } 215 + 216 + const formatKeyAndContext = (key: string): KeyAndContext => { 217 + let keyInfo 218 + try { 219 + keyInfo = crypto.parseDidKey(key) 220 + } catch (err) { 221 + throw new ServerError(400, `Could not parse did:key: ${err}`) 222 + } 223 + const { jwtAlg, keyBytes } = keyInfo 224 + 225 + if (jwtAlg === crypto.P256_JWT_ALG) { 226 + return { 227 + context: 'https://w3id.org/security/suites/ecdsa-2019/v1', 228 + type: 'EcdsaSecp256r1VerificationKey2019', 229 + publicKeyMultibase: `z${uint8arrays.toString(keyBytes, 'base58btc')}`, 230 + } 231 + } else if (jwtAlg === crypto.SECP256K1_JWT_ALG) { 232 + return { 233 + context: 'https://w3id.org/security/suites/secp256k1-2019/v1', 234 + type: 'EcdsaSecp256k1VerificationKey2019', 235 + publicKeyMultibase: `z${uint8arrays.toString(keyBytes, 'base58btc')}`, 236 + } 237 + } 238 + throw new ServerError(400, `Unsupported key type: ${jwtAlg}`) 239 + } 240 + 241 + export const ensureHttpPrefix = (str: string): string => { 242 + if (str.startsWith('http://') || str.startsWith('https://')) { 243 + return str 244 + } 245 + return `https://${str}` 246 + }
+4
packages/lib/src/index.ts
··· 1 + export * as document from './document' 2 + export * as operations from './operations' 3 + export * from './types' 4 + export * from './client'
+93
packages/lib/src/operations.ts
··· 1 + import * as cbor from '@ipld/dag-cbor' 2 + import * as uint8arrays from 'uint8arrays' 3 + import { Keypair, sha256 } from '@atproto/crypto' 4 + import * as t from './types' 5 + 6 + export const didForCreateOp = async (op: t.CreateOp, truncate = 24) => { 7 + const hashOfGenesis = await sha256(cbor.encode(op)) 8 + const hashB32 = uint8arrays.toString(hashOfGenesis, 'base32') 9 + const truncated = hashB32.slice(0, truncate) 10 + return `did:plc:${truncated}` 11 + } 12 + 13 + export const signOperation = async ( 14 + op: t.UnsignedOperation, 15 + signingKey: Keypair, 16 + ): Promise<t.Operation> => { 17 + const data = new Uint8Array(cbor.encode(op)) 18 + const sig = await signingKey.sign(data) 19 + return { 20 + ...op, 21 + sig: uint8arrays.toString(sig, 'base64url'), 22 + } 23 + } 24 + 25 + export const create = async ( 26 + signingKey: Keypair, 27 + recoveryKey: string, 28 + handle: string, 29 + service: string, 30 + ): Promise<t.CreateOp> => { 31 + const op: t.UnsignedCreateOp = { 32 + type: 'create', 33 + signingKey: signingKey.did(), 34 + recoveryKey, 35 + handle, 36 + service, 37 + prev: null, 38 + } 39 + const signed = await signOperation(op, signingKey) 40 + return signed as t.CreateOp 41 + } 42 + 43 + export const rotateSigningKey = async ( 44 + newKey: string, 45 + prev: string, 46 + signingKey: Keypair, 47 + ): Promise<t.Operation> => { 48 + const op: t.UnsignedRotateSigningKeyOp = { 49 + type: 'rotate_signing_key', 50 + key: newKey, 51 + prev, 52 + } 53 + return signOperation(op, signingKey) 54 + } 55 + 56 + export const rotateRecoveryKey = async ( 57 + newKey: string, 58 + prev: string, 59 + signingKey: Keypair, 60 + ): Promise<t.Operation> => { 61 + const op: t.UnsignedRotateRecoveryKeyOp = { 62 + type: 'rotate_recovery_key', 63 + key: newKey, 64 + prev, 65 + } 66 + return signOperation(op, signingKey) 67 + } 68 + 69 + export const updateHandle = async ( 70 + handle: string, 71 + prev: string, 72 + signingKey: Keypair, 73 + ): Promise<t.Operation> => { 74 + const op: t.UnsignedUpdateHandleOp = { 75 + type: 'update_handle', 76 + handle, 77 + prev, 78 + } 79 + return signOperation(op, signingKey) 80 + } 81 + 82 + export const updateAtpPds = async ( 83 + service: string, 84 + prev: string, 85 + signingKey: Keypair, 86 + ): Promise<t.Operation> => { 87 + const op: t.UnsignedUpdateAtpPdsOp = { 88 + type: 'update_atp_pds', 89 + service, 90 + prev, 91 + } 92 + return signOperation(op, signingKey) 93 + }
+153
packages/lib/src/types.ts
··· 1 + import * as z from 'zod' 2 + import * as mf from 'multiformats/cid' 3 + 4 + const cid = z 5 + .any() 6 + .refine((obj: unknown) => mf.CID.asCID(obj) !== null, { 7 + message: 'Not a CID', 8 + }) 9 + .transform((obj: unknown) => mf.CID.asCID(obj) as mf.CID) 10 + 11 + const documentData = z.object({ 12 + did: z.string(), 13 + signingKey: z.string(), 14 + recoveryKey: z.string(), 15 + handle: z.string(), 16 + atpPds: z.string(), 17 + }) 18 + export type DocumentData = z.infer<typeof documentData> 19 + 20 + const unsignedCreateOp = z.object({ 21 + type: z.literal('create'), 22 + signingKey: z.string(), 23 + recoveryKey: z.string(), 24 + handle: z.string(), 25 + service: z.string(), 26 + prev: z.null(), 27 + }) 28 + export type UnsignedCreateOp = z.infer<typeof unsignedCreateOp> 29 + const createOp = unsignedCreateOp.extend({ sig: z.string() }) 30 + export type CreateOp = z.infer<typeof createOp> 31 + 32 + const unsignedRotateSigningKeyOp = z.object({ 33 + type: z.literal('rotate_signing_key'), 34 + key: z.string(), 35 + prev: z.string(), 36 + }) 37 + export type UnsignedRotateSigningKeyOp = z.infer< 38 + typeof unsignedRotateSigningKeyOp 39 + > 40 + const rotateSigningKeyOp = unsignedRotateSigningKeyOp.extend({ 41 + sig: z.string(), 42 + }) 43 + export type RotateSigningKeyOp = z.infer<typeof rotateSigningKeyOp> 44 + 45 + const unsignedRotateRecoveryKeyOp = z.object({ 46 + type: z.literal('rotate_recovery_key'), 47 + key: z.string(), 48 + prev: z.string(), 49 + }) 50 + export type UnsignedRotateRecoveryKeyOp = z.infer< 51 + typeof unsignedRotateRecoveryKeyOp 52 + > 53 + const rotateRecoveryKeyOp = unsignedRotateRecoveryKeyOp.extend({ 54 + sig: z.string(), 55 + }) 56 + export type RotateRecoveryKeyOp = z.infer<typeof rotateRecoveryKeyOp> 57 + 58 + const unsignedUpdateHandleOp = z.object({ 59 + type: z.literal('update_handle'), 60 + handle: z.string(), 61 + prev: z.string(), 62 + }) 63 + export type UnsignedUpdateHandleOp = z.infer<typeof unsignedUpdateHandleOp> 64 + const updateHandleOp = unsignedUpdateHandleOp.extend({ 65 + sig: z.string(), 66 + }) 67 + export type UpdateHandleOp = z.infer<typeof updateHandleOp> 68 + 69 + const unsignedUpdateAtpPdsOp = z.object({ 70 + type: z.literal('update_atp_pds'), 71 + service: z.string(), 72 + prev: z.string(), 73 + }) 74 + export type UnsignedUpdateAtpPdsOp = z.infer<typeof unsignedUpdateAtpPdsOp> 75 + const updateAtpPdsOp = unsignedUpdateAtpPdsOp.extend({ 76 + sig: z.string(), 77 + }) 78 + export type UpdateAtpPdsOp = z.infer<typeof updateAtpPdsOp> 79 + 80 + const updateOperation = z.union([ 81 + rotateSigningKeyOp, 82 + rotateRecoveryKeyOp, 83 + updateHandleOp, 84 + updateAtpPdsOp, 85 + ]) 86 + export type UpdateOperation = z.infer<typeof updateOperation> 87 + 88 + const operation = z.union([createOp, updateOperation]) 89 + export type Operation = z.infer<typeof operation> 90 + 91 + const unsignedUpdateOperation = z.union([ 92 + unsignedRotateSigningKeyOp, 93 + unsignedRotateRecoveryKeyOp, 94 + unsignedUpdateHandleOp, 95 + unsignedUpdateAtpPdsOp, 96 + ]) 97 + export type UnsignedUpdateOperation = z.infer<typeof unsignedUpdateOperation> 98 + const unsignedOperation = z.union([unsignedCreateOp, unsignedUpdateOperation]) 99 + export type UnsignedOperation = z.infer<typeof unsignedOperation> 100 + 101 + export const indexedOperation = z.object({ 102 + did: z.string(), 103 + operation: operation, 104 + cid: cid, 105 + nullified: z.boolean(), 106 + createdAt: z.date(), 107 + }) 108 + export type IndexedOperation = z.infer<typeof indexedOperation> 109 + 110 + export const didDocVerificationMethod = z.object({ 111 + id: z.string(), 112 + type: z.string(), 113 + controller: z.string(), 114 + publicKeyMultibase: z.string(), 115 + }) 116 + 117 + export const didDocService = z.object({ 118 + id: z.string(), 119 + type: z.string(), 120 + serviceEndpoint: z.string(), 121 + }) 122 + 123 + export const didDocument = z.object({ 124 + '@context': z.array(z.string()), 125 + id: z.string(), 126 + alsoKnownAs: z.array(z.string()), 127 + verificationMethod: z.array(didDocVerificationMethod), 128 + assertionMethod: z.array(z.string()), 129 + capabilityInvocation: z.array(z.string()), 130 + capabilityDelegation: z.array(z.string()), 131 + service: z.array(didDocService), 132 + }) 133 + export type DidDocument = z.infer<typeof didDocument> 134 + 135 + export const def = { 136 + documentData, 137 + unsignedCreateOp, 138 + createOp, 139 + unsignedRotateSigningKeyOp, 140 + rotateSigningKeyOp, 141 + unsignedRotateRecoveryKeyOp, 142 + rotateRecoveryKeyOp, 143 + unsignedUpdateHandleOp, 144 + updateHandleOp, 145 + unsignedUpdateAtpPdsOp, 146 + updateAtpPdsOp, 147 + updateOperation, 148 + operation, 149 + unsignedUpdateOperation, 150 + unsignedOperation, 151 + indexedOperation, 152 + didDocument, 153 + }
+289
packages/lib/tests/document.test.ts
··· 1 + import { check, cidForCbor } from '@atproto/common' 2 + import { EcdsaKeypair, parseDidKey, Secp256k1Keypair } from '@atproto/crypto' 3 + import * as uint8arrays from 'uint8arrays' 4 + import * as document from '../src/document' 5 + import * as operations from '../src/operations' 6 + import * as t from '../src/types' 7 + 8 + describe('plc DID document', () => { 9 + const ops: t.Operation[] = [] 10 + 11 + let signingKey: EcdsaKeypair 12 + let recoveryKey: Secp256k1Keypair 13 + let did: string 14 + let handle = 'alice.example.com' 15 + let atpPds = 'https://example.com' 16 + 17 + let oldSigningKey: EcdsaKeypair 18 + let oldRecoveryKey: Secp256k1Keypair 19 + 20 + beforeAll(async () => { 21 + signingKey = await EcdsaKeypair.create() 22 + recoveryKey = await Secp256k1Keypair.create() 23 + }) 24 + 25 + it('creates a valid create op', async () => { 26 + const createOp = await operations.create( 27 + signingKey, 28 + recoveryKey.did(), 29 + handle, 30 + atpPds, 31 + ) 32 + const isValid = check.is(createOp, t.def.createOp) 33 + expect(isValid).toBeTruthy() 34 + ops.push(createOp) 35 + did = await operations.didForCreateOp(createOp) 36 + }) 37 + 38 + it('parses an operation log with no updates', async () => { 39 + const doc = await document.validateOperationLog(did, ops) 40 + 41 + expect(doc.did).toEqual(did) 42 + expect(doc.signingKey).toEqual(signingKey.did()) 43 + expect(doc.recoveryKey).toEqual(recoveryKey.did()) 44 + expect(doc.handle).toEqual(handle) 45 + expect(doc.atpPds).toEqual(atpPds) 46 + }) 47 + 48 + it('allows for updating handle', async () => { 49 + handle = 'ali.example2.com' 50 + const prev = await cidForCbor(ops[ops.length - 1]) 51 + const op = await operations.updateHandle( 52 + handle, 53 + prev.toString(), 54 + signingKey, 55 + ) 56 + ops.push(op) 57 + 58 + const doc = await document.validateOperationLog(did, ops) 59 + expect(doc.did).toEqual(did) 60 + expect(doc.signingKey).toEqual(signingKey.did()) 61 + expect(doc.recoveryKey).toEqual(recoveryKey.did()) 62 + expect(doc.handle).toEqual(handle) 63 + expect(doc.atpPds).toEqual(atpPds) 64 + }) 65 + 66 + it('allows for updating atpPds', async () => { 67 + atpPds = 'https://example2.com' 68 + const prev = await cidForCbor(ops[ops.length - 1]) 69 + const op = await operations.updateAtpPds( 70 + atpPds, 71 + prev.toString(), 72 + signingKey, 73 + ) 74 + ops.push(op) 75 + 76 + const doc = await document.validateOperationLog(did, ops) 77 + expect(doc.did).toEqual(did) 78 + expect(doc.signingKey).toEqual(signingKey.did()) 79 + expect(doc.recoveryKey).toEqual(recoveryKey.did()) 80 + expect(doc.handle).toEqual(handle) 81 + expect(doc.atpPds).toEqual(atpPds) 82 + }) 83 + 84 + it('allows for rotating signingKey', async () => { 85 + const newSigningKey = await EcdsaKeypair.create() 86 + const prev = await cidForCbor(ops[ops.length - 1]) 87 + const op = await operations.rotateSigningKey( 88 + newSigningKey.did(), 89 + prev.toString(), 90 + signingKey, 91 + ) 92 + ops.push(op) 93 + oldSigningKey = signingKey 94 + signingKey = newSigningKey 95 + 96 + const doc = await document.validateOperationLog(did, ops) 97 + expect(doc.did).toEqual(did) 98 + expect(doc.signingKey).toEqual(signingKey.did()) 99 + expect(doc.recoveryKey).toEqual(recoveryKey.did()) 100 + expect(doc.handle).toEqual(handle) 101 + expect(doc.atpPds).toEqual(atpPds) 102 + }) 103 + 104 + it('no longer allows operations from old signing key', async () => { 105 + const prev = await cidForCbor(ops[ops.length - 1]) 106 + const op = await operations.updateHandle( 107 + 'bob', 108 + prev.toString(), 109 + oldSigningKey, 110 + ) 111 + expect(document.validateOperationLog(did, [...ops, op])).rejects.toThrow() 112 + }) 113 + 114 + it('allows for rotating recoveryKey', async () => { 115 + const newRecoveryKey = await Secp256k1Keypair.create() 116 + const prev = await cidForCbor(ops[ops.length - 1]) 117 + const op = await operations.rotateRecoveryKey( 118 + newRecoveryKey.did(), 119 + prev.toString(), 120 + signingKey, 121 + ) 122 + ops.push(op) 123 + oldRecoveryKey = recoveryKey 124 + recoveryKey = newRecoveryKey 125 + 126 + const doc = await document.validateOperationLog(did, ops) 127 + expect(doc.did).toEqual(did) 128 + expect(doc.signingKey).toEqual(signingKey.did()) 129 + expect(doc.recoveryKey).toEqual(recoveryKey.did()) 130 + expect(doc.handle).toEqual(handle) 131 + expect(doc.atpPds).toEqual(atpPds) 132 + }) 133 + 134 + it('no longer allows operations from old recovery key', async () => { 135 + const prev = await cidForCbor(ops[ops.length - 1]) 136 + const op = await operations.updateHandle( 137 + 'bob', 138 + prev.toString(), 139 + oldRecoveryKey, 140 + ) 141 + expect(document.validateOperationLog(did, [...ops, op])).rejects.toThrow() 142 + }) 143 + 144 + it('it allows recovery key to rotate signing key', async () => { 145 + const newKey = await EcdsaKeypair.create() 146 + const prev = await cidForCbor(ops[ops.length - 1]) 147 + const op = await operations.rotateSigningKey( 148 + newKey.did(), 149 + prev.toString(), 150 + recoveryKey, 151 + ) 152 + ops.push(op) 153 + signingKey = newKey 154 + const doc = await document.validateOperationLog(did, ops) 155 + expect(doc.signingKey).toEqual(newKey.did()) 156 + }) 157 + 158 + it('it allows recovery key to rotate recovery key', async () => { 159 + const newKey = await Secp256k1Keypair.create() 160 + const prev = await cidForCbor(ops[ops.length - 1]) 161 + const op = await operations.rotateRecoveryKey( 162 + newKey.did(), 163 + prev.toString(), 164 + recoveryKey, 165 + ) 166 + ops.push(op) 167 + recoveryKey = newKey 168 + const doc = await document.validateOperationLog(did, ops) 169 + expect(doc.recoveryKey).toEqual(newKey.did()) 170 + }) 171 + 172 + it('it allows recovery key to update handle', async () => { 173 + handle = 'ally.example3.com' 174 + const prev = await cidForCbor(ops[ops.length - 1]) 175 + const op = await operations.updateHandle( 176 + handle, 177 + prev.toString(), 178 + recoveryKey, 179 + ) 180 + ops.push(op) 181 + const doc = await document.validateOperationLog(did, ops) 182 + expect(doc.handle).toEqual(handle) 183 + }) 184 + 185 + it('it allows recovery key to update atpPds', async () => { 186 + atpPds = 'https://example3.com' 187 + const prev = await cidForCbor(ops[ops.length - 1]) 188 + const op = await operations.updateAtpPds( 189 + atpPds, 190 + prev.toString(), 191 + recoveryKey, 192 + ) 193 + ops.push(op) 194 + const doc = await document.validateOperationLog(did, ops) 195 + expect(doc.atpPds).toEqual(atpPds) 196 + }) 197 + 198 + it('requires operations to be in order', async () => { 199 + const prev = await cidForCbor(ops[ops.length - 2]) 200 + const op = await operations.updateAtpPds( 201 + 'foobar.com', 202 + prev.toString(), 203 + signingKey, 204 + ) 205 + expect(document.validateOperationLog(did, [...ops, op])).rejects.toThrow() 206 + }) 207 + 208 + it('does not allow a create operation in the middle of the log', async () => { 209 + const op = await operations.create( 210 + signingKey, 211 + recoveryKey.did(), 212 + handle, 213 + atpPds, 214 + ) 215 + expect(document.validateOperationLog(did, [...ops, op])).rejects.toThrow() 216 + }) 217 + 218 + it('requires that the log start with a create operation', async () => { 219 + const rest = ops.slice(1) 220 + expect(document.validateOperationLog(did, rest)).rejects.toThrow() 221 + }) 222 + 223 + it('formats a valid DID document', async () => { 224 + const data = await document.validateOperationLog(did, ops) 225 + const doc = await document.formatDidDoc(data) 226 + expect(doc['@context']).toEqual([ 227 + 'https://www.w3.org/ns/did/v1', 228 + 'https://w3id.org/security/suites/ecdsa-2019/v1', 229 + 'https://w3id.org/security/suites/secp256k1-2019/v1', 230 + ]) 231 + expect(doc.id).toEqual(did) 232 + expect(doc.alsoKnownAs).toEqual([`https://${handle}`]) 233 + 234 + expect(doc.verificationMethod.length).toBe(2) 235 + expect(doc.verificationMethod[0].id).toEqual('#signingKey') 236 + expect(doc.verificationMethod[0].type).toEqual( 237 + 'EcdsaSecp256r1VerificationKey2019', 238 + ) 239 + expect(doc.verificationMethod[0].controller).toEqual(did) 240 + const parsedSigningKey = parseDidKey(signingKey.did()) 241 + const signingKeyMultibase = 242 + 'z' + uint8arrays.toString(parsedSigningKey.keyBytes, 'base58btc') 243 + expect(doc.verificationMethod[0].publicKeyMultibase).toEqual( 244 + signingKeyMultibase, 245 + ) 246 + expect(doc.verificationMethod[1].id).toEqual('#recoveryKey') 247 + expect(doc.verificationMethod[1].type).toEqual( 248 + 'EcdsaSecp256k1VerificationKey2019', 249 + ) 250 + expect(doc.verificationMethod[1].controller).toEqual(did) 251 + const parsedRecoveryKey = parseDidKey(recoveryKey.did()) 252 + const recoveryKeyMultibase = 253 + 'z' + uint8arrays.toString(parsedRecoveryKey.keyBytes, 'base58btc') 254 + expect(doc.verificationMethod[1].publicKeyMultibase).toEqual( 255 + recoveryKeyMultibase, 256 + ) 257 + 258 + expect(doc.assertionMethod).toEqual(['#signingKey']) 259 + expect(doc.capabilityInvocation).toEqual(['#signingKey']) 260 + expect(doc.capabilityDelegation).toEqual(['#signingKey']) 261 + expect(doc.service.length).toBe(1) 262 + expect(doc.service[0].id).toEqual('#atpPds') 263 + expect(doc.service[0].type).toEqual('AtpPersonalDataServer') 264 + expect(doc.service[0].serviceEndpoint).toEqual(atpPds) 265 + }) 266 + 267 + it('formats a valid DID document regardless of leading https://', async () => { 268 + handle = 'https://alice.example.com' 269 + const prev = await cidForCbor(ops[ops.length - 1]) 270 + const op1 = await operations.updateHandle( 271 + handle, 272 + prev.toString(), 273 + signingKey, 274 + ) 275 + atpPds = 'example.com' 276 + const prev2 = await cidForCbor(op1) 277 + const op2 = await operations.updateAtpPds( 278 + atpPds, 279 + prev2.toString(), 280 + signingKey, 281 + ) 282 + ops.push(op1) 283 + ops.push(op2) 284 + const data = await document.validateOperationLog(did, ops) 285 + const doc = await document.formatDidDoc(data) 286 + expect(doc.alsoKnownAs).toEqual([handle]) 287 + expect(doc.service[0].serviceEndpoint).toEqual(`https://${atpPds}`) 288 + }) 289 + })
+4
packages/lib/tsconfig.build.json
··· 1 + { 2 + "extends": "./tsconfig.json", 3 + "exclude": ["**/*.spec.ts", "**/*.test.ts"] 4 + }
+9
packages/lib/tsconfig.json
··· 1 + { 2 + "extends": "../../tsconfig.json", 3 + "compilerOptions": { 4 + "rootDir": "./src", 5 + "outDir": "./dist", // Your outDir, 6 + "emitDeclarationOnly": true, 7 + }, 8 + "include": ["./src", "__tests__/**/**.ts"] 9 + }
+14
packages/lib/update-pkg.js
··· 1 + const pkgJson = require('@npmcli/package-json') 2 + 3 + if (process.argv.includes('--update-main-to-dist')) { 4 + return pkgJson 5 + .load(__dirname) 6 + .then((pkg) => pkg.update({ main: 'dist/index.js' })) 7 + .then((pkg) => pkg.save()) 8 + } 9 + if (process.argv.includes('--update-main-to-src')) { 10 + return pkgJson 11 + .load(__dirname) 12 + .then((pkg) => pkg.update({ main: 'src/index.ts' })) 13 + .then((pkg) => pkg.save()) 14 + }
+1
packages/server/.env
··· 1 + DATABASE_LOC=""
+34
packages/server/Dockerfile
··· 1 + FROM node:18-alpine as build 2 + 3 + # Move files into the image and install 4 + WORKDIR /app 5 + COPY ./*.* ./ 6 + # NOTE plc's transitive dependencies go here: if that changes, this needs to be updated. 7 + COPY ./packages/lib ./packages/lib 8 + RUN ATP_BUILD_SHALLOW=true yarn install --frozen-lockfile > /dev/null 9 + RUN yarn workspaces run build --update-main-to-dist > /dev/null 10 + # Remove non-prod deps 11 + RUN yarn install --production --ignore-scripts --prefer-offline > /dev/null 12 + 13 + WORKDIR packages/plc/service 14 + RUN yarn install --frozen-lockfile > /dev/null 15 + 16 + # Uses assets from build stage to reduce build size 17 + FROM node:18-alpine 18 + 19 + # RUN npm install -g yarn 20 + RUN apk add --update dumb-init 21 + 22 + # Avoid zombie processes, handle signal forwarding 23 + ENTRYPOINT ["dumb-init", "--"] 24 + 25 + WORKDIR /app/packages/plc/service 26 + COPY --from=build /app /app 27 + 28 + EXPOSE 3000 29 + ENV PORT=3000 30 + ENV NODE_ENV=production 31 + 32 + # https://github.com/nodejs/docker-node/blob/master/docs/BestPractices.md#non-root-user 33 + USER node 34 + CMD ["node", "--enable-source-maps", "index.js"]
+1
packages/server/README.md
··· 1 + # DID Placeholder Server
+22
packages/server/bin/did-create.ts
··· 1 + #!/usr/bin/env ts-node 2 + 3 + import { EcdsaKeypair } from '@atproto/crypto' 4 + import { Client } from '@did-plc/lib' 5 + 6 + export async function main() { 7 + const url = process.argv[2] 8 + const handle = process.argv[3] 9 + console.log({ url, handle }) 10 + const signingKey = await EcdsaKeypair.create() 11 + const recoveryKey = await EcdsaKeypair.create() 12 + const client = new Client(url) 13 + const did = await client.createDid( 14 + signingKey, 15 + recoveryKey.did(), 16 + handle, 17 + handle.split('.').slice(1).join('.'), 18 + ) 19 + console.log(`Created did: ${url}/${did}`) 20 + } 21 + 22 + main()
+38
packages/server/bin/migration-create.ts
··· 1 + #!/usr/bin/env ts-node 2 + 3 + import * as fs from 'fs/promises' 4 + import * as path from 'path' 5 + 6 + export async function main() { 7 + const now = new Date() 8 + const prefix = now.toISOString().replace(/[^a-z0-9]/gi, '') // Order of migrations matches alphabetical order of their names 9 + const name = process.argv[2] 10 + if (!name || !name.match(/^[a-z0-9-]+$/)) { 11 + process.exitCode = 1 12 + return console.error( 13 + 'Must pass a migration name consisting of lowercase digits, numbers, and dashes.', 14 + ) 15 + } 16 + const filename = `${prefix}-${name}` 17 + const dir = path.join(__dirname, '..', 'src', 'server', 'migrations') 18 + 19 + await fs.writeFile(path.join(dir, `${filename}.ts`), template, { flag: 'wx' }) 20 + await fs.writeFile( 21 + path.join(dir, 'index.ts'), 22 + `export * as _${prefix} from './${filename}'\n`, 23 + { flag: 'a' }, 24 + ) 25 + } 26 + 27 + const template = `import { Kysely } from 'kysely' 28 + 29 + export async function up(db: Kysely<unknown>): Promise<void> { 30 + // Migration code 31 + } 32 + 33 + export async function down(db: Kysely<unknown>): Promise<void> { 34 + // Migration code 35 + } 36 + ` 37 + 38 + main()
+33
packages/server/build.js
··· 1 + const pkgJson = require('@npmcli/package-json') 2 + const { nodeExternalsPlugin } = require('esbuild-node-externals') 3 + 4 + const buildShallow = 5 + process.argv.includes('--shallow') || process.env.ATP_BUILD_SHALLOW === 'true' 6 + 7 + if (process.argv.includes('--update-main-to-dist')) { 8 + return pkgJson 9 + .load(__dirname) 10 + .then((pkg) => pkg.update({ main: 'dist/index.js' })) 11 + .then((pkg) => pkg.save()) 12 + } 13 + 14 + require('esbuild').build({ 15 + logLevel: 'info', 16 + entryPoints: [ 17 + 'src/index.ts', 18 + 'src/bin.ts', 19 + 'src/db.ts', 20 + ], 21 + bundle: true, 22 + sourcemap: true, 23 + treeShaking: true, 24 + outdir: 'dist', 25 + platform: 'node', 26 + assetNames: 'src/static', 27 + plugins: buildShallow ? [nodeExternalsPlugin()] : [], 28 + external: [ 29 + 'better-sqlite3', 30 + // Referenced in pg driver, but optional and we don't use it 31 + 'pg-native', 32 + ], 33 + })
+5
packages/server/example.dev.env
··· 1 + DB_POSTGRES_URL="postgres://bsky:yksb@localhost/plc_dev" 2 + DEBUG_MODE=1 3 + LOG_ENABLED="true" 4 + LOG_LEVEL=debug 5 + LOG_DESTINATION=1
+6
packages/server/jest.config.js
··· 1 + const base = require('../../jest.config.base.js') 2 + 3 + module.exports = { 4 + ...base, 5 + displayName: 'server', 6 + }
+46
packages/server/package.json
··· 1 + { 2 + "name": "@did-plc/server", 3 + "version": "0.0.1", 4 + "main": "dist/index.js", 5 + "license": "MIT", 6 + "scripts": { 7 + "start": "node dist/bin.js", 8 + "test": "jest", 9 + "test:pg": "../../pg/with-test-db.sh jest", 10 + "test:log": "cat test.log | pino-pretty", 11 + "prettier": "prettier --check src/", 12 + "prettier:fix": "prettier --write src/", 13 + "lint": "eslint . --ext .ts,.tsx", 14 + "lint:fix": "yarn lint --fix", 15 + "verify": "run-p prettier lint", 16 + "verify:fix": "yarn prettier:fix && yarn lint:fix", 17 + "build": "node ./build.js", 18 + "postbuild": "tsc --build tsconfig.build.json", 19 + "migration:create": "ts-node ./bin/migration-create.ts", 20 + "did:create": "ts-node ./bin/did-create.ts", 21 + "update-main-to-dist": "node ./update-pkg.js --update-main-to-dist", 22 + "update-main-to-src": "node ./update-pkg.js --update-main-to-src", 23 + "prepublish": "npm run update-main-to-dist", 24 + "postpublish": "npm run update-main-to-src" 25 + }, 26 + "dependencies": { 27 + "@atproto/common": "0.1.0", 28 + "@atproto/crypto": "0.1.0", 29 + "@did-plc/lib": "*", 30 + "axios": "^0.27.2", 31 + "better-sqlite3": "^8.1.0", 32 + "cors": "^2.8.5", 33 + "express": "^4.18.2", 34 + "express-async-errors": "^3.1.1", 35 + "http-terminator": "^3.2.0", 36 + "kysely": "^0.23.4", 37 + "multiformats": "^9.6.4", 38 + "pg": "^8.9.0", 39 + "pino": "^8.11.0", 40 + "pino-http": "^8.3.3" 41 + }, 42 + "devDependencies": { 43 + "@types/pg": "^8.6.5", 44 + "eslint-plugin-prettier": "^4.2.1" 45 + } 46 + }
+37
packages/server/service/index.js
··· 1 + 'use strict' /* eslint-disable */ 2 + 3 + require('dd-trace/init') // Only works with commonjs 4 + const { Database, PlcServer } = require('..') 5 + 6 + const main = async () => { 7 + const version = process.env.PLC_VERSION 8 + const dbCreds = JSON.parse(process.env.DB_CREDS_JSON) 9 + const dbMigrateCreds = JSON.parse(process.env.DB_MIGRATE_CREDS_JSON) 10 + const dbSchema = process.env.DB_SCHEMA || undefined 11 + // Migrate using credentialed user 12 + const migrateDb = Database.postgres({ 13 + url: pgUrl(dbMigrateCreds), 14 + schema: dbSchema, 15 + }) 16 + await migrateDb.migrateToLatestOrThrow() 17 + await migrateDb.close() 18 + // Use lower-credentialed user to run the app 19 + const db = Database.postgres({ 20 + url: pgUrl(dbCreds), 21 + schema: dbSchema, 22 + }) 23 + const port = parseInt(process.env.PORT) 24 + const plc = PlcServer.create({ db, port, version }) 25 + await plc.start() 26 + // Graceful shutdown (see also https://aws.amazon.com/blogs/containers/graceful-shutdowns-with-ecs/) 27 + process.on('SIGTERM', async () => { 28 + await plc.destroy() 29 + }) 30 + } 31 + 32 + const pgUrl = ({ username, password, host, port }) => { 33 + const enc = encodeURIComponent 34 + return `postgresql://${username}:${enc(password)}@${host}:${port}/postgres` 35 + } 36 + 37 + main()
+7
packages/server/service/package.json
··· 1 + { 2 + "name": "plc-service", 3 + "private": true, 4 + "dependencies": { 5 + "dd-trace": "^3.8.0" 6 + } 7 + }
+320
packages/server/service/yarn.lock
··· 1 + # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 + # yarn lockfile v1 3 + 4 + 5 + "@datadog/native-appsec@2.0.0": 6 + version "2.0.0" 7 + resolved "https://registry.yarnpkg.com/@datadog/native-appsec/-/native-appsec-2.0.0.tgz#ad65ba19bfd68e6b6c6cf64bb8ef55d099af8edc" 8 + integrity sha512-XHARZ6MVgbnfOUO6/F3ZoZ7poXHJCNYFlgcyS2Xetuk9ITA5bfcooX2B2F7tReVB+RLJ+j8bsm0t55SyF04KDw== 9 + dependencies: 10 + node-gyp-build "^3.9.0" 11 + 12 + "@datadog/native-iast-rewriter@1.1.2": 13 + version "1.1.2" 14 + resolved "https://registry.yarnpkg.com/@datadog/native-iast-rewriter/-/native-iast-rewriter-1.1.2.tgz#793cbf92d218ec80d645be0830023656b81018ea" 15 + integrity sha512-pigRfRtAjZjMjqIXyXb98S4aDnuHz/EmqpoxAajFZsNjBLM87YonwSY5zoBdCsOyA46ddKOJRoCQd5ZalpOFMQ== 16 + dependencies: 17 + node-gyp-build "^4.5.0" 18 + 19 + "@datadog/native-iast-taint-tracking@1.1.0": 20 + version "1.1.0" 21 + resolved "https://registry.yarnpkg.com/@datadog/native-iast-taint-tracking/-/native-iast-taint-tracking-1.1.0.tgz#8f7d0016157b32dbf5c01b15b8afb1c4286b4a18" 22 + integrity sha512-TOrngpt6Qh52zWFOz1CkFXw0g43rnuUziFBtIMUsOLGzSHr9wdnTnE6HAyuvKy3f3ecAoZESlMfilGRKP93hXQ== 23 + dependencies: 24 + node-gyp-build "^3.9.0" 25 + 26 + "@datadog/native-metrics@^1.5.0": 27 + version "1.5.0" 28 + resolved "https://registry.yarnpkg.com/@datadog/native-metrics/-/native-metrics-1.5.0.tgz#e71b6b6d65f4bd58dfdffab2737890e8eef34584" 29 + integrity sha512-K63XMDx74RLhOpM8I9GGZR9ft0CNNB/RkjYPLHcVGvVnBR47zmWE2KFa7Yrtzjbk73+88PXI4nzqLyR3PJsaIQ== 30 + dependencies: 31 + node-gyp-build "^3.9.0" 32 + 33 + "@datadog/pprof@^1.1.1": 34 + version "1.1.1" 35 + resolved "https://registry.yarnpkg.com/@datadog/pprof/-/pprof-1.1.1.tgz#17e86035140523ac3a96f3662e5dd29822042d61" 36 + integrity sha512-5lYXUpikQhrJwzODtJ7aFM0oKmPccISnTCecuWhjxIj4/7UJv0DamkLak634bgEW+kiChgkKFDapHSesuXRDXQ== 37 + dependencies: 38 + delay "^5.0.0" 39 + findit2 "^2.2.3" 40 + node-gyp-build "^3.9.0" 41 + p-limit "^3.1.0" 42 + pify "^5.0.0" 43 + protobufjs "^7.0.0" 44 + source-map "^0.7.3" 45 + split "^1.0.1" 46 + 47 + "@datadog/sketches-js@^2.1.0": 48 + version "2.1.0" 49 + resolved "https://registry.yarnpkg.com/@datadog/sketches-js/-/sketches-js-2.1.0.tgz#8c7e8028a5fc22ad102fa542b0a446c956830455" 50 + integrity sha512-smLocSfrt3s53H/XSVP3/1kP42oqvrkjUPtyaFd1F79ux24oE31BKt+q0c6lsa6hOYrFzsIwyc5GXAI5JmfOew== 51 + 52 + "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": 53 + version "1.1.2" 54 + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" 55 + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== 56 + 57 + "@protobufjs/base64@^1.1.2": 58 + version "1.1.2" 59 + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" 60 + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== 61 + 62 + "@protobufjs/codegen@^2.0.4": 63 + version "2.0.4" 64 + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" 65 + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== 66 + 67 + "@protobufjs/eventemitter@^1.1.0": 68 + version "1.1.0" 69 + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" 70 + integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== 71 + 72 + "@protobufjs/fetch@^1.1.0": 73 + version "1.1.0" 74 + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" 75 + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== 76 + dependencies: 77 + "@protobufjs/aspromise" "^1.1.1" 78 + "@protobufjs/inquire" "^1.1.0" 79 + 80 + "@protobufjs/float@^1.0.2": 81 + version "1.0.2" 82 + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" 83 + integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== 84 + 85 + "@protobufjs/inquire@^1.1.0": 86 + version "1.1.0" 87 + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" 88 + integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== 89 + 90 + "@protobufjs/path@^1.1.2": 91 + version "1.1.2" 92 + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" 93 + integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== 94 + 95 + "@protobufjs/pool@^1.1.0": 96 + version "1.1.0" 97 + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" 98 + integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== 99 + 100 + "@protobufjs/utf8@^1.1.0": 101 + version "1.1.0" 102 + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" 103 + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== 104 + 105 + "@types/node@>=13.7.0": 106 + version "18.13.0" 107 + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.13.0.tgz#0400d1e6ce87e9d3032c19eb6c58205b0d3f7850" 108 + integrity sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg== 109 + 110 + crypto-randomuuid@^1.0.0: 111 + version "1.0.0" 112 + resolved "https://registry.yarnpkg.com/crypto-randomuuid/-/crypto-randomuuid-1.0.0.tgz#acf583e5e085e867ae23e107ff70279024f9e9e7" 113 + integrity sha512-/RC5F4l1SCqD/jazwUF6+t34Cd8zTSAGZ7rvvZu1whZUhD2a5MOGKjSGowoGcpj/cbVZk1ZODIooJEQQq3nNAA== 114 + 115 + dd-trace@^3.8.0: 116 + version "3.13.2" 117 + resolved "https://registry.yarnpkg.com/dd-trace/-/dd-trace-3.13.2.tgz#95b1ec480ab9ac406e1da7591a8c6f678d3799fd" 118 + integrity sha512-POO9nEcAufe5pgp2xV1X3PfWip6wh+6TpEcRSlSgZJCIIMvWVCkcIVL/J2a6KAZq6V3Yjbkl8Ktfe+MOzQf5kw== 119 + dependencies: 120 + "@datadog/native-appsec" "2.0.0" 121 + "@datadog/native-iast-rewriter" "1.1.2" 122 + "@datadog/native-iast-taint-tracking" "1.1.0" 123 + "@datadog/native-metrics" "^1.5.0" 124 + "@datadog/pprof" "^1.1.1" 125 + "@datadog/sketches-js" "^2.1.0" 126 + crypto-randomuuid "^1.0.0" 127 + diagnostics_channel "^1.1.0" 128 + ignore "^5.2.0" 129 + import-in-the-middle "^1.3.4" 130 + ipaddr.js "^2.0.1" 131 + istanbul-lib-coverage "3.2.0" 132 + koalas "^1.0.2" 133 + limiter "^1.1.4" 134 + lodash.kebabcase "^4.1.1" 135 + lodash.pick "^4.4.0" 136 + lodash.sortby "^4.7.0" 137 + lodash.uniq "^4.5.0" 138 + lru-cache "^7.14.0" 139 + methods "^1.1.2" 140 + module-details-from-path "^1.0.3" 141 + node-abort-controller "^3.0.1" 142 + opentracing ">=0.12.1" 143 + path-to-regexp "^0.1.2" 144 + protobufjs "^7.1.2" 145 + retry "^0.10.1" 146 + semver "^5.5.0" 147 + 148 + delay@^5.0.0: 149 + version "5.0.0" 150 + resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" 151 + integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== 152 + 153 + diagnostics_channel@^1.1.0: 154 + version "1.1.0" 155 + resolved "https://registry.yarnpkg.com/diagnostics_channel/-/diagnostics_channel-1.1.0.tgz#bd66c49124ce3bac697dff57466464487f57cea5" 156 + integrity sha512-OE1ngLDjSBPG6Tx0YATELzYzy3RKHC+7veQ8gLa8yS7AAgw65mFbVdcsu3501abqOZCEZqZyAIemB0zXlqDSuw== 157 + 158 + findit2@^2.2.3: 159 + version "2.2.3" 160 + resolved "https://registry.yarnpkg.com/findit2/-/findit2-2.2.3.tgz#58a466697df8a6205cdfdbf395536b8bd777a5f6" 161 + integrity sha512-lg/Moejf4qXovVutL0Lz4IsaPoNYMuxt4PA0nGqFxnJ1CTTGGlEO2wKgoDpwknhvZ8k4Q2F+eesgkLbG2Mxfog== 162 + 163 + ignore@^5.2.0: 164 + version "5.2.4" 165 + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" 166 + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== 167 + 168 + import-in-the-middle@^1.3.4: 169 + version "1.3.4" 170 + resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-1.3.4.tgz#7074bbd4e84e8cdafd1eae400b04e6fe252a0768" 171 + integrity sha512-TUXqqEFacJ2DWAeYOhHwGZTMJtFxFVw0C1pYA+AXmuWXZGnBqUhHdtVrSkSbW5D7k2yriBG45j23iH9TRtI+bQ== 172 + dependencies: 173 + module-details-from-path "^1.0.3" 174 + 175 + ipaddr.js@^2.0.1: 176 + version "2.0.1" 177 + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" 178 + integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== 179 + 180 + istanbul-lib-coverage@3.2.0: 181 + version "3.2.0" 182 + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" 183 + integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== 184 + 185 + koalas@^1.0.2: 186 + version "1.0.2" 187 + resolved "https://registry.yarnpkg.com/koalas/-/koalas-1.0.2.tgz#318433f074235db78fae5661a02a8ca53ee295cd" 188 + integrity sha512-RYhBbYaTTTHId3l6fnMZc3eGQNW6FVCqMG6AMwA5I1Mafr6AflaXeoi6x3xQuATRotGYRLk6+1ELZH4dstFNOA== 189 + 190 + limiter@^1.1.4: 191 + version "1.1.5" 192 + resolved "https://registry.yarnpkg.com/limiter/-/limiter-1.1.5.tgz#8f92a25b3b16c6131293a0cc834b4a838a2aa7c2" 193 + integrity sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA== 194 + 195 + lodash.kebabcase@^4.1.1: 196 + version "4.1.1" 197 + resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" 198 + integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== 199 + 200 + lodash.pick@^4.4.0: 201 + version "4.4.0" 202 + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" 203 + integrity sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q== 204 + 205 + lodash.sortby@^4.7.0: 206 + version "4.7.0" 207 + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" 208 + integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== 209 + 210 + lodash.uniq@^4.5.0: 211 + version "4.5.0" 212 + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" 213 + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== 214 + 215 + long@^5.0.0: 216 + version "5.2.1" 217 + resolved "https://registry.yarnpkg.com/long/-/long-5.2.1.tgz#e27595d0083d103d2fa2c20c7699f8e0c92b897f" 218 + integrity sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A== 219 + 220 + lru-cache@^7.14.0: 221 + version "7.14.1" 222 + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.14.1.tgz#8da8d2f5f59827edb388e63e459ac23d6d408fea" 223 + integrity sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA== 224 + 225 + methods@^1.1.2: 226 + version "1.1.2" 227 + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 228 + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== 229 + 230 + module-details-from-path@^1.0.3: 231 + version "1.0.3" 232 + resolved "https://registry.yarnpkg.com/module-details-from-path/-/module-details-from-path-1.0.3.tgz#114c949673e2a8a35e9d35788527aa37b679da2b" 233 + integrity sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A== 234 + 235 + node-abort-controller@^3.0.1: 236 + version "3.1.1" 237 + resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" 238 + integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== 239 + 240 + node-gyp-build@^3.9.0: 241 + version "3.9.0" 242 + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-3.9.0.tgz#53a350187dd4d5276750da21605d1cb681d09e25" 243 + integrity sha512-zLcTg6P4AbcHPq465ZMFNXx7XpKKJh+7kkN699NiQWisR2uWYOWNWqRHAmbnmKiL4e9aLSlmy5U7rEMUXV59+A== 244 + 245 + node-gyp-build@^4.5.0: 246 + version "4.6.0" 247 + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.6.0.tgz#0c52e4cbf54bbd28b709820ef7b6a3c2d6209055" 248 + integrity sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ== 249 + 250 + opentracing@>=0.12.1: 251 + version "0.14.7" 252 + resolved "https://registry.yarnpkg.com/opentracing/-/opentracing-0.14.7.tgz#25d472bd0296dc0b64d7b94cbc995219031428f5" 253 + integrity sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q== 254 + 255 + p-limit@^3.1.0: 256 + version "3.1.0" 257 + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" 258 + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 259 + dependencies: 260 + yocto-queue "^0.1.0" 261 + 262 + path-to-regexp@^0.1.2: 263 + version "0.1.7" 264 + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 265 + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== 266 + 267 + pify@^5.0.0: 268 + version "5.0.0" 269 + resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" 270 + integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== 271 + 272 + protobufjs@^7.0.0, protobufjs@^7.1.2: 273 + version "7.2.2" 274 + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.2.tgz#2af401d8c547b9476fb37ffc65782cf302342ca3" 275 + integrity sha512-++PrQIjrom+bFDPpfmqXfAGSQs40116JRrqqyf53dymUMvvb5d/LMRyicRoF1AUKoXVS1/IgJXlEgcpr4gTF3Q== 276 + dependencies: 277 + "@protobufjs/aspromise" "^1.1.2" 278 + "@protobufjs/base64" "^1.1.2" 279 + "@protobufjs/codegen" "^2.0.4" 280 + "@protobufjs/eventemitter" "^1.1.0" 281 + "@protobufjs/fetch" "^1.1.0" 282 + "@protobufjs/float" "^1.0.2" 283 + "@protobufjs/inquire" "^1.1.0" 284 + "@protobufjs/path" "^1.1.2" 285 + "@protobufjs/pool" "^1.1.0" 286 + "@protobufjs/utf8" "^1.1.0" 287 + "@types/node" ">=13.7.0" 288 + long "^5.0.0" 289 + 290 + retry@^0.10.1: 291 + version "0.10.1" 292 + resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" 293 + integrity sha512-ZXUSQYTHdl3uS7IuCehYfMzKyIDBNoAuUblvy5oGO5UJSUTmStUUVPXbA9Qxd173Bgre53yCQczQuHgRWAdvJQ== 294 + 295 + semver@^5.5.0: 296 + version "5.7.1" 297 + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 298 + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 299 + 300 + source-map@^0.7.3: 301 + version "0.7.4" 302 + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" 303 + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== 304 + 305 + split@^1.0.1: 306 + version "1.0.1" 307 + resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" 308 + integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== 309 + dependencies: 310 + through "2" 311 + 312 + through@2: 313 + version "2.3.8" 314 + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 315 + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== 316 + 317 + yocto-queue@^0.1.0: 318 + version "0.1.0" 319 + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" 320 + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+28
packages/server/src/bin.ts
··· 1 + import './env' 2 + import { Database } from './db' 3 + import PlcServer from '.' 4 + 5 + const run = async () => { 6 + const dbLoc = process.env.DATABASE_LOC 7 + const dbPostgresUrl = process.env.DB_POSTGRES_URL 8 + 9 + let db: Database 10 + if (dbPostgresUrl) { 11 + db = Database.postgres({ url: dbPostgresUrl }) 12 + } else if (dbLoc) { 13 + db = Database.sqlite(dbLoc) 14 + } else { 15 + db = Database.memory() 16 + } 17 + 18 + await db.migrateToLatestOrThrow() 19 + 20 + const envPort = parseInt(process.env.PORT || '') 21 + const port = isNaN(envPort) ? 2582 : envPort 22 + 23 + const plc = PlcServer.create({ db, port }) 24 + await plc.start() 25 + console.log(`👤 PLC server is running at http://localhost:${port}`) 26 + } 27 + 28 + run()
+25
packages/server/src/context.ts
··· 1 + import { Database } from './db' 2 + 3 + export class AppContext { 4 + constructor( 5 + private opts: { 6 + db: Database 7 + version: string 8 + port?: number 9 + }, 10 + ) {} 11 + 12 + get db() { 13 + return this.opts.db 14 + } 15 + 16 + get version() { 17 + return this.opts.version 18 + } 19 + 20 + get port() { 21 + return this.opts.port 22 + } 23 + } 24 + 25 + export default AppContext
+195
packages/server/src/db.ts
··· 1 + import { Kysely, Migrator, PostgresDialect, SqliteDialect } from 'kysely' 2 + import SqliteDB from 'better-sqlite3' 3 + import { Pool as PgPool, types as pgTypes } from 'pg' 4 + import { CID } from 'multiformats/cid' 5 + import { cidForCbor } from '@atproto/common' 6 + import * as plc from '@did-plc/lib' 7 + import { ServerError } from './error' 8 + import * as migrations from './migrations' 9 + 10 + export class Database { 11 + migrator: Migrator 12 + constructor( 13 + public db: Kysely<DatabaseSchema>, 14 + public dialect: Dialect, 15 + public schema?: string, 16 + ) { 17 + this.migrator = new Migrator({ 18 + db, 19 + migrationTableSchema: schema, 20 + provider: { 21 + async getMigrations() { 22 + return migrations 23 + }, 24 + }, 25 + }) 26 + } 27 + 28 + static sqlite(location: string): Database { 29 + const db = new Kysely<DatabaseSchema>({ 30 + dialect: new SqliteDialect({ 31 + database: new SqliteDB(location), 32 + }), 33 + }) 34 + return new Database(db, 'sqlite') 35 + } 36 + 37 + static postgres(opts: { url: string; schema?: string }): Database { 38 + const { url, schema } = opts 39 + const pool = new PgPool({ connectionString: url }) 40 + 41 + // Select count(*) and other pg bigints as js integer 42 + pgTypes.setTypeParser(pgTypes.builtins.INT8, (n) => parseInt(n, 10)) 43 + 44 + // Setup schema usage, primarily for test parallelism (each test suite runs in its own pg schema) 45 + if (schema !== undefined) { 46 + if (!/^[a-z_]+$/i.test(schema)) { 47 + throw new Error( 48 + `Postgres schema must only contain [A-Za-z_]: ${schema}`, 49 + ) 50 + } 51 + pool.on('connect', (client) => 52 + // Shared objects such as extensions will go in the public schema 53 + client.query(`SET search_path TO "${schema}",public`), 54 + ) 55 + } 56 + 57 + const db = new Kysely<DatabaseSchema>({ 58 + dialect: new PostgresDialect({ pool }), 59 + }) 60 + 61 + return new Database(db, 'pg', schema) 62 + } 63 + 64 + static memory(): Database { 65 + return Database.sqlite(':memory:') 66 + } 67 + 68 + async close(): Promise<void> { 69 + await this.db.destroy() 70 + } 71 + 72 + async migrateToLatestOrThrow() { 73 + if (this.schema !== undefined) { 74 + await this.db.schema.createSchema(this.schema).ifNotExists().execute() 75 + } 76 + const { error, results } = await this.migrator.migrateToLatest() 77 + if (error) { 78 + throw error 79 + } 80 + if (!results) { 81 + throw new Error('An unknown failure occurred while migrating') 82 + } 83 + return results 84 + } 85 + 86 + async validateAndAddOp(did: string, proposed: plc.Operation): Promise<void> { 87 + const ops = await this._opsForDid(did) 88 + // throws if invalid 89 + const { nullified, prev } = await plc.document.assureValidNextOp( 90 + did, 91 + ops, 92 + proposed, 93 + ) 94 + const cid = await cidForCbor(proposed) 95 + 96 + await this.db 97 + .transaction() 98 + .setIsolationLevel('serializable') 99 + .execute(async (tx) => { 100 + await tx 101 + .insertInto('operations') 102 + .values({ 103 + did, 104 + operation: JSON.stringify(proposed), 105 + cid: cid.toString(), 106 + nullified: 0, 107 + createdAt: new Date().toISOString(), 108 + }) 109 + .execute() 110 + 111 + if (nullified.length > 0) { 112 + const nullfiedStrs = nullified.map((cid) => cid.toString()) 113 + await tx 114 + .updateTable('operations') 115 + .set({ nullified: 1 }) 116 + .where('did', '=', did) 117 + .where('cid', 'in', nullfiedStrs) 118 + .execute() 119 + } 120 + 121 + // verify that the 2nd to last tx matches the proposed prev 122 + // otherwise rollback to prevent forks in history 123 + const mostRecent = await tx 124 + .selectFrom('operations') 125 + .select('cid') 126 + .where('did', '=', did) 127 + .where('nullified', '=', 0) 128 + .orderBy('createdAt', 'desc') 129 + .limit(2) 130 + .execute() 131 + const isMatch = 132 + (prev === null && !mostRecent[1]) || 133 + (prev && prev.equals(CID.parse(mostRecent[1].cid))) 134 + if (!isMatch) { 135 + throw new ServerError( 136 + 409, 137 + `Proposed prev does not match the most recent operation: ${mostRecent?.toString()}`, 138 + ) 139 + } 140 + }) 141 + } 142 + 143 + async mostRecentCid(did: string, notIncluded: CID[]): Promise<CID | null> { 144 + const notIncludedStr = notIncluded.map((cid) => cid.toString()) 145 + 146 + const found = await this.db 147 + .selectFrom('operations') 148 + .select('cid') 149 + .where('did', '=', did) 150 + .where('nullified', '=', 0) 151 + .where('cid', 'not in', notIncludedStr) 152 + .orderBy('createdAt', 'desc') 153 + .executeTakeFirst() 154 + return found ? CID.parse(found.cid) : null 155 + } 156 + 157 + async opsForDid(did: string): Promise<plc.Operation[]> { 158 + const ops = await this._opsForDid(did) 159 + return ops.map((op) => op.operation) 160 + } 161 + 162 + async _opsForDid(did: string): Promise<plc.IndexedOperation[]> { 163 + const res = await this.db 164 + .selectFrom('operations') 165 + .selectAll() 166 + .where('did', '=', did) 167 + .where('nullified', '=', 0) 168 + .orderBy('createdAt', 'asc') 169 + .execute() 170 + 171 + return res.map((row) => ({ 172 + did: row.did, 173 + operation: JSON.parse(row.operation), 174 + cid: CID.parse(row.cid), 175 + nullified: row.nullified === 1, 176 + createdAt: new Date(row.createdAt), 177 + })) 178 + } 179 + } 180 + 181 + export default Database 182 + 183 + export type Dialect = 'pg' | 'sqlite' 184 + 185 + interface OperationsTable { 186 + did: string 187 + operation: string 188 + cid: string 189 + nullified: 0 | 1 190 + createdAt: string 191 + } 192 + 193 + interface DatabaseSchema { 194 + operations: OperationsTable 195 + }
+9
packages/server/src/env.ts
··· 1 + // NOTE: this file should be imported first, particularly before `@atproto/common` (for logging), to ensure that environment variables are respected in library code 2 + import dotenv from 'dotenv' 3 + 4 + const env = process.env.ENV 5 + if (env) { 6 + dotenv.config({ path: `./.${env}.env` }) 7 + } else { 8 + dotenv.config() 9 + }
+35
packages/server/src/error.ts
··· 1 + import { ErrorRequestHandler } from 'express' 2 + 3 + export const handler: ErrorRequestHandler = (err, req, res, next) => { 4 + req.log.info( 5 + err, 6 + ServerError.is(err) 7 + ? 'handled server error' 8 + : 'unexpected internal server error', 9 + ) 10 + if (res.headersSent) { 11 + return next(err) 12 + } 13 + if (ServerError.is(err)) { 14 + return res.status(err.status).json({ message: err.message }) 15 + } else { 16 + return res.status(500).json({ message: 'Internal Server Error' }) 17 + } 18 + } 19 + 20 + export class ServerError extends Error { 21 + status: number 22 + constructor(status: number, message: string) { 23 + super(message) 24 + this.status = status 25 + } 26 + 27 + static is(obj: unknown): obj is ServerError { 28 + return ( 29 + !!obj && 30 + typeof obj === 'object' && 31 + typeof (obj as Record<string, unknown>).message === 'string' && 32 + typeof (obj as Record<string, unknown>).status === 'number' 33 + ) 34 + } 35 + }
+72
packages/server/src/index.ts
··· 1 + // catch errors that get thrown in async route handlers 2 + // this is a relatively non-invasive change to express 3 + // they get handled in the error.handler middleware 4 + // leave at top of file before importing Routes 5 + import 'express-async-errors' 6 + 7 + import express from 'express' 8 + import cors from 'cors' 9 + import http from 'http' 10 + import events from 'events' 11 + import { Database } from './db' 12 + import * as error from './error' 13 + import createRouter from './routes' 14 + import { loggerMiddleware } from './logger' 15 + import AppContext from './context' 16 + import { createHttpTerminator, HttpTerminator } from 'http-terminator' 17 + 18 + export * from './db' 19 + export * from './context' 20 + 21 + export class PlcServer { 22 + public ctx: AppContext 23 + public app: express.Application 24 + public server?: http.Server 25 + private terminator?: HttpTerminator 26 + 27 + constructor(opts: { ctx: AppContext; app: express.Application }) { 28 + this.ctx = opts.ctx 29 + this.app = opts.app 30 + } 31 + 32 + static create(opts: { 33 + db: Database 34 + port?: number 35 + version?: string 36 + }): PlcServer { 37 + const app = express() 38 + app.use(express.json({ limit: '100kb' })) 39 + app.use(cors()) 40 + 41 + app.use(loggerMiddleware) 42 + 43 + const ctx = new AppContext({ 44 + db: opts.db, 45 + version: opts.version || '0.0.0', 46 + port: opts.port, 47 + }) 48 + 49 + app.use('/', createRouter(ctx)) 50 + app.use(error.handler) 51 + 52 + return new PlcServer({ 53 + ctx, 54 + app, 55 + }) 56 + } 57 + 58 + async start(): Promise<http.Server> { 59 + const server = this.app.listen(this.ctx.port) 60 + this.server = server 61 + this.terminator = createHttpTerminator({ server }) 62 + await events.once(server, 'listening') 63 + return server 64 + } 65 + 66 + async destroy() { 67 + await this.terminator?.terminate() 68 + await this.ctx.db.close() 69 + } 70 + } 71 + 72 + export default PlcServer
+9
packages/server/src/logger.ts
··· 1 + import pino from 'pino' 2 + import pinoHttp from 'pino-http' 3 + 4 + // @TODO fix this up 5 + export const logger = pino() 6 + 7 + export const loggerMiddleware = pinoHttp({ 8 + logger, 9 + })
+17
packages/server/src/migrations/20221020T204908820Z-operations-init.ts
··· 1 + import { Kysely } from 'kysely' 2 + 3 + export async function up(db: Kysely<unknown>): Promise<void> { 4 + await db.schema 5 + .createTable('operations') 6 + .addColumn('did', 'varchar', (col) => col.notNull()) 7 + .addColumn('operation', 'text', (col) => col.notNull()) 8 + .addColumn('cid', 'varchar', (col) => col.notNull()) 9 + .addColumn('nullified', 'int2', (col) => col.defaultTo(0)) 10 + .addColumn('createdAt', 'varchar', (col) => col.notNull()) 11 + .addPrimaryKeyConstraint('primary_key', ['did', 'cid']) 12 + .execute() 13 + } 14 + 15 + export async function down(db: Kysely<unknown>): Promise<void> { 16 + await db.schema.dropTable('operations').execute() 17 + }
+5
packages/server/src/migrations/index.ts
··· 1 + // NOTE this file can be edited by hand, but it is also appended to by the migrations:create command. 2 + // It's important that every migration is exported from here with the proper name. We'd simplify 3 + // this with kysely's FileMigrationProvider, but it doesn't play nicely with the build process. 4 + 5 + export * as _20221020T204908820Z from './20221020T204908820Z-operations-init'
+50
packages/server/src/package.json
··· 1 + { 2 + "name": "@did-plc/server", 3 + "version": "0.0.1", 4 + "main": "src/index.ts", 5 + "license": "MIT", 6 + "scripts": { 7 + "start": "node dist/bin.js", 8 + "test": "jest", 9 + "test:pg": "../pg/with-test-db.sh jest", 10 + "test:log": "cat test.log | pino-pretty", 11 + "prettier": "prettier --check src/", 12 + "prettier:fix": "prettier --write src/", 13 + "lint": "eslint . --ext .ts,.tsx", 14 + "lint:fix": "yarn lint --fix", 15 + "verify": "run-p prettier lint", 16 + "verify:fix": "yarn prettier:fix && yarn lint:fix", 17 + "build": "node ./build.js", 18 + "postbuild": "tsc --build tsconfig.build.json", 19 + "low": "node dist/scripts/low_pid.js", 20 + "migration:create": "ts-node ./bin/migration-create.ts", 21 + "did:create": "ts-node ./bin/did-create.ts", 22 + "update-main-to-dist": "node ./update-pkg.js --update-main-to-dist", 23 + "update-main-to-src": "node ./update-pkg.js --update-main-to-src", 24 + "prepublish": "npm run update-main-to-dist", 25 + "postpublish": "npm run update-main-to-src" 26 + }, 27 + "dependencies": { 28 + "@atproto/common": "*", 29 + "@atproto/crypto": "*", 30 + "@ipld/dag-cbor": "^7.0.3", 31 + "async-mutex": "^0.4.0", 32 + "axios": "^0.27.2", 33 + "better-sqlite3": "^7.6.2", 34 + "cors": "^2.8.5", 35 + "dotenv": "^16.0.2", 36 + "express": "^4.17.2", 37 + "express-async-errors": "^3.1.1", 38 + "http-terminator": "^3.2.0", 39 + "kysely": "^0.22.0", 40 + "pg": "^8.8.0", 41 + "pino": "^8.6.1", 42 + "pino-http": "^8.2.1", 43 + "uint8arrays": "3.0.0", 44 + "zod": "^3.14.2" 45 + }, 46 + "devDependencies": { 47 + "@types/pg": "^8.6.5", 48 + "eslint-plugin-prettier": "^4.2.1" 49 + } 50 + }
+73
packages/server/src/routes.ts
··· 1 + import express from 'express' 2 + import { sql } from 'kysely' 3 + import { check } from '@atproto/common' 4 + import * as plc from '@did-plc/lib' 5 + import { ServerError } from './error' 6 + import { AppContext } from './context' 7 + 8 + export const createRouter = (ctx: AppContext): express.Router => { 9 + const router = express.Router() 10 + 11 + router.get('/_health', async function (req, res) { 12 + const { db, version } = ctx 13 + try { 14 + await sql`select 1`.execute(db.db) 15 + } catch (err) { 16 + req.log.error(err, 'failed health check') 17 + return res.status(503).send({ version, error: 'Service Unavailable' }) 18 + } 19 + res.send({ version }) 20 + }) 21 + 22 + // Get data for a DID document 23 + router.get('/:did', async function (req, res) { 24 + const { did } = req.params 25 + const log = await ctx.db.opsForDid(did) 26 + if (log.length === 0) { 27 + throw new ServerError(404, `DID not registered: ${did}`) 28 + } 29 + const data = await plc.document.validateOperationLog(did, log) 30 + const doc = await plc.document.formatDidDoc(data) 31 + res.type('application/did+ld+json') 32 + res.send(JSON.stringify(doc)) 33 + }) 34 + 35 + // Get data for a DID document 36 + router.get('/data/:did', async function (req, res) { 37 + const { did } = req.params 38 + const log = await ctx.db.opsForDid(did) 39 + if (log.length === 0) { 40 + throw new ServerError(404, `DID not registered: ${did}`) 41 + } 42 + const data = await plc.document.validateOperationLog(did, log) 43 + res.send(data) 44 + }) 45 + 46 + // Get operation log for a DID 47 + router.get('/log/:did', async function (req, res) { 48 + const { did } = req.params 49 + const log = await ctx.db.opsForDid(did) 50 + if (log.length === 0) { 51 + throw new ServerError(404, `DID not registered: ${did}`) 52 + } 53 + res.send({ log }) 54 + }) 55 + 56 + // Update or create a DID doc 57 + router.post('/:did', async function (req, res) { 58 + const { did } = req.params 59 + const op = req.body 60 + if (!check.is(op, plc.def.operation)) { 61 + throw new ServerError(400, `Not a valid operation: ${JSON.stringify(op)}`) 62 + } 63 + if (op.type !== 'create') { 64 + throw new Error('All ops apart from `create` are temporarily disabled') 65 + } 66 + await ctx.db.validateAndAddOp(did, op) 67 + res.sendStatus(200) 68 + }) 69 + 70 + return router 71 + } 72 + 73 + export default createRouter
+2
packages/server/test.env
··· 1 + LOG_ENABLED=false 2 + LOG_DESTINATION=test.log
+39
packages/server/tests/_util.ts
··· 1 + import { AddressInfo } from 'net' 2 + import PlcServer, { AppContext } from '../src' 3 + import Database from '../src/db' 4 + 5 + export type CloseFn = () => Promise<void> 6 + export type TestServerInfo = { 7 + ctx: AppContext 8 + url: string 9 + close: CloseFn 10 + } 11 + 12 + export const runTestServer = async (opts: { 13 + dbPostgresSchema: string 14 + }): Promise<TestServerInfo> => { 15 + const { dbPostgresSchema } = opts 16 + const dbPostgresUrl = process.env.DB_POSTGRES_URL || undefined 17 + 18 + const db = 19 + dbPostgresUrl !== undefined 20 + ? Database.postgres({ 21 + url: dbPostgresUrl, 22 + schema: dbPostgresSchema, 23 + }) 24 + : Database.memory() 25 + 26 + await db.migrateToLatestOrThrow() 27 + 28 + const plc = PlcServer.create({ db }) 29 + const plcServer = await plc.start() 30 + const { port } = plcServer.address() as AddressInfo 31 + 32 + return { 33 + ctx: plc.ctx, 34 + url: `http://localhost:${port}`, 35 + close: async () => { 36 + await plc.destroy() 37 + }, 38 + } 39 + }
+191
packages/server/tests/server.test.ts
··· 1 + import { EcdsaKeypair } from '@atproto/crypto' 2 + import { Client, document } from '@did-plc/lib' 3 + import { CloseFn, runTestServer } from './_util' 4 + import { cidForCbor } from '@atproto/common' 5 + import { AxiosError } from 'axios' 6 + import { Database } from '../src' 7 + 8 + describe('PLC server', () => { 9 + let handle = 'alice.example.com' 10 + let atpPds = 'example.com' 11 + 12 + let close: CloseFn 13 + let db: Database 14 + let client: Client 15 + 16 + let signingKey: EcdsaKeypair 17 + let recoveryKey: EcdsaKeypair 18 + 19 + let did: string 20 + 21 + beforeAll(async () => { 22 + const server = await runTestServer({ 23 + dbPostgresSchema: 'server', 24 + }) 25 + 26 + db = server.ctx.db 27 + close = server.close 28 + client = new Client(server.url) 29 + signingKey = await EcdsaKeypair.create() 30 + recoveryKey = await EcdsaKeypair.create() 31 + }) 32 + 33 + afterAll(async () => { 34 + if (close) { 35 + await close() 36 + } 37 + }) 38 + 39 + it('registers a did', async () => { 40 + did = await client.createDid(signingKey, recoveryKey.did(), handle, atpPds) 41 + }) 42 + 43 + it('retrieves did doc data', async () => { 44 + const doc = await client.getDocumentData(did) 45 + expect(doc.did).toEqual(did) 46 + expect(doc.signingKey).toEqual(signingKey.did()) 47 + expect(doc.recoveryKey).toEqual(recoveryKey.did()) 48 + expect(doc.handle).toEqual(handle) 49 + expect(doc.atpPds).toEqual(atpPds) 50 + }) 51 + 52 + return 53 + 54 + it('can perform some updates', async () => { 55 + const newSigningKey = await EcdsaKeypair.create() 56 + const newRecoveryKey = await EcdsaKeypair.create() 57 + 58 + await client.rotateSigningKey(did, newSigningKey.did(), signingKey) 59 + signingKey = newSigningKey 60 + 61 + await client.rotateRecoveryKey(did, newRecoveryKey.did(), signingKey) 62 + recoveryKey = newRecoveryKey 63 + 64 + handle = 'ali.example2.com' 65 + await client.updateHandle(did, handle, signingKey) 66 + 67 + atpPds = 'example2.com' 68 + await client.updateAtpPds(did, atpPds, signingKey) 69 + 70 + const doc = await client.getDocumentData(did) 71 + expect(doc.did).toEqual(did) 72 + expect(doc.signingKey).toEqual(signingKey.did()) 73 + expect(doc.recoveryKey).toEqual(recoveryKey.did()) 74 + expect(doc.handle).toEqual(handle) 75 + expect(doc.atpPds).toEqual(atpPds) 76 + }) 77 + 78 + it('does not allow key types that we do not support', async () => { 79 + // an ed25519 key which we don't yet support 80 + const newSigningKey = 81 + 'did:key:z6MkjwbBXZnFqL8su24wGL2Fdjti6GSLv9SWdYGswfazUPm9' 82 + 83 + const promise = client.rotateSigningKey(did, newSigningKey, signingKey) 84 + await expect(promise).rejects.toThrow(AxiosError) 85 + }) 86 + 87 + it('retrieves the operation log', async () => { 88 + const doc = await client.getDocumentData(did) 89 + const ops = await client.getOperationLog(did) 90 + const computedDoc = await document.validateOperationLog(did, ops) 91 + expect(computedDoc).toEqual(doc) 92 + }) 93 + 94 + it('rejects on bad updates', async () => { 95 + const newKey = await EcdsaKeypair.create() 96 + const operation = client.rotateRecoveryKey(did, newKey.did(), newKey) 97 + await expect(operation).rejects.toThrow() 98 + }) 99 + 100 + it('allows for recovery through a forked history', async () => { 101 + const attackerKey = await EcdsaKeypair.create() 102 + await client.rotateSigningKey(did, attackerKey.did(), signingKey) 103 + await client.rotateRecoveryKey(did, attackerKey.did(), attackerKey) 104 + 105 + const newKey = await EcdsaKeypair.create() 106 + const ops = await client.getOperationLog(did) 107 + const forkPoint = ops[ops.length - 3] 108 + const forkCid = await cidForCbor(forkPoint) 109 + await client.rotateSigningKey(did, newKey.did(), recoveryKey, forkCid) 110 + signingKey = newKey 111 + 112 + const doc = await client.getDocumentData(did) 113 + expect(doc.did).toEqual(did) 114 + expect(doc.signingKey).toEqual(signingKey.did()) 115 + expect(doc.recoveryKey).toEqual(recoveryKey.did()) 116 + expect(doc.handle).toEqual(handle) 117 + expect(doc.atpPds).toEqual(atpPds) 118 + }) 119 + 120 + it('retrieves the did doc', async () => { 121 + const data = await client.getDocumentData(did) 122 + const doc = await client.getDocument(did) 123 + expect(doc).toEqual(document.formatDidDoc(data)) 124 + }) 125 + 126 + it('handles concurrent requests to many docs', async () => { 127 + const COUNT = 100 128 + const keys: EcdsaKeypair[] = [] 129 + for (let i = 0; i < COUNT; i++) { 130 + keys.push(await EcdsaKeypair.create()) 131 + } 132 + await Promise.all( 133 + keys.map(async (key, index) => { 134 + await client.createDid(key, key.did(), `user${index}`, `example.com`) 135 + }), 136 + ) 137 + }) 138 + 139 + it('resolves races into a coherent history with no forks', async () => { 140 + const COUNT = 100 141 + const keys: EcdsaKeypair[] = [] 142 + for (let i = 0; i < COUNT; i++) { 143 + keys.push(await EcdsaKeypair.create()) 144 + } 145 + const prev = await client.getPrev(did) 146 + 147 + let successes = 0 148 + let failures = 0 149 + await Promise.all( 150 + keys.map(async (key) => { 151 + try { 152 + await client.rotateSigningKey(did, key.did(), signingKey, prev) 153 + successes++ 154 + } catch (err) { 155 + failures++ 156 + } 157 + }), 158 + ) 159 + expect(successes).toBe(1) 160 + expect(failures).toBe(99) 161 + 162 + const ops = await client.getOperationLog(did) 163 + await document.validateOperationLog(did, ops) 164 + }) 165 + 166 + it('healthcheck succeeds when database is available.', async () => { 167 + const { data, status } = await client.health() 168 + expect(status).toEqual(200) 169 + expect(data).toEqual({ version: '0.0.0' }) 170 + }) 171 + 172 + it('healthcheck fails when database is unavailable.', async () => { 173 + await db.db.destroy() 174 + let error: AxiosError 175 + try { 176 + await client.health() 177 + throw new Error('Healthcheck should have failed') 178 + } catch (err) { 179 + if (err instanceof AxiosError) { 180 + error = err 181 + } else { 182 + throw err 183 + } 184 + } 185 + expect(error.response?.status).toEqual(503) 186 + expect(error.response?.data).toEqual({ 187 + version: '0.0.0', 188 + error: 'Service Unavailable', 189 + }) 190 + }) 191 + })
+4
packages/server/tsconfig.build.json
··· 1 + { 2 + "extends": "./tsconfig.json", 3 + "exclude": ["**/*.spec.ts", "**/*.test.ts"] 4 + }
+12
packages/server/tsconfig.json
··· 1 + { 2 + "extends": "../../tsconfig.json", 3 + "compilerOptions": { 4 + "rootDir": "./src", 5 + "outDir": "./dist", // Your outDir, 6 + "emitDeclarationOnly": true, 7 + }, 8 + "include": ["./src", "__tests__/**/**.ts"], 9 + "references": [ 10 + { "path": "../lib/tsconfig.build.json" } 11 + ] 12 + }
+14
packages/server/update-pkg.js
··· 1 + const pkgJson = require('@npmcli/package-json') 2 + 3 + if (process.argv.includes('--update-main-to-dist')) { 4 + return pkgJson 5 + .load(__dirname) 6 + .then((pkg) => pkg.update({ main: 'dist/index.js' })) 7 + .then((pkg) => pkg.save()) 8 + } 9 + if (process.argv.includes('--update-main-to-src')) { 10 + return pkgJson 11 + .load(__dirname) 12 + .then((pkg) => pkg.update({ main: 'src/index.ts' })) 13 + .then((pkg) => pkg.save()) 14 + }
+65
pg/README.md
··· 1 + # pg 2 + 3 + Helpers for working with postgres 4 + 5 + ## Usage 6 + 7 + ### `with-test-db.sh` 8 + 9 + This script allows you to run any command with a fresh, ephemeral/single-use postgres database available. When the script starts a Dockerized postgres container starts-up, and when the script completes that container is removed. 10 + 11 + The environment variable `DB_POSTGRES_URL` will be set with a connection string that can be used to connect to the database. The [`PG*` environment variables](https://www.postgresql.org/docs/current/libpq-envars.html) that are recognized by libpq (i.e. used by the `psql` client) are also set. 12 + 13 + **Example** 14 + 15 + ``` 16 + $ ./with-test-db.sh psql -c 'select 1;' 17 + [+] Running 1/1 18 + ⠿ Container pg-db_test-1 Healthy 1.8s 19 + 20 + ?column? 21 + ---------- 22 + 1 23 + (1 row) 24 + 25 + 26 + [+] Running 1/1 27 + ⠿ Container pg-db_test-1 Stopped 0.1s 28 + Going to remove pg-db_test-1 29 + [+] Running 1/0 30 + ⠿ Container pg-db_test-1 Removed 31 + ``` 32 + 33 + ### `docker-compose.yaml` 34 + 35 + The Docker compose file can be used to run containerized versions of postgres either for single use (as is used by `with-test-db.sh`), or for longer-term use. These are setup as separate services named `test_db` and `db` respectively. In both cases the database is available on the host machine's `localhost` and credentials are: 36 + 37 + - Username: pg 38 + - Password: password 39 + 40 + However, each service uses a different port, documented below, to avoid conflicts. 41 + 42 + #### `test_db` service for single use 43 + 44 + The single-use `test_db` service does not have any persistent storage. When the container is removed, data in the database disappears with it. 45 + 46 + This service runs on port `5433`. 47 + 48 + ``` 49 + $ docker compose up test_db # start container 50 + $ docker compose stop test_db # stop container 51 + $ docker compose rm test_db # remove container 52 + ``` 53 + 54 + #### `db` service for persistent use 55 + 56 + The `db` service has persistent storage on the host machine managed by Docker under a volume named `pg_atp_db`. When the container is removed, data in the database will remain on the host machine. In order to start fresh, you would need to remove the volume. 57 + 58 + This service runs on port `5432`. 59 + 60 + ``` 61 + $ docker compose up db -d # start container 62 + $ docker compose stop db # stop container 63 + $ docker compose rm db # remove container 64 + $ docker volume rm pg_atp_db # remove volume 65 + ```
+27
pg/docker-compose.yaml
··· 1 + version: '3.8' 2 + services: 3 + # An ephermerally-stored postgres database for single-use test runs 4 + db_test: &db_test 5 + image: postgres:14.4-alpine 6 + environment: 7 + - POSTGRES_USER=pg 8 + - POSTGRES_PASSWORD=password 9 + ports: 10 + - '5433:5432' 11 + # Healthcheck ensures db is queryable when `docker-compose up --wait` completes 12 + healthcheck: 13 + test: 'pg_isready -U pg' 14 + interval: 500ms 15 + timeout: 10s 16 + retries: 20 17 + # A persistently-stored postgres database 18 + db: 19 + <<: *db_test 20 + ports: 21 + - '5432:5432' 22 + healthcheck: 23 + disable: true 24 + volumes: 25 + - atp_db:/var/lib/postgresql/data 26 + volumes: 27 + atp_db:
+32
pg/with-test-db.sh
··· 1 + #!/usr/bin/env sh 2 + 3 + # Example usage: 4 + # ./with-test-db.sh psql postgresql://pg:password@localhost:5433/postgres -c 'select 1;' 5 + 6 + dir=$(dirname $0) 7 + compose_file="$dir/docker-compose.yaml" 8 + 9 + docker compose -f $compose_file up --wait --force-recreate db_test 10 + echo # newline 11 + 12 + trap on_sigint INT 13 + on_sigint() { 14 + echo # newline 15 + docker compose -f $compose_file rm -f --stop --volumes db_test 16 + exit $? 17 + } 18 + 19 + # Based on creds in compose.yaml 20 + export PGPORT=5433 21 + export PGHOST=localhost 22 + export PGUSER=pg 23 + export PGPASSWORD=password 24 + export PGDATABASE=postgres 25 + export DB_POSTGRES_URL="postgresql://pg:password@localhost:5433/postgres" 26 + "$@" 27 + code=$? 28 + 29 + echo # newline 30 + docker compose -f $compose_file rm -f --stop --volumes db_test 31 + 32 + exit $code
+3
test-setup.ts
··· 1 + import dotenv from 'dotenv' 2 + 3 + dotenv.config({ path: './test.env' })
+30
tsconfig.json
··· 1 + { 2 + "compilerOptions": { 3 + "declaration": true, 4 + "noImplicitAny": false, 5 + "removeComments": true, 6 + "noLib": false, 7 + "emitDecoratorMetadata": true, 8 + "experimentalDecorators": true, 9 + "target": "es2020", 10 + "sourceMap": true, 11 + "module": "commonjs", 12 + "jsx": "preserve", 13 + "strict": true, 14 + "strictPropertyInitialization": false, 15 + "moduleResolution": "node", 16 + "resolveJsonModule": true, 17 + "allowSyntheticDefaultImports": true, 18 + "esModuleInterop": true, 19 + "lib": ["dom", "dom.iterable", "esnext", "webworker"], 20 + "skipLibCheck": true, 21 + "forceConsistentCasingInFileNames": true, 22 + "isolatedModules": true, 23 + "composite": true 24 + }, 25 + "exclude": ["node_modules", "**/*/dist"], 26 + "references": [ 27 + { "path": "./packages/lib/tsconfig.build.json" }, 28 + { "path": "./packages/server/tsconfig.build.json" } 29 + ] 30 + }
+8722
yarn.lock
··· 1 + # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 + # yarn lockfile v1 3 + 4 + 5 + "@ampproject/remapping@^2.1.0": 6 + version "2.2.0" 7 + resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz" 8 + integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== 9 + dependencies: 10 + "@jridgewell/gen-mapping" "^0.1.0" 11 + "@jridgewell/trace-mapping" "^0.3.9" 12 + 13 + "@atproto/common@0.1.0": 14 + version "0.1.0" 15 + resolved "https://registry.yarnpkg.com/@atproto/common/-/common-0.1.0.tgz#4216a8fef5b985ab62ac21252a0f8ca0f4a0f210" 16 + integrity sha512-OB5tWE2R19jwiMIs2IjQieH5KTUuMb98XGCn9h3xuu6NanwjlmbCYMv08fMYwIp3UQ6jcq//84cDT3Bu6fJD+A== 17 + dependencies: 18 + "@ipld/dag-cbor" "^7.0.3" 19 + multiformats "^9.6.4" 20 + pino "^8.6.1" 21 + zod "^3.14.2" 22 + 23 + "@atproto/crypto@0.1.0": 24 + version "0.1.0" 25 + resolved "https://registry.yarnpkg.com/@atproto/crypto/-/crypto-0.1.0.tgz#bc73a479f9dbe06fa025301c182d7f7ab01bc568" 26 + integrity sha512-9xgFEPtsCiJEPt9o3HtJT30IdFTGw5cQRSJVIy5CFhqBA4vDLcdXiRDLCjkzHEVbtNCsHUW6CrlfOgbeLPcmcg== 27 + dependencies: 28 + "@noble/secp256k1" "^1.7.0" 29 + big-integer "^1.6.51" 30 + multiformats "^9.6.4" 31 + one-webcrypto "^1.0.3" 32 + uint8arrays "3.0.0" 33 + 34 + "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": 35 + version "7.18.6" 36 + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz" 37 + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== 38 + dependencies: 39 + "@babel/highlight" "^7.18.6" 40 + 41 + "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.18.8", "@babel/compat-data@^7.19.1": 42 + version "7.19.1" 43 + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.1.tgz" 44 + integrity sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg== 45 + 46 + "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.18.6": 47 + version "7.19.1" 48 + resolved "https://registry.npmjs.org/@babel/core/-/core-7.19.1.tgz" 49 + integrity sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw== 50 + dependencies: 51 + "@ampproject/remapping" "^2.1.0" 52 + "@babel/code-frame" "^7.18.6" 53 + "@babel/generator" "^7.19.0" 54 + "@babel/helper-compilation-targets" "^7.19.1" 55 + "@babel/helper-module-transforms" "^7.19.0" 56 + "@babel/helpers" "^7.19.0" 57 + "@babel/parser" "^7.19.1" 58 + "@babel/template" "^7.18.10" 59 + "@babel/traverse" "^7.19.1" 60 + "@babel/types" "^7.19.0" 61 + convert-source-map "^1.7.0" 62 + debug "^4.1.0" 63 + gensync "^1.0.0-beta.2" 64 + json5 "^2.2.1" 65 + semver "^6.3.0" 66 + 67 + "@babel/generator@^7.19.0", "@babel/generator@^7.7.2": 68 + version "7.19.0" 69 + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz" 70 + integrity sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg== 71 + dependencies: 72 + "@babel/types" "^7.19.0" 73 + "@jridgewell/gen-mapping" "^0.3.2" 74 + jsesc "^2.5.1" 75 + 76 + "@babel/helper-annotate-as-pure@^7.18.6": 77 + version "7.18.6" 78 + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz" 79 + integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== 80 + dependencies: 81 + "@babel/types" "^7.18.6" 82 + 83 + "@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": 84 + version "7.18.9" 85 + resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz" 86 + integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw== 87 + dependencies: 88 + "@babel/helper-explode-assignable-expression" "^7.18.6" 89 + "@babel/types" "^7.18.9" 90 + 91 + "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.19.0", "@babel/helper-compilation-targets@^7.19.1": 92 + version "7.19.1" 93 + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.1.tgz" 94 + integrity sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg== 95 + dependencies: 96 + "@babel/compat-data" "^7.19.1" 97 + "@babel/helper-validator-option" "^7.18.6" 98 + browserslist "^4.21.3" 99 + semver "^6.3.0" 100 + 101 + "@babel/helper-create-class-features-plugin@^7.18.6": 102 + version "7.19.0" 103 + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz" 104 + integrity sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw== 105 + dependencies: 106 + "@babel/helper-annotate-as-pure" "^7.18.6" 107 + "@babel/helper-environment-visitor" "^7.18.9" 108 + "@babel/helper-function-name" "^7.19.0" 109 + "@babel/helper-member-expression-to-functions" "^7.18.9" 110 + "@babel/helper-optimise-call-expression" "^7.18.6" 111 + "@babel/helper-replace-supers" "^7.18.9" 112 + "@babel/helper-split-export-declaration" "^7.18.6" 113 + 114 + "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.19.0": 115 + version "7.19.0" 116 + resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz" 117 + integrity sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw== 118 + dependencies: 119 + "@babel/helper-annotate-as-pure" "^7.18.6" 120 + regexpu-core "^5.1.0" 121 + 122 + "@babel/helper-define-polyfill-provider@^0.3.3": 123 + version "0.3.3" 124 + resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz" 125 + integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== 126 + dependencies: 127 + "@babel/helper-compilation-targets" "^7.17.7" 128 + "@babel/helper-plugin-utils" "^7.16.7" 129 + debug "^4.1.1" 130 + lodash.debounce "^4.0.8" 131 + resolve "^1.14.2" 132 + semver "^6.1.2" 133 + 134 + "@babel/helper-environment-visitor@^7.18.9": 135 + version "7.18.9" 136 + resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz" 137 + integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== 138 + 139 + "@babel/helper-explode-assignable-expression@^7.18.6": 140 + version "7.18.6" 141 + resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz" 142 + integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== 143 + dependencies: 144 + "@babel/types" "^7.18.6" 145 + 146 + "@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0": 147 + version "7.19.0" 148 + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz" 149 + integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== 150 + dependencies: 151 + "@babel/template" "^7.18.10" 152 + "@babel/types" "^7.19.0" 153 + 154 + "@babel/helper-hoist-variables@^7.18.6": 155 + version "7.18.6" 156 + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz" 157 + integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== 158 + dependencies: 159 + "@babel/types" "^7.18.6" 160 + 161 + "@babel/helper-member-expression-to-functions@^7.18.9": 162 + version "7.18.9" 163 + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz" 164 + integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg== 165 + dependencies: 166 + "@babel/types" "^7.18.9" 167 + 168 + "@babel/helper-module-imports@^7.18.6": 169 + version "7.18.6" 170 + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz" 171 + integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== 172 + dependencies: 173 + "@babel/types" "^7.18.6" 174 + 175 + "@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.0": 176 + version "7.19.0" 177 + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz" 178 + integrity sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ== 179 + dependencies: 180 + "@babel/helper-environment-visitor" "^7.18.9" 181 + "@babel/helper-module-imports" "^7.18.6" 182 + "@babel/helper-simple-access" "^7.18.6" 183 + "@babel/helper-split-export-declaration" "^7.18.6" 184 + "@babel/helper-validator-identifier" "^7.18.6" 185 + "@babel/template" "^7.18.10" 186 + "@babel/traverse" "^7.19.0" 187 + "@babel/types" "^7.19.0" 188 + 189 + "@babel/helper-optimise-call-expression@^7.18.6": 190 + version "7.18.6" 191 + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz" 192 + integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== 193 + dependencies: 194 + "@babel/types" "^7.18.6" 195 + 196 + "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": 197 + version "7.19.0" 198 + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz" 199 + integrity sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw== 200 + 201 + "@babel/helper-remap-async-to-generator@^7.18.6", "@babel/helper-remap-async-to-generator@^7.18.9": 202 + version "7.18.9" 203 + resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz" 204 + integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== 205 + dependencies: 206 + "@babel/helper-annotate-as-pure" "^7.18.6" 207 + "@babel/helper-environment-visitor" "^7.18.9" 208 + "@babel/helper-wrap-function" "^7.18.9" 209 + "@babel/types" "^7.18.9" 210 + 211 + "@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.18.9": 212 + version "7.19.1" 213 + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz" 214 + integrity sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw== 215 + dependencies: 216 + "@babel/helper-environment-visitor" "^7.18.9" 217 + "@babel/helper-member-expression-to-functions" "^7.18.9" 218 + "@babel/helper-optimise-call-expression" "^7.18.6" 219 + "@babel/traverse" "^7.19.1" 220 + "@babel/types" "^7.19.0" 221 + 222 + "@babel/helper-simple-access@^7.18.6": 223 + version "7.18.6" 224 + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz" 225 + integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== 226 + dependencies: 227 + "@babel/types" "^7.18.6" 228 + 229 + "@babel/helper-skip-transparent-expression-wrappers@^7.18.9": 230 + version "7.18.9" 231 + resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz" 232 + integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw== 233 + dependencies: 234 + "@babel/types" "^7.18.9" 235 + 236 + "@babel/helper-split-export-declaration@^7.18.6": 237 + version "7.18.6" 238 + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz" 239 + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== 240 + dependencies: 241 + "@babel/types" "^7.18.6" 242 + 243 + "@babel/helper-string-parser@^7.18.10": 244 + version "7.18.10" 245 + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz" 246 + integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== 247 + 248 + "@babel/helper-validator-identifier@^7.18.6": 249 + version "7.19.1" 250 + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz" 251 + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== 252 + 253 + "@babel/helper-validator-option@^7.18.6": 254 + version "7.18.6" 255 + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz" 256 + integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== 257 + 258 + "@babel/helper-wrap-function@^7.18.9": 259 + version "7.19.0" 260 + resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz" 261 + integrity sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg== 262 + dependencies: 263 + "@babel/helper-function-name" "^7.19.0" 264 + "@babel/template" "^7.18.10" 265 + "@babel/traverse" "^7.19.0" 266 + "@babel/types" "^7.19.0" 267 + 268 + "@babel/helpers@^7.19.0": 269 + version "7.19.0" 270 + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz" 271 + integrity sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg== 272 + dependencies: 273 + "@babel/template" "^7.18.10" 274 + "@babel/traverse" "^7.19.0" 275 + "@babel/types" "^7.19.0" 276 + 277 + "@babel/highlight@^7.18.6": 278 + version "7.18.6" 279 + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz" 280 + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== 281 + dependencies: 282 + "@babel/helper-validator-identifier" "^7.18.6" 283 + chalk "^2.0.0" 284 + js-tokens "^4.0.0" 285 + 286 + "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.19.1", "@babel/parser@^7.7.0": 287 + version "7.19.1" 288 + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.19.1.tgz" 289 + integrity sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A== 290 + 291 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": 292 + version "7.18.6" 293 + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz" 294 + integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== 295 + dependencies: 296 + "@babel/helper-plugin-utils" "^7.18.6" 297 + 298 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": 299 + version "7.18.9" 300 + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz" 301 + integrity sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg== 302 + dependencies: 303 + "@babel/helper-plugin-utils" "^7.18.9" 304 + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" 305 + "@babel/plugin-proposal-optional-chaining" "^7.18.9" 306 + 307 + "@babel/plugin-proposal-async-generator-functions@^7.19.1": 308 + version "7.19.1" 309 + resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz" 310 + integrity sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q== 311 + dependencies: 312 + "@babel/helper-environment-visitor" "^7.18.9" 313 + "@babel/helper-plugin-utils" "^7.19.0" 314 + "@babel/helper-remap-async-to-generator" "^7.18.9" 315 + "@babel/plugin-syntax-async-generators" "^7.8.4" 316 + 317 + "@babel/plugin-proposal-class-properties@^7.18.6": 318 + version "7.18.6" 319 + resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz" 320 + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== 321 + dependencies: 322 + "@babel/helper-create-class-features-plugin" "^7.18.6" 323 + "@babel/helper-plugin-utils" "^7.18.6" 324 + 325 + "@babel/plugin-proposal-class-static-block@^7.18.6": 326 + version "7.18.6" 327 + resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz" 328 + integrity sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw== 329 + dependencies: 330 + "@babel/helper-create-class-features-plugin" "^7.18.6" 331 + "@babel/helper-plugin-utils" "^7.18.6" 332 + "@babel/plugin-syntax-class-static-block" "^7.14.5" 333 + 334 + "@babel/plugin-proposal-dynamic-import@^7.18.6": 335 + version "7.18.6" 336 + resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz" 337 + integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== 338 + dependencies: 339 + "@babel/helper-plugin-utils" "^7.18.6" 340 + "@babel/plugin-syntax-dynamic-import" "^7.8.3" 341 + 342 + "@babel/plugin-proposal-export-namespace-from@^7.18.9": 343 + version "7.18.9" 344 + resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz" 345 + integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== 346 + dependencies: 347 + "@babel/helper-plugin-utils" "^7.18.9" 348 + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" 349 + 350 + "@babel/plugin-proposal-json-strings@^7.18.6": 351 + version "7.18.6" 352 + resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz" 353 + integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== 354 + dependencies: 355 + "@babel/helper-plugin-utils" "^7.18.6" 356 + "@babel/plugin-syntax-json-strings" "^7.8.3" 357 + 358 + "@babel/plugin-proposal-logical-assignment-operators@^7.18.9": 359 + version "7.18.9" 360 + resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz" 361 + integrity sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q== 362 + dependencies: 363 + "@babel/helper-plugin-utils" "^7.18.9" 364 + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" 365 + 366 + "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": 367 + version "7.18.6" 368 + resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz" 369 + integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== 370 + dependencies: 371 + "@babel/helper-plugin-utils" "^7.18.6" 372 + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" 373 + 374 + "@babel/plugin-proposal-numeric-separator@^7.18.6": 375 + version "7.18.6" 376 + resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz" 377 + integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== 378 + dependencies: 379 + "@babel/helper-plugin-utils" "^7.18.6" 380 + "@babel/plugin-syntax-numeric-separator" "^7.10.4" 381 + 382 + "@babel/plugin-proposal-object-rest-spread@^7.18.9": 383 + version "7.18.9" 384 + resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz" 385 + integrity sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q== 386 + dependencies: 387 + "@babel/compat-data" "^7.18.8" 388 + "@babel/helper-compilation-targets" "^7.18.9" 389 + "@babel/helper-plugin-utils" "^7.18.9" 390 + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" 391 + "@babel/plugin-transform-parameters" "^7.18.8" 392 + 393 + "@babel/plugin-proposal-optional-catch-binding@^7.18.6": 394 + version "7.18.6" 395 + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz" 396 + integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== 397 + dependencies: 398 + "@babel/helper-plugin-utils" "^7.18.6" 399 + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" 400 + 401 + "@babel/plugin-proposal-optional-chaining@^7.18.9": 402 + version "7.18.9" 403 + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz" 404 + integrity sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w== 405 + dependencies: 406 + "@babel/helper-plugin-utils" "^7.18.9" 407 + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" 408 + "@babel/plugin-syntax-optional-chaining" "^7.8.3" 409 + 410 + "@babel/plugin-proposal-private-methods@^7.18.6": 411 + version "7.18.6" 412 + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz" 413 + integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== 414 + dependencies: 415 + "@babel/helper-create-class-features-plugin" "^7.18.6" 416 + "@babel/helper-plugin-utils" "^7.18.6" 417 + 418 + "@babel/plugin-proposal-private-property-in-object@^7.18.6": 419 + version "7.18.6" 420 + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz" 421 + integrity sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw== 422 + dependencies: 423 + "@babel/helper-annotate-as-pure" "^7.18.6" 424 + "@babel/helper-create-class-features-plugin" "^7.18.6" 425 + "@babel/helper-plugin-utils" "^7.18.6" 426 + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" 427 + 428 + "@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": 429 + version "7.18.6" 430 + resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz" 431 + integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== 432 + dependencies: 433 + "@babel/helper-create-regexp-features-plugin" "^7.18.6" 434 + "@babel/helper-plugin-utils" "^7.18.6" 435 + 436 + "@babel/plugin-syntax-async-generators@^7.8.4": 437 + version "7.8.4" 438 + resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" 439 + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== 440 + dependencies: 441 + "@babel/helper-plugin-utils" "^7.8.0" 442 + 443 + "@babel/plugin-syntax-bigint@^7.8.3": 444 + version "7.8.3" 445 + resolved "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" 446 + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== 447 + dependencies: 448 + "@babel/helper-plugin-utils" "^7.8.0" 449 + 450 + "@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": 451 + version "7.12.13" 452 + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" 453 + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== 454 + dependencies: 455 + "@babel/helper-plugin-utils" "^7.12.13" 456 + 457 + "@babel/plugin-syntax-class-static-block@^7.14.5": 458 + version "7.14.5" 459 + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" 460 + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== 461 + dependencies: 462 + "@babel/helper-plugin-utils" "^7.14.5" 463 + 464 + "@babel/plugin-syntax-dynamic-import@^7.8.3": 465 + version "7.8.3" 466 + resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" 467 + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== 468 + dependencies: 469 + "@babel/helper-plugin-utils" "^7.8.0" 470 + 471 + "@babel/plugin-syntax-export-namespace-from@^7.8.3": 472 + version "7.8.3" 473 + resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" 474 + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== 475 + dependencies: 476 + "@babel/helper-plugin-utils" "^7.8.3" 477 + 478 + "@babel/plugin-syntax-import-assertions@^7.18.6": 479 + version "7.18.6" 480 + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz" 481 + integrity sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ== 482 + dependencies: 483 + "@babel/helper-plugin-utils" "^7.18.6" 484 + 485 + "@babel/plugin-syntax-import-meta@^7.8.3": 486 + version "7.10.4" 487 + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" 488 + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== 489 + dependencies: 490 + "@babel/helper-plugin-utils" "^7.10.4" 491 + 492 + "@babel/plugin-syntax-json-strings@^7.8.3": 493 + version "7.8.3" 494 + resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" 495 + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== 496 + dependencies: 497 + "@babel/helper-plugin-utils" "^7.8.0" 498 + 499 + "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": 500 + version "7.10.4" 501 + resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" 502 + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== 503 + dependencies: 504 + "@babel/helper-plugin-utils" "^7.10.4" 505 + 506 + "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": 507 + version "7.8.3" 508 + resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" 509 + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== 510 + dependencies: 511 + "@babel/helper-plugin-utils" "^7.8.0" 512 + 513 + "@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": 514 + version "7.10.4" 515 + resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" 516 + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== 517 + dependencies: 518 + "@babel/helper-plugin-utils" "^7.10.4" 519 + 520 + "@babel/plugin-syntax-object-rest-spread@^7.8.3": 521 + version "7.8.3" 522 + resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" 523 + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== 524 + dependencies: 525 + "@babel/helper-plugin-utils" "^7.8.0" 526 + 527 + "@babel/plugin-syntax-optional-catch-binding@^7.8.3": 528 + version "7.8.3" 529 + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" 530 + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== 531 + dependencies: 532 + "@babel/helper-plugin-utils" "^7.8.0" 533 + 534 + "@babel/plugin-syntax-optional-chaining@^7.8.3": 535 + version "7.8.3" 536 + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" 537 + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== 538 + dependencies: 539 + "@babel/helper-plugin-utils" "^7.8.0" 540 + 541 + "@babel/plugin-syntax-private-property-in-object@^7.14.5": 542 + version "7.14.5" 543 + resolved "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" 544 + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== 545 + dependencies: 546 + "@babel/helper-plugin-utils" "^7.14.5" 547 + 548 + "@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": 549 + version "7.14.5" 550 + resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" 551 + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== 552 + dependencies: 553 + "@babel/helper-plugin-utils" "^7.14.5" 554 + 555 + "@babel/plugin-syntax-typescript@^7.7.2": 556 + version "7.18.6" 557 + resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz" 558 + integrity sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA== 559 + dependencies: 560 + "@babel/helper-plugin-utils" "^7.18.6" 561 + 562 + "@babel/plugin-transform-arrow-functions@^7.18.6": 563 + version "7.18.6" 564 + resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz" 565 + integrity sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ== 566 + dependencies: 567 + "@babel/helper-plugin-utils" "^7.18.6" 568 + 569 + "@babel/plugin-transform-async-to-generator@^7.18.6": 570 + version "7.18.6" 571 + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz" 572 + integrity sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag== 573 + dependencies: 574 + "@babel/helper-module-imports" "^7.18.6" 575 + "@babel/helper-plugin-utils" "^7.18.6" 576 + "@babel/helper-remap-async-to-generator" "^7.18.6" 577 + 578 + "@babel/plugin-transform-block-scoped-functions@^7.18.6": 579 + version "7.18.6" 580 + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz" 581 + integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== 582 + dependencies: 583 + "@babel/helper-plugin-utils" "^7.18.6" 584 + 585 + "@babel/plugin-transform-block-scoping@^7.18.9": 586 + version "7.18.9" 587 + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz" 588 + integrity sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw== 589 + dependencies: 590 + "@babel/helper-plugin-utils" "^7.18.9" 591 + 592 + "@babel/plugin-transform-classes@^7.19.0": 593 + version "7.19.0" 594 + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz" 595 + integrity sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A== 596 + dependencies: 597 + "@babel/helper-annotate-as-pure" "^7.18.6" 598 + "@babel/helper-compilation-targets" "^7.19.0" 599 + "@babel/helper-environment-visitor" "^7.18.9" 600 + "@babel/helper-function-name" "^7.19.0" 601 + "@babel/helper-optimise-call-expression" "^7.18.6" 602 + "@babel/helper-plugin-utils" "^7.19.0" 603 + "@babel/helper-replace-supers" "^7.18.9" 604 + "@babel/helper-split-export-declaration" "^7.18.6" 605 + globals "^11.1.0" 606 + 607 + "@babel/plugin-transform-computed-properties@^7.18.9": 608 + version "7.18.9" 609 + resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz" 610 + integrity sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw== 611 + dependencies: 612 + "@babel/helper-plugin-utils" "^7.18.9" 613 + 614 + "@babel/plugin-transform-destructuring@^7.18.13": 615 + version "7.18.13" 616 + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz" 617 + integrity sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow== 618 + dependencies: 619 + "@babel/helper-plugin-utils" "^7.18.9" 620 + 621 + "@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": 622 + version "7.18.6" 623 + resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz" 624 + integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== 625 + dependencies: 626 + "@babel/helper-create-regexp-features-plugin" "^7.18.6" 627 + "@babel/helper-plugin-utils" "^7.18.6" 628 + 629 + "@babel/plugin-transform-duplicate-keys@^7.18.9": 630 + version "7.18.9" 631 + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz" 632 + integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== 633 + dependencies: 634 + "@babel/helper-plugin-utils" "^7.18.9" 635 + 636 + "@babel/plugin-transform-exponentiation-operator@^7.18.6": 637 + version "7.18.6" 638 + resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz" 639 + integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== 640 + dependencies: 641 + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" 642 + "@babel/helper-plugin-utils" "^7.18.6" 643 + 644 + "@babel/plugin-transform-for-of@^7.18.8": 645 + version "7.18.8" 646 + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz" 647 + integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ== 648 + dependencies: 649 + "@babel/helper-plugin-utils" "^7.18.6" 650 + 651 + "@babel/plugin-transform-function-name@^7.18.9": 652 + version "7.18.9" 653 + resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz" 654 + integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== 655 + dependencies: 656 + "@babel/helper-compilation-targets" "^7.18.9" 657 + "@babel/helper-function-name" "^7.18.9" 658 + "@babel/helper-plugin-utils" "^7.18.9" 659 + 660 + "@babel/plugin-transform-literals@^7.18.9": 661 + version "7.18.9" 662 + resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz" 663 + integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== 664 + dependencies: 665 + "@babel/helper-plugin-utils" "^7.18.9" 666 + 667 + "@babel/plugin-transform-member-expression-literals@^7.18.6": 668 + version "7.18.6" 669 + resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz" 670 + integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== 671 + dependencies: 672 + "@babel/helper-plugin-utils" "^7.18.6" 673 + 674 + "@babel/plugin-transform-modules-amd@^7.18.6": 675 + version "7.18.6" 676 + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz" 677 + integrity sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg== 678 + dependencies: 679 + "@babel/helper-module-transforms" "^7.18.6" 680 + "@babel/helper-plugin-utils" "^7.18.6" 681 + babel-plugin-dynamic-import-node "^2.3.3" 682 + 683 + "@babel/plugin-transform-modules-commonjs@^7.18.6": 684 + version "7.18.6" 685 + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz" 686 + integrity sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q== 687 + dependencies: 688 + "@babel/helper-module-transforms" "^7.18.6" 689 + "@babel/helper-plugin-utils" "^7.18.6" 690 + "@babel/helper-simple-access" "^7.18.6" 691 + babel-plugin-dynamic-import-node "^2.3.3" 692 + 693 + "@babel/plugin-transform-modules-systemjs@^7.19.0": 694 + version "7.19.0" 695 + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz" 696 + integrity sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A== 697 + dependencies: 698 + "@babel/helper-hoist-variables" "^7.18.6" 699 + "@babel/helper-module-transforms" "^7.19.0" 700 + "@babel/helper-plugin-utils" "^7.19.0" 701 + "@babel/helper-validator-identifier" "^7.18.6" 702 + babel-plugin-dynamic-import-node "^2.3.3" 703 + 704 + "@babel/plugin-transform-modules-umd@^7.18.6": 705 + version "7.18.6" 706 + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz" 707 + integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== 708 + dependencies: 709 + "@babel/helper-module-transforms" "^7.18.6" 710 + "@babel/helper-plugin-utils" "^7.18.6" 711 + 712 + "@babel/plugin-transform-named-capturing-groups-regex@^7.19.1": 713 + version "7.19.1" 714 + resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz" 715 + integrity sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw== 716 + dependencies: 717 + "@babel/helper-create-regexp-features-plugin" "^7.19.0" 718 + "@babel/helper-plugin-utils" "^7.19.0" 719 + 720 + "@babel/plugin-transform-new-target@^7.18.6": 721 + version "7.18.6" 722 + resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz" 723 + integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== 724 + dependencies: 725 + "@babel/helper-plugin-utils" "^7.18.6" 726 + 727 + "@babel/plugin-transform-object-super@^7.18.6": 728 + version "7.18.6" 729 + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz" 730 + integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== 731 + dependencies: 732 + "@babel/helper-plugin-utils" "^7.18.6" 733 + "@babel/helper-replace-supers" "^7.18.6" 734 + 735 + "@babel/plugin-transform-parameters@^7.18.8": 736 + version "7.18.8" 737 + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz" 738 + integrity sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg== 739 + dependencies: 740 + "@babel/helper-plugin-utils" "^7.18.6" 741 + 742 + "@babel/plugin-transform-property-literals@^7.18.6": 743 + version "7.18.6" 744 + resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz" 745 + integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== 746 + dependencies: 747 + "@babel/helper-plugin-utils" "^7.18.6" 748 + 749 + "@babel/plugin-transform-regenerator@^7.18.6": 750 + version "7.18.6" 751 + resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz" 752 + integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ== 753 + dependencies: 754 + "@babel/helper-plugin-utils" "^7.18.6" 755 + regenerator-transform "^0.15.0" 756 + 757 + "@babel/plugin-transform-reserved-words@^7.18.6": 758 + version "7.18.6" 759 + resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz" 760 + integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== 761 + dependencies: 762 + "@babel/helper-plugin-utils" "^7.18.6" 763 + 764 + "@babel/plugin-transform-shorthand-properties@^7.18.6": 765 + version "7.18.6" 766 + resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz" 767 + integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== 768 + dependencies: 769 + "@babel/helper-plugin-utils" "^7.18.6" 770 + 771 + "@babel/plugin-transform-spread@^7.19.0": 772 + version "7.19.0" 773 + resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz" 774 + integrity sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w== 775 + dependencies: 776 + "@babel/helper-plugin-utils" "^7.19.0" 777 + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" 778 + 779 + "@babel/plugin-transform-sticky-regex@^7.18.6": 780 + version "7.18.6" 781 + resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz" 782 + integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== 783 + dependencies: 784 + "@babel/helper-plugin-utils" "^7.18.6" 785 + 786 + "@babel/plugin-transform-template-literals@^7.18.9": 787 + version "7.18.9" 788 + resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz" 789 + integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== 790 + dependencies: 791 + "@babel/helper-plugin-utils" "^7.18.9" 792 + 793 + "@babel/plugin-transform-typeof-symbol@^7.18.9": 794 + version "7.18.9" 795 + resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz" 796 + integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== 797 + dependencies: 798 + "@babel/helper-plugin-utils" "^7.18.9" 799 + 800 + "@babel/plugin-transform-unicode-escapes@^7.18.10": 801 + version "7.18.10" 802 + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz" 803 + integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== 804 + dependencies: 805 + "@babel/helper-plugin-utils" "^7.18.9" 806 + 807 + "@babel/plugin-transform-unicode-regex@^7.18.6": 808 + version "7.18.6" 809 + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz" 810 + integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== 811 + dependencies: 812 + "@babel/helper-create-regexp-features-plugin" "^7.18.6" 813 + "@babel/helper-plugin-utils" "^7.18.6" 814 + 815 + "@babel/preset-env@^7.18.6": 816 + version "7.19.1" 817 + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.1.tgz" 818 + integrity sha512-c8B2c6D16Lp+Nt6HcD+nHl0VbPKVnNPTpszahuxJJnurfMtKeZ80A+qUv48Y7wqvS+dTFuLuaM9oYxyNHbCLWA== 819 + dependencies: 820 + "@babel/compat-data" "^7.19.1" 821 + "@babel/helper-compilation-targets" "^7.19.1" 822 + "@babel/helper-plugin-utils" "^7.19.0" 823 + "@babel/helper-validator-option" "^7.18.6" 824 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" 825 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" 826 + "@babel/plugin-proposal-async-generator-functions" "^7.19.1" 827 + "@babel/plugin-proposal-class-properties" "^7.18.6" 828 + "@babel/plugin-proposal-class-static-block" "^7.18.6" 829 + "@babel/plugin-proposal-dynamic-import" "^7.18.6" 830 + "@babel/plugin-proposal-export-namespace-from" "^7.18.9" 831 + "@babel/plugin-proposal-json-strings" "^7.18.6" 832 + "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" 833 + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" 834 + "@babel/plugin-proposal-numeric-separator" "^7.18.6" 835 + "@babel/plugin-proposal-object-rest-spread" "^7.18.9" 836 + "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" 837 + "@babel/plugin-proposal-optional-chaining" "^7.18.9" 838 + "@babel/plugin-proposal-private-methods" "^7.18.6" 839 + "@babel/plugin-proposal-private-property-in-object" "^7.18.6" 840 + "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" 841 + "@babel/plugin-syntax-async-generators" "^7.8.4" 842 + "@babel/plugin-syntax-class-properties" "^7.12.13" 843 + "@babel/plugin-syntax-class-static-block" "^7.14.5" 844 + "@babel/plugin-syntax-dynamic-import" "^7.8.3" 845 + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" 846 + "@babel/plugin-syntax-import-assertions" "^7.18.6" 847 + "@babel/plugin-syntax-json-strings" "^7.8.3" 848 + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" 849 + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" 850 + "@babel/plugin-syntax-numeric-separator" "^7.10.4" 851 + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" 852 + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" 853 + "@babel/plugin-syntax-optional-chaining" "^7.8.3" 854 + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" 855 + "@babel/plugin-syntax-top-level-await" "^7.14.5" 856 + "@babel/plugin-transform-arrow-functions" "^7.18.6" 857 + "@babel/plugin-transform-async-to-generator" "^7.18.6" 858 + "@babel/plugin-transform-block-scoped-functions" "^7.18.6" 859 + "@babel/plugin-transform-block-scoping" "^7.18.9" 860 + "@babel/plugin-transform-classes" "^7.19.0" 861 + "@babel/plugin-transform-computed-properties" "^7.18.9" 862 + "@babel/plugin-transform-destructuring" "^7.18.13" 863 + "@babel/plugin-transform-dotall-regex" "^7.18.6" 864 + "@babel/plugin-transform-duplicate-keys" "^7.18.9" 865 + "@babel/plugin-transform-exponentiation-operator" "^7.18.6" 866 + "@babel/plugin-transform-for-of" "^7.18.8" 867 + "@babel/plugin-transform-function-name" "^7.18.9" 868 + "@babel/plugin-transform-literals" "^7.18.9" 869 + "@babel/plugin-transform-member-expression-literals" "^7.18.6" 870 + "@babel/plugin-transform-modules-amd" "^7.18.6" 871 + "@babel/plugin-transform-modules-commonjs" "^7.18.6" 872 + "@babel/plugin-transform-modules-systemjs" "^7.19.0" 873 + "@babel/plugin-transform-modules-umd" "^7.18.6" 874 + "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.1" 875 + "@babel/plugin-transform-new-target" "^7.18.6" 876 + "@babel/plugin-transform-object-super" "^7.18.6" 877 + "@babel/plugin-transform-parameters" "^7.18.8" 878 + "@babel/plugin-transform-property-literals" "^7.18.6" 879 + "@babel/plugin-transform-regenerator" "^7.18.6" 880 + "@babel/plugin-transform-reserved-words" "^7.18.6" 881 + "@babel/plugin-transform-shorthand-properties" "^7.18.6" 882 + "@babel/plugin-transform-spread" "^7.19.0" 883 + "@babel/plugin-transform-sticky-regex" "^7.18.6" 884 + "@babel/plugin-transform-template-literals" "^7.18.9" 885 + "@babel/plugin-transform-typeof-symbol" "^7.18.9" 886 + "@babel/plugin-transform-unicode-escapes" "^7.18.10" 887 + "@babel/plugin-transform-unicode-regex" "^7.18.6" 888 + "@babel/preset-modules" "^0.1.5" 889 + "@babel/types" "^7.19.0" 890 + babel-plugin-polyfill-corejs2 "^0.3.3" 891 + babel-plugin-polyfill-corejs3 "^0.6.0" 892 + babel-plugin-polyfill-regenerator "^0.4.1" 893 + core-js-compat "^3.25.1" 894 + semver "^6.3.0" 895 + 896 + "@babel/preset-modules@^0.1.5": 897 + version "0.1.5" 898 + resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz" 899 + integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== 900 + dependencies: 901 + "@babel/helper-plugin-utils" "^7.0.0" 902 + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" 903 + "@babel/plugin-transform-dotall-regex" "^7.4.4" 904 + "@babel/types" "^7.4.4" 905 + esutils "^2.0.2" 906 + 907 + "@babel/runtime@^7.8.4": 908 + version "7.19.0" 909 + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz" 910 + integrity sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA== 911 + dependencies: 912 + regenerator-runtime "^0.13.4" 913 + 914 + "@babel/template@^7.18.10", "@babel/template@^7.3.3": 915 + version "7.18.10" 916 + resolved "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz" 917 + integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== 918 + dependencies: 919 + "@babel/code-frame" "^7.18.6" 920 + "@babel/parser" "^7.18.10" 921 + "@babel/types" "^7.18.10" 922 + 923 + "@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2": 924 + version "7.19.1" 925 + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.1.tgz" 926 + integrity sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA== 927 + dependencies: 928 + "@babel/code-frame" "^7.18.6" 929 + "@babel/generator" "^7.19.0" 930 + "@babel/helper-environment-visitor" "^7.18.9" 931 + "@babel/helper-function-name" "^7.19.0" 932 + "@babel/helper-hoist-variables" "^7.18.6" 933 + "@babel/helper-split-export-declaration" "^7.18.6" 934 + "@babel/parser" "^7.19.1" 935 + "@babel/types" "^7.19.0" 936 + debug "^4.1.0" 937 + globals "^11.1.0" 938 + 939 + "@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0": 940 + version "7.19.0" 941 + resolved "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz" 942 + integrity sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA== 943 + dependencies: 944 + "@babel/helper-string-parser" "^7.18.10" 945 + "@babel/helper-validator-identifier" "^7.18.6" 946 + to-fast-properties "^2.0.0" 947 + 948 + "@bcoe/v8-coverage@^0.2.3": 949 + version "0.2.3" 950 + resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" 951 + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== 952 + 953 + "@cspotcode/source-map-support@^0.8.0": 954 + version "0.8.1" 955 + resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" 956 + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== 957 + dependencies: 958 + "@jridgewell/trace-mapping" "0.3.9" 959 + 960 + "@esbuild/linux-loong64@0.14.54": 961 + version "0.14.54" 962 + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz#de2a4be678bd4d0d1ffbb86e6de779cde5999028" 963 + integrity sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw== 964 + 965 + "@eslint/eslintrc@^1.3.2": 966 + version "1.3.2" 967 + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.2.tgz" 968 + integrity sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ== 969 + dependencies: 970 + ajv "^6.12.4" 971 + debug "^4.3.2" 972 + espree "^9.4.0" 973 + globals "^13.15.0" 974 + ignore "^5.2.0" 975 + import-fresh "^3.2.1" 976 + js-yaml "^4.1.0" 977 + minimatch "^3.1.2" 978 + strip-json-comments "^3.1.1" 979 + 980 + "@gar/promisify@^1.0.1": 981 + version "1.1.3" 982 + resolved "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz" 983 + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== 984 + 985 + "@humanwhocodes/config-array@^0.10.5": 986 + version "0.10.6" 987 + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.6.tgz" 988 + integrity sha512-U/piU+VwXZsIgwnl+N+nRK12jCpHdc3s0UAc6zc1+HUgiESJxClpvYao/x9JwaN7onNeVb7kTlxlAvuEoaJ3ig== 989 + dependencies: 990 + "@humanwhocodes/object-schema" "^1.2.1" 991 + debug "^4.1.1" 992 + minimatch "^3.0.4" 993 + 994 + "@humanwhocodes/gitignore-to-minimatch@^1.0.2": 995 + version "1.0.2" 996 + resolved "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz" 997 + integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA== 998 + 999 + "@humanwhocodes/module-importer@^1.0.1": 1000 + version "1.0.1" 1001 + resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" 1002 + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== 1003 + 1004 + "@humanwhocodes/object-schema@^1.2.1": 1005 + version "1.2.1" 1006 + resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" 1007 + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== 1008 + 1009 + "@hutson/parse-repository-url@^3.0.0": 1010 + version "3.0.2" 1011 + resolved "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz" 1012 + integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q== 1013 + 1014 + "@ipld/dag-cbor@^7.0.3": 1015 + version "7.0.3" 1016 + resolved "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-7.0.3.tgz" 1017 + integrity sha512-1VVh2huHsuohdXC1bGJNE8WR72slZ9XE2T3wbBBq31dm7ZBatmKLLxrB+XAqafxfRFjv08RZmj/W/ZqaM13AuA== 1018 + dependencies: 1019 + cborg "^1.6.0" 1020 + multiformats "^9.5.4" 1021 + 1022 + "@istanbuljs/load-nyc-config@^1.0.0": 1023 + version "1.1.0" 1024 + resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" 1025 + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== 1026 + dependencies: 1027 + camelcase "^5.3.1" 1028 + find-up "^4.1.0" 1029 + get-package-type "^0.1.0" 1030 + js-yaml "^3.13.1" 1031 + resolve-from "^5.0.0" 1032 + 1033 + "@istanbuljs/schema@^0.1.2": 1034 + version "0.1.3" 1035 + resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" 1036 + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== 1037 + 1038 + "@jest/console@^28.1.3": 1039 + version "28.1.3" 1040 + resolved "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz" 1041 + integrity sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw== 1042 + dependencies: 1043 + "@jest/types" "^28.1.3" 1044 + "@types/node" "*" 1045 + chalk "^4.0.0" 1046 + jest-message-util "^28.1.3" 1047 + jest-util "^28.1.3" 1048 + slash "^3.0.0" 1049 + 1050 + "@jest/core@^28.1.3": 1051 + version "28.1.3" 1052 + resolved "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz" 1053 + integrity sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA== 1054 + dependencies: 1055 + "@jest/console" "^28.1.3" 1056 + "@jest/reporters" "^28.1.3" 1057 + "@jest/test-result" "^28.1.3" 1058 + "@jest/transform" "^28.1.3" 1059 + "@jest/types" "^28.1.3" 1060 + "@types/node" "*" 1061 + ansi-escapes "^4.2.1" 1062 + chalk "^4.0.0" 1063 + ci-info "^3.2.0" 1064 + exit "^0.1.2" 1065 + graceful-fs "^4.2.9" 1066 + jest-changed-files "^28.1.3" 1067 + jest-config "^28.1.3" 1068 + jest-haste-map "^28.1.3" 1069 + jest-message-util "^28.1.3" 1070 + jest-regex-util "^28.0.2" 1071 + jest-resolve "^28.1.3" 1072 + jest-resolve-dependencies "^28.1.3" 1073 + jest-runner "^28.1.3" 1074 + jest-runtime "^28.1.3" 1075 + jest-snapshot "^28.1.3" 1076 + jest-util "^28.1.3" 1077 + jest-validate "^28.1.3" 1078 + jest-watcher "^28.1.3" 1079 + micromatch "^4.0.4" 1080 + pretty-format "^28.1.3" 1081 + rimraf "^3.0.0" 1082 + slash "^3.0.0" 1083 + strip-ansi "^6.0.0" 1084 + 1085 + "@jest/environment@^28.1.3": 1086 + version "28.1.3" 1087 + resolved "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz" 1088 + integrity sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA== 1089 + dependencies: 1090 + "@jest/fake-timers" "^28.1.3" 1091 + "@jest/types" "^28.1.3" 1092 + "@types/node" "*" 1093 + jest-mock "^28.1.3" 1094 + 1095 + "@jest/expect-utils@^28.1.3": 1096 + version "28.1.3" 1097 + resolved "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz" 1098 + integrity sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA== 1099 + dependencies: 1100 + jest-get-type "^28.0.2" 1101 + 1102 + "@jest/expect@^28.1.3": 1103 + version "28.1.3" 1104 + resolved "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz" 1105 + integrity sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw== 1106 + dependencies: 1107 + expect "^28.1.3" 1108 + jest-snapshot "^28.1.3" 1109 + 1110 + "@jest/fake-timers@^28.1.3": 1111 + version "28.1.3" 1112 + resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz" 1113 + integrity sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw== 1114 + dependencies: 1115 + "@jest/types" "^28.1.3" 1116 + "@sinonjs/fake-timers" "^9.1.2" 1117 + "@types/node" "*" 1118 + jest-message-util "^28.1.3" 1119 + jest-mock "^28.1.3" 1120 + jest-util "^28.1.3" 1121 + 1122 + "@jest/globals@^28.1.3": 1123 + version "28.1.3" 1124 + resolved "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz" 1125 + integrity sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA== 1126 + dependencies: 1127 + "@jest/environment" "^28.1.3" 1128 + "@jest/expect" "^28.1.3" 1129 + "@jest/types" "^28.1.3" 1130 + 1131 + "@jest/reporters@^28.1.3": 1132 + version "28.1.3" 1133 + resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz" 1134 + integrity sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg== 1135 + dependencies: 1136 + "@bcoe/v8-coverage" "^0.2.3" 1137 + "@jest/console" "^28.1.3" 1138 + "@jest/test-result" "^28.1.3" 1139 + "@jest/transform" "^28.1.3" 1140 + "@jest/types" "^28.1.3" 1141 + "@jridgewell/trace-mapping" "^0.3.13" 1142 + "@types/node" "*" 1143 + chalk "^4.0.0" 1144 + collect-v8-coverage "^1.0.0" 1145 + exit "^0.1.2" 1146 + glob "^7.1.3" 1147 + graceful-fs "^4.2.9" 1148 + istanbul-lib-coverage "^3.0.0" 1149 + istanbul-lib-instrument "^5.1.0" 1150 + istanbul-lib-report "^3.0.0" 1151 + istanbul-lib-source-maps "^4.0.0" 1152 + istanbul-reports "^3.1.3" 1153 + jest-message-util "^28.1.3" 1154 + jest-util "^28.1.3" 1155 + jest-worker "^28.1.3" 1156 + slash "^3.0.0" 1157 + string-length "^4.0.1" 1158 + strip-ansi "^6.0.0" 1159 + terminal-link "^2.0.0" 1160 + v8-to-istanbul "^9.0.1" 1161 + 1162 + "@jest/schemas@^28.1.3": 1163 + version "28.1.3" 1164 + resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz" 1165 + integrity sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg== 1166 + dependencies: 1167 + "@sinclair/typebox" "^0.24.1" 1168 + 1169 + "@jest/source-map@^28.1.2": 1170 + version "28.1.2" 1171 + resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz" 1172 + integrity sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww== 1173 + dependencies: 1174 + "@jridgewell/trace-mapping" "^0.3.13" 1175 + callsites "^3.0.0" 1176 + graceful-fs "^4.2.9" 1177 + 1178 + "@jest/test-result@^28.1.3": 1179 + version "28.1.3" 1180 + resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz" 1181 + integrity sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg== 1182 + dependencies: 1183 + "@jest/console" "^28.1.3" 1184 + "@jest/types" "^28.1.3" 1185 + "@types/istanbul-lib-coverage" "^2.0.0" 1186 + collect-v8-coverage "^1.0.0" 1187 + 1188 + "@jest/test-sequencer@^28.1.3": 1189 + version "28.1.3" 1190 + resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz" 1191 + integrity sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw== 1192 + dependencies: 1193 + "@jest/test-result" "^28.1.3" 1194 + graceful-fs "^4.2.9" 1195 + jest-haste-map "^28.1.3" 1196 + slash "^3.0.0" 1197 + 1198 + "@jest/transform@^28.1.3": 1199 + version "28.1.3" 1200 + resolved "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz" 1201 + integrity sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA== 1202 + dependencies: 1203 + "@babel/core" "^7.11.6" 1204 + "@jest/types" "^28.1.3" 1205 + "@jridgewell/trace-mapping" "^0.3.13" 1206 + babel-plugin-istanbul "^6.1.1" 1207 + chalk "^4.0.0" 1208 + convert-source-map "^1.4.0" 1209 + fast-json-stable-stringify "^2.0.0" 1210 + graceful-fs "^4.2.9" 1211 + jest-haste-map "^28.1.3" 1212 + jest-regex-util "^28.0.2" 1213 + jest-util "^28.1.3" 1214 + micromatch "^4.0.4" 1215 + pirates "^4.0.4" 1216 + slash "^3.0.0" 1217 + write-file-atomic "^4.0.1" 1218 + 1219 + "@jest/types@^28.1.3": 1220 + version "28.1.3" 1221 + resolved "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz" 1222 + integrity sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ== 1223 + dependencies: 1224 + "@jest/schemas" "^28.1.3" 1225 + "@types/istanbul-lib-coverage" "^2.0.0" 1226 + "@types/istanbul-reports" "^3.0.0" 1227 + "@types/node" "*" 1228 + "@types/yargs" "^17.0.8" 1229 + chalk "^4.0.0" 1230 + 1231 + "@jridgewell/gen-mapping@^0.1.0": 1232 + version "0.1.1" 1233 + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz" 1234 + integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== 1235 + dependencies: 1236 + "@jridgewell/set-array" "^1.0.0" 1237 + "@jridgewell/sourcemap-codec" "^1.4.10" 1238 + 1239 + "@jridgewell/gen-mapping@^0.3.2": 1240 + version "0.3.2" 1241 + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz" 1242 + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== 1243 + dependencies: 1244 + "@jridgewell/set-array" "^1.0.1" 1245 + "@jridgewell/sourcemap-codec" "^1.4.10" 1246 + "@jridgewell/trace-mapping" "^0.3.9" 1247 + 1248 + "@jridgewell/resolve-uri@^3.0.3": 1249 + version "3.1.0" 1250 + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" 1251 + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== 1252 + 1253 + "@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": 1254 + version "1.1.2" 1255 + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" 1256 + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== 1257 + 1258 + "@jridgewell/sourcemap-codec@^1.4.10": 1259 + version "1.4.14" 1260 + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" 1261 + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== 1262 + 1263 + "@jridgewell/trace-mapping@0.3.9": 1264 + version "0.3.9" 1265 + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" 1266 + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== 1267 + dependencies: 1268 + "@jridgewell/resolve-uri" "^3.0.3" 1269 + "@jridgewell/sourcemap-codec" "^1.4.10" 1270 + 1271 + "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.9": 1272 + version "0.3.15" 1273 + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz" 1274 + integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== 1275 + dependencies: 1276 + "@jridgewell/resolve-uri" "^3.0.3" 1277 + "@jridgewell/sourcemap-codec" "^1.4.10" 1278 + 1279 + "@lerna/add@4.0.0": 1280 + version "4.0.0" 1281 + resolved "https://registry.npmjs.org/@lerna/add/-/add-4.0.0.tgz" 1282 + integrity sha512-cpmAH1iS3k8JBxNvnMqrGTTjbY/ZAiKa1ChJzFevMYY3eeqbvhsBKnBcxjRXtdrJ6bd3dCQM+ZtK+0i682Fhng== 1283 + dependencies: 1284 + "@lerna/bootstrap" "4.0.0" 1285 + "@lerna/command" "4.0.0" 1286 + "@lerna/filter-options" "4.0.0" 1287 + "@lerna/npm-conf" "4.0.0" 1288 + "@lerna/validation-error" "4.0.0" 1289 + dedent "^0.7.0" 1290 + npm-package-arg "^8.1.0" 1291 + p-map "^4.0.0" 1292 + pacote "^11.2.6" 1293 + semver "^7.3.4" 1294 + 1295 + "@lerna/bootstrap@4.0.0": 1296 + version "4.0.0" 1297 + resolved "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-4.0.0.tgz" 1298 + integrity sha512-RkS7UbeM2vu+kJnHzxNRCLvoOP9yGNgkzRdy4UV2hNalD7EP41bLvRVOwRYQ7fhc2QcbhnKNdOBihYRL0LcKtw== 1299 + dependencies: 1300 + "@lerna/command" "4.0.0" 1301 + "@lerna/filter-options" "4.0.0" 1302 + "@lerna/has-npm-version" "4.0.0" 1303 + "@lerna/npm-install" "4.0.0" 1304 + "@lerna/package-graph" "4.0.0" 1305 + "@lerna/pulse-till-done" "4.0.0" 1306 + "@lerna/rimraf-dir" "4.0.0" 1307 + "@lerna/run-lifecycle" "4.0.0" 1308 + "@lerna/run-topologically" "4.0.0" 1309 + "@lerna/symlink-binary" "4.0.0" 1310 + "@lerna/symlink-dependencies" "4.0.0" 1311 + "@lerna/validation-error" "4.0.0" 1312 + dedent "^0.7.0" 1313 + get-port "^5.1.1" 1314 + multimatch "^5.0.0" 1315 + npm-package-arg "^8.1.0" 1316 + npmlog "^4.1.2" 1317 + p-map "^4.0.0" 1318 + p-map-series "^2.1.0" 1319 + p-waterfall "^2.1.1" 1320 + read-package-tree "^5.3.1" 1321 + semver "^7.3.4" 1322 + 1323 + "@lerna/changed@4.0.0": 1324 + version "4.0.0" 1325 + resolved "https://registry.npmjs.org/@lerna/changed/-/changed-4.0.0.tgz" 1326 + integrity sha512-cD+KuPRp6qiPOD+BO6S6SN5cARspIaWSOqGBpGnYzLb4uWT8Vk4JzKyYtc8ym1DIwyoFXHosXt8+GDAgR8QrgQ== 1327 + dependencies: 1328 + "@lerna/collect-updates" "4.0.0" 1329 + "@lerna/command" "4.0.0" 1330 + "@lerna/listable" "4.0.0" 1331 + "@lerna/output" "4.0.0" 1332 + 1333 + "@lerna/check-working-tree@4.0.0": 1334 + version "4.0.0" 1335 + resolved "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-4.0.0.tgz" 1336 + integrity sha512-/++bxM43jYJCshBiKP5cRlCTwSJdRSxVmcDAXM+1oUewlZJVSVlnks5eO0uLxokVFvLhHlC5kHMc7gbVFPHv6Q== 1337 + dependencies: 1338 + "@lerna/collect-uncommitted" "4.0.0" 1339 + "@lerna/describe-ref" "4.0.0" 1340 + "@lerna/validation-error" "4.0.0" 1341 + 1342 + "@lerna/child-process@4.0.0": 1343 + version "4.0.0" 1344 + resolved "https://registry.npmjs.org/@lerna/child-process/-/child-process-4.0.0.tgz" 1345 + integrity sha512-XtCnmCT9eyVsUUHx6y/CTBYdV9g2Cr/VxyseTWBgfIur92/YKClfEtJTbOh94jRT62hlKLqSvux/UhxXVh613Q== 1346 + dependencies: 1347 + chalk "^4.1.0" 1348 + execa "^5.0.0" 1349 + strong-log-transformer "^2.1.0" 1350 + 1351 + "@lerna/clean@4.0.0": 1352 + version "4.0.0" 1353 + resolved "https://registry.npmjs.org/@lerna/clean/-/clean-4.0.0.tgz" 1354 + integrity sha512-uugG2iN9k45ITx2jtd8nEOoAtca8hNlDCUM0N3lFgU/b1mEQYAPRkqr1qs4FLRl/Y50ZJ41wUz1eazS+d/0osA== 1355 + dependencies: 1356 + "@lerna/command" "4.0.0" 1357 + "@lerna/filter-options" "4.0.0" 1358 + "@lerna/prompt" "4.0.0" 1359 + "@lerna/pulse-till-done" "4.0.0" 1360 + "@lerna/rimraf-dir" "4.0.0" 1361 + p-map "^4.0.0" 1362 + p-map-series "^2.1.0" 1363 + p-waterfall "^2.1.1" 1364 + 1365 + "@lerna/cli@4.0.0": 1366 + version "4.0.0" 1367 + resolved "https://registry.npmjs.org/@lerna/cli/-/cli-4.0.0.tgz" 1368 + integrity sha512-Neaw3GzFrwZiRZv2g7g6NwFjs3er1vhraIniEs0jjVLPMNC4eata0na3GfE5yibkM/9d3gZdmihhZdZ3EBdvYA== 1369 + dependencies: 1370 + "@lerna/global-options" "4.0.0" 1371 + dedent "^0.7.0" 1372 + npmlog "^4.1.2" 1373 + yargs "^16.2.0" 1374 + 1375 + "@lerna/collect-uncommitted@4.0.0": 1376 + version "4.0.0" 1377 + resolved "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-4.0.0.tgz" 1378 + integrity sha512-ufSTfHZzbx69YNj7KXQ3o66V4RC76ffOjwLX0q/ab//61bObJ41n03SiQEhSlmpP+gmFbTJ3/7pTe04AHX9m/g== 1379 + dependencies: 1380 + "@lerna/child-process" "4.0.0" 1381 + chalk "^4.1.0" 1382 + npmlog "^4.1.2" 1383 + 1384 + "@lerna/collect-updates@4.0.0": 1385 + version "4.0.0" 1386 + resolved "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-4.0.0.tgz" 1387 + integrity sha512-bnNGpaj4zuxsEkyaCZLka9s7nMs58uZoxrRIPJ+nrmrZYp1V5rrd+7/NYTuunOhY2ug1sTBvTAxj3NZQ+JKnOw== 1388 + dependencies: 1389 + "@lerna/child-process" "4.0.0" 1390 + "@lerna/describe-ref" "4.0.0" 1391 + minimatch "^3.0.4" 1392 + npmlog "^4.1.2" 1393 + slash "^3.0.0" 1394 + 1395 + "@lerna/command@4.0.0": 1396 + version "4.0.0" 1397 + resolved "https://registry.npmjs.org/@lerna/command/-/command-4.0.0.tgz" 1398 + integrity sha512-LM9g3rt5FsPNFqIHUeRwWXLNHJ5NKzOwmVKZ8anSp4e1SPrv2HNc1V02/9QyDDZK/w+5POXH5lxZUI1CHaOK/A== 1399 + dependencies: 1400 + "@lerna/child-process" "4.0.0" 1401 + "@lerna/package-graph" "4.0.0" 1402 + "@lerna/project" "4.0.0" 1403 + "@lerna/validation-error" "4.0.0" 1404 + "@lerna/write-log-file" "4.0.0" 1405 + clone-deep "^4.0.1" 1406 + dedent "^0.7.0" 1407 + execa "^5.0.0" 1408 + is-ci "^2.0.0" 1409 + npmlog "^4.1.2" 1410 + 1411 + "@lerna/conventional-commits@4.0.0": 1412 + version "4.0.0" 1413 + resolved "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-4.0.0.tgz" 1414 + integrity sha512-CSUQRjJHFrH8eBn7+wegZLV3OrNc0Y1FehYfYGhjLE2SIfpCL4bmfu/ViYuHh9YjwHaA+4SX6d3hR+xkeseKmw== 1415 + dependencies: 1416 + "@lerna/validation-error" "4.0.0" 1417 + conventional-changelog-angular "^5.0.12" 1418 + conventional-changelog-core "^4.2.2" 1419 + conventional-recommended-bump "^6.1.0" 1420 + fs-extra "^9.1.0" 1421 + get-stream "^6.0.0" 1422 + lodash.template "^4.5.0" 1423 + npm-package-arg "^8.1.0" 1424 + npmlog "^4.1.2" 1425 + pify "^5.0.0" 1426 + semver "^7.3.4" 1427 + 1428 + "@lerna/create-symlink@4.0.0": 1429 + version "4.0.0" 1430 + resolved "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-4.0.0.tgz" 1431 + integrity sha512-I0phtKJJdafUiDwm7BBlEUOtogmu8+taxq6PtIrxZbllV9hWg59qkpuIsiFp+no7nfRVuaasNYHwNUhDAVQBig== 1432 + dependencies: 1433 + cmd-shim "^4.1.0" 1434 + fs-extra "^9.1.0" 1435 + npmlog "^4.1.2" 1436 + 1437 + "@lerna/create@4.0.0": 1438 + version "4.0.0" 1439 + resolved "https://registry.npmjs.org/@lerna/create/-/create-4.0.0.tgz" 1440 + integrity sha512-mVOB1niKByEUfxlbKTM1UNECWAjwUdiioIbRQZEeEabtjCL69r9rscIsjlGyhGWCfsdAG5wfq4t47nlDXdLLag== 1441 + dependencies: 1442 + "@lerna/child-process" "4.0.0" 1443 + "@lerna/command" "4.0.0" 1444 + "@lerna/npm-conf" "4.0.0" 1445 + "@lerna/validation-error" "4.0.0" 1446 + dedent "^0.7.0" 1447 + fs-extra "^9.1.0" 1448 + globby "^11.0.2" 1449 + init-package-json "^2.0.2" 1450 + npm-package-arg "^8.1.0" 1451 + p-reduce "^2.1.0" 1452 + pacote "^11.2.6" 1453 + pify "^5.0.0" 1454 + semver "^7.3.4" 1455 + slash "^3.0.0" 1456 + validate-npm-package-license "^3.0.4" 1457 + validate-npm-package-name "^3.0.0" 1458 + whatwg-url "^8.4.0" 1459 + yargs-parser "20.2.4" 1460 + 1461 + "@lerna/describe-ref@4.0.0": 1462 + version "4.0.0" 1463 + resolved "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-4.0.0.tgz" 1464 + integrity sha512-eTU5+xC4C5Gcgz+Ey4Qiw9nV2B4JJbMulsYJMW8QjGcGh8zudib7Sduj6urgZXUYNyhYpRs+teci9M2J8u+UvQ== 1465 + dependencies: 1466 + "@lerna/child-process" "4.0.0" 1467 + npmlog "^4.1.2" 1468 + 1469 + "@lerna/diff@4.0.0": 1470 + version "4.0.0" 1471 + resolved "https://registry.npmjs.org/@lerna/diff/-/diff-4.0.0.tgz" 1472 + integrity sha512-jYPKprQVg41+MUMxx6cwtqsNm0Yxx9GDEwdiPLwcUTFx+/qKCEwifKNJ1oGIPBxyEHX2PFCOjkK39lHoj2qiag== 1473 + dependencies: 1474 + "@lerna/child-process" "4.0.0" 1475 + "@lerna/command" "4.0.0" 1476 + "@lerna/validation-error" "4.0.0" 1477 + npmlog "^4.1.2" 1478 + 1479 + "@lerna/exec@4.0.0": 1480 + version "4.0.0" 1481 + resolved "https://registry.npmjs.org/@lerna/exec/-/exec-4.0.0.tgz" 1482 + integrity sha512-VGXtL/b/JfY84NB98VWZpIExfhLOzy0ozm/0XaS4a2SmkAJc5CeUfrhvHxxkxiTBLkU+iVQUyYEoAT0ulQ8PCw== 1483 + dependencies: 1484 + "@lerna/child-process" "4.0.0" 1485 + "@lerna/command" "4.0.0" 1486 + "@lerna/filter-options" "4.0.0" 1487 + "@lerna/profiler" "4.0.0" 1488 + "@lerna/run-topologically" "4.0.0" 1489 + "@lerna/validation-error" "4.0.0" 1490 + p-map "^4.0.0" 1491 + 1492 + "@lerna/filter-options@4.0.0": 1493 + version "4.0.0" 1494 + resolved "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-4.0.0.tgz" 1495 + integrity sha512-vV2ANOeZhOqM0rzXnYcFFCJ/kBWy/3OA58irXih9AMTAlQLymWAK0akWybl++sUJ4HB9Hx12TOqaXbYS2NM5uw== 1496 + dependencies: 1497 + "@lerna/collect-updates" "4.0.0" 1498 + "@lerna/filter-packages" "4.0.0" 1499 + dedent "^0.7.0" 1500 + npmlog "^4.1.2" 1501 + 1502 + "@lerna/filter-packages@4.0.0": 1503 + version "4.0.0" 1504 + resolved "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-4.0.0.tgz" 1505 + integrity sha512-+4AJIkK7iIiOaqCiVTYJxh/I9qikk4XjNQLhE3kixaqgMuHl1NQ99qXRR0OZqAWB9mh8Z1HA9bM5K1HZLBTOqA== 1506 + dependencies: 1507 + "@lerna/validation-error" "4.0.0" 1508 + multimatch "^5.0.0" 1509 + npmlog "^4.1.2" 1510 + 1511 + "@lerna/get-npm-exec-opts@4.0.0": 1512 + version "4.0.0" 1513 + resolved "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-4.0.0.tgz" 1514 + integrity sha512-yvmkerU31CTWS2c7DvmAWmZVeclPBqI7gPVr5VATUKNWJ/zmVcU4PqbYoLu92I9Qc4gY1TuUplMNdNuZTSL7IQ== 1515 + dependencies: 1516 + npmlog "^4.1.2" 1517 + 1518 + "@lerna/get-packed@4.0.0": 1519 + version "4.0.0" 1520 + resolved "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-4.0.0.tgz" 1521 + integrity sha512-rfWONRsEIGyPJTxFzC8ECb3ZbsDXJbfqWYyeeQQDrJRPnEJErlltRLPLgC2QWbxFgFPsoDLeQmFHJnf0iDfd8w== 1522 + dependencies: 1523 + fs-extra "^9.1.0" 1524 + ssri "^8.0.1" 1525 + tar "^6.1.0" 1526 + 1527 + "@lerna/github-client@4.0.0": 1528 + version "4.0.0" 1529 + resolved "https://registry.npmjs.org/@lerna/github-client/-/github-client-4.0.0.tgz" 1530 + integrity sha512-2jhsldZtTKXYUBnOm23Lb0Fx8G4qfSXF9y7UpyUgWUj+YZYd+cFxSuorwQIgk5P4XXrtVhsUesIsli+BYSThiw== 1531 + dependencies: 1532 + "@lerna/child-process" "4.0.0" 1533 + "@octokit/plugin-enterprise-rest" "^6.0.1" 1534 + "@octokit/rest" "^18.1.0" 1535 + git-url-parse "^11.4.4" 1536 + npmlog "^4.1.2" 1537 + 1538 + "@lerna/gitlab-client@4.0.0": 1539 + version "4.0.0" 1540 + resolved "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-4.0.0.tgz" 1541 + integrity sha512-OMUpGSkeDWFf7BxGHlkbb35T7YHqVFCwBPSIR6wRsszY8PAzCYahtH3IaJzEJyUg6vmZsNl0FSr3pdA2skhxqA== 1542 + dependencies: 1543 + node-fetch "^2.6.1" 1544 + npmlog "^4.1.2" 1545 + whatwg-url "^8.4.0" 1546 + 1547 + "@lerna/global-options@4.0.0": 1548 + version "4.0.0" 1549 + resolved "https://registry.npmjs.org/@lerna/global-options/-/global-options-4.0.0.tgz" 1550 + integrity sha512-TRMR8afAHxuYBHK7F++Ogop2a82xQjoGna1dvPOY6ltj/pEx59pdgcJfYcynYqMkFIk8bhLJJN9/ndIfX29FTQ== 1551 + 1552 + "@lerna/has-npm-version@4.0.0": 1553 + version "4.0.0" 1554 + resolved "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-4.0.0.tgz" 1555 + integrity sha512-LQ3U6XFH8ZmLCsvsgq1zNDqka0Xzjq5ibVN+igAI5ccRWNaUsE/OcmsyMr50xAtNQMYMzmpw5GVLAivT2/YzCg== 1556 + dependencies: 1557 + "@lerna/child-process" "4.0.0" 1558 + semver "^7.3.4" 1559 + 1560 + "@lerna/import@4.0.0": 1561 + version "4.0.0" 1562 + resolved "https://registry.npmjs.org/@lerna/import/-/import-4.0.0.tgz" 1563 + integrity sha512-FaIhd+4aiBousKNqC7TX1Uhe97eNKf5/SC7c5WZANVWtC7aBWdmswwDt3usrzCNpj6/Wwr9EtEbYROzxKH8ffg== 1564 + dependencies: 1565 + "@lerna/child-process" "4.0.0" 1566 + "@lerna/command" "4.0.0" 1567 + "@lerna/prompt" "4.0.0" 1568 + "@lerna/pulse-till-done" "4.0.0" 1569 + "@lerna/validation-error" "4.0.0" 1570 + dedent "^0.7.0" 1571 + fs-extra "^9.1.0" 1572 + p-map-series "^2.1.0" 1573 + 1574 + "@lerna/info@4.0.0": 1575 + version "4.0.0" 1576 + resolved "https://registry.npmjs.org/@lerna/info/-/info-4.0.0.tgz" 1577 + integrity sha512-8Uboa12kaCSZEn4XRfPz5KU9XXoexSPS4oeYGj76s2UQb1O1GdnEyfjyNWoUl1KlJ2i/8nxUskpXIftoFYH0/Q== 1578 + dependencies: 1579 + "@lerna/command" "4.0.0" 1580 + "@lerna/output" "4.0.0" 1581 + envinfo "^7.7.4" 1582 + 1583 + "@lerna/init@4.0.0": 1584 + version "4.0.0" 1585 + resolved "https://registry.npmjs.org/@lerna/init/-/init-4.0.0.tgz" 1586 + integrity sha512-wY6kygop0BCXupzWj5eLvTUqdR7vIAm0OgyV9WHpMYQGfs1V22jhztt8mtjCloD/O0nEe4tJhdG62XU5aYmPNQ== 1587 + dependencies: 1588 + "@lerna/child-process" "4.0.0" 1589 + "@lerna/command" "4.0.0" 1590 + fs-extra "^9.1.0" 1591 + p-map "^4.0.0" 1592 + write-json-file "^4.3.0" 1593 + 1594 + "@lerna/link@4.0.0": 1595 + version "4.0.0" 1596 + resolved "https://registry.npmjs.org/@lerna/link/-/link-4.0.0.tgz" 1597 + integrity sha512-KlvPi7XTAcVOByfaLlOeYOfkkDcd+bejpHMCd1KcArcFTwijOwXOVi24DYomIeHvy6HsX/IUquJ4PPUJIeB4+w== 1598 + dependencies: 1599 + "@lerna/command" "4.0.0" 1600 + "@lerna/package-graph" "4.0.0" 1601 + "@lerna/symlink-dependencies" "4.0.0" 1602 + p-map "^4.0.0" 1603 + slash "^3.0.0" 1604 + 1605 + "@lerna/list@4.0.0": 1606 + version "4.0.0" 1607 + resolved "https://registry.npmjs.org/@lerna/list/-/list-4.0.0.tgz" 1608 + integrity sha512-L2B5m3P+U4Bif5PultR4TI+KtW+SArwq1i75QZ78mRYxPc0U/piau1DbLOmwrdqr99wzM49t0Dlvl6twd7GHFg== 1609 + dependencies: 1610 + "@lerna/command" "4.0.0" 1611 + "@lerna/filter-options" "4.0.0" 1612 + "@lerna/listable" "4.0.0" 1613 + "@lerna/output" "4.0.0" 1614 + 1615 + "@lerna/listable@4.0.0": 1616 + version "4.0.0" 1617 + resolved "https://registry.npmjs.org/@lerna/listable/-/listable-4.0.0.tgz" 1618 + integrity sha512-/rPOSDKsOHs5/PBLINZOkRIX1joOXUXEtyUs5DHLM8q6/RP668x/1lFhw6Dx7/U+L0+tbkpGtZ1Yt0LewCLgeQ== 1619 + dependencies: 1620 + "@lerna/query-graph" "4.0.0" 1621 + chalk "^4.1.0" 1622 + columnify "^1.5.4" 1623 + 1624 + "@lerna/log-packed@4.0.0": 1625 + version "4.0.0" 1626 + resolved "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-4.0.0.tgz" 1627 + integrity sha512-+dpCiWbdzgMAtpajLToy9PO713IHoE6GV/aizXycAyA07QlqnkpaBNZ8DW84gHdM1j79TWockGJo9PybVhrrZQ== 1628 + dependencies: 1629 + byte-size "^7.0.0" 1630 + columnify "^1.5.4" 1631 + has-unicode "^2.0.1" 1632 + npmlog "^4.1.2" 1633 + 1634 + "@lerna/npm-conf@4.0.0": 1635 + version "4.0.0" 1636 + resolved "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-4.0.0.tgz" 1637 + integrity sha512-uS7H02yQNq3oejgjxAxqq/jhwGEE0W0ntr8vM3EfpCW1F/wZruwQw+7bleJQ9vUBjmdXST//tk8mXzr5+JXCfw== 1638 + dependencies: 1639 + config-chain "^1.1.12" 1640 + pify "^5.0.0" 1641 + 1642 + "@lerna/npm-dist-tag@4.0.0": 1643 + version "4.0.0" 1644 + resolved "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-4.0.0.tgz" 1645 + integrity sha512-F20sg28FMYTgXqEQihgoqSfwmq+Id3zT23CnOwD+XQMPSy9IzyLf1fFVH319vXIw6NF6Pgs4JZN2Qty6/CQXGw== 1646 + dependencies: 1647 + "@lerna/otplease" "4.0.0" 1648 + npm-package-arg "^8.1.0" 1649 + npm-registry-fetch "^9.0.0" 1650 + npmlog "^4.1.2" 1651 + 1652 + "@lerna/npm-install@4.0.0": 1653 + version "4.0.0" 1654 + resolved "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-4.0.0.tgz" 1655 + integrity sha512-aKNxq2j3bCH3eXl3Fmu4D54s/YLL9WSwV8W7X2O25r98wzrO38AUN6AB9EtmAx+LV/SP15et7Yueg9vSaanRWg== 1656 + dependencies: 1657 + "@lerna/child-process" "4.0.0" 1658 + "@lerna/get-npm-exec-opts" "4.0.0" 1659 + fs-extra "^9.1.0" 1660 + npm-package-arg "^8.1.0" 1661 + npmlog "^4.1.2" 1662 + signal-exit "^3.0.3" 1663 + write-pkg "^4.0.0" 1664 + 1665 + "@lerna/npm-publish@4.0.0": 1666 + version "4.0.0" 1667 + resolved "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-4.0.0.tgz" 1668 + integrity sha512-vQb7yAPRo5G5r77DRjHITc9piR9gvEKWrmfCH7wkfBnGWEqu7n8/4bFQ7lhnkujvc8RXOsYpvbMQkNfkYibD/w== 1669 + dependencies: 1670 + "@lerna/otplease" "4.0.0" 1671 + "@lerna/run-lifecycle" "4.0.0" 1672 + fs-extra "^9.1.0" 1673 + libnpmpublish "^4.0.0" 1674 + npm-package-arg "^8.1.0" 1675 + npmlog "^4.1.2" 1676 + pify "^5.0.0" 1677 + read-package-json "^3.0.0" 1678 + 1679 + "@lerna/npm-run-script@4.0.0": 1680 + version "4.0.0" 1681 + resolved "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-4.0.0.tgz" 1682 + integrity sha512-Jmyh9/IwXJjOXqKfIgtxi0bxi1pUeKe5bD3S81tkcy+kyng/GNj9WSqD5ZggoNP2NP//s4CLDAtUYLdP7CU9rA== 1683 + dependencies: 1684 + "@lerna/child-process" "4.0.0" 1685 + "@lerna/get-npm-exec-opts" "4.0.0" 1686 + npmlog "^4.1.2" 1687 + 1688 + "@lerna/otplease@4.0.0": 1689 + version "4.0.0" 1690 + resolved "https://registry.npmjs.org/@lerna/otplease/-/otplease-4.0.0.tgz" 1691 + integrity sha512-Sgzbqdk1GH4psNiT6hk+BhjOfIr/5KhGBk86CEfHNJTk9BK4aZYyJD4lpDbDdMjIV4g03G7pYoqHzH765T4fxw== 1692 + dependencies: 1693 + "@lerna/prompt" "4.0.0" 1694 + 1695 + "@lerna/output@4.0.0": 1696 + version "4.0.0" 1697 + resolved "https://registry.npmjs.org/@lerna/output/-/output-4.0.0.tgz" 1698 + integrity sha512-Un1sHtO1AD7buDQrpnaYTi2EG6sLF+KOPEAMxeUYG5qG3khTs2Zgzq5WE3dt2N/bKh7naESt20JjIW6tBELP0w== 1699 + dependencies: 1700 + npmlog "^4.1.2" 1701 + 1702 + "@lerna/pack-directory@4.0.0": 1703 + version "4.0.0" 1704 + resolved "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-4.0.0.tgz" 1705 + integrity sha512-NJrmZNmBHS+5aM+T8N6FVbaKFScVqKlQFJNY2k7nsJ/uklNKsLLl6VhTQBPwMTbf6Tf7l6bcKzpy7aePuq9UiQ== 1706 + dependencies: 1707 + "@lerna/get-packed" "4.0.0" 1708 + "@lerna/package" "4.0.0" 1709 + "@lerna/run-lifecycle" "4.0.0" 1710 + npm-packlist "^2.1.4" 1711 + npmlog "^4.1.2" 1712 + tar "^6.1.0" 1713 + temp-write "^4.0.0" 1714 + 1715 + "@lerna/package-graph@4.0.0": 1716 + version "4.0.0" 1717 + resolved "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-4.0.0.tgz" 1718 + integrity sha512-QED2ZCTkfXMKFoTGoccwUzjHtZMSf3UKX14A4/kYyBms9xfFsesCZ6SLI5YeySEgcul8iuIWfQFZqRw+Qrjraw== 1719 + dependencies: 1720 + "@lerna/prerelease-id-from-version" "4.0.0" 1721 + "@lerna/validation-error" "4.0.0" 1722 + npm-package-arg "^8.1.0" 1723 + npmlog "^4.1.2" 1724 + semver "^7.3.4" 1725 + 1726 + "@lerna/package@4.0.0": 1727 + version "4.0.0" 1728 + resolved "https://registry.npmjs.org/@lerna/package/-/package-4.0.0.tgz" 1729 + integrity sha512-l0M/izok6FlyyitxiQKr+gZLVFnvxRQdNhzmQ6nRnN9dvBJWn+IxxpM+cLqGACatTnyo9LDzNTOj2Db3+s0s8Q== 1730 + dependencies: 1731 + load-json-file "^6.2.0" 1732 + npm-package-arg "^8.1.0" 1733 + write-pkg "^4.0.0" 1734 + 1735 + "@lerna/prerelease-id-from-version@4.0.0": 1736 + version "4.0.0" 1737 + resolved "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-4.0.0.tgz" 1738 + integrity sha512-GQqguzETdsYRxOSmdFZ6zDBXDErIETWOqomLERRY54f4p+tk4aJjoVdd9xKwehC9TBfIFvlRbL1V9uQGHh1opg== 1739 + dependencies: 1740 + semver "^7.3.4" 1741 + 1742 + "@lerna/profiler@4.0.0": 1743 + version "4.0.0" 1744 + resolved "https://registry.npmjs.org/@lerna/profiler/-/profiler-4.0.0.tgz" 1745 + integrity sha512-/BaEbqnVh1LgW/+qz8wCuI+obzi5/vRE8nlhjPzdEzdmWmZXuCKyWSEzAyHOJWw1ntwMiww5dZHhFQABuoFz9Q== 1746 + dependencies: 1747 + fs-extra "^9.1.0" 1748 + npmlog "^4.1.2" 1749 + upath "^2.0.1" 1750 + 1751 + "@lerna/project@4.0.0": 1752 + version "4.0.0" 1753 + resolved "https://registry.npmjs.org/@lerna/project/-/project-4.0.0.tgz" 1754 + integrity sha512-o0MlVbDkD5qRPkFKlBZsXZjoNTWPyuL58564nSfZJ6JYNmgAptnWPB2dQlAc7HWRZkmnC2fCkEdoU+jioPavbg== 1755 + dependencies: 1756 + "@lerna/package" "4.0.0" 1757 + "@lerna/validation-error" "4.0.0" 1758 + cosmiconfig "^7.0.0" 1759 + dedent "^0.7.0" 1760 + dot-prop "^6.0.1" 1761 + glob-parent "^5.1.1" 1762 + globby "^11.0.2" 1763 + load-json-file "^6.2.0" 1764 + npmlog "^4.1.2" 1765 + p-map "^4.0.0" 1766 + resolve-from "^5.0.0" 1767 + write-json-file "^4.3.0" 1768 + 1769 + "@lerna/prompt@4.0.0": 1770 + version "4.0.0" 1771 + resolved "https://registry.npmjs.org/@lerna/prompt/-/prompt-4.0.0.tgz" 1772 + integrity sha512-4Ig46oCH1TH5M7YyTt53fT6TuaKMgqUUaqdgxvp6HP6jtdak6+amcsqB8YGz2eQnw/sdxunx84DfI9XpoLj4bQ== 1773 + dependencies: 1774 + inquirer "^7.3.3" 1775 + npmlog "^4.1.2" 1776 + 1777 + "@lerna/publish@4.0.0": 1778 + version "4.0.0" 1779 + resolved "https://registry.npmjs.org/@lerna/publish/-/publish-4.0.0.tgz" 1780 + integrity sha512-K8jpqjHrChH22qtkytA5GRKIVFEtqBF6JWj1I8dWZtHs4Jywn8yB1jQ3BAMLhqmDJjWJtRck0KXhQQKzDK2UPg== 1781 + dependencies: 1782 + "@lerna/check-working-tree" "4.0.0" 1783 + "@lerna/child-process" "4.0.0" 1784 + "@lerna/collect-updates" "4.0.0" 1785 + "@lerna/command" "4.0.0" 1786 + "@lerna/describe-ref" "4.0.0" 1787 + "@lerna/log-packed" "4.0.0" 1788 + "@lerna/npm-conf" "4.0.0" 1789 + "@lerna/npm-dist-tag" "4.0.0" 1790 + "@lerna/npm-publish" "4.0.0" 1791 + "@lerna/otplease" "4.0.0" 1792 + "@lerna/output" "4.0.0" 1793 + "@lerna/pack-directory" "4.0.0" 1794 + "@lerna/prerelease-id-from-version" "4.0.0" 1795 + "@lerna/prompt" "4.0.0" 1796 + "@lerna/pulse-till-done" "4.0.0" 1797 + "@lerna/run-lifecycle" "4.0.0" 1798 + "@lerna/run-topologically" "4.0.0" 1799 + "@lerna/validation-error" "4.0.0" 1800 + "@lerna/version" "4.0.0" 1801 + fs-extra "^9.1.0" 1802 + libnpmaccess "^4.0.1" 1803 + npm-package-arg "^8.1.0" 1804 + npm-registry-fetch "^9.0.0" 1805 + npmlog "^4.1.2" 1806 + p-map "^4.0.0" 1807 + p-pipe "^3.1.0" 1808 + pacote "^11.2.6" 1809 + semver "^7.3.4" 1810 + 1811 + "@lerna/pulse-till-done@4.0.0": 1812 + version "4.0.0" 1813 + resolved "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-4.0.0.tgz" 1814 + integrity sha512-Frb4F7QGckaybRhbF7aosLsJ5e9WuH7h0KUkjlzSByVycxY91UZgaEIVjS2oN9wQLrheLMHl6SiFY0/Pvo0Cxg== 1815 + dependencies: 1816 + npmlog "^4.1.2" 1817 + 1818 + "@lerna/query-graph@4.0.0": 1819 + version "4.0.0" 1820 + resolved "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-4.0.0.tgz" 1821 + integrity sha512-YlP6yI3tM4WbBmL9GCmNDoeQyzcyg1e4W96y/PKMZa5GbyUvkS2+Jc2kwPD+5KcXou3wQZxSPzR3Te5OenaDdg== 1822 + dependencies: 1823 + "@lerna/package-graph" "4.0.0" 1824 + 1825 + "@lerna/resolve-symlink@4.0.0": 1826 + version "4.0.0" 1827 + resolved "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-4.0.0.tgz" 1828 + integrity sha512-RtX8VEUzqT+uLSCohx8zgmjc6zjyRlh6i/helxtZTMmc4+6O4FS9q5LJas2uGO2wKvBlhcD6siibGt7dIC3xZA== 1829 + dependencies: 1830 + fs-extra "^9.1.0" 1831 + npmlog "^4.1.2" 1832 + read-cmd-shim "^2.0.0" 1833 + 1834 + "@lerna/rimraf-dir@4.0.0": 1835 + version "4.0.0" 1836 + resolved "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-4.0.0.tgz" 1837 + integrity sha512-QNH9ABWk9mcMJh2/muD9iYWBk1oQd40y6oH+f3wwmVGKYU5YJD//+zMiBI13jxZRtwBx0vmBZzkBkK1dR11cBg== 1838 + dependencies: 1839 + "@lerna/child-process" "4.0.0" 1840 + npmlog "^4.1.2" 1841 + path-exists "^4.0.0" 1842 + rimraf "^3.0.2" 1843 + 1844 + "@lerna/run-lifecycle@4.0.0": 1845 + version "4.0.0" 1846 + resolved "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-4.0.0.tgz" 1847 + integrity sha512-IwxxsajjCQQEJAeAaxF8QdEixfI7eLKNm4GHhXHrgBu185JcwScFZrj9Bs+PFKxwb+gNLR4iI5rpUdY8Y0UdGQ== 1848 + dependencies: 1849 + "@lerna/npm-conf" "4.0.0" 1850 + npm-lifecycle "^3.1.5" 1851 + npmlog "^4.1.2" 1852 + 1853 + "@lerna/run-topologically@4.0.0": 1854 + version "4.0.0" 1855 + resolved "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-4.0.0.tgz" 1856 + integrity sha512-EVZw9hGwo+5yp+VL94+NXRYisqgAlj0jWKWtAIynDCpghRxCE5GMO3xrQLmQgqkpUl9ZxQFpICgYv5DW4DksQA== 1857 + dependencies: 1858 + "@lerna/query-graph" "4.0.0" 1859 + p-queue "^6.6.2" 1860 + 1861 + "@lerna/run@4.0.0": 1862 + version "4.0.0" 1863 + resolved "https://registry.npmjs.org/@lerna/run/-/run-4.0.0.tgz" 1864 + integrity sha512-9giulCOzlMPzcZS/6Eov6pxE9gNTyaXk0Man+iCIdGJNMrCnW7Dme0Z229WWP/UoxDKg71F2tMsVVGDiRd8fFQ== 1865 + dependencies: 1866 + "@lerna/command" "4.0.0" 1867 + "@lerna/filter-options" "4.0.0" 1868 + "@lerna/npm-run-script" "4.0.0" 1869 + "@lerna/output" "4.0.0" 1870 + "@lerna/profiler" "4.0.0" 1871 + "@lerna/run-topologically" "4.0.0" 1872 + "@lerna/timer" "4.0.0" 1873 + "@lerna/validation-error" "4.0.0" 1874 + p-map "^4.0.0" 1875 + 1876 + "@lerna/symlink-binary@4.0.0": 1877 + version "4.0.0" 1878 + resolved "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-4.0.0.tgz" 1879 + integrity sha512-zualodWC4q1QQc1pkz969hcFeWXOsVYZC5AWVtAPTDfLl+TwM7eG/O6oP+Rr3fFowspxo6b1TQ6sYfDV6HXNWA== 1880 + dependencies: 1881 + "@lerna/create-symlink" "4.0.0" 1882 + "@lerna/package" "4.0.0" 1883 + fs-extra "^9.1.0" 1884 + p-map "^4.0.0" 1885 + 1886 + "@lerna/symlink-dependencies@4.0.0": 1887 + version "4.0.0" 1888 + resolved "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-4.0.0.tgz" 1889 + integrity sha512-BABo0MjeUHNAe2FNGty1eantWp8u83BHSeIMPDxNq0MuW2K3CiQRaeWT3EGPAzXpGt0+hVzBrA6+OT0GPn7Yuw== 1890 + dependencies: 1891 + "@lerna/create-symlink" "4.0.0" 1892 + "@lerna/resolve-symlink" "4.0.0" 1893 + "@lerna/symlink-binary" "4.0.0" 1894 + fs-extra "^9.1.0" 1895 + p-map "^4.0.0" 1896 + p-map-series "^2.1.0" 1897 + 1898 + "@lerna/timer@4.0.0": 1899 + version "4.0.0" 1900 + resolved "https://registry.npmjs.org/@lerna/timer/-/timer-4.0.0.tgz" 1901 + integrity sha512-WFsnlaE7SdOvjuyd05oKt8Leg3ENHICnvX3uYKKdByA+S3g+TCz38JsNs7OUZVt+ba63nC2nbXDlUnuT2Xbsfg== 1902 + 1903 + "@lerna/validation-error@4.0.0": 1904 + version "4.0.0" 1905 + resolved "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-4.0.0.tgz" 1906 + integrity sha512-1rBOM5/koiVWlRi3V6dB863E1YzJS8v41UtsHgMr6gB2ncJ2LsQtMKlJpi3voqcgh41H8UsPXR58RrrpPpufyw== 1907 + dependencies: 1908 + npmlog "^4.1.2" 1909 + 1910 + "@lerna/version@4.0.0": 1911 + version "4.0.0" 1912 + resolved "https://registry.npmjs.org/@lerna/version/-/version-4.0.0.tgz" 1913 + integrity sha512-otUgiqs5W9zGWJZSCCMRV/2Zm2A9q9JwSDS7s/tlKq4mWCYriWo7+wsHEA/nPTMDyYyBO5oyZDj+3X50KDUzeA== 1914 + dependencies: 1915 + "@lerna/check-working-tree" "4.0.0" 1916 + "@lerna/child-process" "4.0.0" 1917 + "@lerna/collect-updates" "4.0.0" 1918 + "@lerna/command" "4.0.0" 1919 + "@lerna/conventional-commits" "4.0.0" 1920 + "@lerna/github-client" "4.0.0" 1921 + "@lerna/gitlab-client" "4.0.0" 1922 + "@lerna/output" "4.0.0" 1923 + "@lerna/prerelease-id-from-version" "4.0.0" 1924 + "@lerna/prompt" "4.0.0" 1925 + "@lerna/run-lifecycle" "4.0.0" 1926 + "@lerna/run-topologically" "4.0.0" 1927 + "@lerna/validation-error" "4.0.0" 1928 + chalk "^4.1.0" 1929 + dedent "^0.7.0" 1930 + load-json-file "^6.2.0" 1931 + minimatch "^3.0.4" 1932 + npmlog "^4.1.2" 1933 + p-map "^4.0.0" 1934 + p-pipe "^3.1.0" 1935 + p-reduce "^2.1.0" 1936 + p-waterfall "^2.1.1" 1937 + semver "^7.3.4" 1938 + slash "^3.0.0" 1939 + temp-write "^4.0.0" 1940 + write-json-file "^4.3.0" 1941 + 1942 + "@lerna/write-log-file@4.0.0": 1943 + version "4.0.0" 1944 + resolved "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-4.0.0.tgz" 1945 + integrity sha512-XRG5BloiArpXRakcnPHmEHJp+4AtnhRtpDIHSghmXD5EichI1uD73J7FgPp30mm2pDRq3FdqB0NbwSEsJ9xFQg== 1946 + dependencies: 1947 + npmlog "^4.1.2" 1948 + write-file-atomic "^3.0.3" 1949 + 1950 + "@noble/secp256k1@^1.7.0": 1951 + version "1.7.0" 1952 + resolved "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.0.tgz" 1953 + integrity sha512-kbacwGSsH/CTout0ZnZWxnW1B+jH/7r/WAAKLBtrRJ/+CUH7lgmQzl3GTrQua3SGKWNSDsS6lmjnDpIJ5Dxyaw== 1954 + 1955 + "@nodelib/fs.scandir@2.1.5": 1956 + version "2.1.5" 1957 + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" 1958 + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 1959 + dependencies: 1960 + "@nodelib/fs.stat" "2.0.5" 1961 + run-parallel "^1.1.9" 1962 + 1963 + "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": 1964 + version "2.0.5" 1965 + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" 1966 + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 1967 + 1968 + "@nodelib/fs.walk@^1.2.3": 1969 + version "1.2.8" 1970 + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" 1971 + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 1972 + dependencies: 1973 + "@nodelib/fs.scandir" "2.1.5" 1974 + fastq "^1.6.0" 1975 + 1976 + "@npmcli/ci-detect@^1.0.0": 1977 + version "1.4.0" 1978 + resolved "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.4.0.tgz" 1979 + integrity sha512-3BGrt6FLjqM6br5AhWRKTr3u5GIVkjRYeAFrMp3HjnfICrg4xOrVRwFavKT6tsp++bq5dluL5t8ME/Nha/6c1Q== 1980 + 1981 + "@npmcli/fs@^1.0.0": 1982 + version "1.1.1" 1983 + resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz" 1984 + integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== 1985 + dependencies: 1986 + "@gar/promisify" "^1.0.1" 1987 + semver "^7.3.5" 1988 + 1989 + "@npmcli/git@^2.1.0": 1990 + version "2.1.0" 1991 + resolved "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz" 1992 + integrity sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw== 1993 + dependencies: 1994 + "@npmcli/promise-spawn" "^1.3.2" 1995 + lru-cache "^6.0.0" 1996 + mkdirp "^1.0.4" 1997 + npm-pick-manifest "^6.1.1" 1998 + promise-inflight "^1.0.1" 1999 + promise-retry "^2.0.1" 2000 + semver "^7.3.5" 2001 + which "^2.0.2" 2002 + 2003 + "@npmcli/installed-package-contents@^1.0.6": 2004 + version "1.0.7" 2005 + resolved "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz" 2006 + integrity sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw== 2007 + dependencies: 2008 + npm-bundled "^1.1.1" 2009 + npm-normalize-package-bin "^1.0.1" 2010 + 2011 + "@npmcli/move-file@^1.0.1": 2012 + version "1.1.2" 2013 + resolved "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz" 2014 + integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== 2015 + dependencies: 2016 + mkdirp "^1.0.4" 2017 + rimraf "^3.0.2" 2018 + 2019 + "@npmcli/node-gyp@^1.0.2": 2020 + version "1.0.3" 2021 + resolved "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz" 2022 + integrity sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA== 2023 + 2024 + "@npmcli/package-json@^3.0.0": 2025 + version "3.0.0" 2026 + resolved "https://registry.npmjs.org/@npmcli/package-json/-/package-json-3.0.0.tgz" 2027 + integrity sha512-NnuPuM97xfiCpbTEJYtEuKz6CFbpUHtaT0+5via5pQeI25omvQDFbp1GcGJ/c4zvL/WX0qbde6YiLgfZbWFgvg== 2028 + dependencies: 2029 + json-parse-even-better-errors "^3.0.0" 2030 + 2031 + "@npmcli/promise-spawn@^1.2.0", "@npmcli/promise-spawn@^1.3.2": 2032 + version "1.3.2" 2033 + resolved "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz" 2034 + integrity sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg== 2035 + dependencies: 2036 + infer-owner "^1.0.4" 2037 + 2038 + "@npmcli/run-script@^1.8.2": 2039 + version "1.8.6" 2040 + resolved "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.6.tgz" 2041 + integrity sha512-e42bVZnC6VluBZBAFEr3YrdqSspG3bgilyg4nSLBJ7TRGNCzxHa92XAHxQBLYg0BmgwO4b2mf3h/l5EkEWRn3g== 2042 + dependencies: 2043 + "@npmcli/node-gyp" "^1.0.2" 2044 + "@npmcli/promise-spawn" "^1.3.2" 2045 + node-gyp "^7.1.0" 2046 + read-package-json-fast "^2.0.1" 2047 + 2048 + "@octokit/auth-token@^2.4.4": 2049 + version "2.5.0" 2050 + resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz" 2051 + integrity sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g== 2052 + dependencies: 2053 + "@octokit/types" "^6.0.3" 2054 + 2055 + "@octokit/core@^3.5.1": 2056 + version "3.6.0" 2057 + resolved "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz" 2058 + integrity sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q== 2059 + dependencies: 2060 + "@octokit/auth-token" "^2.4.4" 2061 + "@octokit/graphql" "^4.5.8" 2062 + "@octokit/request" "^5.6.3" 2063 + "@octokit/request-error" "^2.0.5" 2064 + "@octokit/types" "^6.0.3" 2065 + before-after-hook "^2.2.0" 2066 + universal-user-agent "^6.0.0" 2067 + 2068 + "@octokit/endpoint@^6.0.1": 2069 + version "6.0.12" 2070 + resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz" 2071 + integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== 2072 + dependencies: 2073 + "@octokit/types" "^6.0.3" 2074 + is-plain-object "^5.0.0" 2075 + universal-user-agent "^6.0.0" 2076 + 2077 + "@octokit/graphql@^4.5.8": 2078 + version "4.8.0" 2079 + resolved "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz" 2080 + integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg== 2081 + dependencies: 2082 + "@octokit/request" "^5.6.0" 2083 + "@octokit/types" "^6.0.3" 2084 + universal-user-agent "^6.0.0" 2085 + 2086 + "@octokit/openapi-types@^12.11.0": 2087 + version "12.11.0" 2088 + resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz" 2089 + integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ== 2090 + 2091 + "@octokit/plugin-enterprise-rest@^6.0.1": 2092 + version "6.0.1" 2093 + resolved "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz" 2094 + integrity sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw== 2095 + 2096 + "@octokit/plugin-paginate-rest@^2.16.8": 2097 + version "2.21.3" 2098 + resolved "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz" 2099 + integrity sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw== 2100 + dependencies: 2101 + "@octokit/types" "^6.40.0" 2102 + 2103 + "@octokit/plugin-request-log@^1.0.4": 2104 + version "1.0.4" 2105 + resolved "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz" 2106 + integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== 2107 + 2108 + "@octokit/plugin-rest-endpoint-methods@^5.12.0": 2109 + version "5.16.2" 2110 + resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz" 2111 + integrity sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw== 2112 + dependencies: 2113 + "@octokit/types" "^6.39.0" 2114 + deprecation "^2.3.1" 2115 + 2116 + "@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": 2117 + version "2.1.0" 2118 + resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz" 2119 + integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== 2120 + dependencies: 2121 + "@octokit/types" "^6.0.3" 2122 + deprecation "^2.0.0" 2123 + once "^1.4.0" 2124 + 2125 + "@octokit/request@^5.6.0", "@octokit/request@^5.6.3": 2126 + version "5.6.3" 2127 + resolved "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz" 2128 + integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A== 2129 + dependencies: 2130 + "@octokit/endpoint" "^6.0.1" 2131 + "@octokit/request-error" "^2.1.0" 2132 + "@octokit/types" "^6.16.1" 2133 + is-plain-object "^5.0.0" 2134 + node-fetch "^2.6.7" 2135 + universal-user-agent "^6.0.0" 2136 + 2137 + "@octokit/rest@^18.1.0": 2138 + version "18.12.0" 2139 + resolved "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz" 2140 + integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q== 2141 + dependencies: 2142 + "@octokit/core" "^3.5.1" 2143 + "@octokit/plugin-paginate-rest" "^2.16.8" 2144 + "@octokit/plugin-request-log" "^1.0.4" 2145 + "@octokit/plugin-rest-endpoint-methods" "^5.12.0" 2146 + 2147 + "@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.39.0", "@octokit/types@^6.40.0": 2148 + version "6.41.0" 2149 + resolved "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz" 2150 + integrity sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg== 2151 + dependencies: 2152 + "@octokit/openapi-types" "^12.11.0" 2153 + 2154 + "@sinclair/typebox@^0.24.1": 2155 + version "0.24.42" 2156 + resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.42.tgz" 2157 + integrity sha512-d+2AtrHGyWek2u2ITF0lHRIv6Tt7X0dEHW+0rP+5aDCEjC3fiN2RBjrLD0yU0at52BcZbRGxLbAtXiR0hFCjYw== 2158 + 2159 + "@sinonjs/commons@^1.7.0": 2160 + version "1.8.3" 2161 + resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz" 2162 + integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== 2163 + dependencies: 2164 + type-detect "4.0.8" 2165 + 2166 + "@sinonjs/fake-timers@^9.1.2": 2167 + version "9.1.2" 2168 + resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz" 2169 + integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== 2170 + dependencies: 2171 + "@sinonjs/commons" "^1.7.0" 2172 + 2173 + "@tootallnate/once@1": 2174 + version "1.1.2" 2175 + resolved "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz" 2176 + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== 2177 + 2178 + "@tsconfig/node10@^1.0.7": 2179 + version "1.0.9" 2180 + resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz" 2181 + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== 2182 + 2183 + "@tsconfig/node12@^1.0.7": 2184 + version "1.0.11" 2185 + resolved "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz" 2186 + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== 2187 + 2188 + "@tsconfig/node14@^1.0.0": 2189 + version "1.0.3" 2190 + resolved "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz" 2191 + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== 2192 + 2193 + "@tsconfig/node16@^1.0.2": 2194 + version "1.0.3" 2195 + resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz" 2196 + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== 2197 + 2198 + "@types/babel__core@^7.1.14": 2199 + version "7.1.19" 2200 + resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz" 2201 + integrity sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw== 2202 + dependencies: 2203 + "@babel/parser" "^7.1.0" 2204 + "@babel/types" "^7.0.0" 2205 + "@types/babel__generator" "*" 2206 + "@types/babel__template" "*" 2207 + "@types/babel__traverse" "*" 2208 + 2209 + "@types/babel__generator@*": 2210 + version "7.6.4" 2211 + resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz" 2212 + integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== 2213 + dependencies: 2214 + "@babel/types" "^7.0.0" 2215 + 2216 + "@types/babel__template@*": 2217 + version "7.4.1" 2218 + resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz" 2219 + integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== 2220 + dependencies: 2221 + "@babel/parser" "^7.1.0" 2222 + "@babel/types" "^7.0.0" 2223 + 2224 + "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": 2225 + version "7.18.1" 2226 + resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.1.tgz" 2227 + integrity sha512-FSdLaZh2UxaMuLp9lixWaHq/golWTRWOnRsAXzDTDSDOQLuZb1nsdCt6pJSPWSEQt2eFZ2YVk3oYhn+1kLMeMA== 2228 + dependencies: 2229 + "@babel/types" "^7.3.0" 2230 + 2231 + "@types/graceful-fs@^4.1.3": 2232 + version "4.1.5" 2233 + resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz" 2234 + integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== 2235 + dependencies: 2236 + "@types/node" "*" 2237 + 2238 + "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": 2239 + version "2.0.4" 2240 + resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz" 2241 + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== 2242 + 2243 + "@types/istanbul-lib-report@*": 2244 + version "3.0.0" 2245 + resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" 2246 + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== 2247 + dependencies: 2248 + "@types/istanbul-lib-coverage" "*" 2249 + 2250 + "@types/istanbul-reports@^3.0.0": 2251 + version "3.0.1" 2252 + resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz" 2253 + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== 2254 + dependencies: 2255 + "@types/istanbul-lib-report" "*" 2256 + 2257 + "@types/jest@^28.1.4": 2258 + version "28.1.8" 2259 + resolved "https://registry.npmjs.org/@types/jest/-/jest-28.1.8.tgz" 2260 + integrity sha512-8TJkV++s7B6XqnDrzR1m/TT0A0h948Pnl/097veySPN67VRAgQ4gZ7n2KfJo2rVq6njQjdxU3GCCyDvAeuHoiw== 2261 + dependencies: 2262 + expect "^28.0.0" 2263 + pretty-format "^28.0.0" 2264 + 2265 + "@types/json-schema@^7.0.9": 2266 + version "7.0.11" 2267 + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz" 2268 + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== 2269 + 2270 + "@types/minimatch@^3.0.3": 2271 + version "3.0.5" 2272 + resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz" 2273 + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== 2274 + 2275 + "@types/minimist@^1.2.0": 2276 + version "1.2.2" 2277 + resolved "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz" 2278 + integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== 2279 + 2280 + "@types/node@*", "@types/node@^18.0.0": 2281 + version "18.11.11" 2282 + resolved "https://registry.npmjs.org/@types/node/-/node-18.11.11.tgz" 2283 + integrity sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g== 2284 + 2285 + "@types/normalize-package-data@^2.4.0": 2286 + version "2.4.1" 2287 + resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz" 2288 + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== 2289 + 2290 + "@types/parse-json@^4.0.0": 2291 + version "4.0.0" 2292 + resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz" 2293 + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== 2294 + 2295 + "@types/pg@^8.6.5": 2296 + version "8.6.5" 2297 + resolved "https://registry.npmjs.org/@types/pg/-/pg-8.6.5.tgz" 2298 + integrity sha512-tOkGtAqRVkHa/PVZicq67zuujI4Oorfglsr2IbKofDwBSysnaqSx7W1mDqFqdkGE6Fbgh+PZAl0r/BWON/mozw== 2299 + dependencies: 2300 + "@types/node" "*" 2301 + pg-protocol "*" 2302 + pg-types "^2.2.0" 2303 + 2304 + "@types/prettier@^2.1.5": 2305 + version "2.7.0" 2306 + resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.0.tgz" 2307 + integrity sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A== 2308 + 2309 + "@types/stack-utils@^2.0.0": 2310 + version "2.0.1" 2311 + resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz" 2312 + integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== 2313 + 2314 + "@types/yargs-parser@*": 2315 + version "21.0.0" 2316 + resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz" 2317 + integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== 2318 + 2319 + "@types/yargs@^17.0.8": 2320 + version "17.0.12" 2321 + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.12.tgz" 2322 + integrity sha512-Nz4MPhecOFArtm81gFQvQqdV7XYCrWKx5uUt6GNHredFHn1i2mtWqXTON7EPXMtNi1qjtjEM/VCHDhcHsAMLXQ== 2323 + dependencies: 2324 + "@types/yargs-parser" "*" 2325 + 2326 + "@typescript-eslint/eslint-plugin@^5.38.1": 2327 + version "5.38.1" 2328 + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.38.1.tgz" 2329 + integrity sha512-ky7EFzPhqz3XlhS7vPOoMDaQnQMn+9o5ICR9CPr/6bw8HrFkzhMSxuA3gRfiJVvs7geYrSeawGJjZoZQKCOglQ== 2330 + dependencies: 2331 + "@typescript-eslint/scope-manager" "5.38.1" 2332 + "@typescript-eslint/type-utils" "5.38.1" 2333 + "@typescript-eslint/utils" "5.38.1" 2334 + debug "^4.3.4" 2335 + ignore "^5.2.0" 2336 + regexpp "^3.2.0" 2337 + semver "^7.3.7" 2338 + tsutils "^3.21.0" 2339 + 2340 + "@typescript-eslint/parser@^5.38.1": 2341 + version "5.38.1" 2342 + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.38.1.tgz" 2343 + integrity sha512-LDqxZBVFFQnQRz9rUZJhLmox+Ep5kdUmLatLQnCRR6523YV+XhRjfYzStQ4MheFA8kMAfUlclHSbu+RKdRwQKw== 2344 + dependencies: 2345 + "@typescript-eslint/scope-manager" "5.38.1" 2346 + "@typescript-eslint/types" "5.38.1" 2347 + "@typescript-eslint/typescript-estree" "5.38.1" 2348 + debug "^4.3.4" 2349 + 2350 + "@typescript-eslint/scope-manager@5.38.1": 2351 + version "5.38.1" 2352 + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.38.1.tgz" 2353 + integrity sha512-BfRDq5RidVU3RbqApKmS7RFMtkyWMM50qWnDAkKgQiezRtLKsoyRKIvz1Ok5ilRWeD9IuHvaidaLxvGx/2eqTQ== 2354 + dependencies: 2355 + "@typescript-eslint/types" "5.38.1" 2356 + "@typescript-eslint/visitor-keys" "5.38.1" 2357 + 2358 + "@typescript-eslint/type-utils@5.38.1": 2359 + version "5.38.1" 2360 + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.38.1.tgz" 2361 + integrity sha512-UU3j43TM66gYtzo15ivK2ZFoDFKKP0k03MItzLdq0zV92CeGCXRfXlfQX5ILdd4/DSpHkSjIgLLLh1NtkOJOAw== 2362 + dependencies: 2363 + "@typescript-eslint/typescript-estree" "5.38.1" 2364 + "@typescript-eslint/utils" "5.38.1" 2365 + debug "^4.3.4" 2366 + tsutils "^3.21.0" 2367 + 2368 + "@typescript-eslint/types@5.38.1": 2369 + version "5.38.1" 2370 + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.38.1.tgz" 2371 + integrity sha512-QTW1iHq1Tffp9lNfbfPm4WJabbvpyaehQ0SrvVK2yfV79SytD9XDVxqiPvdrv2LK7DGSFo91TB2FgWanbJAZXg== 2372 + 2373 + "@typescript-eslint/typescript-estree@5.38.1": 2374 + version "5.38.1" 2375 + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.38.1.tgz" 2376 + integrity sha512-99b5e/Enoe8fKMLdSuwrfH/C0EIbpUWmeEKHmQlGZb8msY33qn1KlkFww0z26o5Omx7EVjzVDCWEfrfCDHfE7g== 2377 + dependencies: 2378 + "@typescript-eslint/types" "5.38.1" 2379 + "@typescript-eslint/visitor-keys" "5.38.1" 2380 + debug "^4.3.4" 2381 + globby "^11.1.0" 2382 + is-glob "^4.0.3" 2383 + semver "^7.3.7" 2384 + tsutils "^3.21.0" 2385 + 2386 + "@typescript-eslint/utils@5.38.1": 2387 + version "5.38.1" 2388 + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.38.1.tgz" 2389 + integrity sha512-oIuUiVxPBsndrN81oP8tXnFa/+EcZ03qLqPDfSZ5xIJVm7A9V0rlkQwwBOAGtrdN70ZKDlKv+l1BeT4eSFxwXA== 2390 + dependencies: 2391 + "@types/json-schema" "^7.0.9" 2392 + "@typescript-eslint/scope-manager" "5.38.1" 2393 + "@typescript-eslint/types" "5.38.1" 2394 + "@typescript-eslint/typescript-estree" "5.38.1" 2395 + eslint-scope "^5.1.1" 2396 + eslint-utils "^3.0.0" 2397 + 2398 + "@typescript-eslint/visitor-keys@5.38.1": 2399 + version "5.38.1" 2400 + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.38.1.tgz" 2401 + integrity sha512-bSHr1rRxXt54+j2n4k54p4fj8AHJ49VDWtjpImOpzQj4qjAiOpPni+V1Tyajh19Api1i844F757cur8wH3YvOA== 2402 + dependencies: 2403 + "@typescript-eslint/types" "5.38.1" 2404 + eslint-visitor-keys "^3.3.0" 2405 + 2406 + JSONStream@^1.0.4: 2407 + version "1.3.5" 2408 + resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz" 2409 + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== 2410 + dependencies: 2411 + jsonparse "^1.2.0" 2412 + through ">=2.2.7 <3" 2413 + 2414 + abbrev@1: 2415 + version "1.1.1" 2416 + resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" 2417 + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== 2418 + 2419 + abort-controller@^3.0.0: 2420 + version "3.0.0" 2421 + resolved "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" 2422 + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== 2423 + dependencies: 2424 + event-target-shim "^5.0.0" 2425 + 2426 + accepts@~1.3.8: 2427 + version "1.3.8" 2428 + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" 2429 + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== 2430 + dependencies: 2431 + mime-types "~2.1.34" 2432 + negotiator "0.6.3" 2433 + 2434 + acorn-jsx@^5.3.2: 2435 + version "5.3.2" 2436 + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" 2437 + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== 2438 + 2439 + acorn-walk@^8.1.1: 2440 + version "8.2.0" 2441 + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" 2442 + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== 2443 + 2444 + acorn@^8.4.1, acorn@^8.8.0: 2445 + version "8.8.0" 2446 + resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz" 2447 + integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== 2448 + 2449 + add-stream@^1.0.0: 2450 + version "1.0.0" 2451 + resolved "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz" 2452 + integrity sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ== 2453 + 2454 + agent-base@6, agent-base@^6.0.2: 2455 + version "6.0.2" 2456 + resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" 2457 + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== 2458 + dependencies: 2459 + debug "4" 2460 + 2461 + agentkeepalive@^4.1.3: 2462 + version "4.2.1" 2463 + resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz" 2464 + integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== 2465 + dependencies: 2466 + debug "^4.1.0" 2467 + depd "^1.1.2" 2468 + humanize-ms "^1.2.1" 2469 + 2470 + aggregate-error@^3.0.0: 2471 + version "3.1.0" 2472 + resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" 2473 + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== 2474 + dependencies: 2475 + clean-stack "^2.0.0" 2476 + indent-string "^4.0.0" 2477 + 2478 + ajv@^6.10.0, ajv@^6.11.0, ajv@^6.12.3, ajv@^6.12.4: 2479 + version "6.12.6" 2480 + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" 2481 + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 2482 + dependencies: 2483 + fast-deep-equal "^3.1.1" 2484 + fast-json-stable-stringify "^2.0.0" 2485 + json-schema-traverse "^0.4.1" 2486 + uri-js "^4.2.2" 2487 + 2488 + ansi-escapes@^4.2.1: 2489 + version "4.3.2" 2490 + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" 2491 + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== 2492 + dependencies: 2493 + type-fest "^0.21.3" 2494 + 2495 + ansi-regex@^2.0.0: 2496 + version "2.1.1" 2497 + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" 2498 + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== 2499 + 2500 + ansi-regex@^5.0.1: 2501 + version "5.0.1" 2502 + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" 2503 + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 2504 + 2505 + ansi-styles@^3.2.1: 2506 + version "3.2.1" 2507 + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" 2508 + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 2509 + dependencies: 2510 + color-convert "^1.9.0" 2511 + 2512 + ansi-styles@^4.0.0, ansi-styles@^4.1.0: 2513 + version "4.3.0" 2514 + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" 2515 + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 2516 + dependencies: 2517 + color-convert "^2.0.1" 2518 + 2519 + ansi-styles@^5.0.0: 2520 + version "5.2.0" 2521 + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" 2522 + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== 2523 + 2524 + anymatch@^3.0.3: 2525 + version "3.1.2" 2526 + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" 2527 + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== 2528 + dependencies: 2529 + normalize-path "^3.0.0" 2530 + picomatch "^2.0.4" 2531 + 2532 + aproba@^1.0.3: 2533 + version "1.2.0" 2534 + resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz" 2535 + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== 2536 + 2537 + aproba@^2.0.0: 2538 + version "2.0.0" 2539 + resolved "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz" 2540 + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== 2541 + 2542 + are-we-there-yet@~1.1.2: 2543 + version "1.1.7" 2544 + resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz" 2545 + integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== 2546 + dependencies: 2547 + delegates "^1.0.0" 2548 + readable-stream "^2.0.6" 2549 + 2550 + arg@^4.1.0: 2551 + version "4.1.3" 2552 + resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" 2553 + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== 2554 + 2555 + argparse@^1.0.7: 2556 + version "1.0.10" 2557 + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" 2558 + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 2559 + dependencies: 2560 + sprintf-js "~1.0.2" 2561 + 2562 + argparse@^2.0.1: 2563 + version "2.0.1" 2564 + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" 2565 + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 2566 + 2567 + array-differ@^3.0.0: 2568 + version "3.0.0" 2569 + resolved "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz" 2570 + integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== 2571 + 2572 + array-flatten@1.1.1: 2573 + version "1.1.1" 2574 + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 2575 + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== 2576 + 2577 + array-ify@^1.0.0: 2578 + version "1.0.0" 2579 + resolved "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz" 2580 + integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== 2581 + 2582 + array-union@^2.1.0: 2583 + version "2.1.0" 2584 + resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" 2585 + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== 2586 + 2587 + array.prototype.reduce@^1.0.4: 2588 + version "1.0.4" 2589 + resolved "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.4.tgz" 2590 + integrity sha512-WnM+AjG/DvLRLo4DDl+r+SvCzYtD2Jd9oeBYMcEaI7t3fFrHY9M53/wdLcTvmZNQ70IU6Htj0emFkZ5TS+lrdw== 2591 + dependencies: 2592 + call-bind "^1.0.2" 2593 + define-properties "^1.1.3" 2594 + es-abstract "^1.19.2" 2595 + es-array-method-boxes-properly "^1.0.0" 2596 + is-string "^1.0.7" 2597 + 2598 + arrify@^1.0.1: 2599 + version "1.0.1" 2600 + resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" 2601 + integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== 2602 + 2603 + arrify@^2.0.1: 2604 + version "2.0.1" 2605 + resolved "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz" 2606 + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== 2607 + 2608 + asap@^2.0.0: 2609 + version "2.0.6" 2610 + resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" 2611 + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== 2612 + 2613 + asn1@~0.2.3: 2614 + version "0.2.6" 2615 + resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz" 2616 + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== 2617 + dependencies: 2618 + safer-buffer "~2.1.0" 2619 + 2620 + assert-plus@1.0.0, assert-plus@^1.0.0: 2621 + version "1.0.0" 2622 + resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" 2623 + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== 2624 + 2625 + asynckit@^0.4.0: 2626 + version "0.4.0" 2627 + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" 2628 + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== 2629 + 2630 + at-least-node@^1.0.0: 2631 + version "1.0.0" 2632 + resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" 2633 + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== 2634 + 2635 + atomic-sleep@^1.0.0: 2636 + version "1.0.0" 2637 + resolved "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz" 2638 + integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== 2639 + 2640 + aws-sign2@~0.7.0: 2641 + version "0.7.0" 2642 + resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" 2643 + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== 2644 + 2645 + aws4@^1.8.0: 2646 + version "1.11.0" 2647 + resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz" 2648 + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== 2649 + 2650 + axios@^0.27.2: 2651 + version "0.27.2" 2652 + resolved "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz" 2653 + integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== 2654 + dependencies: 2655 + follow-redirects "^1.14.9" 2656 + form-data "^4.0.0" 2657 + 2658 + babel-eslint@^10.1.0: 2659 + version "10.1.0" 2660 + resolved "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz" 2661 + integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== 2662 + dependencies: 2663 + "@babel/code-frame" "^7.0.0" 2664 + "@babel/parser" "^7.7.0" 2665 + "@babel/traverse" "^7.7.0" 2666 + "@babel/types" "^7.7.0" 2667 + eslint-visitor-keys "^1.0.0" 2668 + resolve "^1.12.0" 2669 + 2670 + babel-jest@^28.1.2, babel-jest@^28.1.3: 2671 + version "28.1.3" 2672 + resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz" 2673 + integrity sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q== 2674 + dependencies: 2675 + "@jest/transform" "^28.1.3" 2676 + "@types/babel__core" "^7.1.14" 2677 + babel-plugin-istanbul "^6.1.1" 2678 + babel-preset-jest "^28.1.3" 2679 + chalk "^4.0.0" 2680 + graceful-fs "^4.2.9" 2681 + slash "^3.0.0" 2682 + 2683 + babel-plugin-dynamic-import-node@^2.3.3: 2684 + version "2.3.3" 2685 + resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz" 2686 + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== 2687 + dependencies: 2688 + object.assign "^4.1.0" 2689 + 2690 + babel-plugin-istanbul@^6.1.1: 2691 + version "6.1.1" 2692 + resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz" 2693 + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== 2694 + dependencies: 2695 + "@babel/helper-plugin-utils" "^7.0.0" 2696 + "@istanbuljs/load-nyc-config" "^1.0.0" 2697 + "@istanbuljs/schema" "^0.1.2" 2698 + istanbul-lib-instrument "^5.0.4" 2699 + test-exclude "^6.0.0" 2700 + 2701 + babel-plugin-jest-hoist@^28.1.3: 2702 + version "28.1.3" 2703 + resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz" 2704 + integrity sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q== 2705 + dependencies: 2706 + "@babel/template" "^7.3.3" 2707 + "@babel/types" "^7.3.3" 2708 + "@types/babel__core" "^7.1.14" 2709 + "@types/babel__traverse" "^7.0.6" 2710 + 2711 + babel-plugin-polyfill-corejs2@^0.3.3: 2712 + version "0.3.3" 2713 + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz" 2714 + integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== 2715 + dependencies: 2716 + "@babel/compat-data" "^7.17.7" 2717 + "@babel/helper-define-polyfill-provider" "^0.3.3" 2718 + semver "^6.1.1" 2719 + 2720 + babel-plugin-polyfill-corejs3@^0.6.0: 2721 + version "0.6.0" 2722 + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz" 2723 + integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA== 2724 + dependencies: 2725 + "@babel/helper-define-polyfill-provider" "^0.3.3" 2726 + core-js-compat "^3.25.1" 2727 + 2728 + babel-plugin-polyfill-regenerator@^0.4.1: 2729 + version "0.4.1" 2730 + resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz" 2731 + integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw== 2732 + dependencies: 2733 + "@babel/helper-define-polyfill-provider" "^0.3.3" 2734 + 2735 + babel-preset-current-node-syntax@^1.0.0: 2736 + version "1.0.1" 2737 + resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz" 2738 + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== 2739 + dependencies: 2740 + "@babel/plugin-syntax-async-generators" "^7.8.4" 2741 + "@babel/plugin-syntax-bigint" "^7.8.3" 2742 + "@babel/plugin-syntax-class-properties" "^7.8.3" 2743 + "@babel/plugin-syntax-import-meta" "^7.8.3" 2744 + "@babel/plugin-syntax-json-strings" "^7.8.3" 2745 + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" 2746 + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" 2747 + "@babel/plugin-syntax-numeric-separator" "^7.8.3" 2748 + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" 2749 + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" 2750 + "@babel/plugin-syntax-optional-chaining" "^7.8.3" 2751 + "@babel/plugin-syntax-top-level-await" "^7.8.3" 2752 + 2753 + babel-preset-jest@^28.1.3: 2754 + version "28.1.3" 2755 + resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz" 2756 + integrity sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A== 2757 + dependencies: 2758 + babel-plugin-jest-hoist "^28.1.3" 2759 + babel-preset-current-node-syntax "^1.0.0" 2760 + 2761 + balanced-match@^1.0.0: 2762 + version "1.0.2" 2763 + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" 2764 + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 2765 + 2766 + base64-js@^1.3.1: 2767 + version "1.5.1" 2768 + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" 2769 + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== 2770 + 2771 + bcrypt-pbkdf@^1.0.0: 2772 + version "1.0.2" 2773 + resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" 2774 + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== 2775 + dependencies: 2776 + tweetnacl "^0.14.3" 2777 + 2778 + before-after-hook@^2.2.0: 2779 + version "2.2.2" 2780 + resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz" 2781 + integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== 2782 + 2783 + better-sqlite3@^8.1.0: 2784 + version "8.1.0" 2785 + resolved "https://registry.yarnpkg.com/better-sqlite3/-/better-sqlite3-8.1.0.tgz#a0039c5dfdc04b733cac3c8dbe1b71f3e5fc62d3" 2786 + integrity sha512-p1m09H+Oi8R9TPj810pdNswMFuVgRNgCJEWypp6jlkOgSwMIrNyuj3hW78xEuBRGok5RzeaUW8aBtTWF3l/TQA== 2787 + dependencies: 2788 + bindings "^1.5.0" 2789 + prebuild-install "^7.1.0" 2790 + 2791 + big-integer@^1.6.51: 2792 + version "1.6.51" 2793 + resolved "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz" 2794 + integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== 2795 + 2796 + bindings@^1.5.0: 2797 + version "1.5.0" 2798 + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" 2799 + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== 2800 + dependencies: 2801 + file-uri-to-path "1.0.0" 2802 + 2803 + bl@^4.0.3: 2804 + version "4.1.0" 2805 + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" 2806 + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== 2807 + dependencies: 2808 + buffer "^5.5.0" 2809 + inherits "^2.0.4" 2810 + readable-stream "^3.4.0" 2811 + 2812 + body-parser@1.20.1: 2813 + version "1.20.1" 2814 + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" 2815 + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== 2816 + dependencies: 2817 + bytes "3.1.2" 2818 + content-type "~1.0.4" 2819 + debug "2.6.9" 2820 + depd "2.0.0" 2821 + destroy "1.2.0" 2822 + http-errors "2.0.0" 2823 + iconv-lite "0.4.24" 2824 + on-finished "2.4.1" 2825 + qs "6.11.0" 2826 + raw-body "2.5.1" 2827 + type-is "~1.6.18" 2828 + unpipe "1.0.0" 2829 + 2830 + boolean@^3.1.4: 2831 + version "3.2.0" 2832 + resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.2.0.tgz#9e5294af4e98314494cbb17979fa54ca159f116b" 2833 + integrity sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw== 2834 + 2835 + brace-expansion@^1.1.7: 2836 + version "1.1.11" 2837 + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" 2838 + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 2839 + dependencies: 2840 + balanced-match "^1.0.0" 2841 + concat-map "0.0.1" 2842 + 2843 + brace-expansion@^2.0.1: 2844 + version "2.0.1" 2845 + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" 2846 + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== 2847 + dependencies: 2848 + balanced-match "^1.0.0" 2849 + 2850 + braces@^3.0.2: 2851 + version "3.0.2" 2852 + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" 2853 + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 2854 + dependencies: 2855 + fill-range "^7.0.1" 2856 + 2857 + browserslist@^4.21.3, browserslist@^4.21.4: 2858 + version "4.21.4" 2859 + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz" 2860 + integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== 2861 + dependencies: 2862 + caniuse-lite "^1.0.30001400" 2863 + electron-to-chromium "^1.4.251" 2864 + node-releases "^2.0.6" 2865 + update-browserslist-db "^1.0.9" 2866 + 2867 + bs-logger@0.x: 2868 + version "0.2.6" 2869 + resolved "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz" 2870 + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== 2871 + dependencies: 2872 + fast-json-stable-stringify "2.x" 2873 + 2874 + bser@2.1.1: 2875 + version "2.1.1" 2876 + resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" 2877 + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== 2878 + dependencies: 2879 + node-int64 "^0.4.0" 2880 + 2881 + buffer-from@^1.0.0: 2882 + version "1.1.2" 2883 + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" 2884 + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 2885 + 2886 + buffer-writer@2.0.0: 2887 + version "2.0.0" 2888 + resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04" 2889 + integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw== 2890 + 2891 + buffer@^5.5.0: 2892 + version "5.7.1" 2893 + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" 2894 + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== 2895 + dependencies: 2896 + base64-js "^1.3.1" 2897 + ieee754 "^1.1.13" 2898 + 2899 + buffer@^6.0.3: 2900 + version "6.0.3" 2901 + resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" 2902 + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== 2903 + dependencies: 2904 + base64-js "^1.3.1" 2905 + ieee754 "^1.2.1" 2906 + 2907 + builtins@^1.0.3: 2908 + version "1.0.3" 2909 + resolved "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz" 2910 + integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== 2911 + 2912 + byline@^5.0.0: 2913 + version "5.0.0" 2914 + resolved "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz" 2915 + integrity sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q== 2916 + 2917 + byte-size@^7.0.0: 2918 + version "7.0.1" 2919 + resolved "https://registry.npmjs.org/byte-size/-/byte-size-7.0.1.tgz" 2920 + integrity sha512-crQdqyCwhokxwV1UyDzLZanhkugAgft7vt0qbbdt60C6Zf3CAiGmtUCylbtYwrU6loOUw3euGrNtW1J651ot1A== 2921 + 2922 + bytes@3.1.2: 2923 + version "3.1.2" 2924 + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" 2925 + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== 2926 + 2927 + cacache@^15.0.5, cacache@^15.2.0: 2928 + version "15.3.0" 2929 + resolved "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz" 2930 + integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== 2931 + dependencies: 2932 + "@npmcli/fs" "^1.0.0" 2933 + "@npmcli/move-file" "^1.0.1" 2934 + chownr "^2.0.0" 2935 + fs-minipass "^2.0.0" 2936 + glob "^7.1.4" 2937 + infer-owner "^1.0.4" 2938 + lru-cache "^6.0.0" 2939 + minipass "^3.1.1" 2940 + minipass-collect "^1.0.2" 2941 + minipass-flush "^1.0.5" 2942 + minipass-pipeline "^1.2.2" 2943 + mkdirp "^1.0.3" 2944 + p-map "^4.0.0" 2945 + promise-inflight "^1.0.1" 2946 + rimraf "^3.0.2" 2947 + ssri "^8.0.1" 2948 + tar "^6.0.2" 2949 + unique-filename "^1.1.1" 2950 + 2951 + call-bind@^1.0.0, call-bind@^1.0.2: 2952 + version "1.0.2" 2953 + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" 2954 + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== 2955 + dependencies: 2956 + function-bind "^1.1.1" 2957 + get-intrinsic "^1.0.2" 2958 + 2959 + callsites@^3.0.0: 2960 + version "3.1.0" 2961 + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" 2962 + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 2963 + 2964 + camelcase-keys@^6.2.2: 2965 + version "6.2.2" 2966 + resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz" 2967 + integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== 2968 + dependencies: 2969 + camelcase "^5.3.1" 2970 + map-obj "^4.0.0" 2971 + quick-lru "^4.0.1" 2972 + 2973 + camelcase@^5.3.1: 2974 + version "5.3.1" 2975 + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" 2976 + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== 2977 + 2978 + camelcase@^6.2.0: 2979 + version "6.3.0" 2980 + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" 2981 + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== 2982 + 2983 + caniuse-lite@^1.0.30001400: 2984 + version "1.0.30001409" 2985 + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001409.tgz" 2986 + integrity sha512-V0mnJ5dwarmhYv8/MzhJ//aW68UpvnQBXv8lJ2QUsvn2pHcmAuNtu8hQEDz37XnA1iE+lRR9CIfGWWpgJ5QedQ== 2987 + 2988 + caseless@~0.12.0: 2989 + version "0.12.0" 2990 + resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" 2991 + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== 2992 + 2993 + cborg@^1.6.0: 2994 + version "1.9.5" 2995 + resolved "https://registry.npmjs.org/cborg/-/cborg-1.9.5.tgz" 2996 + integrity sha512-fLBv8wmqtlXqy1Yu+pHzevAIkW6k2K0ZtMujNzWphLsA34vzzg9BHn+5GmZqOJkSA9V7EMKsWrf6K976c1QMjQ== 2997 + 2998 + chalk@^2.0.0, chalk@^2.4.1: 2999 + version "2.4.2" 3000 + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" 3001 + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 3002 + dependencies: 3003 + ansi-styles "^3.2.1" 3004 + escape-string-regexp "^1.0.5" 3005 + supports-color "^5.3.0" 3006 + 3007 + chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: 3008 + version "4.1.2" 3009 + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" 3010 + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 3011 + dependencies: 3012 + ansi-styles "^4.1.0" 3013 + supports-color "^7.1.0" 3014 + 3015 + char-regex@^1.0.2: 3016 + version "1.0.2" 3017 + resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" 3018 + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== 3019 + 3020 + chardet@^0.7.0: 3021 + version "0.7.0" 3022 + resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" 3023 + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== 3024 + 3025 + chownr@^1.1.1, chownr@^1.1.4: 3026 + version "1.1.4" 3027 + resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" 3028 + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== 3029 + 3030 + chownr@^2.0.0: 3031 + version "2.0.0" 3032 + resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" 3033 + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== 3034 + 3035 + ci-info@^2.0.0: 3036 + version "2.0.0" 3037 + resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" 3038 + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== 3039 + 3040 + ci-info@^3.2.0: 3041 + version "3.4.0" 3042 + resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.4.0.tgz" 3043 + integrity sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug== 3044 + 3045 + cjs-module-lexer@^1.0.0: 3046 + version "1.2.2" 3047 + resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz" 3048 + integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== 3049 + 3050 + clean-stack@^2.0.0: 3051 + version "2.2.0" 3052 + resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" 3053 + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== 3054 + 3055 + cli-cursor@^3.1.0: 3056 + version "3.1.0" 3057 + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" 3058 + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== 3059 + dependencies: 3060 + restore-cursor "^3.1.0" 3061 + 3062 + cli-width@^3.0.0: 3063 + version "3.0.0" 3064 + resolved "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz" 3065 + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== 3066 + 3067 + cliui@^7.0.2: 3068 + version "7.0.4" 3069 + resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" 3070 + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== 3071 + dependencies: 3072 + string-width "^4.2.0" 3073 + strip-ansi "^6.0.0" 3074 + wrap-ansi "^7.0.0" 3075 + 3076 + clone-deep@^4.0.1: 3077 + version "4.0.1" 3078 + resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" 3079 + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== 3080 + dependencies: 3081 + is-plain-object "^2.0.4" 3082 + kind-of "^6.0.2" 3083 + shallow-clone "^3.0.0" 3084 + 3085 + clone@^1.0.2: 3086 + version "1.0.4" 3087 + resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" 3088 + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== 3089 + 3090 + cmd-shim@^4.1.0: 3091 + version "4.1.0" 3092 + resolved "https://registry.npmjs.org/cmd-shim/-/cmd-shim-4.1.0.tgz" 3093 + integrity sha512-lb9L7EM4I/ZRVuljLPEtUJOP+xiQVknZ4ZMpMgEp4JzNldPb27HU03hi6K1/6CoIuit/Zm/LQXySErFeXxDprw== 3094 + dependencies: 3095 + mkdirp-infer-owner "^2.0.0" 3096 + 3097 + co@^4.6.0: 3098 + version "4.6.0" 3099 + resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" 3100 + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== 3101 + 3102 + code-point-at@^1.0.0: 3103 + version "1.1.0" 3104 + resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" 3105 + integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== 3106 + 3107 + collect-v8-coverage@^1.0.0: 3108 + version "1.0.1" 3109 + resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz" 3110 + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== 3111 + 3112 + color-convert@^1.9.0: 3113 + version "1.9.3" 3114 + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" 3115 + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 3116 + dependencies: 3117 + color-name "1.1.3" 3118 + 3119 + color-convert@^2.0.1: 3120 + version "2.0.1" 3121 + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" 3122 + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 3123 + dependencies: 3124 + color-name "~1.1.4" 3125 + 3126 + color-name@1.1.3: 3127 + version "1.1.3" 3128 + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" 3129 + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== 3130 + 3131 + color-name@~1.1.4: 3132 + version "1.1.4" 3133 + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" 3134 + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 3135 + 3136 + colorette@^2.0.7: 3137 + version "2.0.19" 3138 + resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz" 3139 + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== 3140 + 3141 + columnify@^1.5.4: 3142 + version "1.6.0" 3143 + resolved "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz" 3144 + integrity sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q== 3145 + dependencies: 3146 + strip-ansi "^6.0.1" 3147 + wcwidth "^1.0.0" 3148 + 3149 + combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: 3150 + version "1.0.8" 3151 + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" 3152 + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 3153 + dependencies: 3154 + delayed-stream "~1.0.0" 3155 + 3156 + compare-func@^2.0.0: 3157 + version "2.0.0" 3158 + resolved "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz" 3159 + integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== 3160 + dependencies: 3161 + array-ify "^1.0.0" 3162 + dot-prop "^5.1.0" 3163 + 3164 + concat-map@0.0.1: 3165 + version "0.0.1" 3166 + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" 3167 + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 3168 + 3169 + concat-stream@^2.0.0: 3170 + version "2.0.0" 3171 + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz" 3172 + integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== 3173 + dependencies: 3174 + buffer-from "^1.0.0" 3175 + inherits "^2.0.3" 3176 + readable-stream "^3.0.2" 3177 + typedarray "^0.0.6" 3178 + 3179 + config-chain@^1.1.12: 3180 + version "1.1.13" 3181 + resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz" 3182 + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== 3183 + dependencies: 3184 + ini "^1.3.4" 3185 + proto-list "~1.2.1" 3186 + 3187 + console-control-strings@^1.0.0, console-control-strings@~1.1.0: 3188 + version "1.1.0" 3189 + resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" 3190 + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== 3191 + 3192 + content-disposition@0.5.4: 3193 + version "0.5.4" 3194 + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" 3195 + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== 3196 + dependencies: 3197 + safe-buffer "5.2.1" 3198 + 3199 + content-type@~1.0.4: 3200 + version "1.0.5" 3201 + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" 3202 + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== 3203 + 3204 + conventional-changelog-angular@^5.0.12: 3205 + version "5.0.13" 3206 + resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz" 3207 + integrity sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA== 3208 + dependencies: 3209 + compare-func "^2.0.0" 3210 + q "^1.5.1" 3211 + 3212 + conventional-changelog-core@^4.2.2: 3213 + version "4.2.4" 3214 + resolved "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz" 3215 + integrity sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg== 3216 + dependencies: 3217 + add-stream "^1.0.0" 3218 + conventional-changelog-writer "^5.0.0" 3219 + conventional-commits-parser "^3.2.0" 3220 + dateformat "^3.0.0" 3221 + get-pkg-repo "^4.0.0" 3222 + git-raw-commits "^2.0.8" 3223 + git-remote-origin-url "^2.0.0" 3224 + git-semver-tags "^4.1.1" 3225 + lodash "^4.17.15" 3226 + normalize-package-data "^3.0.0" 3227 + q "^1.5.1" 3228 + read-pkg "^3.0.0" 3229 + read-pkg-up "^3.0.0" 3230 + through2 "^4.0.0" 3231 + 3232 + conventional-changelog-preset-loader@^2.3.4: 3233 + version "2.3.4" 3234 + resolved "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz" 3235 + integrity sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g== 3236 + 3237 + conventional-changelog-writer@^5.0.0: 3238 + version "5.0.1" 3239 + resolved "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz" 3240 + integrity sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ== 3241 + dependencies: 3242 + conventional-commits-filter "^2.0.7" 3243 + dateformat "^3.0.0" 3244 + handlebars "^4.7.7" 3245 + json-stringify-safe "^5.0.1" 3246 + lodash "^4.17.15" 3247 + meow "^8.0.0" 3248 + semver "^6.0.0" 3249 + split "^1.0.0" 3250 + through2 "^4.0.0" 3251 + 3252 + conventional-commits-filter@^2.0.7: 3253 + version "2.0.7" 3254 + resolved "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz" 3255 + integrity sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA== 3256 + dependencies: 3257 + lodash.ismatch "^4.4.0" 3258 + modify-values "^1.0.0" 3259 + 3260 + conventional-commits-parser@^3.2.0: 3261 + version "3.2.4" 3262 + resolved "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz" 3263 + integrity sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q== 3264 + dependencies: 3265 + JSONStream "^1.0.4" 3266 + is-text-path "^1.0.1" 3267 + lodash "^4.17.15" 3268 + meow "^8.0.0" 3269 + split2 "^3.0.0" 3270 + through2 "^4.0.0" 3271 + 3272 + conventional-recommended-bump@^6.1.0: 3273 + version "6.1.0" 3274 + resolved "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz" 3275 + integrity sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw== 3276 + dependencies: 3277 + concat-stream "^2.0.0" 3278 + conventional-changelog-preset-loader "^2.3.4" 3279 + conventional-commits-filter "^2.0.7" 3280 + conventional-commits-parser "^3.2.0" 3281 + git-raw-commits "^2.0.8" 3282 + git-semver-tags "^4.1.1" 3283 + meow "^8.0.0" 3284 + q "^1.5.1" 3285 + 3286 + convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: 3287 + version "1.8.0" 3288 + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz" 3289 + integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== 3290 + dependencies: 3291 + safe-buffer "~5.1.1" 3292 + 3293 + cookie-signature@1.0.6: 3294 + version "1.0.6" 3295 + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 3296 + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== 3297 + 3298 + cookie@0.5.0: 3299 + version "0.5.0" 3300 + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" 3301 + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== 3302 + 3303 + core-js-compat@^3.25.1: 3304 + version "3.25.2" 3305 + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.2.tgz" 3306 + integrity sha512-TxfyECD4smdn3/CjWxczVtJqVLEEC2up7/82t7vC0AzNogr+4nQ8vyF7abxAuTXWvjTClSbvGhU0RgqA4ToQaQ== 3307 + dependencies: 3308 + browserslist "^4.21.4" 3309 + 3310 + core-util-is@1.0.2: 3311 + version "1.0.2" 3312 + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" 3313 + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== 3314 + 3315 + core-util-is@~1.0.0: 3316 + version "1.0.3" 3317 + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" 3318 + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== 3319 + 3320 + cors@^2.8.5: 3321 + version "2.8.5" 3322 + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" 3323 + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== 3324 + dependencies: 3325 + object-assign "^4" 3326 + vary "^1" 3327 + 3328 + cosmiconfig@^7.0.0: 3329 + version "7.0.1" 3330 + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz" 3331 + integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== 3332 + dependencies: 3333 + "@types/parse-json" "^4.0.0" 3334 + import-fresh "^3.2.1" 3335 + parse-json "^5.0.0" 3336 + path-type "^4.0.0" 3337 + yaml "^1.10.0" 3338 + 3339 + create-require@^1.1.0: 3340 + version "1.1.1" 3341 + resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" 3342 + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== 3343 + 3344 + cross-spawn@^6.0.5: 3345 + version "6.0.5" 3346 + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" 3347 + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== 3348 + dependencies: 3349 + nice-try "^1.0.4" 3350 + path-key "^2.0.1" 3351 + semver "^5.5.0" 3352 + shebang-command "^1.2.0" 3353 + which "^1.2.9" 3354 + 3355 + cross-spawn@^7.0.2, cross-spawn@^7.0.3: 3356 + version "7.0.3" 3357 + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" 3358 + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 3359 + dependencies: 3360 + path-key "^3.1.0" 3361 + shebang-command "^2.0.0" 3362 + which "^2.0.1" 3363 + 3364 + dargs@^7.0.0: 3365 + version "7.0.0" 3366 + resolved "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz" 3367 + integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== 3368 + 3369 + dashdash@^1.12.0: 3370 + version "1.14.1" 3371 + resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" 3372 + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== 3373 + dependencies: 3374 + assert-plus "^1.0.0" 3375 + 3376 + dateformat@^3.0.0: 3377 + version "3.0.3" 3378 + resolved "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz" 3379 + integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== 3380 + 3381 + dateformat@^4.6.3: 3382 + version "4.6.3" 3383 + resolved "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz" 3384 + integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== 3385 + 3386 + debug@2.6.9: 3387 + version "2.6.9" 3388 + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 3389 + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 3390 + dependencies: 3391 + ms "2.0.0" 3392 + 3393 + debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: 3394 + version "4.3.4" 3395 + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" 3396 + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 3397 + dependencies: 3398 + ms "2.1.2" 3399 + 3400 + debuglog@^1.0.1: 3401 + version "1.0.1" 3402 + resolved "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz" 3403 + integrity sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw== 3404 + 3405 + decamelize-keys@^1.1.0: 3406 + version "1.1.0" 3407 + resolved "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz" 3408 + integrity sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg== 3409 + dependencies: 3410 + decamelize "^1.1.0" 3411 + map-obj "^1.0.0" 3412 + 3413 + decamelize@^1.1.0: 3414 + version "1.2.0" 3415 + resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" 3416 + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== 3417 + 3418 + decode-uri-component@^0.2.0: 3419 + version "0.2.0" 3420 + resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz" 3421 + integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== 3422 + 3423 + decompress-response@^6.0.0: 3424 + version "6.0.0" 3425 + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" 3426 + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== 3427 + dependencies: 3428 + mimic-response "^3.1.0" 3429 + 3430 + dedent@^0.7.0: 3431 + version "0.7.0" 3432 + resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" 3433 + integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== 3434 + 3435 + deep-extend@^0.6.0: 3436 + version "0.6.0" 3437 + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" 3438 + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== 3439 + 3440 + deep-is@^0.1.3: 3441 + version "0.1.4" 3442 + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" 3443 + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== 3444 + 3445 + deepmerge@^4.2.2: 3446 + version "4.2.2" 3447 + resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz" 3448 + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== 3449 + 3450 + defaults@^1.0.3: 3451 + version "1.0.3" 3452 + resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz" 3453 + integrity sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA== 3454 + dependencies: 3455 + clone "^1.0.2" 3456 + 3457 + define-properties@^1.1.3, define-properties@^1.1.4: 3458 + version "1.1.4" 3459 + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz" 3460 + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== 3461 + dependencies: 3462 + has-property-descriptors "^1.0.0" 3463 + object-keys "^1.1.1" 3464 + 3465 + delay@^5.0.0: 3466 + version "5.0.0" 3467 + resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" 3468 + integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== 3469 + 3470 + delayed-stream@~1.0.0: 3471 + version "1.0.0" 3472 + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" 3473 + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== 3474 + 3475 + delegates@^1.0.0: 3476 + version "1.0.0" 3477 + resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" 3478 + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== 3479 + 3480 + depd@2.0.0: 3481 + version "2.0.0" 3482 + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" 3483 + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== 3484 + 3485 + depd@^1.1.2: 3486 + version "1.1.2" 3487 + resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" 3488 + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== 3489 + 3490 + deprecation@^2.0.0, deprecation@^2.3.1: 3491 + version "2.3.1" 3492 + resolved "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz" 3493 + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== 3494 + 3495 + destroy@1.2.0: 3496 + version "1.2.0" 3497 + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" 3498 + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== 3499 + 3500 + detect-indent@^5.0.0: 3501 + version "5.0.0" 3502 + resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz" 3503 + integrity sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g== 3504 + 3505 + detect-indent@^6.0.0: 3506 + version "6.1.0" 3507 + resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz" 3508 + integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== 3509 + 3510 + detect-libc@^2.0.0: 3511 + version "2.0.1" 3512 + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" 3513 + integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== 3514 + 3515 + detect-newline@^3.0.0: 3516 + version "3.1.0" 3517 + resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" 3518 + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== 3519 + 3520 + dezalgo@^1.0.0: 3521 + version "1.0.4" 3522 + resolved "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz" 3523 + integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig== 3524 + dependencies: 3525 + asap "^2.0.0" 3526 + wrappy "1" 3527 + 3528 + diff-sequences@^28.1.1: 3529 + version "28.1.1" 3530 + resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz" 3531 + integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw== 3532 + 3533 + diff@^4.0.1: 3534 + version "4.0.2" 3535 + resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" 3536 + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== 3537 + 3538 + dir-glob@^3.0.1: 3539 + version "3.0.1" 3540 + resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" 3541 + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== 3542 + dependencies: 3543 + path-type "^4.0.0" 3544 + 3545 + doctrine@^3.0.0: 3546 + version "3.0.0" 3547 + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" 3548 + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 3549 + dependencies: 3550 + esutils "^2.0.2" 3551 + 3552 + dot-prop@^5.1.0: 3553 + version "5.3.0" 3554 + resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz" 3555 + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== 3556 + dependencies: 3557 + is-obj "^2.0.0" 3558 + 3559 + dot-prop@^6.0.1: 3560 + version "6.0.1" 3561 + resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz" 3562 + integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== 3563 + dependencies: 3564 + is-obj "^2.0.0" 3565 + 3566 + dotenv@^16.0.3: 3567 + version "16.0.3" 3568 + resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz" 3569 + integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== 3570 + 3571 + duplexer@^0.1.1: 3572 + version "0.1.2" 3573 + resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz" 3574 + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== 3575 + 3576 + ecc-jsbn@~0.1.1: 3577 + version "0.1.2" 3578 + resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" 3579 + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== 3580 + dependencies: 3581 + jsbn "~0.1.0" 3582 + safer-buffer "^2.1.0" 3583 + 3584 + ee-first@1.1.1: 3585 + version "1.1.1" 3586 + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 3587 + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== 3588 + 3589 + electron-to-chromium@^1.4.251: 3590 + version "1.4.257" 3591 + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.257.tgz" 3592 + integrity sha512-C65sIwHqNnPC2ADMfse/jWTtmhZMII+x6ADI9gENzrOiI7BpxmfKFE84WkIEl5wEg+7+SfIkwChDlsd1Erju2A== 3593 + 3594 + emittery@^0.10.2: 3595 + version "0.10.2" 3596 + resolved "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz" 3597 + integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw== 3598 + 3599 + emoji-regex@^8.0.0: 3600 + version "8.0.0" 3601 + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" 3602 + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 3603 + 3604 + encodeurl@~1.0.2: 3605 + version "1.0.2" 3606 + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 3607 + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== 3608 + 3609 + encoding@^0.1.12: 3610 + version "0.1.13" 3611 + resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" 3612 + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== 3613 + dependencies: 3614 + iconv-lite "^0.6.2" 3615 + 3616 + end-of-stream@^1.1.0, end-of-stream@^1.4.1: 3617 + version "1.4.4" 3618 + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" 3619 + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 3620 + dependencies: 3621 + once "^1.4.0" 3622 + 3623 + env-paths@^2.2.0: 3624 + version "2.2.1" 3625 + resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" 3626 + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== 3627 + 3628 + envinfo@^7.7.4: 3629 + version "7.8.1" 3630 + resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz" 3631 + integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== 3632 + 3633 + err-code@^2.0.2: 3634 + version "2.0.3" 3635 + resolved "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz" 3636 + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== 3637 + 3638 + error-ex@^1.3.1: 3639 + version "1.3.2" 3640 + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" 3641 + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 3642 + dependencies: 3643 + is-arrayish "^0.2.1" 3644 + 3645 + es-abstract@^1.19.0, es-abstract@^1.19.2, es-abstract@^1.19.5, es-abstract@^1.20.1: 3646 + version "1.20.2" 3647 + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.2.tgz" 3648 + integrity sha512-XxXQuVNrySBNlEkTYJoDNFe5+s2yIOpzq80sUHEdPdQr0S5nTLz4ZPPPswNIpKseDDUS5yghX1gfLIHQZ1iNuQ== 3649 + dependencies: 3650 + call-bind "^1.0.2" 3651 + es-to-primitive "^1.2.1" 3652 + function-bind "^1.1.1" 3653 + function.prototype.name "^1.1.5" 3654 + get-intrinsic "^1.1.2" 3655 + get-symbol-description "^1.0.0" 3656 + has "^1.0.3" 3657 + has-property-descriptors "^1.0.0" 3658 + has-symbols "^1.0.3" 3659 + internal-slot "^1.0.3" 3660 + is-callable "^1.2.4" 3661 + is-negative-zero "^2.0.2" 3662 + is-regex "^1.1.4" 3663 + is-shared-array-buffer "^1.0.2" 3664 + is-string "^1.0.7" 3665 + is-weakref "^1.0.2" 3666 + object-inspect "^1.12.2" 3667 + object-keys "^1.1.1" 3668 + object.assign "^4.1.4" 3669 + regexp.prototype.flags "^1.4.3" 3670 + string.prototype.trimend "^1.0.5" 3671 + string.prototype.trimstart "^1.0.5" 3672 + unbox-primitive "^1.0.2" 3673 + 3674 + es-abstract@^1.20.4: 3675 + version "1.20.5" 3676 + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.5.tgz#e6dc99177be37cacda5988e692c3fa8b218e95d2" 3677 + integrity sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ== 3678 + dependencies: 3679 + call-bind "^1.0.2" 3680 + es-to-primitive "^1.2.1" 3681 + function-bind "^1.1.1" 3682 + function.prototype.name "^1.1.5" 3683 + get-intrinsic "^1.1.3" 3684 + get-symbol-description "^1.0.0" 3685 + gopd "^1.0.1" 3686 + has "^1.0.3" 3687 + has-property-descriptors "^1.0.0" 3688 + has-symbols "^1.0.3" 3689 + internal-slot "^1.0.3" 3690 + is-callable "^1.2.7" 3691 + is-negative-zero "^2.0.2" 3692 + is-regex "^1.1.4" 3693 + is-shared-array-buffer "^1.0.2" 3694 + is-string "^1.0.7" 3695 + is-weakref "^1.0.2" 3696 + object-inspect "^1.12.2" 3697 + object-keys "^1.1.1" 3698 + object.assign "^4.1.4" 3699 + regexp.prototype.flags "^1.4.3" 3700 + safe-regex-test "^1.0.0" 3701 + string.prototype.trimend "^1.0.6" 3702 + string.prototype.trimstart "^1.0.6" 3703 + unbox-primitive "^1.0.2" 3704 + 3705 + es-array-method-boxes-properly@^1.0.0: 3706 + version "1.0.0" 3707 + resolved "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz" 3708 + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== 3709 + 3710 + es-to-primitive@^1.2.1: 3711 + version "1.2.1" 3712 + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" 3713 + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== 3714 + dependencies: 3715 + is-callable "^1.1.4" 3716 + is-date-object "^1.0.1" 3717 + is-symbol "^1.0.2" 3718 + 3719 + esbuild-android-64@0.14.54: 3720 + version "0.14.54" 3721 + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz#505f41832884313bbaffb27704b8bcaa2d8616be" 3722 + integrity sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ== 3723 + 3724 + esbuild-android-arm64@0.14.54: 3725 + version "0.14.54" 3726 + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz#8ce69d7caba49646e009968fe5754a21a9871771" 3727 + integrity sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg== 3728 + 3729 + esbuild-darwin-64@0.14.54: 3730 + version "0.14.54" 3731 + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz#24ba67b9a8cb890a3c08d9018f887cc221cdda25" 3732 + integrity sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug== 3733 + 3734 + esbuild-darwin-arm64@0.14.54: 3735 + version "0.14.54" 3736 + resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz" 3737 + integrity sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw== 3738 + 3739 + esbuild-freebsd-64@0.14.54: 3740 + version "0.14.54" 3741 + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz#09250f997a56ed4650f3e1979c905ffc40bbe94d" 3742 + integrity sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg== 3743 + 3744 + esbuild-freebsd-arm64@0.14.54: 3745 + version "0.14.54" 3746 + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz#bafb46ed04fc5f97cbdb016d86947a79579f8e48" 3747 + integrity sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q== 3748 + 3749 + esbuild-linux-32@0.14.54: 3750 + version "0.14.54" 3751 + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz#e2a8c4a8efdc355405325033fcebeb941f781fe5" 3752 + integrity sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw== 3753 + 3754 + esbuild-linux-64@0.14.54: 3755 + version "0.14.54" 3756 + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz#de5fdba1c95666cf72369f52b40b03be71226652" 3757 + integrity sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg== 3758 + 3759 + esbuild-linux-arm64@0.14.54: 3760 + version "0.14.54" 3761 + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz#dae4cd42ae9787468b6a5c158da4c84e83b0ce8b" 3762 + integrity sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig== 3763 + 3764 + esbuild-linux-arm@0.14.54: 3765 + version "0.14.54" 3766 + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz#a2c1dff6d0f21dbe8fc6998a122675533ddfcd59" 3767 + integrity sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw== 3768 + 3769 + esbuild-linux-mips64le@0.14.54: 3770 + version "0.14.54" 3771 + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz#d9918e9e4cb972f8d6dae8e8655bf9ee131eda34" 3772 + integrity sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw== 3773 + 3774 + esbuild-linux-ppc64le@0.14.54: 3775 + version "0.14.54" 3776 + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz#3f9a0f6d41073fb1a640680845c7de52995f137e" 3777 + integrity sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ== 3778 + 3779 + esbuild-linux-riscv64@0.14.54: 3780 + version "0.14.54" 3781 + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz#618853c028178a61837bc799d2013d4695e451c8" 3782 + integrity sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg== 3783 + 3784 + esbuild-linux-s390x@0.14.54: 3785 + version "0.14.54" 3786 + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz#d1885c4c5a76bbb5a0fe182e2c8c60eb9e29f2a6" 3787 + integrity sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA== 3788 + 3789 + esbuild-netbsd-64@0.14.54: 3790 + version "0.14.54" 3791 + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz#69ae917a2ff241b7df1dbf22baf04bd330349e81" 3792 + integrity sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w== 3793 + 3794 + esbuild-node-externals@^1.5.0: 3795 + version "1.5.0" 3796 + resolved "https://registry.npmjs.org/esbuild-node-externals/-/esbuild-node-externals-1.5.0.tgz" 3797 + integrity sha512-9394Ne2t2Z243BWeNBRkXEYVMOVbQuzp7XSkASZTOQs0GSXDuno5aH5OmzEXc6GMuln5zJjpkZpgwUPW0uRKgw== 3798 + dependencies: 3799 + find-up "5.0.0" 3800 + tslib "2.3.1" 3801 + 3802 + esbuild-openbsd-64@0.14.54: 3803 + version "0.14.54" 3804 + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz#db4c8495287a350a6790de22edea247a57c5d47b" 3805 + integrity sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw== 3806 + 3807 + esbuild-plugin-copy@^1.6.0: 3808 + version "1.6.0" 3809 + resolved "https://registry.npmjs.org/esbuild-plugin-copy/-/esbuild-plugin-copy-1.6.0.tgz" 3810 + integrity sha512-wN1paBCoE0yRBl9ZY3ZSD6SxGE4Yfr0Em7zh2yTbJv1JaHEIR3FYYN7HU6F+j/peSaGZJNSORSGxJ5QX1a1Sgg== 3811 + dependencies: 3812 + chalk "^4.1.2" 3813 + fs-extra "^10.0.1" 3814 + globby "^11.0.3" 3815 + 3816 + esbuild-sunos-64@0.14.54: 3817 + version "0.14.54" 3818 + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz#54287ee3da73d3844b721c21bc80c1dc7e1bf7da" 3819 + integrity sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw== 3820 + 3821 + esbuild-windows-32@0.14.54: 3822 + version "0.14.54" 3823 + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz#f8aaf9a5667630b40f0fb3aa37bf01bbd340ce31" 3824 + integrity sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w== 3825 + 3826 + esbuild-windows-64@0.14.54: 3827 + version "0.14.54" 3828 + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz#bf54b51bd3e9b0f1886ffdb224a4176031ea0af4" 3829 + integrity sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ== 3830 + 3831 + esbuild-windows-arm64@0.14.54: 3832 + version "0.14.54" 3833 + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz#937d15675a15e4b0e4fafdbaa3a01a776a2be982" 3834 + integrity sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg== 3835 + 3836 + esbuild@^0.14.48: 3837 + version "0.14.54" 3838 + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz" 3839 + integrity sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA== 3840 + optionalDependencies: 3841 + "@esbuild/linux-loong64" "0.14.54" 3842 + esbuild-android-64 "0.14.54" 3843 + esbuild-android-arm64 "0.14.54" 3844 + esbuild-darwin-64 "0.14.54" 3845 + esbuild-darwin-arm64 "0.14.54" 3846 + esbuild-freebsd-64 "0.14.54" 3847 + esbuild-freebsd-arm64 "0.14.54" 3848 + esbuild-linux-32 "0.14.54" 3849 + esbuild-linux-64 "0.14.54" 3850 + esbuild-linux-arm "0.14.54" 3851 + esbuild-linux-arm64 "0.14.54" 3852 + esbuild-linux-mips64le "0.14.54" 3853 + esbuild-linux-ppc64le "0.14.54" 3854 + esbuild-linux-riscv64 "0.14.54" 3855 + esbuild-linux-s390x "0.14.54" 3856 + esbuild-netbsd-64 "0.14.54" 3857 + esbuild-openbsd-64 "0.14.54" 3858 + esbuild-sunos-64 "0.14.54" 3859 + esbuild-windows-32 "0.14.54" 3860 + esbuild-windows-64 "0.14.54" 3861 + esbuild-windows-arm64 "0.14.54" 3862 + 3863 + escalade@^3.1.1: 3864 + version "3.1.1" 3865 + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" 3866 + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 3867 + 3868 + escape-html@~1.0.3: 3869 + version "1.0.3" 3870 + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 3871 + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== 3872 + 3873 + escape-string-regexp@^1.0.5: 3874 + version "1.0.5" 3875 + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" 3876 + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== 3877 + 3878 + escape-string-regexp@^2.0.0: 3879 + version "2.0.0" 3880 + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" 3881 + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== 3882 + 3883 + escape-string-regexp@^4.0.0: 3884 + version "4.0.0" 3885 + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" 3886 + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 3887 + 3888 + eslint-config-prettier@^8.5.0: 3889 + version "8.5.0" 3890 + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz" 3891 + integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== 3892 + 3893 + eslint-plugin-prettier@^4.2.1: 3894 + version "4.2.1" 3895 + resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz" 3896 + integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== 3897 + dependencies: 3898 + prettier-linter-helpers "^1.0.0" 3899 + 3900 + eslint-scope@^5.1.1: 3901 + version "5.1.1" 3902 + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" 3903 + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== 3904 + dependencies: 3905 + esrecurse "^4.3.0" 3906 + estraverse "^4.1.1" 3907 + 3908 + eslint-scope@^7.1.1: 3909 + version "7.1.1" 3910 + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz" 3911 + integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== 3912 + dependencies: 3913 + esrecurse "^4.3.0" 3914 + estraverse "^5.2.0" 3915 + 3916 + eslint-utils@^3.0.0: 3917 + version "3.0.0" 3918 + resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz" 3919 + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== 3920 + dependencies: 3921 + eslint-visitor-keys "^2.0.0" 3922 + 3923 + eslint-visitor-keys@^1.0.0: 3924 + version "1.3.0" 3925 + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" 3926 + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== 3927 + 3928 + eslint-visitor-keys@^2.0.0: 3929 + version "2.1.0" 3930 + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" 3931 + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== 3932 + 3933 + eslint-visitor-keys@^3.3.0: 3934 + version "3.3.0" 3935 + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz" 3936 + integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== 3937 + 3938 + eslint@^8.24.0: 3939 + version "8.24.0" 3940 + resolved "https://registry.npmjs.org/eslint/-/eslint-8.24.0.tgz" 3941 + integrity sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ== 3942 + dependencies: 3943 + "@eslint/eslintrc" "^1.3.2" 3944 + "@humanwhocodes/config-array" "^0.10.5" 3945 + "@humanwhocodes/gitignore-to-minimatch" "^1.0.2" 3946 + "@humanwhocodes/module-importer" "^1.0.1" 3947 + ajv "^6.10.0" 3948 + chalk "^4.0.0" 3949 + cross-spawn "^7.0.2" 3950 + debug "^4.3.2" 3951 + doctrine "^3.0.0" 3952 + escape-string-regexp "^4.0.0" 3953 + eslint-scope "^7.1.1" 3954 + eslint-utils "^3.0.0" 3955 + eslint-visitor-keys "^3.3.0" 3956 + espree "^9.4.0" 3957 + esquery "^1.4.0" 3958 + esutils "^2.0.2" 3959 + fast-deep-equal "^3.1.3" 3960 + file-entry-cache "^6.0.1" 3961 + find-up "^5.0.0" 3962 + glob-parent "^6.0.1" 3963 + globals "^13.15.0" 3964 + globby "^11.1.0" 3965 + grapheme-splitter "^1.0.4" 3966 + ignore "^5.2.0" 3967 + import-fresh "^3.0.0" 3968 + imurmurhash "^0.1.4" 3969 + is-glob "^4.0.0" 3970 + js-sdsl "^4.1.4" 3971 + js-yaml "^4.1.0" 3972 + json-stable-stringify-without-jsonify "^1.0.1" 3973 + levn "^0.4.1" 3974 + lodash.merge "^4.6.2" 3975 + minimatch "^3.1.2" 3976 + natural-compare "^1.4.0" 3977 + optionator "^0.9.1" 3978 + regexpp "^3.2.0" 3979 + strip-ansi "^6.0.1" 3980 + strip-json-comments "^3.1.0" 3981 + text-table "^0.2.0" 3982 + 3983 + espree@^9.4.0: 3984 + version "9.4.0" 3985 + resolved "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz" 3986 + integrity sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw== 3987 + dependencies: 3988 + acorn "^8.8.0" 3989 + acorn-jsx "^5.3.2" 3990 + eslint-visitor-keys "^3.3.0" 3991 + 3992 + esprima@^4.0.0: 3993 + version "4.0.1" 3994 + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" 3995 + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 3996 + 3997 + esquery@^1.4.0: 3998 + version "1.4.0" 3999 + resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz" 4000 + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== 4001 + dependencies: 4002 + estraverse "^5.1.0" 4003 + 4004 + esrecurse@^4.3.0: 4005 + version "4.3.0" 4006 + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" 4007 + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 4008 + dependencies: 4009 + estraverse "^5.2.0" 4010 + 4011 + estraverse@^4.1.1: 4012 + version "4.3.0" 4013 + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" 4014 + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 4015 + 4016 + estraverse@^5.1.0, estraverse@^5.2.0: 4017 + version "5.3.0" 4018 + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" 4019 + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== 4020 + 4021 + esutils@^2.0.2: 4022 + version "2.0.3" 4023 + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" 4024 + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 4025 + 4026 + etag@~1.8.1: 4027 + version "1.8.1" 4028 + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 4029 + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== 4030 + 4031 + event-target-shim@^5.0.0: 4032 + version "5.0.1" 4033 + resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" 4034 + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== 4035 + 4036 + eventemitter3@^4.0.4: 4037 + version "4.0.7" 4038 + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" 4039 + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== 4040 + 4041 + events@^3.3.0: 4042 + version "3.3.0" 4043 + resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" 4044 + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== 4045 + 4046 + execa@^5.0.0: 4047 + version "5.1.1" 4048 + resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" 4049 + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== 4050 + dependencies: 4051 + cross-spawn "^7.0.3" 4052 + get-stream "^6.0.0" 4053 + human-signals "^2.1.0" 4054 + is-stream "^2.0.0" 4055 + merge-stream "^2.0.0" 4056 + npm-run-path "^4.0.1" 4057 + onetime "^5.1.2" 4058 + signal-exit "^3.0.3" 4059 + strip-final-newline "^2.0.0" 4060 + 4061 + exit@^0.1.2: 4062 + version "0.1.2" 4063 + resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" 4064 + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== 4065 + 4066 + expand-template@^2.0.3: 4067 + version "2.0.3" 4068 + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" 4069 + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== 4070 + 4071 + expect@^28.0.0, expect@^28.1.3: 4072 + version "28.1.3" 4073 + resolved "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz" 4074 + integrity sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g== 4075 + dependencies: 4076 + "@jest/expect-utils" "^28.1.3" 4077 + jest-get-type "^28.0.2" 4078 + jest-matcher-utils "^28.1.3" 4079 + jest-message-util "^28.1.3" 4080 + jest-util "^28.1.3" 4081 + 4082 + express-async-errors@^3.1.1: 4083 + version "3.1.1" 4084 + resolved "https://registry.yarnpkg.com/express-async-errors/-/express-async-errors-3.1.1.tgz#6053236d61d21ddef4892d6bd1d736889fc9da41" 4085 + integrity sha512-h6aK1da4tpqWSbyCa3FxB/V6Ehd4EEB15zyQq9qe75OZBp0krinNKuH4rAY+S/U/2I36vdLAUFSjQJ+TFmODng== 4086 + 4087 + express@^4.18.2: 4088 + version "4.18.2" 4089 + resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" 4090 + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== 4091 + dependencies: 4092 + accepts "~1.3.8" 4093 + array-flatten "1.1.1" 4094 + body-parser "1.20.1" 4095 + content-disposition "0.5.4" 4096 + content-type "~1.0.4" 4097 + cookie "0.5.0" 4098 + cookie-signature "1.0.6" 4099 + debug "2.6.9" 4100 + depd "2.0.0" 4101 + encodeurl "~1.0.2" 4102 + escape-html "~1.0.3" 4103 + etag "~1.8.1" 4104 + finalhandler "1.2.0" 4105 + fresh "0.5.2" 4106 + http-errors "2.0.0" 4107 + merge-descriptors "1.0.1" 4108 + methods "~1.1.2" 4109 + on-finished "2.4.1" 4110 + parseurl "~1.3.3" 4111 + path-to-regexp "0.1.7" 4112 + proxy-addr "~2.0.7" 4113 + qs "6.11.0" 4114 + range-parser "~1.2.1" 4115 + safe-buffer "5.2.1" 4116 + send "0.18.0" 4117 + serve-static "1.15.0" 4118 + setprototypeof "1.2.0" 4119 + statuses "2.0.1" 4120 + type-is "~1.6.18" 4121 + utils-merge "1.0.1" 4122 + vary "~1.1.2" 4123 + 4124 + extend@~3.0.2: 4125 + version "3.0.2" 4126 + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" 4127 + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== 4128 + 4129 + external-editor@^3.0.3: 4130 + version "3.1.0" 4131 + resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz" 4132 + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== 4133 + dependencies: 4134 + chardet "^0.7.0" 4135 + iconv-lite "^0.4.24" 4136 + tmp "^0.0.33" 4137 + 4138 + extsprintf@1.3.0: 4139 + version "1.3.0" 4140 + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" 4141 + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== 4142 + 4143 + extsprintf@^1.2.0: 4144 + version "1.4.1" 4145 + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz" 4146 + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== 4147 + 4148 + fast-copy@^2.1.1: 4149 + version "2.1.7" 4150 + resolved "https://registry.npmjs.org/fast-copy/-/fast-copy-2.1.7.tgz" 4151 + integrity sha512-ozrGwyuCTAy7YgFCua8rmqmytECYk/JYAMXcswOcm0qvGoE3tPb7ivBeIHTOK2DiapBhDZgacIhzhQIKU5TCfA== 4152 + 4153 + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 4154 + version "3.1.3" 4155 + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" 4156 + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 4157 + 4158 + fast-diff@^1.1.2: 4159 + version "1.2.0" 4160 + resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz" 4161 + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== 4162 + 4163 + fast-glob@^3.2.9: 4164 + version "3.2.12" 4165 + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz" 4166 + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== 4167 + dependencies: 4168 + "@nodelib/fs.stat" "^2.0.2" 4169 + "@nodelib/fs.walk" "^1.2.3" 4170 + glob-parent "^5.1.2" 4171 + merge2 "^1.3.0" 4172 + micromatch "^4.0.4" 4173 + 4174 + fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: 4175 + version "2.1.0" 4176 + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" 4177 + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 4178 + 4179 + fast-json-stringify@^2.7.10: 4180 + version "2.7.13" 4181 + resolved "https://registry.yarnpkg.com/fast-json-stringify/-/fast-json-stringify-2.7.13.tgz#277aa86c2acba4d9851bd6108ed657aa327ed8c0" 4182 + integrity sha512-ar+hQ4+OIurUGjSJD1anvYSDcUflywhKjfxnsW4TBTD7+u0tJufv6DKRWoQk3vI6YBOWMoz0TQtfbe7dxbQmvA== 4183 + dependencies: 4184 + ajv "^6.11.0" 4185 + deepmerge "^4.2.2" 4186 + rfdc "^1.2.0" 4187 + string-similarity "^4.0.1" 4188 + 4189 + fast-levenshtein@^2.0.6: 4190 + version "2.0.6" 4191 + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" 4192 + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== 4193 + 4194 + fast-printf@^1.6.9: 4195 + version "1.6.9" 4196 + resolved "https://registry.yarnpkg.com/fast-printf/-/fast-printf-1.6.9.tgz#212f56570d2dc8ccdd057ee93d50dd414d07d676" 4197 + integrity sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg== 4198 + dependencies: 4199 + boolean "^3.1.4" 4200 + 4201 + fast-redact@^3.1.1: 4202 + version "3.1.2" 4203 + resolved "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.2.tgz" 4204 + integrity sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw== 4205 + 4206 + fast-safe-stringify@^2.1.1: 4207 + version "2.1.1" 4208 + resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz" 4209 + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== 4210 + 4211 + fastq@^1.6.0: 4212 + version "1.13.0" 4213 + resolved "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz" 4214 + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== 4215 + dependencies: 4216 + reusify "^1.0.4" 4217 + 4218 + fb-watchman@^2.0.0: 4219 + version "2.0.2" 4220 + resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz" 4221 + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== 4222 + dependencies: 4223 + bser "2.1.1" 4224 + 4225 + figures@^3.0.0: 4226 + version "3.2.0" 4227 + resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz" 4228 + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== 4229 + dependencies: 4230 + escape-string-regexp "^1.0.5" 4231 + 4232 + file-entry-cache@^6.0.1: 4233 + version "6.0.1" 4234 + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" 4235 + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== 4236 + dependencies: 4237 + flat-cache "^3.0.4" 4238 + 4239 + file-uri-to-path@1.0.0: 4240 + version "1.0.0" 4241 + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" 4242 + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== 4243 + 4244 + fill-range@^7.0.1: 4245 + version "7.0.1" 4246 + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" 4247 + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 4248 + dependencies: 4249 + to-regex-range "^5.0.1" 4250 + 4251 + filter-obj@^1.1.0: 4252 + version "1.1.0" 4253 + resolved "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz" 4254 + integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== 4255 + 4256 + finalhandler@1.2.0: 4257 + version "1.2.0" 4258 + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" 4259 + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== 4260 + dependencies: 4261 + debug "2.6.9" 4262 + encodeurl "~1.0.2" 4263 + escape-html "~1.0.3" 4264 + on-finished "2.4.1" 4265 + parseurl "~1.3.3" 4266 + statuses "2.0.1" 4267 + unpipe "~1.0.0" 4268 + 4269 + find-up@5.0.0, find-up@^5.0.0: 4270 + version "5.0.0" 4271 + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" 4272 + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== 4273 + dependencies: 4274 + locate-path "^6.0.0" 4275 + path-exists "^4.0.0" 4276 + 4277 + find-up@^2.0.0: 4278 + version "2.1.0" 4279 + resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" 4280 + integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== 4281 + dependencies: 4282 + locate-path "^2.0.0" 4283 + 4284 + find-up@^4.0.0, find-up@^4.1.0: 4285 + version "4.1.0" 4286 + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" 4287 + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== 4288 + dependencies: 4289 + locate-path "^5.0.0" 4290 + path-exists "^4.0.0" 4291 + 4292 + flat-cache@^3.0.4: 4293 + version "3.0.4" 4294 + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" 4295 + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== 4296 + dependencies: 4297 + flatted "^3.1.0" 4298 + rimraf "^3.0.2" 4299 + 4300 + flatted@^3.1.0: 4301 + version "3.2.7" 4302 + resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz" 4303 + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== 4304 + 4305 + follow-redirects@^1.14.9: 4306 + version "1.15.2" 4307 + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz" 4308 + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== 4309 + 4310 + forever-agent@~0.6.1: 4311 + version "0.6.1" 4312 + resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" 4313 + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== 4314 + 4315 + form-data@^4.0.0: 4316 + version "4.0.0" 4317 + resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" 4318 + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== 4319 + dependencies: 4320 + asynckit "^0.4.0" 4321 + combined-stream "^1.0.8" 4322 + mime-types "^2.1.12" 4323 + 4324 + form-data@~2.3.2: 4325 + version "2.3.3" 4326 + resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" 4327 + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== 4328 + dependencies: 4329 + asynckit "^0.4.0" 4330 + combined-stream "^1.0.6" 4331 + mime-types "^2.1.12" 4332 + 4333 + forwarded@0.2.0: 4334 + version "0.2.0" 4335 + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" 4336 + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== 4337 + 4338 + fresh@0.5.2: 4339 + version "0.5.2" 4340 + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 4341 + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== 4342 + 4343 + fs-constants@^1.0.0: 4344 + version "1.0.0" 4345 + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" 4346 + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== 4347 + 4348 + fs-extra@^10.0.1: 4349 + version "10.1.0" 4350 + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz" 4351 + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== 4352 + dependencies: 4353 + graceful-fs "^4.2.0" 4354 + jsonfile "^6.0.1" 4355 + universalify "^2.0.0" 4356 + 4357 + fs-extra@^9.1.0: 4358 + version "9.1.0" 4359 + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" 4360 + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== 4361 + dependencies: 4362 + at-least-node "^1.0.0" 4363 + graceful-fs "^4.2.0" 4364 + jsonfile "^6.0.1" 4365 + universalify "^2.0.0" 4366 + 4367 + fs-minipass@^1.2.7: 4368 + version "1.2.7" 4369 + resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz" 4370 + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== 4371 + dependencies: 4372 + minipass "^2.6.0" 4373 + 4374 + fs-minipass@^2.0.0, fs-minipass@^2.1.0: 4375 + version "2.1.0" 4376 + resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" 4377 + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== 4378 + dependencies: 4379 + minipass "^3.0.0" 4380 + 4381 + fs.realpath@^1.0.0: 4382 + version "1.0.0" 4383 + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" 4384 + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== 4385 + 4386 + fsevents@^2.3.2: 4387 + version "2.3.2" 4388 + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" 4389 + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 4390 + 4391 + function-bind@^1.1.1: 4392 + version "1.1.1" 4393 + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" 4394 + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 4395 + 4396 + function.prototype.name@^1.1.5: 4397 + version "1.1.5" 4398 + resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz" 4399 + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== 4400 + dependencies: 4401 + call-bind "^1.0.2" 4402 + define-properties "^1.1.3" 4403 + es-abstract "^1.19.0" 4404 + functions-have-names "^1.2.2" 4405 + 4406 + functions-have-names@^1.2.2: 4407 + version "1.2.3" 4408 + resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" 4409 + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== 4410 + 4411 + gauge@~2.7.3: 4412 + version "2.7.4" 4413 + resolved "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz" 4414 + integrity sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg== 4415 + dependencies: 4416 + aproba "^1.0.3" 4417 + console-control-strings "^1.0.0" 4418 + has-unicode "^2.0.0" 4419 + object-assign "^4.1.0" 4420 + signal-exit "^3.0.0" 4421 + string-width "^1.0.1" 4422 + strip-ansi "^3.0.1" 4423 + wide-align "^1.1.0" 4424 + 4425 + gensync@^1.0.0-beta.2: 4426 + version "1.0.0-beta.2" 4427 + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" 4428 + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== 4429 + 4430 + get-caller-file@^2.0.5: 4431 + version "2.0.5" 4432 + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" 4433 + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 4434 + 4435 + get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.2, get-intrinsic@^1.1.3: 4436 + version "1.1.3" 4437 + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz" 4438 + integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== 4439 + dependencies: 4440 + function-bind "^1.1.1" 4441 + has "^1.0.3" 4442 + has-symbols "^1.0.3" 4443 + 4444 + get-package-type@^0.1.0: 4445 + version "0.1.0" 4446 + resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" 4447 + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== 4448 + 4449 + get-pkg-repo@^4.0.0: 4450 + version "4.2.1" 4451 + resolved "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz" 4452 + integrity sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA== 4453 + dependencies: 4454 + "@hutson/parse-repository-url" "^3.0.0" 4455 + hosted-git-info "^4.0.0" 4456 + through2 "^2.0.0" 4457 + yargs "^16.2.0" 4458 + 4459 + get-port@^5.1.1: 4460 + version "5.1.1" 4461 + resolved "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz" 4462 + integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== 4463 + 4464 + get-stream@^6.0.0: 4465 + version "6.0.1" 4466 + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" 4467 + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== 4468 + 4469 + get-symbol-description@^1.0.0: 4470 + version "1.0.0" 4471 + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" 4472 + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== 4473 + dependencies: 4474 + call-bind "^1.0.2" 4475 + get-intrinsic "^1.1.1" 4476 + 4477 + getpass@^0.1.1: 4478 + version "0.1.7" 4479 + resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" 4480 + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== 4481 + dependencies: 4482 + assert-plus "^1.0.0" 4483 + 4484 + git-raw-commits@^2.0.8: 4485 + version "2.0.11" 4486 + resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz" 4487 + integrity sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A== 4488 + dependencies: 4489 + dargs "^7.0.0" 4490 + lodash "^4.17.15" 4491 + meow "^8.0.0" 4492 + split2 "^3.0.0" 4493 + through2 "^4.0.0" 4494 + 4495 + git-remote-origin-url@^2.0.0: 4496 + version "2.0.0" 4497 + resolved "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz" 4498 + integrity sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw== 4499 + dependencies: 4500 + gitconfiglocal "^1.0.0" 4501 + pify "^2.3.0" 4502 + 4503 + git-semver-tags@^4.1.1: 4504 + version "4.1.1" 4505 + resolved "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz" 4506 + integrity sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA== 4507 + dependencies: 4508 + meow "^8.0.0" 4509 + semver "^6.0.0" 4510 + 4511 + git-up@^4.0.0: 4512 + version "4.0.5" 4513 + resolved "https://registry.npmjs.org/git-up/-/git-up-4.0.5.tgz" 4514 + integrity sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA== 4515 + dependencies: 4516 + is-ssh "^1.3.0" 4517 + parse-url "^6.0.0" 4518 + 4519 + git-url-parse@^11.4.4: 4520 + version "11.6.0" 4521 + resolved "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.6.0.tgz" 4522 + integrity sha512-WWUxvJs5HsyHL6L08wOusa/IXYtMuCAhrMmnTjQPpBU0TTHyDhnOATNH3xNQz7YOQUsqIIPTGr4xiVti1Hsk5g== 4523 + dependencies: 4524 + git-up "^4.0.0" 4525 + 4526 + gitconfiglocal@^1.0.0: 4527 + version "1.0.0" 4528 + resolved "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz" 4529 + integrity sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ== 4530 + dependencies: 4531 + ini "^1.3.2" 4532 + 4533 + github-from-package@0.0.0: 4534 + version "0.0.0" 4535 + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" 4536 + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== 4537 + 4538 + glob-parent@^5.1.1, glob-parent@^5.1.2: 4539 + version "5.1.2" 4540 + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" 4541 + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 4542 + dependencies: 4543 + is-glob "^4.0.1" 4544 + 4545 + glob-parent@^6.0.1: 4546 + version "6.0.2" 4547 + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" 4548 + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== 4549 + dependencies: 4550 + is-glob "^4.0.3" 4551 + 4552 + glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: 4553 + version "7.2.3" 4554 + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" 4555 + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== 4556 + dependencies: 4557 + fs.realpath "^1.0.0" 4558 + inflight "^1.0.4" 4559 + inherits "2" 4560 + minimatch "^3.1.1" 4561 + once "^1.3.0" 4562 + path-is-absolute "^1.0.0" 4563 + 4564 + glob@^8.0.0: 4565 + version "8.0.3" 4566 + resolved "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz" 4567 + integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== 4568 + dependencies: 4569 + fs.realpath "^1.0.0" 4570 + inflight "^1.0.4" 4571 + inherits "2" 4572 + minimatch "^5.0.1" 4573 + once "^1.3.0" 4574 + 4575 + globals@^11.1.0: 4576 + version "11.12.0" 4577 + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" 4578 + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 4579 + 4580 + globals@^13.15.0: 4581 + version "13.17.0" 4582 + resolved "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz" 4583 + integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== 4584 + dependencies: 4585 + type-fest "^0.20.2" 4586 + 4587 + globalthis@^1.0.2: 4588 + version "1.0.3" 4589 + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" 4590 + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== 4591 + dependencies: 4592 + define-properties "^1.1.3" 4593 + 4594 + globby@^11.0.2, globby@^11.0.3, globby@^11.1.0: 4595 + version "11.1.0" 4596 + resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" 4597 + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== 4598 + dependencies: 4599 + array-union "^2.1.0" 4600 + dir-glob "^3.0.1" 4601 + fast-glob "^3.2.9" 4602 + ignore "^5.2.0" 4603 + merge2 "^1.4.1" 4604 + slash "^3.0.0" 4605 + 4606 + gopd@^1.0.1: 4607 + version "1.0.1" 4608 + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" 4609 + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== 4610 + dependencies: 4611 + get-intrinsic "^1.1.3" 4612 + 4613 + 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.2, graceful-fs@^4.2.3, graceful-fs@^4.2.9: 4614 + version "4.2.10" 4615 + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" 4616 + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== 4617 + 4618 + grapheme-splitter@^1.0.4: 4619 + version "1.0.4" 4620 + resolved "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz" 4621 + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== 4622 + 4623 + handlebars@^4.7.7: 4624 + version "4.7.7" 4625 + resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz" 4626 + integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== 4627 + dependencies: 4628 + minimist "^1.2.5" 4629 + neo-async "^2.6.0" 4630 + source-map "^0.6.1" 4631 + wordwrap "^1.0.0" 4632 + optionalDependencies: 4633 + uglify-js "^3.1.4" 4634 + 4635 + har-schema@^2.0.0: 4636 + version "2.0.0" 4637 + resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" 4638 + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== 4639 + 4640 + har-validator@~5.1.3: 4641 + version "5.1.5" 4642 + resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" 4643 + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== 4644 + dependencies: 4645 + ajv "^6.12.3" 4646 + har-schema "^2.0.0" 4647 + 4648 + hard-rejection@^2.1.0: 4649 + version "2.1.0" 4650 + resolved "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz" 4651 + integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== 4652 + 4653 + has-bigints@^1.0.1, has-bigints@^1.0.2: 4654 + version "1.0.2" 4655 + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" 4656 + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== 4657 + 4658 + has-flag@^3.0.0: 4659 + version "3.0.0" 4660 + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" 4661 + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== 4662 + 4663 + has-flag@^4.0.0: 4664 + version "4.0.0" 4665 + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" 4666 + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 4667 + 4668 + has-property-descriptors@^1.0.0: 4669 + version "1.0.0" 4670 + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" 4671 + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== 4672 + dependencies: 4673 + get-intrinsic "^1.1.1" 4674 + 4675 + has-symbols@^1.0.2, has-symbols@^1.0.3: 4676 + version "1.0.3" 4677 + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" 4678 + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== 4679 + 4680 + has-tostringtag@^1.0.0: 4681 + version "1.0.0" 4682 + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" 4683 + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== 4684 + dependencies: 4685 + has-symbols "^1.0.2" 4686 + 4687 + has-unicode@^2.0.0, has-unicode@^2.0.1: 4688 + version "2.0.1" 4689 + resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" 4690 + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== 4691 + 4692 + has@^1.0.3: 4693 + version "1.0.3" 4694 + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" 4695 + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 4696 + dependencies: 4697 + function-bind "^1.1.1" 4698 + 4699 + help-me@^4.0.1: 4700 + version "4.1.0" 4701 + resolved "https://registry.npmjs.org/help-me/-/help-me-4.1.0.tgz" 4702 + integrity sha512-5HMrkOks2j8Fpu2j5nTLhrBhT7VwHwELpqnSnx802ckofys5MO2SkLpgSz3dgNFHV7IYFX2igm5CM75SmuYidw== 4703 + dependencies: 4704 + glob "^8.0.0" 4705 + readable-stream "^3.6.0" 4706 + 4707 + hosted-git-info@^2.1.4: 4708 + version "2.8.9" 4709 + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" 4710 + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== 4711 + 4712 + hosted-git-info@^4.0.0, hosted-git-info@^4.0.1: 4713 + version "4.1.0" 4714 + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz" 4715 + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== 4716 + dependencies: 4717 + lru-cache "^6.0.0" 4718 + 4719 + html-escaper@^2.0.0: 4720 + version "2.0.2" 4721 + resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" 4722 + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== 4723 + 4724 + http-cache-semantics@^4.1.0: 4725 + version "4.1.0" 4726 + resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" 4727 + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== 4728 + 4729 + http-errors@2.0.0: 4730 + version "2.0.0" 4731 + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" 4732 + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== 4733 + dependencies: 4734 + depd "2.0.0" 4735 + inherits "2.0.4" 4736 + setprototypeof "1.2.0" 4737 + statuses "2.0.1" 4738 + toidentifier "1.0.1" 4739 + 4740 + http-proxy-agent@^4.0.1: 4741 + version "4.0.1" 4742 + resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz" 4743 + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== 4744 + dependencies: 4745 + "@tootallnate/once" "1" 4746 + agent-base "6" 4747 + debug "4" 4748 + 4749 + http-signature@~1.2.0: 4750 + version "1.2.0" 4751 + resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" 4752 + integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== 4753 + dependencies: 4754 + assert-plus "^1.0.0" 4755 + jsprim "^1.2.2" 4756 + sshpk "^1.7.0" 4757 + 4758 + http-terminator@^3.2.0: 4759 + version "3.2.0" 4760 + resolved "https://registry.yarnpkg.com/http-terminator/-/http-terminator-3.2.0.tgz#bc158d2694b733ca4fbf22a35065a81a609fb3e9" 4761 + integrity sha512-JLjck1EzPaWjsmIf8bziM3p9fgR1Y3JoUKAkyYEbZmFrIvJM6I8vVJfBGWlEtV9IWOvzNnaTtjuwZeBY2kwB4g== 4762 + dependencies: 4763 + delay "^5.0.0" 4764 + p-wait-for "^3.2.0" 4765 + roarr "^7.0.4" 4766 + type-fest "^2.3.3" 4767 + 4768 + https-proxy-agent@^5.0.0: 4769 + version "5.0.1" 4770 + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" 4771 + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== 4772 + dependencies: 4773 + agent-base "6" 4774 + debug "4" 4775 + 4776 + human-signals@^2.1.0: 4777 + version "2.1.0" 4778 + resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" 4779 + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== 4780 + 4781 + humanize-ms@^1.2.1: 4782 + version "1.2.1" 4783 + resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz" 4784 + integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== 4785 + dependencies: 4786 + ms "^2.0.0" 4787 + 4788 + iconv-lite@0.4.24, iconv-lite@^0.4.24: 4789 + version "0.4.24" 4790 + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" 4791 + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 4792 + dependencies: 4793 + safer-buffer ">= 2.1.2 < 3" 4794 + 4795 + iconv-lite@^0.6.2: 4796 + version "0.6.3" 4797 + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" 4798 + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== 4799 + dependencies: 4800 + safer-buffer ">= 2.1.2 < 3.0.0" 4801 + 4802 + ieee754@^1.1.13, ieee754@^1.2.1: 4803 + version "1.2.1" 4804 + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" 4805 + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== 4806 + 4807 + ignore-walk@^3.0.3: 4808 + version "3.0.4" 4809 + resolved "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz" 4810 + integrity sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ== 4811 + dependencies: 4812 + minimatch "^3.0.4" 4813 + 4814 + ignore@^5.2.0: 4815 + version "5.2.0" 4816 + resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz" 4817 + integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== 4818 + 4819 + import-fresh@^3.0.0, import-fresh@^3.2.1: 4820 + version "3.3.0" 4821 + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" 4822 + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== 4823 + dependencies: 4824 + parent-module "^1.0.0" 4825 + resolve-from "^4.0.0" 4826 + 4827 + import-local@^3.0.2: 4828 + version "3.1.0" 4829 + resolved "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz" 4830 + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== 4831 + dependencies: 4832 + pkg-dir "^4.2.0" 4833 + resolve-cwd "^3.0.0" 4834 + 4835 + imurmurhash@^0.1.4: 4836 + version "0.1.4" 4837 + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" 4838 + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== 4839 + 4840 + indent-string@^4.0.0: 4841 + version "4.0.0" 4842 + resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" 4843 + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== 4844 + 4845 + infer-owner@^1.0.4: 4846 + version "1.0.4" 4847 + resolved "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz" 4848 + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== 4849 + 4850 + inflight@^1.0.4: 4851 + version "1.0.6" 4852 + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" 4853 + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== 4854 + dependencies: 4855 + once "^1.3.0" 4856 + wrappy "1" 4857 + 4858 + inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: 4859 + version "2.0.4" 4860 + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" 4861 + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 4862 + 4863 + ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: 4864 + version "1.3.8" 4865 + resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" 4866 + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== 4867 + 4868 + init-package-json@^2.0.2: 4869 + version "2.0.5" 4870 + resolved "https://registry.npmjs.org/init-package-json/-/init-package-json-2.0.5.tgz" 4871 + integrity sha512-u1uGAtEFu3VA6HNl/yUWw57jmKEMx8SKOxHhxjGnOFUiIlFnohKDFg4ZrPpv9wWqk44nDxGJAtqjdQFm+9XXQA== 4872 + dependencies: 4873 + npm-package-arg "^8.1.5" 4874 + promzard "^0.3.0" 4875 + read "~1.0.1" 4876 + read-package-json "^4.1.1" 4877 + semver "^7.3.5" 4878 + validate-npm-package-license "^3.0.4" 4879 + validate-npm-package-name "^3.0.0" 4880 + 4881 + inquirer@^7.3.3: 4882 + version "7.3.3" 4883 + resolved "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz" 4884 + integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== 4885 + dependencies: 4886 + ansi-escapes "^4.2.1" 4887 + chalk "^4.1.0" 4888 + cli-cursor "^3.1.0" 4889 + cli-width "^3.0.0" 4890 + external-editor "^3.0.3" 4891 + figures "^3.0.0" 4892 + lodash "^4.17.19" 4893 + mute-stream "0.0.8" 4894 + run-async "^2.4.0" 4895 + rxjs "^6.6.0" 4896 + string-width "^4.1.0" 4897 + strip-ansi "^6.0.0" 4898 + through "^2.3.6" 4899 + 4900 + internal-slot@^1.0.3: 4901 + version "1.0.3" 4902 + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" 4903 + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== 4904 + dependencies: 4905 + get-intrinsic "^1.1.0" 4906 + has "^1.0.3" 4907 + side-channel "^1.0.4" 4908 + 4909 + ip@^2.0.0: 4910 + version "2.0.0" 4911 + resolved "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz" 4912 + integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== 4913 + 4914 + ipaddr.js@1.9.1: 4915 + version "1.9.1" 4916 + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" 4917 + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== 4918 + 4919 + is-arrayish@^0.2.1: 4920 + version "0.2.1" 4921 + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" 4922 + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== 4923 + 4924 + is-bigint@^1.0.1: 4925 + version "1.0.4" 4926 + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" 4927 + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== 4928 + dependencies: 4929 + has-bigints "^1.0.1" 4930 + 4931 + is-boolean-object@^1.1.0: 4932 + version "1.1.2" 4933 + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" 4934 + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== 4935 + dependencies: 4936 + call-bind "^1.0.2" 4937 + has-tostringtag "^1.0.0" 4938 + 4939 + is-callable@^1.1.4, is-callable@^1.2.4: 4940 + version "1.2.6" 4941 + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.6.tgz" 4942 + integrity sha512-krO72EO2NptOGAX2KYyqbP9vYMlNAXdB53rq6f8LXY6RY7JdSR/3BD6wLUlPHSAesmY9vstNrjvqGaCiRK/91Q== 4943 + 4944 + is-callable@^1.2.7: 4945 + version "1.2.7" 4946 + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" 4947 + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== 4948 + 4949 + is-ci@^2.0.0: 4950 + version "2.0.0" 4951 + resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz" 4952 + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== 4953 + dependencies: 4954 + ci-info "^2.0.0" 4955 + 4956 + is-core-module@^2.5.0, is-core-module@^2.9.0: 4957 + version "2.10.0" 4958 + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz" 4959 + integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== 4960 + dependencies: 4961 + has "^1.0.3" 4962 + 4963 + is-date-object@^1.0.1: 4964 + version "1.0.5" 4965 + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" 4966 + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== 4967 + dependencies: 4968 + has-tostringtag "^1.0.0" 4969 + 4970 + is-extglob@^2.1.1: 4971 + version "2.1.1" 4972 + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" 4973 + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 4974 + 4975 + is-fullwidth-code-point@^1.0.0: 4976 + version "1.0.0" 4977 + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" 4978 + integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== 4979 + dependencies: 4980 + number-is-nan "^1.0.0" 4981 + 4982 + is-fullwidth-code-point@^3.0.0: 4983 + version "3.0.0" 4984 + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" 4985 + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 4986 + 4987 + is-generator-fn@^2.0.0: 4988 + version "2.1.0" 4989 + resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" 4990 + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== 4991 + 4992 + is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: 4993 + version "4.0.3" 4994 + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" 4995 + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 4996 + dependencies: 4997 + is-extglob "^2.1.1" 4998 + 4999 + is-lambda@^1.0.1: 5000 + version "1.0.1" 5001 + resolved "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz" 5002 + integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== 5003 + 5004 + is-negative-zero@^2.0.2: 5005 + version "2.0.2" 5006 + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" 5007 + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== 5008 + 5009 + is-number-object@^1.0.4: 5010 + version "1.0.7" 5011 + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" 5012 + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== 5013 + dependencies: 5014 + has-tostringtag "^1.0.0" 5015 + 5016 + is-number@^7.0.0: 5017 + version "7.0.0" 5018 + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" 5019 + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 5020 + 5021 + is-obj@^2.0.0: 5022 + version "2.0.0" 5023 + resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" 5024 + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== 5025 + 5026 + is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: 5027 + version "1.1.0" 5028 + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" 5029 + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== 5030 + 5031 + is-plain-obj@^2.0.0: 5032 + version "2.1.0" 5033 + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" 5034 + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== 5035 + 5036 + is-plain-object@^2.0.4: 5037 + version "2.0.4" 5038 + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" 5039 + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== 5040 + dependencies: 5041 + isobject "^3.0.1" 5042 + 5043 + is-plain-object@^5.0.0: 5044 + version "5.0.0" 5045 + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz" 5046 + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== 5047 + 5048 + is-regex@^1.1.4: 5049 + version "1.1.4" 5050 + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" 5051 + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== 5052 + dependencies: 5053 + call-bind "^1.0.2" 5054 + has-tostringtag "^1.0.0" 5055 + 5056 + is-shared-array-buffer@^1.0.2: 5057 + version "1.0.2" 5058 + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" 5059 + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== 5060 + dependencies: 5061 + call-bind "^1.0.2" 5062 + 5063 + is-ssh@^1.3.0: 5064 + version "1.4.0" 5065 + resolved "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz" 5066 + integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ== 5067 + dependencies: 5068 + protocols "^2.0.1" 5069 + 5070 + is-stream@^2.0.0: 5071 + version "2.0.1" 5072 + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" 5073 + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== 5074 + 5075 + is-string@^1.0.5, is-string@^1.0.7: 5076 + version "1.0.7" 5077 + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" 5078 + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== 5079 + dependencies: 5080 + has-tostringtag "^1.0.0" 5081 + 5082 + is-symbol@^1.0.2, is-symbol@^1.0.3: 5083 + version "1.0.4" 5084 + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" 5085 + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== 5086 + dependencies: 5087 + has-symbols "^1.0.2" 5088 + 5089 + is-text-path@^1.0.1: 5090 + version "1.0.1" 5091 + resolved "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz" 5092 + integrity sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w== 5093 + dependencies: 5094 + text-extensions "^1.0.0" 5095 + 5096 + is-typedarray@^1.0.0, is-typedarray@~1.0.0: 5097 + version "1.0.0" 5098 + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" 5099 + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== 5100 + 5101 + is-weakref@^1.0.2: 5102 + version "1.0.2" 5103 + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" 5104 + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== 5105 + dependencies: 5106 + call-bind "^1.0.2" 5107 + 5108 + isarray@~1.0.0: 5109 + version "1.0.0" 5110 + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" 5111 + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== 5112 + 5113 + isexe@^2.0.0: 5114 + version "2.0.0" 5115 + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" 5116 + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 5117 + 5118 + isobject@^3.0.1: 5119 + version "3.0.1" 5120 + resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" 5121 + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== 5122 + 5123 + isstream@~0.1.2: 5124 + version "0.1.2" 5125 + resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" 5126 + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== 5127 + 5128 + istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: 5129 + version "3.2.0" 5130 + resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz" 5131 + integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== 5132 + 5133 + istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: 5134 + version "5.2.0" 5135 + resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz" 5136 + integrity sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A== 5137 + dependencies: 5138 + "@babel/core" "^7.12.3" 5139 + "@babel/parser" "^7.14.7" 5140 + "@istanbuljs/schema" "^0.1.2" 5141 + istanbul-lib-coverage "^3.2.0" 5142 + semver "^6.3.0" 5143 + 5144 + istanbul-lib-report@^3.0.0: 5145 + version "3.0.0" 5146 + resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" 5147 + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== 5148 + dependencies: 5149 + istanbul-lib-coverage "^3.0.0" 5150 + make-dir "^3.0.0" 5151 + supports-color "^7.1.0" 5152 + 5153 + istanbul-lib-source-maps@^4.0.0: 5154 + version "4.0.1" 5155 + resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz" 5156 + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== 5157 + dependencies: 5158 + debug "^4.1.1" 5159 + istanbul-lib-coverage "^3.0.0" 5160 + source-map "^0.6.1" 5161 + 5162 + istanbul-reports@^3.1.3: 5163 + version "3.1.5" 5164 + resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz" 5165 + integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== 5166 + dependencies: 5167 + html-escaper "^2.0.0" 5168 + istanbul-lib-report "^3.0.0" 5169 + 5170 + jest-changed-files@^28.1.3: 5171 + version "28.1.3" 5172 + resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz" 5173 + integrity sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA== 5174 + dependencies: 5175 + execa "^5.0.0" 5176 + p-limit "^3.1.0" 5177 + 5178 + jest-circus@^28.1.3: 5179 + version "28.1.3" 5180 + resolved "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz" 5181 + integrity sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow== 5182 + dependencies: 5183 + "@jest/environment" "^28.1.3" 5184 + "@jest/expect" "^28.1.3" 5185 + "@jest/test-result" "^28.1.3" 5186 + "@jest/types" "^28.1.3" 5187 + "@types/node" "*" 5188 + chalk "^4.0.0" 5189 + co "^4.6.0" 5190 + dedent "^0.7.0" 5191 + is-generator-fn "^2.0.0" 5192 + jest-each "^28.1.3" 5193 + jest-matcher-utils "^28.1.3" 5194 + jest-message-util "^28.1.3" 5195 + jest-runtime "^28.1.3" 5196 + jest-snapshot "^28.1.3" 5197 + jest-util "^28.1.3" 5198 + p-limit "^3.1.0" 5199 + pretty-format "^28.1.3" 5200 + slash "^3.0.0" 5201 + stack-utils "^2.0.3" 5202 + 5203 + jest-cli@^28.1.3: 5204 + version "28.1.3" 5205 + resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz" 5206 + integrity sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ== 5207 + dependencies: 5208 + "@jest/core" "^28.1.3" 5209 + "@jest/test-result" "^28.1.3" 5210 + "@jest/types" "^28.1.3" 5211 + chalk "^4.0.0" 5212 + exit "^0.1.2" 5213 + graceful-fs "^4.2.9" 5214 + import-local "^3.0.2" 5215 + jest-config "^28.1.3" 5216 + jest-util "^28.1.3" 5217 + jest-validate "^28.1.3" 5218 + prompts "^2.0.1" 5219 + yargs "^17.3.1" 5220 + 5221 + jest-config@^28.1.3: 5222 + version "28.1.3" 5223 + resolved "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz" 5224 + integrity sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ== 5225 + dependencies: 5226 + "@babel/core" "^7.11.6" 5227 + "@jest/test-sequencer" "^28.1.3" 5228 + "@jest/types" "^28.1.3" 5229 + babel-jest "^28.1.3" 5230 + chalk "^4.0.0" 5231 + ci-info "^3.2.0" 5232 + deepmerge "^4.2.2" 5233 + glob "^7.1.3" 5234 + graceful-fs "^4.2.9" 5235 + jest-circus "^28.1.3" 5236 + jest-environment-node "^28.1.3" 5237 + jest-get-type "^28.0.2" 5238 + jest-regex-util "^28.0.2" 5239 + jest-resolve "^28.1.3" 5240 + jest-runner "^28.1.3" 5241 + jest-util "^28.1.3" 5242 + jest-validate "^28.1.3" 5243 + micromatch "^4.0.4" 5244 + parse-json "^5.2.0" 5245 + pretty-format "^28.1.3" 5246 + slash "^3.0.0" 5247 + strip-json-comments "^3.1.1" 5248 + 5249 + jest-diff@^28.1.3: 5250 + version "28.1.3" 5251 + resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz" 5252 + integrity sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw== 5253 + dependencies: 5254 + chalk "^4.0.0" 5255 + diff-sequences "^28.1.1" 5256 + jest-get-type "^28.0.2" 5257 + pretty-format "^28.1.3" 5258 + 5259 + jest-docblock@^28.1.1: 5260 + version "28.1.1" 5261 + resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz" 5262 + integrity sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA== 5263 + dependencies: 5264 + detect-newline "^3.0.0" 5265 + 5266 + jest-each@^28.1.3: 5267 + version "28.1.3" 5268 + resolved "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz" 5269 + integrity sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g== 5270 + dependencies: 5271 + "@jest/types" "^28.1.3" 5272 + chalk "^4.0.0" 5273 + jest-get-type "^28.0.2" 5274 + jest-util "^28.1.3" 5275 + pretty-format "^28.1.3" 5276 + 5277 + jest-environment-node@^28.1.3: 5278 + version "28.1.3" 5279 + resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz" 5280 + integrity sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A== 5281 + dependencies: 5282 + "@jest/environment" "^28.1.3" 5283 + "@jest/fake-timers" "^28.1.3" 5284 + "@jest/types" "^28.1.3" 5285 + "@types/node" "*" 5286 + jest-mock "^28.1.3" 5287 + jest-util "^28.1.3" 5288 + 5289 + jest-get-type@^28.0.2: 5290 + version "28.0.2" 5291 + resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz" 5292 + integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== 5293 + 5294 + jest-haste-map@^28.1.3: 5295 + version "28.1.3" 5296 + resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz" 5297 + integrity sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA== 5298 + dependencies: 5299 + "@jest/types" "^28.1.3" 5300 + "@types/graceful-fs" "^4.1.3" 5301 + "@types/node" "*" 5302 + anymatch "^3.0.3" 5303 + fb-watchman "^2.0.0" 5304 + graceful-fs "^4.2.9" 5305 + jest-regex-util "^28.0.2" 5306 + jest-util "^28.1.3" 5307 + jest-worker "^28.1.3" 5308 + micromatch "^4.0.4" 5309 + walker "^1.0.8" 5310 + optionalDependencies: 5311 + fsevents "^2.3.2" 5312 + 5313 + jest-leak-detector@^28.1.3: 5314 + version "28.1.3" 5315 + resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz" 5316 + integrity sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA== 5317 + dependencies: 5318 + jest-get-type "^28.0.2" 5319 + pretty-format "^28.1.3" 5320 + 5321 + jest-matcher-utils@^28.1.3: 5322 + version "28.1.3" 5323 + resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz" 5324 + integrity sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw== 5325 + dependencies: 5326 + chalk "^4.0.0" 5327 + jest-diff "^28.1.3" 5328 + jest-get-type "^28.0.2" 5329 + pretty-format "^28.1.3" 5330 + 5331 + jest-message-util@^28.1.3: 5332 + version "28.1.3" 5333 + resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz" 5334 + integrity sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g== 5335 + dependencies: 5336 + "@babel/code-frame" "^7.12.13" 5337 + "@jest/types" "^28.1.3" 5338 + "@types/stack-utils" "^2.0.0" 5339 + chalk "^4.0.0" 5340 + graceful-fs "^4.2.9" 5341 + micromatch "^4.0.4" 5342 + pretty-format "^28.1.3" 5343 + slash "^3.0.0" 5344 + stack-utils "^2.0.3" 5345 + 5346 + jest-mock@^28.1.3: 5347 + version "28.1.3" 5348 + resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz" 5349 + integrity sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA== 5350 + dependencies: 5351 + "@jest/types" "^28.1.3" 5352 + "@types/node" "*" 5353 + 5354 + jest-pnp-resolver@^1.2.2: 5355 + version "1.2.2" 5356 + resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz" 5357 + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== 5358 + 5359 + jest-regex-util@^28.0.2: 5360 + version "28.0.2" 5361 + resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz" 5362 + integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== 5363 + 5364 + jest-resolve-dependencies@^28.1.3: 5365 + version "28.1.3" 5366 + resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz" 5367 + integrity sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA== 5368 + dependencies: 5369 + jest-regex-util "^28.0.2" 5370 + jest-snapshot "^28.1.3" 5371 + 5372 + jest-resolve@^28.1.3: 5373 + version "28.1.3" 5374 + resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz" 5375 + integrity sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ== 5376 + dependencies: 5377 + chalk "^4.0.0" 5378 + graceful-fs "^4.2.9" 5379 + jest-haste-map "^28.1.3" 5380 + jest-pnp-resolver "^1.2.2" 5381 + jest-util "^28.1.3" 5382 + jest-validate "^28.1.3" 5383 + resolve "^1.20.0" 5384 + resolve.exports "^1.1.0" 5385 + slash "^3.0.0" 5386 + 5387 + jest-runner@^28.1.3: 5388 + version "28.1.3" 5389 + resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz" 5390 + integrity sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA== 5391 + dependencies: 5392 + "@jest/console" "^28.1.3" 5393 + "@jest/environment" "^28.1.3" 5394 + "@jest/test-result" "^28.1.3" 5395 + "@jest/transform" "^28.1.3" 5396 + "@jest/types" "^28.1.3" 5397 + "@types/node" "*" 5398 + chalk "^4.0.0" 5399 + emittery "^0.10.2" 5400 + graceful-fs "^4.2.9" 5401 + jest-docblock "^28.1.1" 5402 + jest-environment-node "^28.1.3" 5403 + jest-haste-map "^28.1.3" 5404 + jest-leak-detector "^28.1.3" 5405 + jest-message-util "^28.1.3" 5406 + jest-resolve "^28.1.3" 5407 + jest-runtime "^28.1.3" 5408 + jest-util "^28.1.3" 5409 + jest-watcher "^28.1.3" 5410 + jest-worker "^28.1.3" 5411 + p-limit "^3.1.0" 5412 + source-map-support "0.5.13" 5413 + 5414 + jest-runtime@^28.1.3: 5415 + version "28.1.3" 5416 + resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz" 5417 + integrity sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw== 5418 + dependencies: 5419 + "@jest/environment" "^28.1.3" 5420 + "@jest/fake-timers" "^28.1.3" 5421 + "@jest/globals" "^28.1.3" 5422 + "@jest/source-map" "^28.1.2" 5423 + "@jest/test-result" "^28.1.3" 5424 + "@jest/transform" "^28.1.3" 5425 + "@jest/types" "^28.1.3" 5426 + chalk "^4.0.0" 5427 + cjs-module-lexer "^1.0.0" 5428 + collect-v8-coverage "^1.0.0" 5429 + execa "^5.0.0" 5430 + glob "^7.1.3" 5431 + graceful-fs "^4.2.9" 5432 + jest-haste-map "^28.1.3" 5433 + jest-message-util "^28.1.3" 5434 + jest-mock "^28.1.3" 5435 + jest-regex-util "^28.0.2" 5436 + jest-resolve "^28.1.3" 5437 + jest-snapshot "^28.1.3" 5438 + jest-util "^28.1.3" 5439 + slash "^3.0.0" 5440 + strip-bom "^4.0.0" 5441 + 5442 + jest-snapshot@^28.1.3: 5443 + version "28.1.3" 5444 + resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz" 5445 + integrity sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg== 5446 + dependencies: 5447 + "@babel/core" "^7.11.6" 5448 + "@babel/generator" "^7.7.2" 5449 + "@babel/plugin-syntax-typescript" "^7.7.2" 5450 + "@babel/traverse" "^7.7.2" 5451 + "@babel/types" "^7.3.3" 5452 + "@jest/expect-utils" "^28.1.3" 5453 + "@jest/transform" "^28.1.3" 5454 + "@jest/types" "^28.1.3" 5455 + "@types/babel__traverse" "^7.0.6" 5456 + "@types/prettier" "^2.1.5" 5457 + babel-preset-current-node-syntax "^1.0.0" 5458 + chalk "^4.0.0" 5459 + expect "^28.1.3" 5460 + graceful-fs "^4.2.9" 5461 + jest-diff "^28.1.3" 5462 + jest-get-type "^28.0.2" 5463 + jest-haste-map "^28.1.3" 5464 + jest-matcher-utils "^28.1.3" 5465 + jest-message-util "^28.1.3" 5466 + jest-util "^28.1.3" 5467 + natural-compare "^1.4.0" 5468 + pretty-format "^28.1.3" 5469 + semver "^7.3.5" 5470 + 5471 + jest-util@^28.0.0, jest-util@^28.1.3: 5472 + version "28.1.3" 5473 + resolved "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz" 5474 + integrity sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ== 5475 + dependencies: 5476 + "@jest/types" "^28.1.3" 5477 + "@types/node" "*" 5478 + chalk "^4.0.0" 5479 + ci-info "^3.2.0" 5480 + graceful-fs "^4.2.9" 5481 + picomatch "^2.2.3" 5482 + 5483 + jest-validate@^28.1.3: 5484 + version "28.1.3" 5485 + resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz" 5486 + integrity sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA== 5487 + dependencies: 5488 + "@jest/types" "^28.1.3" 5489 + camelcase "^6.2.0" 5490 + chalk "^4.0.0" 5491 + jest-get-type "^28.0.2" 5492 + leven "^3.1.0" 5493 + pretty-format "^28.1.3" 5494 + 5495 + jest-watcher@^28.1.3: 5496 + version "28.1.3" 5497 + resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz" 5498 + integrity sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g== 5499 + dependencies: 5500 + "@jest/test-result" "^28.1.3" 5501 + "@jest/types" "^28.1.3" 5502 + "@types/node" "*" 5503 + ansi-escapes "^4.2.1" 5504 + chalk "^4.0.0" 5505 + emittery "^0.10.2" 5506 + jest-util "^28.1.3" 5507 + string-length "^4.0.1" 5508 + 5509 + jest-worker@^28.1.3: 5510 + version "28.1.3" 5511 + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz" 5512 + integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g== 5513 + dependencies: 5514 + "@types/node" "*" 5515 + merge-stream "^2.0.0" 5516 + supports-color "^8.0.0" 5517 + 5518 + jest@^28.1.2: 5519 + version "28.1.3" 5520 + resolved "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz" 5521 + integrity sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA== 5522 + dependencies: 5523 + "@jest/core" "^28.1.3" 5524 + "@jest/types" "^28.1.3" 5525 + import-local "^3.0.2" 5526 + jest-cli "^28.1.3" 5527 + 5528 + joycon@^3.1.1: 5529 + version "3.1.1" 5530 + resolved "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz" 5531 + integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== 5532 + 5533 + js-sdsl@^4.1.4: 5534 + version "4.1.4" 5535 + resolved "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.4.tgz" 5536 + integrity sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw== 5537 + 5538 + js-tokens@^4.0.0: 5539 + version "4.0.0" 5540 + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" 5541 + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 5542 + 5543 + js-yaml@^3.13.1: 5544 + version "3.14.1" 5545 + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" 5546 + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== 5547 + dependencies: 5548 + argparse "^1.0.7" 5549 + esprima "^4.0.0" 5550 + 5551 + js-yaml@^4.1.0: 5552 + version "4.1.0" 5553 + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" 5554 + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== 5555 + dependencies: 5556 + argparse "^2.0.1" 5557 + 5558 + jsbn@~0.1.0: 5559 + version "0.1.1" 5560 + resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" 5561 + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== 5562 + 5563 + jsesc@^2.5.1: 5564 + version "2.5.2" 5565 + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" 5566 + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 5567 + 5568 + jsesc@~0.5.0: 5569 + version "0.5.0" 5570 + resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" 5571 + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== 5572 + 5573 + json-parse-better-errors@^1.0.1: 5574 + version "1.0.2" 5575 + resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" 5576 + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== 5577 + 5578 + json-parse-even-better-errors@^2.3.0: 5579 + version "2.3.1" 5580 + resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" 5581 + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== 5582 + 5583 + json-parse-even-better-errors@^3.0.0: 5584 + version "3.0.0" 5585 + resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz" 5586 + integrity sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA== 5587 + 5588 + json-schema-traverse@^0.4.1: 5589 + version "0.4.1" 5590 + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" 5591 + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 5592 + 5593 + json-schema@0.4.0: 5594 + version "0.4.0" 5595 + resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" 5596 + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== 5597 + 5598 + json-stable-stringify-without-jsonify@^1.0.1: 5599 + version "1.0.1" 5600 + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" 5601 + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== 5602 + 5603 + json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: 5604 + version "5.0.1" 5605 + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" 5606 + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== 5607 + 5608 + json5@^2.2.1: 5609 + version "2.2.1" 5610 + resolved "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz" 5611 + integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== 5612 + 5613 + jsonfile@^6.0.1: 5614 + version "6.1.0" 5615 + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" 5616 + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== 5617 + dependencies: 5618 + universalify "^2.0.0" 5619 + optionalDependencies: 5620 + graceful-fs "^4.1.6" 5621 + 5622 + jsonparse@^1.2.0, jsonparse@^1.3.1: 5623 + version "1.3.1" 5624 + resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz" 5625 + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== 5626 + 5627 + jsprim@^1.2.2: 5628 + version "1.4.2" 5629 + resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz" 5630 + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== 5631 + dependencies: 5632 + assert-plus "1.0.0" 5633 + extsprintf "1.3.0" 5634 + json-schema "0.4.0" 5635 + verror "1.10.0" 5636 + 5637 + kind-of@^6.0.2, kind-of@^6.0.3: 5638 + version "6.0.3" 5639 + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" 5640 + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== 5641 + 5642 + kleur@^3.0.3: 5643 + version "3.0.3" 5644 + resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" 5645 + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== 5646 + 5647 + kysely@^0.23.4: 5648 + version "0.23.4" 5649 + resolved "https://registry.yarnpkg.com/kysely/-/kysely-0.23.4.tgz#1975bfc37fb5074d60a415e8db73d5698528199a" 5650 + integrity sha512-3icLnj1fahUtZsP9zzOvF4DcdhekGsLX4ZaoBaIz0ZeHegyRDdbwpJD7zezAJ+KwQZNDeKchel6MikFNLsSZIA== 5651 + 5652 + lerna@^4.0.0: 5653 + version "4.0.0" 5654 + resolved "https://registry.npmjs.org/lerna/-/lerna-4.0.0.tgz" 5655 + integrity sha512-DD/i1znurfOmNJb0OBw66NmNqiM8kF6uIrzrJ0wGE3VNdzeOhz9ziWLYiRaZDGGwgbcjOo6eIfcx9O5Qynz+kg== 5656 + dependencies: 5657 + "@lerna/add" "4.0.0" 5658 + "@lerna/bootstrap" "4.0.0" 5659 + "@lerna/changed" "4.0.0" 5660 + "@lerna/clean" "4.0.0" 5661 + "@lerna/cli" "4.0.0" 5662 + "@lerna/create" "4.0.0" 5663 + "@lerna/diff" "4.0.0" 5664 + "@lerna/exec" "4.0.0" 5665 + "@lerna/import" "4.0.0" 5666 + "@lerna/info" "4.0.0" 5667 + "@lerna/init" "4.0.0" 5668 + "@lerna/link" "4.0.0" 5669 + "@lerna/list" "4.0.0" 5670 + "@lerna/publish" "4.0.0" 5671 + "@lerna/run" "4.0.0" 5672 + "@lerna/version" "4.0.0" 5673 + import-local "^3.0.2" 5674 + npmlog "^4.1.2" 5675 + 5676 + leven@^3.1.0: 5677 + version "3.1.0" 5678 + resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" 5679 + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== 5680 + 5681 + levn@^0.4.1: 5682 + version "0.4.1" 5683 + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" 5684 + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== 5685 + dependencies: 5686 + prelude-ls "^1.2.1" 5687 + type-check "~0.4.0" 5688 + 5689 + libnpmaccess@^4.0.1: 5690 + version "4.0.3" 5691 + resolved "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-4.0.3.tgz" 5692 + integrity sha512-sPeTSNImksm8O2b6/pf3ikv4N567ERYEpeKRPSmqlNt1dTZbvgpJIzg5vAhXHpw2ISBsELFRelk0jEahj1c6nQ== 5693 + dependencies: 5694 + aproba "^2.0.0" 5695 + minipass "^3.1.1" 5696 + npm-package-arg "^8.1.2" 5697 + npm-registry-fetch "^11.0.0" 5698 + 5699 + libnpmpublish@^4.0.0: 5700 + version "4.0.2" 5701 + resolved "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-4.0.2.tgz" 5702 + integrity sha512-+AD7A2zbVeGRCFI2aO//oUmapCwy7GHqPXFJh3qpToSRNU+tXKJ2YFUgjt04LPPAf2dlEH95s6EhIHM1J7bmOw== 5703 + dependencies: 5704 + normalize-package-data "^3.0.2" 5705 + npm-package-arg "^8.1.2" 5706 + npm-registry-fetch "^11.0.0" 5707 + semver "^7.1.3" 5708 + ssri "^8.0.1" 5709 + 5710 + lines-and-columns@^1.1.6: 5711 + version "1.2.4" 5712 + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" 5713 + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== 5714 + 5715 + load-json-file@^4.0.0: 5716 + version "4.0.0" 5717 + resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz" 5718 + integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== 5719 + dependencies: 5720 + graceful-fs "^4.1.2" 5721 + parse-json "^4.0.0" 5722 + pify "^3.0.0" 5723 + strip-bom "^3.0.0" 5724 + 5725 + load-json-file@^6.2.0: 5726 + version "6.2.0" 5727 + resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz" 5728 + integrity sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ== 5729 + dependencies: 5730 + graceful-fs "^4.1.15" 5731 + parse-json "^5.0.0" 5732 + strip-bom "^4.0.0" 5733 + type-fest "^0.6.0" 5734 + 5735 + locate-path@^2.0.0: 5736 + version "2.0.0" 5737 + resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" 5738 + integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== 5739 + dependencies: 5740 + p-locate "^2.0.0" 5741 + path-exists "^3.0.0" 5742 + 5743 + locate-path@^5.0.0: 5744 + version "5.0.0" 5745 + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" 5746 + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== 5747 + dependencies: 5748 + p-locate "^4.1.0" 5749 + 5750 + locate-path@^6.0.0: 5751 + version "6.0.0" 5752 + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" 5753 + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== 5754 + dependencies: 5755 + p-locate "^5.0.0" 5756 + 5757 + lodash._reinterpolate@^3.0.0: 5758 + version "3.0.0" 5759 + resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz" 5760 + integrity sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA== 5761 + 5762 + lodash.debounce@^4.0.8: 5763 + version "4.0.8" 5764 + resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" 5765 + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== 5766 + 5767 + lodash.ismatch@^4.4.0: 5768 + version "4.4.0" 5769 + resolved "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz" 5770 + integrity sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g== 5771 + 5772 + lodash.memoize@4.x: 5773 + version "4.1.2" 5774 + resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" 5775 + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== 5776 + 5777 + lodash.merge@^4.6.2: 5778 + version "4.6.2" 5779 + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" 5780 + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== 5781 + 5782 + lodash.template@^4.5.0: 5783 + version "4.5.0" 5784 + resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz" 5785 + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== 5786 + dependencies: 5787 + lodash._reinterpolate "^3.0.0" 5788 + lodash.templatesettings "^4.0.0" 5789 + 5790 + lodash.templatesettings@^4.0.0: 5791 + version "4.2.0" 5792 + resolved "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz" 5793 + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== 5794 + dependencies: 5795 + lodash._reinterpolate "^3.0.0" 5796 + 5797 + lodash@^4.17.15, lodash@^4.17.19, lodash@^4.7.0: 5798 + version "4.17.21" 5799 + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" 5800 + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 5801 + 5802 + lru-cache@^6.0.0: 5803 + version "6.0.0" 5804 + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" 5805 + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 5806 + dependencies: 5807 + yallist "^4.0.0" 5808 + 5809 + make-dir@^2.1.0: 5810 + version "2.1.0" 5811 + resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" 5812 + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== 5813 + dependencies: 5814 + pify "^4.0.1" 5815 + semver "^5.6.0" 5816 + 5817 + make-dir@^3.0.0: 5818 + version "3.1.0" 5819 + resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" 5820 + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== 5821 + dependencies: 5822 + semver "^6.0.0" 5823 + 5824 + make-error@1.x, make-error@^1.1.1: 5825 + version "1.3.6" 5826 + resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" 5827 + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== 5828 + 5829 + make-fetch-happen@^8.0.9: 5830 + version "8.0.14" 5831 + resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz" 5832 + integrity sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ== 5833 + dependencies: 5834 + agentkeepalive "^4.1.3" 5835 + cacache "^15.0.5" 5836 + http-cache-semantics "^4.1.0" 5837 + http-proxy-agent "^4.0.1" 5838 + https-proxy-agent "^5.0.0" 5839 + is-lambda "^1.0.1" 5840 + lru-cache "^6.0.0" 5841 + minipass "^3.1.3" 5842 + minipass-collect "^1.0.2" 5843 + minipass-fetch "^1.3.2" 5844 + minipass-flush "^1.0.5" 5845 + minipass-pipeline "^1.2.4" 5846 + promise-retry "^2.0.1" 5847 + socks-proxy-agent "^5.0.0" 5848 + ssri "^8.0.0" 5849 + 5850 + make-fetch-happen@^9.0.1: 5851 + version "9.1.0" 5852 + resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz" 5853 + integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg== 5854 + dependencies: 5855 + agentkeepalive "^4.1.3" 5856 + cacache "^15.2.0" 5857 + http-cache-semantics "^4.1.0" 5858 + http-proxy-agent "^4.0.1" 5859 + https-proxy-agent "^5.0.0" 5860 + is-lambda "^1.0.1" 5861 + lru-cache "^6.0.0" 5862 + minipass "^3.1.3" 5863 + minipass-collect "^1.0.2" 5864 + minipass-fetch "^1.3.2" 5865 + minipass-flush "^1.0.5" 5866 + minipass-pipeline "^1.2.4" 5867 + negotiator "^0.6.2" 5868 + promise-retry "^2.0.1" 5869 + socks-proxy-agent "^6.0.0" 5870 + ssri "^8.0.0" 5871 + 5872 + makeerror@1.0.12: 5873 + version "1.0.12" 5874 + resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" 5875 + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== 5876 + dependencies: 5877 + tmpl "1.0.5" 5878 + 5879 + map-obj@^1.0.0: 5880 + version "1.0.1" 5881 + resolved "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" 5882 + integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== 5883 + 5884 + map-obj@^4.0.0: 5885 + version "4.3.0" 5886 + resolved "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz" 5887 + integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== 5888 + 5889 + media-typer@0.3.0: 5890 + version "0.3.0" 5891 + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 5892 + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== 5893 + 5894 + memorystream@^0.3.1: 5895 + version "0.3.1" 5896 + resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" 5897 + integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== 5898 + 5899 + meow@^8.0.0: 5900 + version "8.1.2" 5901 + resolved "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz" 5902 + integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== 5903 + dependencies: 5904 + "@types/minimist" "^1.2.0" 5905 + camelcase-keys "^6.2.2" 5906 + decamelize-keys "^1.1.0" 5907 + hard-rejection "^2.1.0" 5908 + minimist-options "4.1.0" 5909 + normalize-package-data "^3.0.0" 5910 + read-pkg-up "^7.0.1" 5911 + redent "^3.0.0" 5912 + trim-newlines "^3.0.0" 5913 + type-fest "^0.18.0" 5914 + yargs-parser "^20.2.3" 5915 + 5916 + merge-descriptors@1.0.1: 5917 + version "1.0.1" 5918 + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 5919 + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== 5920 + 5921 + merge-stream@^2.0.0: 5922 + version "2.0.0" 5923 + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" 5924 + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== 5925 + 5926 + merge2@^1.3.0, merge2@^1.4.1: 5927 + version "1.4.1" 5928 + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" 5929 + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 5930 + 5931 + methods@~1.1.2: 5932 + version "1.1.2" 5933 + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 5934 + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== 5935 + 5936 + micromatch@^4.0.4: 5937 + version "4.0.5" 5938 + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" 5939 + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== 5940 + dependencies: 5941 + braces "^3.0.2" 5942 + picomatch "^2.3.1" 5943 + 5944 + mime-db@1.52.0: 5945 + version "1.52.0" 5946 + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" 5947 + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 5948 + 5949 + mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: 5950 + version "2.1.35" 5951 + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" 5952 + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 5953 + dependencies: 5954 + mime-db "1.52.0" 5955 + 5956 + mime@1.6.0: 5957 + version "1.6.0" 5958 + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" 5959 + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== 5960 + 5961 + mimic-fn@^2.1.0: 5962 + version "2.1.0" 5963 + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" 5964 + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 5965 + 5966 + mimic-response@^3.1.0: 5967 + version "3.1.0" 5968 + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" 5969 + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== 5970 + 5971 + min-indent@^1.0.0: 5972 + version "1.0.1" 5973 + resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz" 5974 + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== 5975 + 5976 + minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: 5977 + version "3.1.2" 5978 + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" 5979 + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 5980 + dependencies: 5981 + brace-expansion "^1.1.7" 5982 + 5983 + minimatch@^5.0.1: 5984 + version "5.1.0" 5985 + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz" 5986 + integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== 5987 + dependencies: 5988 + brace-expansion "^2.0.1" 5989 + 5990 + minimist-options@4.1.0: 5991 + version "4.1.0" 5992 + resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz" 5993 + integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== 5994 + dependencies: 5995 + arrify "^1.0.1" 5996 + is-plain-obj "^1.1.0" 5997 + kind-of "^6.0.3" 5998 + 5999 + minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: 6000 + version "1.2.6" 6001 + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz" 6002 + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== 6003 + 6004 + minimist@^1.2.3: 6005 + version "1.2.8" 6006 + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" 6007 + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== 6008 + 6009 + minipass-collect@^1.0.2: 6010 + version "1.0.2" 6011 + resolved "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz" 6012 + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== 6013 + dependencies: 6014 + minipass "^3.0.0" 6015 + 6016 + minipass-fetch@^1.3.0, minipass-fetch@^1.3.2: 6017 + version "1.4.1" 6018 + resolved "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz" 6019 + integrity sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw== 6020 + dependencies: 6021 + minipass "^3.1.0" 6022 + minipass-sized "^1.0.3" 6023 + minizlib "^2.0.0" 6024 + optionalDependencies: 6025 + encoding "^0.1.12" 6026 + 6027 + minipass-flush@^1.0.5: 6028 + version "1.0.5" 6029 + resolved "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz" 6030 + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== 6031 + dependencies: 6032 + minipass "^3.0.0" 6033 + 6034 + minipass-json-stream@^1.0.1: 6035 + version "1.0.1" 6036 + resolved "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz" 6037 + integrity sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg== 6038 + dependencies: 6039 + jsonparse "^1.3.1" 6040 + minipass "^3.0.0" 6041 + 6042 + minipass-pipeline@^1.2.2, minipass-pipeline@^1.2.4: 6043 + version "1.2.4" 6044 + resolved "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz" 6045 + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== 6046 + dependencies: 6047 + minipass "^3.0.0" 6048 + 6049 + minipass-sized@^1.0.3: 6050 + version "1.0.3" 6051 + resolved "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz" 6052 + integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== 6053 + dependencies: 6054 + minipass "^3.0.0" 6055 + 6056 + minipass@^2.6.0, minipass@^2.9.0: 6057 + version "2.9.0" 6058 + resolved "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz" 6059 + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== 6060 + dependencies: 6061 + safe-buffer "^5.1.2" 6062 + yallist "^3.0.0" 6063 + 6064 + minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3: 6065 + version "3.3.4" 6066 + resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz" 6067 + integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== 6068 + dependencies: 6069 + yallist "^4.0.0" 6070 + 6071 + minizlib@^1.3.3: 6072 + version "1.3.3" 6073 + resolved "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz" 6074 + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== 6075 + dependencies: 6076 + minipass "^2.9.0" 6077 + 6078 + minizlib@^2.0.0, minizlib@^2.1.1: 6079 + version "2.1.2" 6080 + resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" 6081 + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== 6082 + dependencies: 6083 + minipass "^3.0.0" 6084 + yallist "^4.0.0" 6085 + 6086 + mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: 6087 + version "0.5.3" 6088 + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" 6089 + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== 6090 + 6091 + mkdirp-infer-owner@^2.0.0: 6092 + version "2.0.0" 6093 + resolved "https://registry.npmjs.org/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz" 6094 + integrity sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw== 6095 + dependencies: 6096 + chownr "^2.0.0" 6097 + infer-owner "^1.0.4" 6098 + mkdirp "^1.0.3" 6099 + 6100 + mkdirp@^0.5.1, mkdirp@^0.5.5: 6101 + version "0.5.6" 6102 + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" 6103 + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== 6104 + dependencies: 6105 + minimist "^1.2.6" 6106 + 6107 + mkdirp@^1.0.3, mkdirp@^1.0.4: 6108 + version "1.0.4" 6109 + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" 6110 + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== 6111 + 6112 + modify-values@^1.0.0: 6113 + version "1.0.1" 6114 + resolved "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz" 6115 + integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== 6116 + 6117 + ms@2.0.0: 6118 + version "2.0.0" 6119 + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 6120 + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== 6121 + 6122 + ms@2.1.2: 6123 + version "2.1.2" 6124 + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" 6125 + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 6126 + 6127 + ms@2.1.3, ms@^2.0.0: 6128 + version "2.1.3" 6129 + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" 6130 + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 6131 + 6132 + multiformats@^9.4.2, multiformats@^9.5.4, multiformats@^9.6.4: 6133 + version "9.9.0" 6134 + resolved "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz" 6135 + integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== 6136 + 6137 + multimatch@^5.0.0: 6138 + version "5.0.0" 6139 + resolved "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz" 6140 + integrity sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA== 6141 + dependencies: 6142 + "@types/minimatch" "^3.0.3" 6143 + array-differ "^3.0.0" 6144 + array-union "^2.1.0" 6145 + arrify "^2.0.1" 6146 + minimatch "^3.0.4" 6147 + 6148 + mute-stream@0.0.8, mute-stream@~0.0.4: 6149 + version "0.0.8" 6150 + resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz" 6151 + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== 6152 + 6153 + napi-build-utils@^1.0.1: 6154 + version "1.0.2" 6155 + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" 6156 + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== 6157 + 6158 + natural-compare@^1.4.0: 6159 + version "1.4.0" 6160 + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" 6161 + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== 6162 + 6163 + negotiator@0.6.3, negotiator@^0.6.2: 6164 + version "0.6.3" 6165 + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" 6166 + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== 6167 + 6168 + neo-async@^2.6.0: 6169 + version "2.6.2" 6170 + resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" 6171 + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== 6172 + 6173 + nice-try@^1.0.4: 6174 + version "1.0.5" 6175 + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" 6176 + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== 6177 + 6178 + node-abi@^3.3.0: 6179 + version "3.33.0" 6180 + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.33.0.tgz#8b23a0cec84e1c5f5411836de6a9b84bccf26e7f" 6181 + integrity sha512-7GGVawqyHF4pfd0YFybhv/eM9JwTtPqx0mAanQ146O3FlSh3pA24zf9IRQTOsfTSqXTNzPSP5iagAJ94jjuVog== 6182 + dependencies: 6183 + semver "^7.3.5" 6184 + 6185 + node-fetch@^2.6.1, node-fetch@^2.6.7: 6186 + version "2.6.7" 6187 + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz" 6188 + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== 6189 + dependencies: 6190 + whatwg-url "^5.0.0" 6191 + 6192 + node-gyp@^5.0.2: 6193 + version "5.1.1" 6194 + resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-5.1.1.tgz" 6195 + integrity sha512-WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw== 6196 + dependencies: 6197 + env-paths "^2.2.0" 6198 + glob "^7.1.4" 6199 + graceful-fs "^4.2.2" 6200 + mkdirp "^0.5.1" 6201 + nopt "^4.0.1" 6202 + npmlog "^4.1.2" 6203 + request "^2.88.0" 6204 + rimraf "^2.6.3" 6205 + semver "^5.7.1" 6206 + tar "^4.4.12" 6207 + which "^1.3.1" 6208 + 6209 + node-gyp@^7.1.0: 6210 + version "7.1.2" 6211 + resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz" 6212 + integrity sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ== 6213 + dependencies: 6214 + env-paths "^2.2.0" 6215 + glob "^7.1.4" 6216 + graceful-fs "^4.2.3" 6217 + nopt "^5.0.0" 6218 + npmlog "^4.1.2" 6219 + request "^2.88.2" 6220 + rimraf "^3.0.2" 6221 + semver "^7.3.2" 6222 + tar "^6.0.2" 6223 + which "^2.0.2" 6224 + 6225 + node-int64@^0.4.0: 6226 + version "0.4.0" 6227 + resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" 6228 + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== 6229 + 6230 + node-releases@^2.0.6: 6231 + version "2.0.6" 6232 + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz" 6233 + integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== 6234 + 6235 + nopt@^4.0.1: 6236 + version "4.0.3" 6237 + resolved "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz" 6238 + integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== 6239 + dependencies: 6240 + abbrev "1" 6241 + osenv "^0.1.4" 6242 + 6243 + nopt@^5.0.0: 6244 + version "5.0.0" 6245 + resolved "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz" 6246 + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== 6247 + dependencies: 6248 + abbrev "1" 6249 + 6250 + normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: 6251 + version "2.5.0" 6252 + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" 6253 + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== 6254 + dependencies: 6255 + hosted-git-info "^2.1.4" 6256 + resolve "^1.10.0" 6257 + semver "2 || 3 || 4 || 5" 6258 + validate-npm-package-license "^3.0.1" 6259 + 6260 + normalize-package-data@^3.0.0, normalize-package-data@^3.0.2: 6261 + version "3.0.3" 6262 + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz" 6263 + integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== 6264 + dependencies: 6265 + hosted-git-info "^4.0.1" 6266 + is-core-module "^2.5.0" 6267 + semver "^7.3.4" 6268 + validate-npm-package-license "^3.0.1" 6269 + 6270 + normalize-path@^3.0.0: 6271 + version "3.0.0" 6272 + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" 6273 + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 6274 + 6275 + normalize-url@^6.1.0: 6276 + version "6.1.0" 6277 + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz" 6278 + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== 6279 + 6280 + npm-bundled@^1.1.1: 6281 + version "1.1.2" 6282 + resolved "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz" 6283 + integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== 6284 + dependencies: 6285 + npm-normalize-package-bin "^1.0.1" 6286 + 6287 + npm-install-checks@^4.0.0: 6288 + version "4.0.0" 6289 + resolved "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz" 6290 + integrity sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w== 6291 + dependencies: 6292 + semver "^7.1.1" 6293 + 6294 + npm-lifecycle@^3.1.5: 6295 + version "3.1.5" 6296 + resolved "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz" 6297 + integrity sha512-lDLVkjfZmvmfvpvBzA4vzee9cn+Me4orq0QF8glbswJVEbIcSNWib7qGOffolysc3teCqbbPZZkzbr3GQZTL1g== 6298 + dependencies: 6299 + byline "^5.0.0" 6300 + graceful-fs "^4.1.15" 6301 + node-gyp "^5.0.2" 6302 + resolve-from "^4.0.0" 6303 + slide "^1.1.6" 6304 + uid-number "0.0.6" 6305 + umask "^1.1.0" 6306 + which "^1.3.1" 6307 + 6308 + npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: 6309 + version "1.0.1" 6310 + resolved "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz" 6311 + integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== 6312 + 6313 + npm-package-arg@^8.0.0, npm-package-arg@^8.0.1, npm-package-arg@^8.1.0, npm-package-arg@^8.1.2, npm-package-arg@^8.1.5: 6314 + version "8.1.5" 6315 + resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz" 6316 + integrity sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q== 6317 + dependencies: 6318 + hosted-git-info "^4.0.1" 6319 + semver "^7.3.4" 6320 + validate-npm-package-name "^3.0.0" 6321 + 6322 + npm-packlist@^2.1.4: 6323 + version "2.2.2" 6324 + resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.2.2.tgz" 6325 + integrity sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg== 6326 + dependencies: 6327 + glob "^7.1.6" 6328 + ignore-walk "^3.0.3" 6329 + npm-bundled "^1.1.1" 6330 + npm-normalize-package-bin "^1.0.1" 6331 + 6332 + npm-pick-manifest@^6.0.0, npm-pick-manifest@^6.1.1: 6333 + version "6.1.1" 6334 + resolved "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz" 6335 + integrity sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA== 6336 + dependencies: 6337 + npm-install-checks "^4.0.0" 6338 + npm-normalize-package-bin "^1.0.1" 6339 + npm-package-arg "^8.1.2" 6340 + semver "^7.3.4" 6341 + 6342 + npm-registry-fetch@^11.0.0: 6343 + version "11.0.0" 6344 + resolved "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz" 6345 + integrity sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA== 6346 + dependencies: 6347 + make-fetch-happen "^9.0.1" 6348 + minipass "^3.1.3" 6349 + minipass-fetch "^1.3.0" 6350 + minipass-json-stream "^1.0.1" 6351 + minizlib "^2.0.0" 6352 + npm-package-arg "^8.0.0" 6353 + 6354 + npm-registry-fetch@^9.0.0: 6355 + version "9.0.0" 6356 + resolved "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-9.0.0.tgz" 6357 + integrity sha512-PuFYYtnQ8IyVl6ib9d3PepeehcUeHN9IO5N/iCRhyg9tStQcqGQBRVHmfmMWPDERU3KwZoHFvbJ4FPXPspvzbA== 6358 + dependencies: 6359 + "@npmcli/ci-detect" "^1.0.0" 6360 + lru-cache "^6.0.0" 6361 + make-fetch-happen "^8.0.9" 6362 + minipass "^3.1.3" 6363 + minipass-fetch "^1.3.0" 6364 + minipass-json-stream "^1.0.1" 6365 + minizlib "^2.0.0" 6366 + npm-package-arg "^8.0.0" 6367 + 6368 + npm-run-all@^4.1.5: 6369 + version "4.1.5" 6370 + resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" 6371 + integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== 6372 + dependencies: 6373 + ansi-styles "^3.2.1" 6374 + chalk "^2.4.1" 6375 + cross-spawn "^6.0.5" 6376 + memorystream "^0.3.1" 6377 + minimatch "^3.0.4" 6378 + pidtree "^0.3.0" 6379 + read-pkg "^3.0.0" 6380 + shell-quote "^1.6.1" 6381 + string.prototype.padend "^3.0.0" 6382 + 6383 + npm-run-path@^4.0.1: 6384 + version "4.0.1" 6385 + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" 6386 + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== 6387 + dependencies: 6388 + path-key "^3.0.0" 6389 + 6390 + npmlog@^4.1.2: 6391 + version "4.1.2" 6392 + resolved "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz" 6393 + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== 6394 + dependencies: 6395 + are-we-there-yet "~1.1.2" 6396 + console-control-strings "~1.1.0" 6397 + gauge "~2.7.3" 6398 + set-blocking "~2.0.0" 6399 + 6400 + number-is-nan@^1.0.0: 6401 + version "1.0.1" 6402 + resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" 6403 + integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== 6404 + 6405 + oauth-sign@~0.9.0: 6406 + version "0.9.0" 6407 + resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" 6408 + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== 6409 + 6410 + object-assign@^4, object-assign@^4.1.0: 6411 + version "4.1.1" 6412 + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" 6413 + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== 6414 + 6415 + object-inspect@^1.12.2, object-inspect@^1.9.0: 6416 + version "1.12.2" 6417 + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz" 6418 + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== 6419 + 6420 + object-keys@^1.1.1: 6421 + version "1.1.1" 6422 + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" 6423 + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 6424 + 6425 + object.assign@^4.1.0, object.assign@^4.1.4: 6426 + version "4.1.4" 6427 + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz" 6428 + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== 6429 + dependencies: 6430 + call-bind "^1.0.2" 6431 + define-properties "^1.1.4" 6432 + has-symbols "^1.0.3" 6433 + object-keys "^1.1.1" 6434 + 6435 + object.getownpropertydescriptors@^2.0.3: 6436 + version "2.1.4" 6437 + resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.4.tgz" 6438 + integrity sha512-sccv3L/pMModT6dJAYF3fzGMVcb38ysQ0tEE6ixv2yXJDtEIPph268OlAdJj5/qZMZDq2g/jqvwppt36uS/uQQ== 6439 + dependencies: 6440 + array.prototype.reduce "^1.0.4" 6441 + call-bind "^1.0.2" 6442 + define-properties "^1.1.4" 6443 + es-abstract "^1.20.1" 6444 + 6445 + on-exit-leak-free@^2.1.0: 6446 + version "2.1.0" 6447 + resolved "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz" 6448 + integrity sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w== 6449 + 6450 + on-finished@2.4.1: 6451 + version "2.4.1" 6452 + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" 6453 + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== 6454 + dependencies: 6455 + ee-first "1.1.1" 6456 + 6457 + once@^1.3.0, once@^1.3.1, once@^1.4.0: 6458 + version "1.4.0" 6459 + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" 6460 + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 6461 + dependencies: 6462 + wrappy "1" 6463 + 6464 + one-webcrypto@^1.0.3: 6465 + version "1.0.3" 6466 + resolved "https://registry.npmjs.org/one-webcrypto/-/one-webcrypto-1.0.3.tgz" 6467 + integrity sha512-fu9ywBVBPx0gS9K0etIROTiCkvI5S1TDjFsYFb3rC1ewFxeOqsbzq7aIMBHsYfrTHBcGXJaONXXjTl8B01cW1Q== 6468 + 6469 + onetime@^5.1.0, onetime@^5.1.2: 6470 + version "5.1.2" 6471 + resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" 6472 + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== 6473 + dependencies: 6474 + mimic-fn "^2.1.0" 6475 + 6476 + optionator@^0.9.1: 6477 + version "0.9.1" 6478 + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" 6479 + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== 6480 + dependencies: 6481 + deep-is "^0.1.3" 6482 + fast-levenshtein "^2.0.6" 6483 + levn "^0.4.1" 6484 + prelude-ls "^1.2.1" 6485 + type-check "^0.4.0" 6486 + word-wrap "^1.2.3" 6487 + 6488 + os-homedir@^1.0.0: 6489 + version "1.0.2" 6490 + resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" 6491 + integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== 6492 + 6493 + os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: 6494 + version "1.0.2" 6495 + resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" 6496 + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== 6497 + 6498 + osenv@^0.1.4: 6499 + version "0.1.5" 6500 + resolved "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz" 6501 + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== 6502 + dependencies: 6503 + os-homedir "^1.0.0" 6504 + os-tmpdir "^1.0.0" 6505 + 6506 + p-finally@^1.0.0: 6507 + version "1.0.0" 6508 + resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" 6509 + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== 6510 + 6511 + p-limit@^1.1.0: 6512 + version "1.3.0" 6513 + resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" 6514 + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== 6515 + dependencies: 6516 + p-try "^1.0.0" 6517 + 6518 + p-limit@^2.2.0: 6519 + version "2.3.0" 6520 + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" 6521 + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 6522 + dependencies: 6523 + p-try "^2.0.0" 6524 + 6525 + p-limit@^3.0.2, p-limit@^3.1.0: 6526 + version "3.1.0" 6527 + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" 6528 + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 6529 + dependencies: 6530 + yocto-queue "^0.1.0" 6531 + 6532 + p-locate@^2.0.0: 6533 + version "2.0.0" 6534 + resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" 6535 + integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== 6536 + dependencies: 6537 + p-limit "^1.1.0" 6538 + 6539 + p-locate@^4.1.0: 6540 + version "4.1.0" 6541 + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" 6542 + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== 6543 + dependencies: 6544 + p-limit "^2.2.0" 6545 + 6546 + p-locate@^5.0.0: 6547 + version "5.0.0" 6548 + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" 6549 + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== 6550 + dependencies: 6551 + p-limit "^3.0.2" 6552 + 6553 + p-map-series@^2.1.0: 6554 + version "2.1.0" 6555 + resolved "https://registry.npmjs.org/p-map-series/-/p-map-series-2.1.0.tgz" 6556 + integrity sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q== 6557 + 6558 + p-map@^4.0.0: 6559 + version "4.0.0" 6560 + resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" 6561 + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== 6562 + dependencies: 6563 + aggregate-error "^3.0.0" 6564 + 6565 + p-pipe@^3.1.0: 6566 + version "3.1.0" 6567 + resolved "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz" 6568 + integrity sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw== 6569 + 6570 + p-queue@^6.6.2: 6571 + version "6.6.2" 6572 + resolved "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz" 6573 + integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== 6574 + dependencies: 6575 + eventemitter3 "^4.0.4" 6576 + p-timeout "^3.2.0" 6577 + 6578 + p-reduce@^2.0.0, p-reduce@^2.1.0: 6579 + version "2.1.0" 6580 + resolved "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz" 6581 + integrity sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw== 6582 + 6583 + p-timeout@^3.0.0, p-timeout@^3.2.0: 6584 + version "3.2.0" 6585 + resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz" 6586 + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== 6587 + dependencies: 6588 + p-finally "^1.0.0" 6589 + 6590 + p-try@^1.0.0: 6591 + version "1.0.0" 6592 + resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" 6593 + integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== 6594 + 6595 + p-try@^2.0.0: 6596 + version "2.2.0" 6597 + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" 6598 + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 6599 + 6600 + p-wait-for@^3.2.0: 6601 + version "3.2.0" 6602 + resolved "https://registry.yarnpkg.com/p-wait-for/-/p-wait-for-3.2.0.tgz#640429bcabf3b0dd9f492c31539c5718cb6a3f1f" 6603 + integrity sha512-wpgERjNkLrBiFmkMEjuZJEWKKDrNfHCKA1OhyN1wg1FrLkULbviEy6py1AyJUgZ72YWFbZ38FIpnqvVqAlDUwA== 6604 + dependencies: 6605 + p-timeout "^3.0.0" 6606 + 6607 + p-waterfall@^2.1.1: 6608 + version "2.1.1" 6609 + resolved "https://registry.npmjs.org/p-waterfall/-/p-waterfall-2.1.1.tgz" 6610 + integrity sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw== 6611 + dependencies: 6612 + p-reduce "^2.0.0" 6613 + 6614 + packet-reader@1.0.0: 6615 + version "1.0.0" 6616 + resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74" 6617 + integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ== 6618 + 6619 + pacote@^11.2.6: 6620 + version "11.3.5" 6621 + resolved "https://registry.npmjs.org/pacote/-/pacote-11.3.5.tgz" 6622 + integrity sha512-fT375Yczn4zi+6Hkk2TBe1x1sP8FgFsEIZ2/iWaXY2r/NkhDJfxbcn5paz1+RTFCyNf+dPnaoBDJoAxXSU8Bkg== 6623 + dependencies: 6624 + "@npmcli/git" "^2.1.0" 6625 + "@npmcli/installed-package-contents" "^1.0.6" 6626 + "@npmcli/promise-spawn" "^1.2.0" 6627 + "@npmcli/run-script" "^1.8.2" 6628 + cacache "^15.0.5" 6629 + chownr "^2.0.0" 6630 + fs-minipass "^2.1.0" 6631 + infer-owner "^1.0.4" 6632 + minipass "^3.1.3" 6633 + mkdirp "^1.0.3" 6634 + npm-package-arg "^8.0.1" 6635 + npm-packlist "^2.1.4" 6636 + npm-pick-manifest "^6.0.0" 6637 + npm-registry-fetch "^11.0.0" 6638 + promise-retry "^2.0.1" 6639 + read-package-json-fast "^2.0.1" 6640 + rimraf "^3.0.2" 6641 + ssri "^8.0.1" 6642 + tar "^6.1.0" 6643 + 6644 + parent-module@^1.0.0: 6645 + version "1.0.1" 6646 + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" 6647 + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 6648 + dependencies: 6649 + callsites "^3.0.0" 6650 + 6651 + parse-json@^4.0.0: 6652 + version "4.0.0" 6653 + resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" 6654 + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== 6655 + dependencies: 6656 + error-ex "^1.3.1" 6657 + json-parse-better-errors "^1.0.1" 6658 + 6659 + parse-json@^5.0.0, parse-json@^5.2.0: 6660 + version "5.2.0" 6661 + resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" 6662 + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== 6663 + dependencies: 6664 + "@babel/code-frame" "^7.0.0" 6665 + error-ex "^1.3.1" 6666 + json-parse-even-better-errors "^2.3.0" 6667 + lines-and-columns "^1.1.6" 6668 + 6669 + parse-path@^4.0.0: 6670 + version "4.0.4" 6671 + resolved "https://registry.npmjs.org/parse-path/-/parse-path-4.0.4.tgz" 6672 + integrity sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw== 6673 + dependencies: 6674 + is-ssh "^1.3.0" 6675 + protocols "^1.4.0" 6676 + qs "^6.9.4" 6677 + query-string "^6.13.8" 6678 + 6679 + parse-url@^6.0.0: 6680 + version "6.0.5" 6681 + resolved "https://registry.npmjs.org/parse-url/-/parse-url-6.0.5.tgz" 6682 + integrity sha512-e35AeLTSIlkw/5GFq70IN7po8fmDUjpDPY1rIK+VubRfsUvBonjQ+PBZG+vWMACnQSmNlvl524IucoDmcioMxA== 6683 + dependencies: 6684 + is-ssh "^1.3.0" 6685 + normalize-url "^6.1.0" 6686 + parse-path "^4.0.0" 6687 + protocols "^1.4.0" 6688 + 6689 + parseurl@~1.3.3: 6690 + version "1.3.3" 6691 + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" 6692 + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 6693 + 6694 + path-exists@^3.0.0: 6695 + version "3.0.0" 6696 + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" 6697 + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== 6698 + 6699 + path-exists@^4.0.0: 6700 + version "4.0.0" 6701 + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" 6702 + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 6703 + 6704 + path-is-absolute@^1.0.0: 6705 + version "1.0.1" 6706 + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" 6707 + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== 6708 + 6709 + path-key@^2.0.1: 6710 + version "2.0.1" 6711 + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 6712 + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== 6713 + 6714 + path-key@^3.0.0, path-key@^3.1.0: 6715 + version "3.1.1" 6716 + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" 6717 + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 6718 + 6719 + path-parse@^1.0.7: 6720 + version "1.0.7" 6721 + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" 6722 + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 6723 + 6724 + path-to-regexp@0.1.7: 6725 + version "0.1.7" 6726 + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 6727 + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== 6728 + 6729 + path-type@^3.0.0: 6730 + version "3.0.0" 6731 + resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz" 6732 + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== 6733 + dependencies: 6734 + pify "^3.0.0" 6735 + 6736 + path-type@^4.0.0: 6737 + version "4.0.0" 6738 + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" 6739 + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== 6740 + 6741 + performance-now@^2.1.0: 6742 + version "2.1.0" 6743 + resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" 6744 + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== 6745 + 6746 + pg-connection-string@^2.5.0: 6747 + version "2.5.0" 6748 + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.5.0.tgz#538cadd0f7e603fc09a12590f3b8a452c2c0cf34" 6749 + integrity sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ== 6750 + 6751 + pg-int8@1.0.1: 6752 + version "1.0.1" 6753 + resolved "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz" 6754 + integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== 6755 + 6756 + pg-pool@^3.5.2: 6757 + version "3.5.2" 6758 + resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.5.2.tgz#ed1bed1fb8d79f1c6fd5fb1c99e990fbf9ddf178" 6759 + integrity sha512-His3Fh17Z4eg7oANLob6ZvH8xIVen3phEZh2QuyrIl4dQSDVEabNducv6ysROKpDNPSD+12tONZVWfSgMvDD9w== 6760 + 6761 + pg-protocol@*: 6762 + version "1.5.0" 6763 + resolved "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz" 6764 + integrity sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ== 6765 + 6766 + pg-protocol@^1.6.0: 6767 + version "1.6.0" 6768 + resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.0.tgz#4c91613c0315349363af2084608db843502f8833" 6769 + integrity sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q== 6770 + 6771 + pg-types@^2.1.0, pg-types@^2.2.0: 6772 + version "2.2.0" 6773 + resolved "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz" 6774 + integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== 6775 + dependencies: 6776 + pg-int8 "1.0.1" 6777 + postgres-array "~2.0.0" 6778 + postgres-bytea "~1.0.0" 6779 + postgres-date "~1.0.4" 6780 + postgres-interval "^1.1.0" 6781 + 6782 + pg@^8.9.0: 6783 + version "8.9.0" 6784 + resolved "https://registry.yarnpkg.com/pg/-/pg-8.9.0.tgz#73c5d77a854d36b0e185450dacb8b90c669e040b" 6785 + integrity sha512-ZJM+qkEbtOHRuXjmvBtOgNOXOtLSbxiMiUVMgE4rV6Zwocy03RicCVvDXgx8l4Biwo8/qORUnEqn2fdQzV7KCg== 6786 + dependencies: 6787 + buffer-writer "2.0.0" 6788 + packet-reader "1.0.0" 6789 + pg-connection-string "^2.5.0" 6790 + pg-pool "^3.5.2" 6791 + pg-protocol "^1.6.0" 6792 + pg-types "^2.1.0" 6793 + pgpass "1.x" 6794 + 6795 + pgpass@1.x: 6796 + version "1.0.5" 6797 + resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.5.tgz#9b873e4a564bb10fa7a7dbd55312728d422a223d" 6798 + integrity sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug== 6799 + dependencies: 6800 + split2 "^4.1.0" 6801 + 6802 + picocolors@^1.0.0: 6803 + version "1.0.0" 6804 + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" 6805 + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 6806 + 6807 + picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: 6808 + version "2.3.1" 6809 + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" 6810 + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 6811 + 6812 + pidtree@^0.3.0: 6813 + version "0.3.1" 6814 + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a" 6815 + integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA== 6816 + 6817 + pify@^2.3.0: 6818 + version "2.3.0" 6819 + resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" 6820 + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== 6821 + 6822 + pify@^3.0.0: 6823 + version "3.0.0" 6824 + resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" 6825 + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== 6826 + 6827 + pify@^4.0.1: 6828 + version "4.0.1" 6829 + resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" 6830 + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== 6831 + 6832 + pify@^5.0.0: 6833 + version "5.0.0" 6834 + resolved "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz" 6835 + integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== 6836 + 6837 + pino-abstract-transport@^1.0.0, pino-abstract-transport@v1.0.0: 6838 + version "1.0.0" 6839 + resolved "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz" 6840 + integrity sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA== 6841 + dependencies: 6842 + readable-stream "^4.0.0" 6843 + split2 "^4.0.0" 6844 + 6845 + pino-http@^8.3.3: 6846 + version "8.3.3" 6847 + resolved "https://registry.yarnpkg.com/pino-http/-/pino-http-8.3.3.tgz#2b140e734bfc6babe0df272a43bb8f36f2b525c0" 6848 + integrity sha512-p4umsNIXXVu95HD2C8wie/vXH7db5iGRpc+yj1/ZQ3sRtTQLXNjoS6Be5+eI+rQbqCRxen/7k/KSN+qiZubGDw== 6849 + dependencies: 6850 + get-caller-file "^2.0.5" 6851 + pino "^8.0.0" 6852 + pino-std-serializers "^6.0.0" 6853 + process-warning "^2.0.0" 6854 + 6855 + pino-pretty@^9.1.0: 6856 + version "9.1.0" 6857 + resolved "https://registry.npmjs.org/pino-pretty/-/pino-pretty-9.1.0.tgz" 6858 + integrity sha512-IM6NY9LLo/dVgY7/prJhCh4rAJukafdt0ibxeNOWc2fxKMyTk90SOB9Ao2HfbtShT9QPeP0ePpJktksMhSQMYA== 6859 + dependencies: 6860 + colorette "^2.0.7" 6861 + dateformat "^4.6.3" 6862 + fast-copy "^2.1.1" 6863 + fast-safe-stringify "^2.1.1" 6864 + help-me "^4.0.1" 6865 + joycon "^3.1.1" 6866 + minimist "^1.2.6" 6867 + on-exit-leak-free "^2.1.0" 6868 + pino-abstract-transport "^1.0.0" 6869 + pump "^3.0.0" 6870 + readable-stream "^4.0.0" 6871 + secure-json-parse "^2.4.0" 6872 + sonic-boom "^3.0.0" 6873 + strip-json-comments "^3.1.1" 6874 + 6875 + pino-std-serializers@^6.0.0: 6876 + version "6.0.0" 6877 + resolved "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.0.0.tgz" 6878 + integrity sha512-mMMOwSKrmyl+Y12Ri2xhH1lbzQxwwpuru9VjyJpgFIH4asSj88F2csdMwN6+M5g1Ll4rmsYghHLQJw81tgZ7LQ== 6879 + 6880 + pino@^8.0.0, pino@^8.11.0: 6881 + version "8.11.0" 6882 + resolved "https://registry.yarnpkg.com/pino/-/pino-8.11.0.tgz#2a91f454106b13e708a66c74ebc1c2ab7ab38498" 6883 + integrity sha512-Z2eKSvlrl2rH8p5eveNUnTdd4AjJk8tAsLkHYZQKGHP4WTh2Gi1cOSOs3eWPqaj+niS3gj4UkoreoaWgF3ZWYg== 6884 + dependencies: 6885 + atomic-sleep "^1.0.0" 6886 + fast-redact "^3.1.1" 6887 + on-exit-leak-free "^2.1.0" 6888 + pino-abstract-transport v1.0.0 6889 + pino-std-serializers "^6.0.0" 6890 + process-warning "^2.0.0" 6891 + quick-format-unescaped "^4.0.3" 6892 + real-require "^0.2.0" 6893 + safe-stable-stringify "^2.3.1" 6894 + sonic-boom "^3.1.0" 6895 + thread-stream "^2.0.0" 6896 + 6897 + pino@^8.6.1: 6898 + version "8.6.1" 6899 + resolved "https://registry.npmjs.org/pino/-/pino-8.6.1.tgz" 6900 + integrity sha512-fi+V2K98eMZjQ/uEHHSiMALNrz7HaFdKNYuyA3ZUrbH0f1e8sPFDmeRGzg7ZH2q4QDxGnJPOswmqlEaTAZeDPA== 6901 + dependencies: 6902 + atomic-sleep "^1.0.0" 6903 + fast-redact "^3.1.1" 6904 + on-exit-leak-free "^2.1.0" 6905 + pino-abstract-transport v1.0.0 6906 + pino-std-serializers "^6.0.0" 6907 + process-warning "^2.0.0" 6908 + quick-format-unescaped "^4.0.3" 6909 + real-require "^0.2.0" 6910 + safe-stable-stringify "^2.3.1" 6911 + sonic-boom "^3.1.0" 6912 + thread-stream "^2.0.0" 6913 + 6914 + pirates@^4.0.4: 6915 + version "4.0.5" 6916 + resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz" 6917 + integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== 6918 + 6919 + pkg-dir@^4.2.0: 6920 + version "4.2.0" 6921 + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" 6922 + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== 6923 + dependencies: 6924 + find-up "^4.0.0" 6925 + 6926 + postgres-array@~2.0.0: 6927 + version "2.0.0" 6928 + resolved "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz" 6929 + integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== 6930 + 6931 + postgres-bytea@~1.0.0: 6932 + version "1.0.0" 6933 + resolved "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz" 6934 + integrity sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w== 6935 + 6936 + postgres-date@~1.0.4: 6937 + version "1.0.7" 6938 + resolved "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz" 6939 + integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== 6940 + 6941 + postgres-interval@^1.1.0: 6942 + version "1.2.0" 6943 + resolved "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz" 6944 + integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== 6945 + dependencies: 6946 + xtend "^4.0.0" 6947 + 6948 + prebuild-install@^7.1.0: 6949 + version "7.1.1" 6950 + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.1.tgz#de97d5b34a70a0c81334fd24641f2a1702352e45" 6951 + integrity sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw== 6952 + dependencies: 6953 + detect-libc "^2.0.0" 6954 + expand-template "^2.0.3" 6955 + github-from-package "0.0.0" 6956 + minimist "^1.2.3" 6957 + mkdirp-classic "^0.5.3" 6958 + napi-build-utils "^1.0.1" 6959 + node-abi "^3.3.0" 6960 + pump "^3.0.0" 6961 + rc "^1.2.7" 6962 + simple-get "^4.0.0" 6963 + tar-fs "^2.0.0" 6964 + tunnel-agent "^0.6.0" 6965 + 6966 + prelude-ls@^1.2.1: 6967 + version "1.2.1" 6968 + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" 6969 + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== 6970 + 6971 + prettier-config-standard@^5.0.0: 6972 + version "5.0.0" 6973 + resolved "https://registry.npmjs.org/prettier-config-standard/-/prettier-config-standard-5.0.0.tgz" 6974 + integrity sha512-QK252QwCxlsak8Zx+rPKZU31UdbRcu9iUk9X1ONYtLSO221OgvV9TlKoTf6iPDZtvF3vE2mkgzFIEgSUcGELSQ== 6975 + 6976 + prettier-linter-helpers@^1.0.0: 6977 + version "1.0.0" 6978 + resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" 6979 + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== 6980 + dependencies: 6981 + fast-diff "^1.1.2" 6982 + 6983 + prettier@^2.7.1: 6984 + version "2.7.1" 6985 + resolved "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz" 6986 + integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== 6987 + 6988 + pretty-format@^28.0.0, pretty-format@^28.1.3: 6989 + version "28.1.3" 6990 + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz" 6991 + integrity sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q== 6992 + dependencies: 6993 + "@jest/schemas" "^28.1.3" 6994 + ansi-regex "^5.0.1" 6995 + ansi-styles "^5.0.0" 6996 + react-is "^18.0.0" 6997 + 6998 + process-nextick-args@~2.0.0: 6999 + version "2.0.1" 7000 + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" 7001 + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== 7002 + 7003 + process-warning@^2.0.0: 7004 + version "2.0.0" 7005 + resolved "https://registry.npmjs.org/process-warning/-/process-warning-2.0.0.tgz" 7006 + integrity sha512-+MmoAXoUX+VTHAlwns0h+kFUWFs/3FZy+ZuchkgjyOu3oioLAo2LB5aCfKPh2+P9O18i3m43tUEv3YqttSy0Ww== 7007 + 7008 + process@^0.11.10: 7009 + version "0.11.10" 7010 + resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" 7011 + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== 7012 + 7013 + promise-inflight@^1.0.1: 7014 + version "1.0.1" 7015 + resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz" 7016 + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== 7017 + 7018 + promise-retry@^2.0.1: 7019 + version "2.0.1" 7020 + resolved "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz" 7021 + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== 7022 + dependencies: 7023 + err-code "^2.0.2" 7024 + retry "^0.12.0" 7025 + 7026 + prompts@^2.0.1: 7027 + version "2.4.2" 7028 + resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" 7029 + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== 7030 + dependencies: 7031 + kleur "^3.0.3" 7032 + sisteransi "^1.0.5" 7033 + 7034 + promzard@^0.3.0: 7035 + version "0.3.0" 7036 + resolved "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz" 7037 + integrity sha512-JZeYqd7UAcHCwI+sTOeUDYkvEU+1bQ7iE0UT1MgB/tERkAPkesW46MrpIySzODi+owTjZtiF8Ay5j9m60KmMBw== 7038 + dependencies: 7039 + read "1" 7040 + 7041 + proto-list@~1.2.1: 7042 + version "1.2.4" 7043 + resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" 7044 + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== 7045 + 7046 + protocols@^1.4.0: 7047 + version "1.4.8" 7048 + resolved "https://registry.npmjs.org/protocols/-/protocols-1.4.8.tgz" 7049 + integrity sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg== 7050 + 7051 + protocols@^2.0.1: 7052 + version "2.0.1" 7053 + resolved "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz" 7054 + integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== 7055 + 7056 + proxy-addr@~2.0.7: 7057 + version "2.0.7" 7058 + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" 7059 + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== 7060 + dependencies: 7061 + forwarded "0.2.0" 7062 + ipaddr.js "1.9.1" 7063 + 7064 + psl@^1.1.28: 7065 + version "1.9.0" 7066 + resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz" 7067 + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== 7068 + 7069 + pump@^3.0.0: 7070 + version "3.0.0" 7071 + resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" 7072 + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 7073 + dependencies: 7074 + end-of-stream "^1.1.0" 7075 + once "^1.3.1" 7076 + 7077 + punycode@^2.1.0, punycode@^2.1.1: 7078 + version "2.1.1" 7079 + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" 7080 + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 7081 + 7082 + q@^1.5.1: 7083 + version "1.5.1" 7084 + resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz" 7085 + integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== 7086 + 7087 + qs@6.11.0, qs@^6.9.4: 7088 + version "6.11.0" 7089 + resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" 7090 + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== 7091 + dependencies: 7092 + side-channel "^1.0.4" 7093 + 7094 + qs@~6.5.2: 7095 + version "6.5.3" 7096 + resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz" 7097 + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== 7098 + 7099 + query-string@^6.13.8: 7100 + version "6.14.1" 7101 + resolved "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz" 7102 + integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw== 7103 + dependencies: 7104 + decode-uri-component "^0.2.0" 7105 + filter-obj "^1.1.0" 7106 + split-on-first "^1.0.0" 7107 + strict-uri-encode "^2.0.0" 7108 + 7109 + queue-microtask@^1.2.2: 7110 + version "1.2.3" 7111 + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" 7112 + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 7113 + 7114 + quick-format-unescaped@^4.0.3: 7115 + version "4.0.4" 7116 + resolved "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz" 7117 + integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== 7118 + 7119 + quick-lru@^4.0.1: 7120 + version "4.0.1" 7121 + resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz" 7122 + integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== 7123 + 7124 + range-parser@~1.2.1: 7125 + version "1.2.1" 7126 + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" 7127 + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== 7128 + 7129 + raw-body@2.5.1: 7130 + version "2.5.1" 7131 + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" 7132 + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== 7133 + dependencies: 7134 + bytes "3.1.2" 7135 + http-errors "2.0.0" 7136 + iconv-lite "0.4.24" 7137 + unpipe "1.0.0" 7138 + 7139 + rc@^1.2.7: 7140 + version "1.2.8" 7141 + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 7142 + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== 7143 + dependencies: 7144 + deep-extend "^0.6.0" 7145 + ini "~1.3.0" 7146 + minimist "^1.2.0" 7147 + strip-json-comments "~2.0.1" 7148 + 7149 + react-is@^18.0.0: 7150 + version "18.2.0" 7151 + resolved "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz" 7152 + integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== 7153 + 7154 + read-cmd-shim@^2.0.0: 7155 + version "2.0.0" 7156 + resolved "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz" 7157 + integrity sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw== 7158 + 7159 + read-package-json-fast@^2.0.1: 7160 + version "2.0.3" 7161 + resolved "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz" 7162 + integrity sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ== 7163 + dependencies: 7164 + json-parse-even-better-errors "^2.3.0" 7165 + npm-normalize-package-bin "^1.0.1" 7166 + 7167 + read-package-json@^2.0.0: 7168 + version "2.1.2" 7169 + resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz" 7170 + integrity sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA== 7171 + dependencies: 7172 + glob "^7.1.1" 7173 + json-parse-even-better-errors "^2.3.0" 7174 + normalize-package-data "^2.0.0" 7175 + npm-normalize-package-bin "^1.0.0" 7176 + 7177 + read-package-json@^3.0.0: 7178 + version "3.0.1" 7179 + resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-3.0.1.tgz" 7180 + integrity sha512-aLcPqxovhJTVJcsnROuuzQvv6oziQx4zd3JvG0vGCL5MjTONUc4uJ90zCBC6R7W7oUKBNoR/F8pkyfVwlbxqng== 7181 + dependencies: 7182 + glob "^7.1.1" 7183 + json-parse-even-better-errors "^2.3.0" 7184 + normalize-package-data "^3.0.0" 7185 + npm-normalize-package-bin "^1.0.0" 7186 + 7187 + read-package-json@^4.1.1: 7188 + version "4.1.2" 7189 + resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-4.1.2.tgz" 7190 + integrity sha512-Dqer4pqzamDE2O4M55xp1qZMuLPqi4ldk2ya648FOMHRjwMzFhuxVrG04wd0c38IsvkVdr3vgHI6z+QTPdAjrQ== 7191 + dependencies: 7192 + glob "^7.1.1" 7193 + json-parse-even-better-errors "^2.3.0" 7194 + normalize-package-data "^3.0.0" 7195 + npm-normalize-package-bin "^1.0.0" 7196 + 7197 + read-package-tree@^5.3.1: 7198 + version "5.3.1" 7199 + resolved "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz" 7200 + integrity sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw== 7201 + dependencies: 7202 + read-package-json "^2.0.0" 7203 + readdir-scoped-modules "^1.0.0" 7204 + util-promisify "^2.1.0" 7205 + 7206 + read-pkg-up@^3.0.0: 7207 + version "3.0.0" 7208 + resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz" 7209 + integrity sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw== 7210 + dependencies: 7211 + find-up "^2.0.0" 7212 + read-pkg "^3.0.0" 7213 + 7214 + read-pkg-up@^7.0.1: 7215 + version "7.0.1" 7216 + resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz" 7217 + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== 7218 + dependencies: 7219 + find-up "^4.1.0" 7220 + read-pkg "^5.2.0" 7221 + type-fest "^0.8.1" 7222 + 7223 + read-pkg@^3.0.0: 7224 + version "3.0.0" 7225 + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz" 7226 + integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== 7227 + dependencies: 7228 + load-json-file "^4.0.0" 7229 + normalize-package-data "^2.3.2" 7230 + path-type "^3.0.0" 7231 + 7232 + read-pkg@^5.2.0: 7233 + version "5.2.0" 7234 + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz" 7235 + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== 7236 + dependencies: 7237 + "@types/normalize-package-data" "^2.4.0" 7238 + normalize-package-data "^2.5.0" 7239 + parse-json "^5.0.0" 7240 + type-fest "^0.6.0" 7241 + 7242 + read@1, read@~1.0.1: 7243 + version "1.0.7" 7244 + resolved "https://registry.npmjs.org/read/-/read-1.0.7.tgz" 7245 + integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ== 7246 + dependencies: 7247 + mute-stream "~0.0.4" 7248 + 7249 + readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: 7250 + version "3.6.0" 7251 + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" 7252 + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== 7253 + dependencies: 7254 + inherits "^2.0.3" 7255 + string_decoder "^1.1.1" 7256 + util-deprecate "^1.0.1" 7257 + 7258 + readable-stream@^2.0.6, readable-stream@~2.3.6: 7259 + version "2.3.7" 7260 + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" 7261 + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== 7262 + dependencies: 7263 + core-util-is "~1.0.0" 7264 + inherits "~2.0.3" 7265 + isarray "~1.0.0" 7266 + process-nextick-args "~2.0.0" 7267 + safe-buffer "~5.1.1" 7268 + string_decoder "~1.1.1" 7269 + util-deprecate "~1.0.1" 7270 + 7271 + readable-stream@^4.0.0: 7272 + version "4.2.0" 7273 + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-4.2.0.tgz" 7274 + integrity sha512-gJrBHsaI3lgBoGMW/jHZsQ/o/TIWiu5ENCJG1BB7fuCKzpFM8GaS2UoBVt9NO+oI+3FcrBNbUkl3ilDe09aY4A== 7275 + dependencies: 7276 + abort-controller "^3.0.0" 7277 + buffer "^6.0.3" 7278 + events "^3.3.0" 7279 + process "^0.11.10" 7280 + 7281 + readdir-scoped-modules@^1.0.0: 7282 + version "1.1.0" 7283 + resolved "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz" 7284 + integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== 7285 + dependencies: 7286 + debuglog "^1.0.1" 7287 + dezalgo "^1.0.0" 7288 + graceful-fs "^4.1.2" 7289 + once "^1.3.0" 7290 + 7291 + real-require@^0.2.0: 7292 + version "0.2.0" 7293 + resolved "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz" 7294 + integrity sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg== 7295 + 7296 + redent@^3.0.0: 7297 + version "3.0.0" 7298 + resolved "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz" 7299 + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== 7300 + dependencies: 7301 + indent-string "^4.0.0" 7302 + strip-indent "^3.0.0" 7303 + 7304 + regenerate-unicode-properties@^10.1.0: 7305 + version "10.1.0" 7306 + resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz" 7307 + integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== 7308 + dependencies: 7309 + regenerate "^1.4.2" 7310 + 7311 + regenerate@^1.4.2: 7312 + version "1.4.2" 7313 + resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" 7314 + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== 7315 + 7316 + regenerator-runtime@^0.13.4: 7317 + version "0.13.9" 7318 + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" 7319 + integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== 7320 + 7321 + regenerator-transform@^0.15.0: 7322 + version "0.15.0" 7323 + resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz" 7324 + integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== 7325 + dependencies: 7326 + "@babel/runtime" "^7.8.4" 7327 + 7328 + regexp.prototype.flags@^1.4.3: 7329 + version "1.4.3" 7330 + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz" 7331 + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== 7332 + dependencies: 7333 + call-bind "^1.0.2" 7334 + define-properties "^1.1.3" 7335 + functions-have-names "^1.2.2" 7336 + 7337 + regexpp@^3.2.0: 7338 + version "3.2.0" 7339 + resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" 7340 + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== 7341 + 7342 + regexpu-core@^5.1.0: 7343 + version "5.2.1" 7344 + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.1.tgz" 7345 + integrity sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ== 7346 + dependencies: 7347 + regenerate "^1.4.2" 7348 + regenerate-unicode-properties "^10.1.0" 7349 + regjsgen "^0.7.1" 7350 + regjsparser "^0.9.1" 7351 + unicode-match-property-ecmascript "^2.0.0" 7352 + unicode-match-property-value-ecmascript "^2.0.0" 7353 + 7354 + regjsgen@^0.7.1: 7355 + version "0.7.1" 7356 + resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz" 7357 + integrity sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA== 7358 + 7359 + regjsparser@^0.9.1: 7360 + version "0.9.1" 7361 + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz" 7362 + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== 7363 + dependencies: 7364 + jsesc "~0.5.0" 7365 + 7366 + request@^2.88.0, request@^2.88.2: 7367 + version "2.88.2" 7368 + resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" 7369 + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== 7370 + dependencies: 7371 + aws-sign2 "~0.7.0" 7372 + aws4 "^1.8.0" 7373 + caseless "~0.12.0" 7374 + combined-stream "~1.0.6" 7375 + extend "~3.0.2" 7376 + forever-agent "~0.6.1" 7377 + form-data "~2.3.2" 7378 + har-validator "~5.1.3" 7379 + http-signature "~1.2.0" 7380 + is-typedarray "~1.0.0" 7381 + isstream "~0.1.2" 7382 + json-stringify-safe "~5.0.1" 7383 + mime-types "~2.1.19" 7384 + oauth-sign "~0.9.0" 7385 + performance-now "^2.1.0" 7386 + qs "~6.5.2" 7387 + safe-buffer "^5.1.2" 7388 + tough-cookie "~2.5.0" 7389 + tunnel-agent "^0.6.0" 7390 + uuid "^3.3.2" 7391 + 7392 + require-directory@^2.1.1: 7393 + version "2.1.1" 7394 + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" 7395 + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== 7396 + 7397 + resolve-cwd@^3.0.0: 7398 + version "3.0.0" 7399 + resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" 7400 + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== 7401 + dependencies: 7402 + resolve-from "^5.0.0" 7403 + 7404 + resolve-from@^4.0.0: 7405 + version "4.0.0" 7406 + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" 7407 + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 7408 + 7409 + resolve-from@^5.0.0: 7410 + version "5.0.0" 7411 + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" 7412 + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== 7413 + 7414 + resolve.exports@^1.1.0: 7415 + version "1.1.0" 7416 + resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz" 7417 + integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== 7418 + 7419 + resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.20.0: 7420 + version "1.22.1" 7421 + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz" 7422 + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== 7423 + dependencies: 7424 + is-core-module "^2.9.0" 7425 + path-parse "^1.0.7" 7426 + supports-preserve-symlinks-flag "^1.0.0" 7427 + 7428 + restore-cursor@^3.1.0: 7429 + version "3.1.0" 7430 + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" 7431 + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== 7432 + dependencies: 7433 + onetime "^5.1.0" 7434 + signal-exit "^3.0.2" 7435 + 7436 + retry@^0.12.0: 7437 + version "0.12.0" 7438 + resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" 7439 + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== 7440 + 7441 + reusify@^1.0.4: 7442 + version "1.0.4" 7443 + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" 7444 + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 7445 + 7446 + rfdc@^1.2.0: 7447 + version "1.3.0" 7448 + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" 7449 + integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== 7450 + 7451 + rimraf@^2.6.3: 7452 + version "2.7.1" 7453 + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" 7454 + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== 7455 + dependencies: 7456 + glob "^7.1.3" 7457 + 7458 + rimraf@^3.0.0, rimraf@^3.0.2: 7459 + version "3.0.2" 7460 + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" 7461 + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 7462 + dependencies: 7463 + glob "^7.1.3" 7464 + 7465 + roarr@^7.0.4: 7466 + version "7.14.2" 7467 + resolved "https://registry.yarnpkg.com/roarr/-/roarr-7.14.2.tgz#2d4865b9f06779901258f1a5a8f6b4315fc46f5f" 7468 + integrity sha512-9vC/n53oTJEyAl0ZJczKjJ5mJheb2DaqiaNSnxDWrqiRTrozxSvSq05yCTN+Fc7e5mhDRTTZ14RlMu1x4tEc0w== 7469 + dependencies: 7470 + boolean "^3.1.4" 7471 + fast-json-stringify "^2.7.10" 7472 + fast-printf "^1.6.9" 7473 + globalthis "^1.0.2" 7474 + safe-stable-stringify "^2.4.1" 7475 + semver-compare "^1.0.0" 7476 + 7477 + run-async@^2.4.0: 7478 + version "2.4.1" 7479 + resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz" 7480 + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== 7481 + 7482 + run-parallel@^1.1.9: 7483 + version "1.2.0" 7484 + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" 7485 + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 7486 + dependencies: 7487 + queue-microtask "^1.2.2" 7488 + 7489 + rxjs@^6.6.0: 7490 + version "6.6.7" 7491 + resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz" 7492 + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== 7493 + dependencies: 7494 + tslib "^1.9.0" 7495 + 7496 + safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1, safe-buffer@~5.2.0: 7497 + version "5.2.1" 7498 + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" 7499 + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 7500 + 7501 + safe-buffer@~5.1.0, safe-buffer@~5.1.1: 7502 + version "5.1.2" 7503 + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" 7504 + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 7505 + 7506 + safe-regex-test@^1.0.0: 7507 + version "1.0.0" 7508 + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" 7509 + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== 7510 + dependencies: 7511 + call-bind "^1.0.2" 7512 + get-intrinsic "^1.1.3" 7513 + is-regex "^1.1.4" 7514 + 7515 + safe-stable-stringify@^2.3.1: 7516 + version "2.4.0" 7517 + resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.0.tgz" 7518 + integrity sha512-eehKHKpab6E741ud7ZIMcXhKcP6TSIezPkNZhy5U8xC6+VvrRdUA2tMgxGxaGl4cz7c2Ew5+mg5+wNB16KQqrA== 7519 + 7520 + safe-stable-stringify@^2.4.1: 7521 + version "2.4.2" 7522 + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz#ec7b037768098bf65310d1d64370de0dc02353aa" 7523 + integrity sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA== 7524 + 7525 + "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: 7526 + version "2.1.2" 7527 + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" 7528 + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 7529 + 7530 + secure-json-parse@^2.4.0: 7531 + version "2.5.0" 7532 + resolved "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.5.0.tgz" 7533 + integrity sha512-ZQruFgZnIWH+WyO9t5rWt4ZEGqCKPwhiw+YbzTwpmT9elgLrLcfuyUiSnwwjUiVy9r4VM3urtbNF1xmEh9IL2w== 7534 + 7535 + semver-compare@^1.0.0: 7536 + version "1.0.0" 7537 + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" 7538 + integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== 7539 + 7540 + "semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0, semver@^5.7.1: 7541 + version "5.7.1" 7542 + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" 7543 + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 7544 + 7545 + semver@7.x, semver@^7.1.1, semver@^7.1.3, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: 7546 + version "7.3.7" 7547 + resolved "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz" 7548 + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== 7549 + dependencies: 7550 + lru-cache "^6.0.0" 7551 + 7552 + semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: 7553 + version "6.3.0" 7554 + resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" 7555 + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 7556 + 7557 + send@0.18.0: 7558 + version "0.18.0" 7559 + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" 7560 + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== 7561 + dependencies: 7562 + debug "2.6.9" 7563 + depd "2.0.0" 7564 + destroy "1.2.0" 7565 + encodeurl "~1.0.2" 7566 + escape-html "~1.0.3" 7567 + etag "~1.8.1" 7568 + fresh "0.5.2" 7569 + http-errors "2.0.0" 7570 + mime "1.6.0" 7571 + ms "2.1.3" 7572 + on-finished "2.4.1" 7573 + range-parser "~1.2.1" 7574 + statuses "2.0.1" 7575 + 7576 + serve-static@1.15.0: 7577 + version "1.15.0" 7578 + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" 7579 + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== 7580 + dependencies: 7581 + encodeurl "~1.0.2" 7582 + escape-html "~1.0.3" 7583 + parseurl "~1.3.3" 7584 + send "0.18.0" 7585 + 7586 + set-blocking@~2.0.0: 7587 + version "2.0.0" 7588 + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" 7589 + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== 7590 + 7591 + setprototypeof@1.2.0: 7592 + version "1.2.0" 7593 + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" 7594 + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== 7595 + 7596 + shallow-clone@^3.0.0: 7597 + version "3.0.1" 7598 + resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" 7599 + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== 7600 + dependencies: 7601 + kind-of "^6.0.2" 7602 + 7603 + shebang-command@^1.2.0: 7604 + version "1.2.0" 7605 + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 7606 + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== 7607 + dependencies: 7608 + shebang-regex "^1.0.0" 7609 + 7610 + shebang-command@^2.0.0: 7611 + version "2.0.0" 7612 + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" 7613 + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 7614 + dependencies: 7615 + shebang-regex "^3.0.0" 7616 + 7617 + shebang-regex@^1.0.0: 7618 + version "1.0.0" 7619 + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 7620 + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== 7621 + 7622 + shebang-regex@^3.0.0: 7623 + version "3.0.0" 7624 + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" 7625 + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 7626 + 7627 + shell-quote@^1.6.1: 7628 + version "1.7.4" 7629 + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.4.tgz#33fe15dee71ab2a81fcbd3a52106c5cfb9fb75d8" 7630 + integrity sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw== 7631 + 7632 + side-channel@^1.0.4: 7633 + version "1.0.4" 7634 + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" 7635 + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== 7636 + dependencies: 7637 + call-bind "^1.0.0" 7638 + get-intrinsic "^1.0.2" 7639 + object-inspect "^1.9.0" 7640 + 7641 + signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: 7642 + version "3.0.7" 7643 + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" 7644 + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== 7645 + 7646 + simple-concat@^1.0.0: 7647 + version "1.0.1" 7648 + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" 7649 + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== 7650 + 7651 + simple-get@^4.0.0: 7652 + version "4.0.1" 7653 + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" 7654 + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== 7655 + dependencies: 7656 + decompress-response "^6.0.0" 7657 + once "^1.3.1" 7658 + simple-concat "^1.0.0" 7659 + 7660 + sisteransi@^1.0.5: 7661 + version "1.0.5" 7662 + resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" 7663 + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== 7664 + 7665 + slash@^3.0.0: 7666 + version "3.0.0" 7667 + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" 7668 + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== 7669 + 7670 + slide@^1.1.6: 7671 + version "1.1.6" 7672 + resolved "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz" 7673 + integrity sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw== 7674 + 7675 + smart-buffer@^4.2.0: 7676 + version "4.2.0" 7677 + resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz" 7678 + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== 7679 + 7680 + socks-proxy-agent@^5.0.0: 7681 + version "5.0.1" 7682 + resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz" 7683 + integrity sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ== 7684 + dependencies: 7685 + agent-base "^6.0.2" 7686 + debug "4" 7687 + socks "^2.3.3" 7688 + 7689 + socks-proxy-agent@^6.0.0: 7690 + version "6.2.1" 7691 + resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz" 7692 + integrity sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ== 7693 + dependencies: 7694 + agent-base "^6.0.2" 7695 + debug "^4.3.3" 7696 + socks "^2.6.2" 7697 + 7698 + socks@^2.3.3, socks@^2.6.2: 7699 + version "2.7.0" 7700 + resolved "https://registry.npmjs.org/socks/-/socks-2.7.0.tgz" 7701 + integrity sha512-scnOe9y4VuiNUULJN72GrM26BNOjVsfPXI+j+98PkyEfsIXroa5ofyjT+FzGvn/xHs73U2JtoBYAVx9Hl4quSA== 7702 + dependencies: 7703 + ip "^2.0.0" 7704 + smart-buffer "^4.2.0" 7705 + 7706 + sonic-boom@^3.0.0, sonic-boom@^3.1.0: 7707 + version "3.2.0" 7708 + resolved "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.2.0.tgz" 7709 + integrity sha512-SbbZ+Kqj/XIunvIAgUZRlqd6CGQYq71tRRbXR92Za8J/R3Yh4Av+TWENiSiEgnlwckYLyP0YZQWVfyNC0dzLaA== 7710 + dependencies: 7711 + atomic-sleep "^1.0.0" 7712 + 7713 + sort-keys@^2.0.0: 7714 + version "2.0.0" 7715 + resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz" 7716 + integrity sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg== 7717 + dependencies: 7718 + is-plain-obj "^1.0.0" 7719 + 7720 + sort-keys@^4.0.0: 7721 + version "4.2.0" 7722 + resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-4.2.0.tgz" 7723 + integrity sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg== 7724 + dependencies: 7725 + is-plain-obj "^2.0.0" 7726 + 7727 + source-map-support@0.5.13: 7728 + version "0.5.13" 7729 + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz" 7730 + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== 7731 + dependencies: 7732 + buffer-from "^1.0.0" 7733 + source-map "^0.6.0" 7734 + 7735 + source-map@^0.6.0, source-map@^0.6.1: 7736 + version "0.6.1" 7737 + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" 7738 + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 7739 + 7740 + spdx-correct@^3.0.0: 7741 + version "3.1.1" 7742 + resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz" 7743 + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== 7744 + dependencies: 7745 + spdx-expression-parse "^3.0.0" 7746 + spdx-license-ids "^3.0.0" 7747 + 7748 + spdx-exceptions@^2.1.0: 7749 + version "2.3.0" 7750 + resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" 7751 + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== 7752 + 7753 + spdx-expression-parse@^3.0.0: 7754 + version "3.0.1" 7755 + resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" 7756 + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== 7757 + dependencies: 7758 + spdx-exceptions "^2.1.0" 7759 + spdx-license-ids "^3.0.0" 7760 + 7761 + spdx-license-ids@^3.0.0: 7762 + version "3.0.12" 7763 + resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz" 7764 + integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== 7765 + 7766 + split-on-first@^1.0.0: 7767 + version "1.1.0" 7768 + resolved "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz" 7769 + integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== 7770 + 7771 + split2@^3.0.0: 7772 + version "3.2.2" 7773 + resolved "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz" 7774 + integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== 7775 + dependencies: 7776 + readable-stream "^3.0.0" 7777 + 7778 + split2@^4.0.0, split2@^4.1.0: 7779 + version "4.1.0" 7780 + resolved "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz" 7781 + integrity sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ== 7782 + 7783 + split@^1.0.0: 7784 + version "1.0.1" 7785 + resolved "https://registry.npmjs.org/split/-/split-1.0.1.tgz" 7786 + integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== 7787 + dependencies: 7788 + through "2" 7789 + 7790 + sprintf-js@~1.0.2: 7791 + version "1.0.3" 7792 + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" 7793 + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== 7794 + 7795 + sshpk@^1.7.0: 7796 + version "1.17.0" 7797 + resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz" 7798 + integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== 7799 + dependencies: 7800 + asn1 "~0.2.3" 7801 + assert-plus "^1.0.0" 7802 + bcrypt-pbkdf "^1.0.0" 7803 + dashdash "^1.12.0" 7804 + ecc-jsbn "~0.1.1" 7805 + getpass "^0.1.1" 7806 + jsbn "~0.1.0" 7807 + safer-buffer "^2.0.2" 7808 + tweetnacl "~0.14.0" 7809 + 7810 + ssri@^8.0.0, ssri@^8.0.1: 7811 + version "8.0.1" 7812 + resolved "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz" 7813 + integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== 7814 + dependencies: 7815 + minipass "^3.1.1" 7816 + 7817 + stack-utils@^2.0.3: 7818 + version "2.0.5" 7819 + resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz" 7820 + integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== 7821 + dependencies: 7822 + escape-string-regexp "^2.0.0" 7823 + 7824 + statuses@2.0.1: 7825 + version "2.0.1" 7826 + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" 7827 + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== 7828 + 7829 + strict-uri-encode@^2.0.0: 7830 + version "2.0.0" 7831 + resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz" 7832 + integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== 7833 + 7834 + string-length@^4.0.1: 7835 + version "4.0.2" 7836 + resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz" 7837 + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== 7838 + dependencies: 7839 + char-regex "^1.0.2" 7840 + strip-ansi "^6.0.0" 7841 + 7842 + string-similarity@^4.0.1: 7843 + version "4.0.4" 7844 + resolved "https://registry.yarnpkg.com/string-similarity/-/string-similarity-4.0.4.tgz#42d01ab0b34660ea8a018da8f56a3309bb8b2a5b" 7845 + integrity sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ== 7846 + 7847 + string-width@^1.0.1: 7848 + version "1.0.2" 7849 + resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" 7850 + integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== 7851 + dependencies: 7852 + code-point-at "^1.0.0" 7853 + is-fullwidth-code-point "^1.0.0" 7854 + strip-ansi "^3.0.0" 7855 + 7856 + "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: 7857 + version "4.2.3" 7858 + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" 7859 + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 7860 + dependencies: 7861 + emoji-regex "^8.0.0" 7862 + is-fullwidth-code-point "^3.0.0" 7863 + strip-ansi "^6.0.1" 7864 + 7865 + string.prototype.padend@^3.0.0: 7866 + version "3.1.4" 7867 + resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz#2c43bb3a89eb54b6750de5942c123d6c98dd65b6" 7868 + integrity sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw== 7869 + dependencies: 7870 + call-bind "^1.0.2" 7871 + define-properties "^1.1.4" 7872 + es-abstract "^1.20.4" 7873 + 7874 + string.prototype.trimend@^1.0.5: 7875 + version "1.0.5" 7876 + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz" 7877 + integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== 7878 + dependencies: 7879 + call-bind "^1.0.2" 7880 + define-properties "^1.1.4" 7881 + es-abstract "^1.19.5" 7882 + 7883 + string.prototype.trimend@^1.0.6: 7884 + version "1.0.6" 7885 + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" 7886 + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== 7887 + dependencies: 7888 + call-bind "^1.0.2" 7889 + define-properties "^1.1.4" 7890 + es-abstract "^1.20.4" 7891 + 7892 + string.prototype.trimstart@^1.0.5: 7893 + version "1.0.5" 7894 + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz" 7895 + integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== 7896 + dependencies: 7897 + call-bind "^1.0.2" 7898 + define-properties "^1.1.4" 7899 + es-abstract "^1.19.5" 7900 + 7901 + string.prototype.trimstart@^1.0.6: 7902 + version "1.0.6" 7903 + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" 7904 + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== 7905 + dependencies: 7906 + call-bind "^1.0.2" 7907 + define-properties "^1.1.4" 7908 + es-abstract "^1.20.4" 7909 + 7910 + string_decoder@^1.1.1: 7911 + version "1.3.0" 7912 + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" 7913 + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== 7914 + dependencies: 7915 + safe-buffer "~5.2.0" 7916 + 7917 + string_decoder@~1.1.1: 7918 + version "1.1.1" 7919 + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" 7920 + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 7921 + dependencies: 7922 + safe-buffer "~5.1.0" 7923 + 7924 + strip-ansi@^3.0.0, strip-ansi@^3.0.1: 7925 + version "3.0.1" 7926 + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" 7927 + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== 7928 + dependencies: 7929 + ansi-regex "^2.0.0" 7930 + 7931 + strip-ansi@^6.0.0, strip-ansi@^6.0.1: 7932 + version "6.0.1" 7933 + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" 7934 + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 7935 + dependencies: 7936 + ansi-regex "^5.0.1" 7937 + 7938 + strip-bom@^3.0.0: 7939 + version "3.0.0" 7940 + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" 7941 + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== 7942 + 7943 + strip-bom@^4.0.0: 7944 + version "4.0.0" 7945 + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" 7946 + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== 7947 + 7948 + strip-final-newline@^2.0.0: 7949 + version "2.0.0" 7950 + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" 7951 + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== 7952 + 7953 + strip-indent@^3.0.0: 7954 + version "3.0.0" 7955 + resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz" 7956 + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== 7957 + dependencies: 7958 + min-indent "^1.0.0" 7959 + 7960 + strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: 7961 + version "3.1.1" 7962 + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" 7963 + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 7964 + 7965 + strip-json-comments@~2.0.1: 7966 + version "2.0.1" 7967 + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 7968 + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== 7969 + 7970 + strong-log-transformer@^2.1.0: 7971 + version "2.1.0" 7972 + resolved "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz" 7973 + integrity sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA== 7974 + dependencies: 7975 + duplexer "^0.1.1" 7976 + minimist "^1.2.0" 7977 + through "^2.3.4" 7978 + 7979 + supports-color@^5.3.0: 7980 + version "5.5.0" 7981 + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" 7982 + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 7983 + dependencies: 7984 + has-flag "^3.0.0" 7985 + 7986 + supports-color@^7.0.0, supports-color@^7.1.0: 7987 + version "7.2.0" 7988 + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" 7989 + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 7990 + dependencies: 7991 + has-flag "^4.0.0" 7992 + 7993 + supports-color@^8.0.0: 7994 + version "8.1.1" 7995 + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" 7996 + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== 7997 + dependencies: 7998 + has-flag "^4.0.0" 7999 + 8000 + supports-hyperlinks@^2.0.0: 8001 + version "2.3.0" 8002 + resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz" 8003 + integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== 8004 + dependencies: 8005 + has-flag "^4.0.0" 8006 + supports-color "^7.0.0" 8007 + 8008 + supports-preserve-symlinks-flag@^1.0.0: 8009 + version "1.0.0" 8010 + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" 8011 + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 8012 + 8013 + tar-fs@^2.0.0: 8014 + version "2.1.1" 8015 + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" 8016 + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== 8017 + dependencies: 8018 + chownr "^1.1.1" 8019 + mkdirp-classic "^0.5.2" 8020 + pump "^3.0.0" 8021 + tar-stream "^2.1.4" 8022 + 8023 + tar-stream@^2.1.4: 8024 + version "2.2.0" 8025 + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" 8026 + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== 8027 + dependencies: 8028 + bl "^4.0.3" 8029 + end-of-stream "^1.4.1" 8030 + fs-constants "^1.0.0" 8031 + inherits "^2.0.3" 8032 + readable-stream "^3.1.1" 8033 + 8034 + tar@^4.4.12: 8035 + version "4.4.19" 8036 + resolved "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz" 8037 + integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== 8038 + dependencies: 8039 + chownr "^1.1.4" 8040 + fs-minipass "^1.2.7" 8041 + minipass "^2.9.0" 8042 + minizlib "^1.3.3" 8043 + mkdirp "^0.5.5" 8044 + safe-buffer "^5.2.1" 8045 + yallist "^3.1.1" 8046 + 8047 + tar@^6.0.2, tar@^6.1.0: 8048 + version "6.1.11" 8049 + resolved "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz" 8050 + integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== 8051 + dependencies: 8052 + chownr "^2.0.0" 8053 + fs-minipass "^2.0.0" 8054 + minipass "^3.0.0" 8055 + minizlib "^2.1.1" 8056 + mkdirp "^1.0.3" 8057 + yallist "^4.0.0" 8058 + 8059 + temp-dir@^1.0.0: 8060 + version "1.0.0" 8061 + resolved "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz" 8062 + integrity sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ== 8063 + 8064 + temp-write@^4.0.0: 8065 + version "4.0.0" 8066 + resolved "https://registry.npmjs.org/temp-write/-/temp-write-4.0.0.tgz" 8067 + integrity sha512-HIeWmj77uOOHb0QX7siN3OtwV3CTntquin6TNVg6SHOqCP3hYKmox90eeFOGaY1MqJ9WYDDjkyZrW6qS5AWpbw== 8068 + dependencies: 8069 + graceful-fs "^4.1.15" 8070 + is-stream "^2.0.0" 8071 + make-dir "^3.0.0" 8072 + temp-dir "^1.0.0" 8073 + uuid "^3.3.2" 8074 + 8075 + terminal-link@^2.0.0: 8076 + version "2.1.1" 8077 + resolved "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz" 8078 + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== 8079 + dependencies: 8080 + ansi-escapes "^4.2.1" 8081 + supports-hyperlinks "^2.0.0" 8082 + 8083 + test-exclude@^6.0.0: 8084 + version "6.0.0" 8085 + resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" 8086 + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== 8087 + dependencies: 8088 + "@istanbuljs/schema" "^0.1.2" 8089 + glob "^7.1.4" 8090 + minimatch "^3.0.4" 8091 + 8092 + text-extensions@^1.0.0: 8093 + version "1.9.0" 8094 + resolved "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz" 8095 + integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== 8096 + 8097 + text-table@^0.2.0: 8098 + version "0.2.0" 8099 + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" 8100 + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== 8101 + 8102 + thread-stream@^2.0.0: 8103 + version "2.2.0" 8104 + resolved "https://registry.npmjs.org/thread-stream/-/thread-stream-2.2.0.tgz" 8105 + integrity sha512-rUkv4/fnb4rqy/gGy7VuqK6wE1+1DOCOWy4RMeaV69ZHMP11tQKZvZSip1yTgrKCMZzEMcCL/bKfHvSfDHx+iQ== 8106 + dependencies: 8107 + real-require "^0.2.0" 8108 + 8109 + through2@^2.0.0: 8110 + version "2.0.5" 8111 + resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" 8112 + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== 8113 + dependencies: 8114 + readable-stream "~2.3.6" 8115 + xtend "~4.0.1" 8116 + 8117 + through2@^4.0.0: 8118 + version "4.0.2" 8119 + resolved "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz" 8120 + integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== 8121 + dependencies: 8122 + readable-stream "3" 8123 + 8124 + through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6: 8125 + version "2.3.8" 8126 + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" 8127 + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== 8128 + 8129 + tmp@^0.0.33: 8130 + version "0.0.33" 8131 + resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" 8132 + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== 8133 + dependencies: 8134 + os-tmpdir "~1.0.2" 8135 + 8136 + tmpl@1.0.5: 8137 + version "1.0.5" 8138 + resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" 8139 + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== 8140 + 8141 + to-fast-properties@^2.0.0: 8142 + version "2.0.0" 8143 + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" 8144 + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== 8145 + 8146 + to-regex-range@^5.0.1: 8147 + version "5.0.1" 8148 + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" 8149 + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 8150 + dependencies: 8151 + is-number "^7.0.0" 8152 + 8153 + toidentifier@1.0.1: 8154 + version "1.0.1" 8155 + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" 8156 + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== 8157 + 8158 + tough-cookie@~2.5.0: 8159 + version "2.5.0" 8160 + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" 8161 + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== 8162 + dependencies: 8163 + psl "^1.1.28" 8164 + punycode "^2.1.1" 8165 + 8166 + tr46@^2.1.0: 8167 + version "2.1.0" 8168 + resolved "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz" 8169 + integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== 8170 + dependencies: 8171 + punycode "^2.1.1" 8172 + 8173 + tr46@~0.0.3: 8174 + version "0.0.3" 8175 + resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" 8176 + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== 8177 + 8178 + trim-newlines@^3.0.0: 8179 + version "3.0.1" 8180 + resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz" 8181 + integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== 8182 + 8183 + ts-jest@^28.0.5: 8184 + version "28.0.8" 8185 + resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-28.0.8.tgz" 8186 + integrity sha512-5FaG0lXmRPzApix8oFG8RKjAz4ehtm8yMKOTy5HX3fY6W8kmvOrmcY0hKDElW52FJov+clhUbrKAqofnj4mXTg== 8187 + dependencies: 8188 + bs-logger "0.x" 8189 + fast-json-stable-stringify "2.x" 8190 + jest-util "^28.0.0" 8191 + json5 "^2.2.1" 8192 + lodash.memoize "4.x" 8193 + make-error "1.x" 8194 + semver "7.x" 8195 + yargs-parser "^21.0.1" 8196 + 8197 + ts-node@^10.8.2: 8198 + version "10.9.1" 8199 + resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz" 8200 + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== 8201 + dependencies: 8202 + "@cspotcode/source-map-support" "^0.8.0" 8203 + "@tsconfig/node10" "^1.0.7" 8204 + "@tsconfig/node12" "^1.0.7" 8205 + "@tsconfig/node14" "^1.0.0" 8206 + "@tsconfig/node16" "^1.0.2" 8207 + acorn "^8.4.1" 8208 + acorn-walk "^8.1.1" 8209 + arg "^4.1.0" 8210 + create-require "^1.1.0" 8211 + diff "^4.0.1" 8212 + make-error "^1.1.1" 8213 + v8-compile-cache-lib "^3.0.1" 8214 + yn "3.1.1" 8215 + 8216 + tslib@2.3.1: 8217 + version "2.3.1" 8218 + resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz" 8219 + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== 8220 + 8221 + tslib@^1.8.1, tslib@^1.9.0: 8222 + version "1.14.1" 8223 + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" 8224 + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== 8225 + 8226 + tsutils@^3.21.0: 8227 + version "3.21.0" 8228 + resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" 8229 + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== 8230 + dependencies: 8231 + tslib "^1.8.1" 8232 + 8233 + tunnel-agent@^0.6.0: 8234 + version "0.6.0" 8235 + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" 8236 + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== 8237 + dependencies: 8238 + safe-buffer "^5.0.1" 8239 + 8240 + tweetnacl@^0.14.3, tweetnacl@~0.14.0: 8241 + version "0.14.5" 8242 + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" 8243 + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== 8244 + 8245 + type-check@^0.4.0, type-check@~0.4.0: 8246 + version "0.4.0" 8247 + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" 8248 + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== 8249 + dependencies: 8250 + prelude-ls "^1.2.1" 8251 + 8252 + type-detect@4.0.8: 8253 + version "4.0.8" 8254 + resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" 8255 + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== 8256 + 8257 + type-fest@^0.18.0: 8258 + version "0.18.1" 8259 + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz" 8260 + integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== 8261 + 8262 + type-fest@^0.20.2: 8263 + version "0.20.2" 8264 + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" 8265 + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== 8266 + 8267 + type-fest@^0.21.3: 8268 + version "0.21.3" 8269 + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" 8270 + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== 8271 + 8272 + type-fest@^0.4.1: 8273 + version "0.4.1" 8274 + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz" 8275 + integrity sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw== 8276 + 8277 + type-fest@^0.6.0: 8278 + version "0.6.0" 8279 + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz" 8280 + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== 8281 + 8282 + type-fest@^0.8.1: 8283 + version "0.8.1" 8284 + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" 8285 + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== 8286 + 8287 + type-fest@^2.3.3: 8288 + version "2.19.0" 8289 + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" 8290 + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== 8291 + 8292 + type-is@~1.6.18: 8293 + version "1.6.18" 8294 + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" 8295 + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== 8296 + dependencies: 8297 + media-typer "0.3.0" 8298 + mime-types "~2.1.24" 8299 + 8300 + typedarray-to-buffer@^3.1.5: 8301 + version "3.1.5" 8302 + resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" 8303 + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== 8304 + dependencies: 8305 + is-typedarray "^1.0.0" 8306 + 8307 + typedarray@^0.0.6: 8308 + version "0.0.6" 8309 + resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" 8310 + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== 8311 + 8312 + typescript@^4.8.4: 8313 + version "4.8.4" 8314 + resolved "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz" 8315 + integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ== 8316 + 8317 + uglify-js@^3.1.4: 8318 + version "3.17.1" 8319 + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.1.tgz" 8320 + integrity sha512-+juFBsLLw7AqMaqJ0GFvlsGZwdQfI2ooKQB39PSBgMnMakcFosi9O8jCwE+2/2nMNcc0z63r9mwjoDG8zr+q0Q== 8321 + 8322 + uid-number@0.0.6: 8323 + version "0.0.6" 8324 + resolved "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz" 8325 + integrity sha512-c461FXIljswCuscZn67xq9PpszkPT6RjheWFQTgCyabJrTUozElanb0YEqv2UGgk247YpcJkFBuSGNvBlpXM9w== 8326 + 8327 + uint8arrays@3.0.0: 8328 + version "3.0.0" 8329 + resolved "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz" 8330 + integrity sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA== 8331 + dependencies: 8332 + multiformats "^9.4.2" 8333 + 8334 + umask@^1.1.0: 8335 + version "1.1.0" 8336 + resolved "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz" 8337 + integrity sha512-lE/rxOhmiScJu9L6RTNVgB/zZbF+vGC0/p6D3xnkAePI2o0sMyFG966iR5Ki50OI/0mNi2yaRnxfLsPmEZF/JA== 8338 + 8339 + unbox-primitive@^1.0.2: 8340 + version "1.0.2" 8341 + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" 8342 + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== 8343 + dependencies: 8344 + call-bind "^1.0.2" 8345 + has-bigints "^1.0.2" 8346 + has-symbols "^1.0.3" 8347 + which-boxed-primitive "^1.0.2" 8348 + 8349 + unicode-canonical-property-names-ecmascript@^2.0.0: 8350 + version "2.0.0" 8351 + resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" 8352 + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== 8353 + 8354 + unicode-match-property-ecmascript@^2.0.0: 8355 + version "2.0.0" 8356 + resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" 8357 + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== 8358 + dependencies: 8359 + unicode-canonical-property-names-ecmascript "^2.0.0" 8360 + unicode-property-aliases-ecmascript "^2.0.0" 8361 + 8362 + unicode-match-property-value-ecmascript@^2.0.0: 8363 + version "2.0.0" 8364 + resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz" 8365 + integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== 8366 + 8367 + unicode-property-aliases-ecmascript@^2.0.0: 8368 + version "2.1.0" 8369 + resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz" 8370 + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== 8371 + 8372 + unique-filename@^1.1.1: 8373 + version "1.1.1" 8374 + resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz" 8375 + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== 8376 + dependencies: 8377 + unique-slug "^2.0.0" 8378 + 8379 + unique-slug@^2.0.0: 8380 + version "2.0.2" 8381 + resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz" 8382 + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== 8383 + dependencies: 8384 + imurmurhash "^0.1.4" 8385 + 8386 + universal-user-agent@^6.0.0: 8387 + version "6.0.0" 8388 + resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz" 8389 + integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== 8390 + 8391 + universalify@^2.0.0: 8392 + version "2.0.0" 8393 + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" 8394 + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== 8395 + 8396 + unpipe@1.0.0, unpipe@~1.0.0: 8397 + version "1.0.0" 8398 + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 8399 + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== 8400 + 8401 + upath@^2.0.1: 8402 + version "2.0.1" 8403 + resolved "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz" 8404 + integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== 8405 + 8406 + update-browserslist-db@^1.0.9: 8407 + version "1.0.9" 8408 + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz" 8409 + integrity sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg== 8410 + dependencies: 8411 + escalade "^3.1.1" 8412 + picocolors "^1.0.0" 8413 + 8414 + uri-js@^4.2.2: 8415 + version "4.4.1" 8416 + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" 8417 + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 8418 + dependencies: 8419 + punycode "^2.1.0" 8420 + 8421 + util-deprecate@^1.0.1, util-deprecate@~1.0.1: 8422 + version "1.0.2" 8423 + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" 8424 + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== 8425 + 8426 + util-promisify@^2.1.0: 8427 + version "2.1.0" 8428 + resolved "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz" 8429 + integrity sha512-K+5eQPYs14b3+E+hmE2J6gCZ4JmMl9DbYS6BeP2CHq6WMuNxErxf5B/n0fz85L8zUuoO6rIzNNmIQDu/j+1OcA== 8430 + dependencies: 8431 + object.getownpropertydescriptors "^2.0.3" 8432 + 8433 + utils-merge@1.0.1: 8434 + version "1.0.1" 8435 + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 8436 + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== 8437 + 8438 + uuid@^3.3.2: 8439 + version "3.4.0" 8440 + resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" 8441 + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== 8442 + 8443 + v8-compile-cache-lib@^3.0.1: 8444 + version "3.0.1" 8445 + resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" 8446 + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== 8447 + 8448 + v8-to-istanbul@^9.0.1: 8449 + version "9.0.1" 8450 + resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz" 8451 + integrity sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w== 8452 + dependencies: 8453 + "@jridgewell/trace-mapping" "^0.3.12" 8454 + "@types/istanbul-lib-coverage" "^2.0.1" 8455 + convert-source-map "^1.6.0" 8456 + 8457 + validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: 8458 + version "3.0.4" 8459 + resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" 8460 + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== 8461 + dependencies: 8462 + spdx-correct "^3.0.0" 8463 + spdx-expression-parse "^3.0.0" 8464 + 8465 + validate-npm-package-name@^3.0.0: 8466 + version "3.0.0" 8467 + resolved "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz" 8468 + integrity sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw== 8469 + dependencies: 8470 + builtins "^1.0.3" 8471 + 8472 + vary@^1, vary@~1.1.2: 8473 + version "1.1.2" 8474 + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 8475 + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== 8476 + 8477 + verror@1.10.0: 8478 + version "1.10.0" 8479 + resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" 8480 + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== 8481 + dependencies: 8482 + assert-plus "^1.0.0" 8483 + core-util-is "1.0.2" 8484 + extsprintf "^1.2.0" 8485 + 8486 + walker@^1.0.8: 8487 + version "1.0.8" 8488 + resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" 8489 + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== 8490 + dependencies: 8491 + makeerror "1.0.12" 8492 + 8493 + wcwidth@^1.0.0: 8494 + version "1.0.1" 8495 + resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz" 8496 + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== 8497 + dependencies: 8498 + defaults "^1.0.3" 8499 + 8500 + webidl-conversions@^3.0.0: 8501 + version "3.0.1" 8502 + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" 8503 + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== 8504 + 8505 + webidl-conversions@^6.1.0: 8506 + version "6.1.0" 8507 + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz" 8508 + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== 8509 + 8510 + whatwg-url@^5.0.0: 8511 + version "5.0.0" 8512 + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" 8513 + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== 8514 + dependencies: 8515 + tr46 "~0.0.3" 8516 + webidl-conversions "^3.0.0" 8517 + 8518 + whatwg-url@^8.4.0: 8519 + version "8.7.0" 8520 + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz" 8521 + integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== 8522 + dependencies: 8523 + lodash "^4.7.0" 8524 + tr46 "^2.1.0" 8525 + webidl-conversions "^6.1.0" 8526 + 8527 + which-boxed-primitive@^1.0.2: 8528 + version "1.0.2" 8529 + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" 8530 + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== 8531 + dependencies: 8532 + is-bigint "^1.0.1" 8533 + is-boolean-object "^1.1.0" 8534 + is-number-object "^1.0.4" 8535 + is-string "^1.0.5" 8536 + is-symbol "^1.0.3" 8537 + 8538 + which@^1.2.9, which@^1.3.1: 8539 + version "1.3.1" 8540 + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" 8541 + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 8542 + dependencies: 8543 + isexe "^2.0.0" 8544 + 8545 + which@^2.0.1, which@^2.0.2: 8546 + version "2.0.2" 8547 + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" 8548 + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 8549 + dependencies: 8550 + isexe "^2.0.0" 8551 + 8552 + wide-align@^1.1.0: 8553 + version "1.1.5" 8554 + resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz" 8555 + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== 8556 + dependencies: 8557 + string-width "^1.0.2 || 2 || 3 || 4" 8558 + 8559 + word-wrap@^1.2.3: 8560 + version "1.2.3" 8561 + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" 8562 + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== 8563 + 8564 + wordwrap@^1.0.0: 8565 + version "1.0.0" 8566 + resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" 8567 + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== 8568 + 8569 + wrap-ansi@^7.0.0: 8570 + version "7.0.0" 8571 + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" 8572 + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 8573 + dependencies: 8574 + ansi-styles "^4.0.0" 8575 + string-width "^4.1.0" 8576 + strip-ansi "^6.0.0" 8577 + 8578 + wrappy@1: 8579 + version "1.0.2" 8580 + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" 8581 + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 8582 + 8583 + write-file-atomic@^2.4.2: 8584 + version "2.4.3" 8585 + resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz" 8586 + integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== 8587 + dependencies: 8588 + graceful-fs "^4.1.11" 8589 + imurmurhash "^0.1.4" 8590 + signal-exit "^3.0.2" 8591 + 8592 + write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: 8593 + version "3.0.3" 8594 + resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" 8595 + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== 8596 + dependencies: 8597 + imurmurhash "^0.1.4" 8598 + is-typedarray "^1.0.0" 8599 + signal-exit "^3.0.2" 8600 + typedarray-to-buffer "^3.1.5" 8601 + 8602 + write-file-atomic@^4.0.1: 8603 + version "4.0.2" 8604 + resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz" 8605 + integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== 8606 + dependencies: 8607 + imurmurhash "^0.1.4" 8608 + signal-exit "^3.0.7" 8609 + 8610 + write-json-file@^3.2.0: 8611 + version "3.2.0" 8612 + resolved "https://registry.npmjs.org/write-json-file/-/write-json-file-3.2.0.tgz" 8613 + integrity sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ== 8614 + dependencies: 8615 + detect-indent "^5.0.0" 8616 + graceful-fs "^4.1.15" 8617 + make-dir "^2.1.0" 8618 + pify "^4.0.1" 8619 + sort-keys "^2.0.0" 8620 + write-file-atomic "^2.4.2" 8621 + 8622 + write-json-file@^4.3.0: 8623 + version "4.3.0" 8624 + resolved "https://registry.npmjs.org/write-json-file/-/write-json-file-4.3.0.tgz" 8625 + integrity sha512-PxiShnxf0IlnQuMYOPPhPkhExoCQuTUNPOa/2JWCYTmBquU9njyyDuwRKN26IZBlp4yn1nt+Agh2HOOBl+55HQ== 8626 + dependencies: 8627 + detect-indent "^6.0.0" 8628 + graceful-fs "^4.1.15" 8629 + is-plain-obj "^2.0.0" 8630 + make-dir "^3.0.0" 8631 + sort-keys "^4.0.0" 8632 + write-file-atomic "^3.0.0" 8633 + 8634 + write-pkg@^4.0.0: 8635 + version "4.0.0" 8636 + resolved "https://registry.npmjs.org/write-pkg/-/write-pkg-4.0.0.tgz" 8637 + integrity sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA== 8638 + dependencies: 8639 + sort-keys "^2.0.0" 8640 + type-fest "^0.4.1" 8641 + write-json-file "^3.2.0" 8642 + 8643 + xtend@^4.0.0, xtend@~4.0.1: 8644 + version "4.0.2" 8645 + resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" 8646 + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== 8647 + 8648 + y18n@^5.0.5: 8649 + version "5.0.8" 8650 + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" 8651 + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== 8652 + 8653 + yallist@^3.0.0, yallist@^3.1.1: 8654 + version "3.1.1" 8655 + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" 8656 + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== 8657 + 8658 + yallist@^4.0.0: 8659 + version "4.0.0" 8660 + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" 8661 + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 8662 + 8663 + yaml@^1.10.0: 8664 + version "1.10.2" 8665 + resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" 8666 + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== 8667 + 8668 + yargs-parser@20.2.4: 8669 + version "20.2.4" 8670 + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" 8671 + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== 8672 + 8673 + yargs-parser@^20.2.2, yargs-parser@^20.2.3: 8674 + version "20.2.9" 8675 + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" 8676 + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== 8677 + 8678 + yargs-parser@^21.0.0, yargs-parser@^21.0.1: 8679 + version "21.1.1" 8680 + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" 8681 + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== 8682 + 8683 + yargs@^16.2.0: 8684 + version "16.2.0" 8685 + resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" 8686 + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== 8687 + dependencies: 8688 + cliui "^7.0.2" 8689 + escalade "^3.1.1" 8690 + get-caller-file "^2.0.5" 8691 + require-directory "^2.1.1" 8692 + string-width "^4.2.0" 8693 + y18n "^5.0.5" 8694 + yargs-parser "^20.2.2" 8695 + 8696 + yargs@^17.3.1: 8697 + version "17.5.1" 8698 + resolved "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz" 8699 + integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== 8700 + dependencies: 8701 + cliui "^7.0.2" 8702 + escalade "^3.1.1" 8703 + get-caller-file "^2.0.5" 8704 + require-directory "^2.1.1" 8705 + string-width "^4.2.3" 8706 + y18n "^5.0.5" 8707 + yargs-parser "^21.0.0" 8708 + 8709 + yn@3.1.1: 8710 + version "3.1.1" 8711 + resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" 8712 + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== 8713 + 8714 + yocto-queue@^0.1.0: 8715 + version "0.1.0" 8716 + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" 8717 + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== 8718 + 8719 + zod@^3.14.2: 8720 + version "3.19.1" 8721 + resolved "https://registry.npmjs.org/zod/-/zod-3.19.1.tgz" 8722 + integrity sha512-LYjZsEDhCdYET9ikFu6dVPGp2YH9DegXjdJToSzD9rO6fy4qiRYFoyEYwps88OseJlPyl2NOe2iJuhEhL7IpEA==