├── test ├── fixtures │ ├── .env.empty │ ├── .env.expand.error │ └── .env.test ├── libs │ └── vitest.ts ├── file.test.ts ├── prompt.test.ts └── vercel.test.ts ├── .gitignore ├── .prettierignore ├── cli.mjs ├── .husky └── pre-commit ├── __mocks__ ├── wyt.ts └── nanospinner.ts ├── .eslintrc.json ├── src ├── libs │ ├── promise.ts │ ├── string.ts │ ├── process.ts │ ├── file.ts │ ├── prompt.ts │ └── vercel.ts ├── cli.ts └── index.ts ├── .github ├── PULL_REQUEST_TEMPLATE.md └── workflows │ ├── release.yml │ └── integration.yml ├── tsconfig.json ├── CHANGELOG.md ├── LICENSE ├── package.json ├── README.md └── pnpm-lock.yaml /test/fixtures/.env.empty: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | pnpm-lock.yaml 3 | -------------------------------------------------------------------------------- /test/fixtures/.env.expand.error: -------------------------------------------------------------------------------- 1 | A=$$ 2 | -------------------------------------------------------------------------------- /cli.mjs: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | import './dist/cli.mjs' 4 | -------------------------------------------------------------------------------- /test/fixtures/.env.test: -------------------------------------------------------------------------------- 1 | keyA=valueA 2 | keyAExpanded=$keyA 3 | keyB=valueB 4 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | pnpx lint-staged 5 | -------------------------------------------------------------------------------- /__mocks__/wyt.ts: -------------------------------------------------------------------------------- 1 | import { vi } from 'vitest' 2 | 3 | const rateLimiter = vi.fn() 4 | const wyt = vi.fn(() => rateLimiter) 5 | 6 | export default wyt 7 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["@hideoo"], 3 | "overrides": [ 4 | { 5 | "files": ["prompt.*", "cli.*", "scripts/**/*.*"], 6 | "rules": { 7 | "no-console": "off" 8 | } 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /test/libs/vitest.ts: -------------------------------------------------------------------------------- 1 | import { type SpyInstance } from 'vitest' 2 | 3 | // eslint-disable-next-line @typescript-eslint/no-explicit-any 4 | export type Spy any> = SpyInstance, ReturnType> 5 | -------------------------------------------------------------------------------- /__mocks__/nanospinner.ts: -------------------------------------------------------------------------------- 1 | import { type Spinner } from 'nanospinner' 2 | import { type SpyInstance, vi } from 'vitest' 3 | 4 | const spinner: Partial<{ [key in keyof Spinner]: SpyInstance }> = { 5 | error: vi.fn(() => spinner), 6 | start: vi.fn(() => spinner), 7 | success: vi.fn(() => spinner), 8 | } 9 | 10 | export const createSpinner = vi.fn(() => spinner) 11 | -------------------------------------------------------------------------------- /src/libs/promise.ts: -------------------------------------------------------------------------------- 1 | export function throwIfAnyRejected(results: PromiseSettledResult[]): void { 2 | for (const result of results) { 3 | if (isRejected(result)) { 4 | throw result.reason 5 | } 6 | } 7 | } 8 | 9 | function isRejected(input: PromiseSettledResult): input is PromiseRejectedResult { 10 | return input.status === 'rejected' 11 | } 12 | -------------------------------------------------------------------------------- /src/libs/string.ts: -------------------------------------------------------------------------------- 1 | export function pluralize(count: number, word: string): string 2 | export function pluralize(count: number, singular: string, plural: string): string 3 | export function pluralize(count: number, wordOrSingular: string, plural?: string): string { 4 | if (!plural) { 5 | return wordOrSingular + (count === 1 ? '' : 's') 6 | } 7 | 8 | return count === 1 ? wordOrSingular : plural 9 | } 10 | -------------------------------------------------------------------------------- /src/libs/process.ts: -------------------------------------------------------------------------------- 1 | import { exec as execute } from 'node:child_process' 2 | import { promisify } from 'node:util' 3 | 4 | export const exec = promisify(execute) 5 | 6 | export function isExecError(error: unknown): error is ExecError { 7 | return error instanceof Error && typeof (error as ExecError).stderr === 'string' 8 | } 9 | 10 | interface ExecError extends Error { 11 | stderr: string 12 | stdout: string 13 | } 14 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 5 | 6 | **Describe the pull request** 7 | 8 | A clear and concise description of what is being fixed, added or modified. 9 | 10 | **Why** 11 | 12 | Why are these changes necessary? 13 | 14 | **How** 15 | 16 | How were these changes implemented? 17 | 18 | **Screenshots** 19 | 20 | If applicable, add screenshots to help explain what is being modified. 21 | 22 | 23 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "allowJs": false, 4 | "esModuleInterop": true, 5 | "forceConsistentCasingInFileNames": true, 6 | "lib": ["esnext"], 7 | "module": "esnext", 8 | "moduleResolution": "node", 9 | "noEmit": true, 10 | "noFallthroughCasesInSwitch": true, 11 | "noImplicitReturns": true, 12 | "noUncheckedIndexedAccess": true, 13 | "noUnusedParameters": true, 14 | "resolveJsonModule": true, 15 | "skipLibCheck": true, 16 | "strict": true, 17 | "target": "es2018" 18 | }, 19 | "exclude": ["node_modules", "dist"] 20 | } 21 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | All notable changes to this project will be documented in this file. 4 | 5 | ## v0.5.0 6 | 7 | ### 🚀 Features 8 | 9 | - Add the `--yes` option to skip confirmation prompts in interactive mode. 10 | 11 | ## v0.4.0 12 | 13 | ### 🐞 Bug Fixes 14 | 15 | - Wrap long values during variables preview. 16 | - Update the number of requests per 10 seconds from 8 to 6 to avoid rate limiting. 17 | 18 | ## v0.3.0 19 | 20 | ### 🚀 Features 21 | 22 | - Add support for targeting a specific Git branch when pushing environment variables to the Preview environment. 23 | 24 | ## v0.2.0 25 | 26 | ### 🚀 Features 27 | 28 | - Initial public release. 29 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: release 2 | 3 | on: 4 | push: 5 | tags: 6 | - 'v*.*.*' 7 | 8 | jobs: 9 | publish: 10 | name: Release 11 | runs-on: ubuntu-latest 12 | steps: 13 | - name: Checkout 14 | uses: actions/checkout@v4 15 | 16 | - name: Install pnpm 17 | uses: pnpm/action-setup@v4 18 | 19 | - name: Install Node.js 20 | uses: actions/setup-node@v3 21 | with: 22 | cache: pnpm 23 | node-version: 18 24 | registry-url: 'https://registry.npmjs.org' 25 | 26 | - name: Install dependencies 27 | run: pnpm install 28 | 29 | - name: Publish 30 | run: pnpm publish --no-git-checks --access public 31 | env: 32 | NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }} 33 | 34 | - name: Draft new Release 35 | uses: softprops/action-gh-release@v1 36 | with: 37 | draft: true 38 | -------------------------------------------------------------------------------- /.github/workflows/integration.yml: -------------------------------------------------------------------------------- 1 | name: integration 2 | 3 | on: 4 | push: 5 | branches: 6 | - '**' 7 | tags-ignore: 8 | - '**' 9 | pull_request: 10 | 11 | jobs: 12 | lint_test: 13 | name: Lint & Test 14 | runs-on: ubuntu-latest 15 | # Run on external PRs only as the workflow will be already running for the push event on the branch for internal 16 | # PRs. 17 | if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository 18 | steps: 19 | - name: Checkout 20 | uses: actions/checkout@v4 21 | 22 | - name: Install pnpm 23 | uses: pnpm/action-setup@v4 24 | 25 | - name: Install Node.js 26 | uses: actions/setup-node@v4 27 | with: 28 | cache: pnpm 29 | node-version: 18 30 | 31 | - name: Install dependencies 32 | run: pnpm install 33 | 34 | - name: Lint 35 | run: pnpm lint 36 | 37 | - name: Test 38 | run: pnpm test 39 | env: 40 | NODE_DISABLE_COLORS: 1 41 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022-present, HiDeoo 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. -------------------------------------------------------------------------------- /test/file.test.ts: -------------------------------------------------------------------------------- 1 | import { describe, expect, test } from 'vitest' 2 | 3 | import { pushEnvVars } from '../src' 4 | 5 | describe('file', () => { 6 | test('should throw if the provided file does not exist', async () => { 7 | await expect(pushEnvVars('test/fixtures/.env.unknown', ['production'])).rejects.toThrowErrorMatchingInlineSnapshot( 8 | '"No file found at \'test/fixtures/.env.unknown\'."' 9 | ) 10 | }) 11 | }) 12 | 13 | describe('dotenv', () => { 14 | test('should throw if the file does not contain any environment variables', async () => { 15 | await expect(pushEnvVars('test/fixtures/.env.empty', ['production'])).rejects.toThrowErrorMatchingInlineSnapshot( 16 | '"No environment variables found in \'test/fixtures/.env.empty\'."' 17 | ) 18 | }) 19 | 20 | test('should throw if an environment variable fails to expand', async () => { 21 | await expect( 22 | pushEnvVars('test/fixtures/.env.expand.error', ['production']) 23 | ).rejects.toThrowErrorMatchingInlineSnapshot( 24 | '"Unable to parse and expand environment variables in \'test/fixtures/.env.expand.error\'."' 25 | ) 26 | }) 27 | }) 28 | -------------------------------------------------------------------------------- /src/libs/file.ts: -------------------------------------------------------------------------------- 1 | import assert from 'node:assert' 2 | import fs from 'node:fs' 3 | 4 | import dotenv from 'dotenv' 5 | import dotenvExpand from 'dotenv-expand' 6 | 7 | export function validateFile(filePath: string) { 8 | assert(fs.existsSync(filePath), `No file found at '${filePath}'.`) 9 | } 10 | 11 | export function parseEnvFile(envFilePath: string): EnvVars { 12 | const content = fs.readFileSync(envFilePath, 'utf8') 13 | 14 | const envVars = dotenv.parse(content) 15 | 16 | if (Object.keys(envVars).length === 0) { 17 | throw new Error(`No environment variables found in '${envFilePath}'.`) 18 | } 19 | 20 | try { 21 | const parsedEnvVars = dotenvExpand.expand({ ignoreProcessEnv: true, parsed: envVars }) 22 | 23 | if (!parsedEnvVars.parsed || parsedEnvVars.error) { 24 | throw new Error('Unable to expand environment variables.') 25 | } 26 | 27 | return parsedEnvVars.parsed 28 | } catch (error) { 29 | throw new Error(`Unable to parse and expand environment variables in '${envFilePath}'.`, { 30 | cause: error instanceof Error ? error : undefined, 31 | }) 32 | } 33 | } 34 | 35 | export type EnvVars = Record 36 | -------------------------------------------------------------------------------- /src/cli.ts: -------------------------------------------------------------------------------- 1 | import cac from 'cac' 2 | import { red } from 'kolorist' 3 | 4 | import { version } from '../package.json' 5 | 6 | import { pushEnvVars } from '.' 7 | 8 | const cli = cac('vercel-env-push') 9 | 10 | cli.version(version).help((sections) => { 11 | sections.splice(3, 0, { 12 | body: 'Environments: development - preview - production', 13 | }) 14 | }) 15 | 16 | cli 17 | .command(' [...otherEnvs]') 18 | .option('--dry, --dry-run', 'List environment variables without pushing them') 19 | .option('-t, --token ', 'Login token to use for pushing environment variables') 20 | .option('-b, --branch ', 'Specific git branch for pushed preview environment variables') 21 | .option('-y, --yes', 'Skip confirmation prompt for pushing environment variables') 22 | .action(async (file: string, env: string, otherEnvs: string[], options: CliOptions) => { 23 | await pushEnvVars(file, [env, ...otherEnvs], { ...options, interactive: true }) 24 | }) 25 | 26 | async function run() { 27 | try { 28 | cli.parse(process.argv, { run: false }) 29 | 30 | await cli.runMatchedCommand() 31 | } catch (error) { 32 | const isError = error instanceof Error 33 | 34 | console.error(red(`Something went wrong: ${isError ? error.message : error}`)) 35 | 36 | if (isError && error.cause) { 37 | console.error(error.cause) 38 | } 39 | 40 | process.exit(1) 41 | } 42 | } 43 | 44 | run() 45 | 46 | interface CliOptions { 47 | branch?: string 48 | dryRun?: boolean 49 | token?: string 50 | yes?: boolean 51 | } 52 | -------------------------------------------------------------------------------- /src/libs/prompt.ts: -------------------------------------------------------------------------------- 1 | import readline from 'node:readline' 2 | 3 | import Table from 'cli-table3' 4 | import * as kolorist from 'kolorist' 5 | import { createSpinner } from 'nanospinner' 6 | 7 | export { type Spinner } from 'nanospinner' 8 | 9 | const tableColumnWidth = Math.floor(((process.stdout.columns ?? 80) - 10) / 2) 10 | 11 | export function text(builder: (colors: typeof kolorist) => string) { 12 | console.log(builder(kolorist)) 13 | } 14 | 15 | export function table(builder: (colors: typeof kolorist) => [headers: string[], values: string[][]]) { 16 | const [headers, values] = builder(kolorist) 17 | 18 | const table = new Table({ 19 | colWidths: [tableColumnWidth, tableColumnWidth], 20 | head: headers, 21 | style: { head: [] }, 22 | wordWrap: true, 23 | wrapOnWordBoundary: false, 24 | }) 25 | 26 | table.push(...values) 27 | 28 | console.log(table.toString()) 29 | } 30 | 31 | export function redact(value: string) { 32 | if (value.length < 5) { 33 | return '*'.repeat(value.length) 34 | } 35 | 36 | return value[0] + '*'.repeat(value.length - 2) + value[value.length - 1] 37 | } 38 | 39 | export function spin(message: string) { 40 | return createSpinner(message, { color: 'cyan' }).start() 41 | } 42 | 43 | export function confirm(question: string, defaultYes = true) { 44 | const rl = readline.createInterface({ 45 | input: process.stdin, 46 | output: process.stdout, 47 | }) 48 | 49 | return new Promise((resolve, reject) => { 50 | const answers = getConfirmAnswers(defaultYes) 51 | 52 | rl.question(`${question} (${answers[0]}/${answers[1]}) `, (answer) => { 53 | rl.close() 54 | 55 | const sanitizedAnswer = answer.trim().toLowerCase() 56 | 57 | if ((sanitizedAnswer === '' && defaultYes) || sanitizedAnswer === 'y' || sanitizedAnswer === 'yes') { 58 | return resolve() 59 | } 60 | 61 | return reject(new Error('User aborted.')) 62 | }) 63 | }) 64 | } 65 | 66 | function getConfirmAnswers(defaultYes = true): [string, string] { 67 | return [defaultYes ? 'Y' : 'y', !defaultYes ? 'N' : 'n'] 68 | } 69 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vercel-env-push", 3 | "description": "The missing Vercel CLI command to push environment variables from .env files.", 4 | "homepage": "https://github.com/HiDeoo/vercel-env-push", 5 | "version": "0.5.0", 6 | "author": "HiDeoo", 7 | "license": "MIT", 8 | "type": "module", 9 | "main": "./dist/index.mjs", 10 | "module": "./dist/index.mjs", 11 | "types": "./dist/index.d.ts", 12 | "bin": "./cli.mjs", 13 | "exports": { 14 | ".": { 15 | "import": "./dist/index.mjs", 16 | "require": "./dist/index.cjs", 17 | "types": "./dist/index.d.ts" 18 | } 19 | }, 20 | "scripts": { 21 | "dev": "unbuild --stub", 22 | "build": "unbuild", 23 | "test": "vitest", 24 | "lint": "prettier -c . && eslint . --max-warnings=0 && tsc --noEmit", 25 | "prepare": "husky install", 26 | "prepublishOnly": "pnpm run build" 27 | }, 28 | "dependencies": { 29 | "cac": "6.7.12", 30 | "cli-table3": "0.6.2", 31 | "dotenv": "16.0.1", 32 | "dotenv-expand": "8.0.3", 33 | "kolorist": "1.5.1", 34 | "nanospinner": "1.1.0", 35 | "wyt": "2.0.1" 36 | }, 37 | "devDependencies": { 38 | "@hideoo/eslint-config": "0.0.5", 39 | "@hideoo/prettier-config": "0.0.1", 40 | "@types/node": "14.18.21", 41 | "eslint": "8.18.0", 42 | "husky": "8.0.1", 43 | "lint-staged": "13.0.3", 44 | "prettier": "2.7.1", 45 | "typescript": "4.7.4", 46 | "unbuild": "0.7.4", 47 | "vitest": "0.17.0" 48 | }, 49 | "files": [ 50 | "cli.mjs", 51 | "dist" 52 | ], 53 | "packageManager": "pnpm@9.15.9", 54 | "sideEffects": false, 55 | "engines": { 56 | "node": ">=14.0.0" 57 | }, 58 | "keywords": [ 59 | "cli", 60 | "environment-variables", 61 | "env", 62 | "push", 63 | "vercel", 64 | "env-file" 65 | ], 66 | "bugs": { 67 | "url": "https://github.com/HiDeoo/vercel-env-push/issues" 68 | }, 69 | "repository": { 70 | "type": "git", 71 | "url": "https://github.com/HiDeoo/vercel-env-push" 72 | }, 73 | "prettier": "@hideoo/prettier-config", 74 | "lint-staged": { 75 | "**/*": "prettier --write --ignore-unknown --cache", 76 | "**/*.ts": "eslint --max-warnings=0" 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { type EnvVars, parseEnvFile, validateFile } from './libs/file' 2 | import { confirm, redact, type Spinner, table, text, spin } from './libs/prompt' 3 | import { pluralize } from './libs/string' 4 | import { replaceEnvVars, validateVercelEnvs } from './libs/vercel' 5 | 6 | export async function pushEnvVars(envFilePath: string, envs: string[], options?: Options) { 7 | validateVercelEnvs(envs, options?.branch) 8 | 9 | validateFile(envFilePath) 10 | 11 | if (options?.interactive) { 12 | logParams(envFilePath, envs, options?.branch) 13 | } 14 | 15 | let envVars = parseEnvFile(envFilePath) 16 | const envVarsCount = Object.keys(envVars).length 17 | 18 | if (options?.prePush) { 19 | envVars = await options.prePush(envVars) 20 | } 21 | 22 | if (options?.interactive) { 23 | logEnvVars(envVars, envVarsCount) 24 | } 25 | 26 | if (options?.dryRun) { 27 | return 28 | } 29 | 30 | if (options?.interactive && !options.yes) { 31 | await confirm( 32 | `Do you want to push ${pluralize(envVarsCount, 'this', 'these')} environment ${pluralize( 33 | envVarsCount, 34 | 'variable' 35 | )}?` 36 | ) 37 | } 38 | 39 | let spinner: Spinner | undefined 40 | 41 | if (options?.interactive) { 42 | spinner = spin(`Pushing environment ${pluralize(envVarsCount, 'variable')}`) 43 | } 44 | 45 | try { 46 | await replaceEnvVars(envs, envVars, { branch: options?.branch, token: options?.token }) 47 | } catch (error) { 48 | if (options?.interactive && spinner) { 49 | spinner.error() 50 | } 51 | 52 | throw error 53 | } 54 | 55 | if (options?.interactive && spinner) { 56 | spinner.success({ 57 | text: `Pushed ${envVarsCount} environment ${pluralize(envVarsCount, 'variable')} to ${envs.length} ${pluralize( 58 | envs.length, 59 | 'environment' 60 | )}.`, 61 | }) 62 | } 63 | } 64 | 65 | function logParams(envFilePath: string, envs: string[], branch?: string) { 66 | text(({ cyan, green, red, yellow }) => { 67 | const formatter = new Intl.ListFormat('en', { style: 'short', type: 'conjunction' }) 68 | 69 | return `Preparing environment variables push from ${cyan(`'${envFilePath}'`)} to ${formatter.format( 70 | envs.map((env) => { 71 | if (env === 'development') { 72 | return green(env) 73 | } else if (env === 'preview') { 74 | return yellow(`${env}${branch ? ` (branch: ${branch})` : ''}`) 75 | } 76 | 77 | return red(env) 78 | }) 79 | )}.` 80 | }) 81 | } 82 | 83 | function logEnvVars(envVars: EnvVars, envVarsCount: number) { 84 | text(({ dim }) => dim(`The following environment ${pluralize(envVarsCount, 'variable')} will be pushed:`)) 85 | table(({ bold }) => [ 86 | [bold('Variable'), bold('Value')], 87 | Object.entries(envVars).map(([key, value]) => [key, redact(value)]), 88 | ]) 89 | } 90 | 91 | interface Options { 92 | branch?: string 93 | dryRun?: boolean 94 | interactive?: boolean 95 | prePush?: (envVars: EnvVars) => EnvVars | Promise 96 | token?: string 97 | yes?: boolean 98 | } 99 | -------------------------------------------------------------------------------- /src/libs/vercel.ts: -------------------------------------------------------------------------------- 1 | import assert from 'node:assert' 2 | 3 | import wyt from 'wyt' 4 | 5 | import { type EnvVars } from './file' 6 | import { exec, isExecError } from './process' 7 | import { throwIfAnyRejected } from './promise' 8 | 9 | const vercelEnvs = ['development', 'preview', 'production'] as const 10 | 11 | let waitForRateLimiter: ReturnType 12 | 13 | export function validateVercelEnvs(envs: string[], branch?: string): asserts envs is VercelEnv[] { 14 | assert(envs.length > 0, 'No environments specified.') 15 | 16 | for (const env of envs) { 17 | assert((vercelEnvs as ReadonlyArray).includes(env), `Unknown environment '${env}' specified.`) 18 | } 19 | 20 | if (branch && branch.length > 0) { 21 | assert( 22 | envs.length === 1 && envs[0] === 'preview', 23 | 'Only the preview environment can be specified when specifying a branch.' 24 | ) 25 | } 26 | } 27 | 28 | export async function replaceEnvVars(envs: VercelEnv[], envVars: EnvVars, options: VercelOptions) { 29 | await removeEnvVars(envs, envVars, options) 30 | await addEnvVars(envs, envVars, options) 31 | } 32 | 33 | async function removeEnvVars(envs: VercelEnv[], envVars: EnvVars, options: VercelOptions) { 34 | rateLimit() 35 | 36 | const promises: Promise[] = [] 37 | 38 | for (const envVarKey of Object.keys(envVars)) { 39 | for (const env of envs) { 40 | promises.push(removeEnvVar(env, envVarKey, options)) 41 | } 42 | } 43 | 44 | throwIfAnyRejected(await Promise.allSettled(promises)) 45 | } 46 | 47 | async function addEnvVars(envs: VercelEnv[], envVars: EnvVars, options: VercelOptions) { 48 | rateLimit() 49 | 50 | const promises: Promise[] = [] 51 | 52 | for (const [envVarKey, envVarValue] of Object.entries(envVars)) { 53 | for (const env of envs) { 54 | promises.push(addEnvVar(env, envVarKey, envVarValue, options)) 55 | } 56 | } 57 | 58 | throwIfAnyRejected(await Promise.allSettled(promises)) 59 | } 60 | 61 | async function addEnvVar(env: VercelEnv, key: string, value: string, options: VercelOptions) { 62 | try { 63 | await waitForRateLimiter() 64 | 65 | await execCommandWithNpx( 66 | `printf "${value}" | npx vercel env add ${key} ${env}${getBranchCommandArgument( 67 | options.branch 68 | )}${getTokenCommandArgument(options.token)}` 69 | ) 70 | } catch (error) { 71 | throw new Error(`Unable to add environment variable '${key}' to '${env}'.`, { 72 | cause: error instanceof Error ? error : undefined, 73 | }) 74 | } 75 | } 76 | 77 | async function removeEnvVar(env: VercelEnv, key: string, options: VercelOptions) { 78 | try { 79 | await waitForRateLimiter() 80 | 81 | await execCommandWithNpx( 82 | `npx vercel env rm ${key} ${env}${getBranchCommandArgument(options.branch)} -y${getTokenCommandArgument( 83 | options.token 84 | )}` 85 | ) 86 | } catch (error) { 87 | if (!isExecError(error) || !error.stderr.includes('was not found')) { 88 | throw new Error(`Unable to remove environment variable '${key}' from '${env}'.`, { 89 | cause: error instanceof Error ? error : undefined, 90 | }) 91 | } 92 | } 93 | } 94 | 95 | async function execCommandWithNpx(command: string) { 96 | return exec(command.replace('npx', 'npx --yes')) 97 | } 98 | 99 | function getTokenCommandArgument(token?: VercelOptions['token']) { 100 | return token && token.length > 0 ? ` -t ${token}` : '' 101 | } 102 | 103 | function getBranchCommandArgument(branch?: VercelOptions['branch']) { 104 | return branch && branch.length > 0 ? ` ${branch}` : '' 105 | } 106 | 107 | function rateLimit() { 108 | waitForRateLimiter = wyt(6, 10_000) 109 | } 110 | 111 | type VercelEnv = typeof vercelEnvs[number] 112 | 113 | interface VercelOptions { 114 | branch?: string 115 | token?: string 116 | } 117 | -------------------------------------------------------------------------------- /test/prompt.test.ts: -------------------------------------------------------------------------------- 1 | import * as kolorist from 'kolorist' 2 | import { createSpinner } from 'nanospinner' 3 | import { afterAll, afterEach, beforeAll, describe, expect, test, vi } from 'vitest' 4 | 5 | import { pushEnvVars } from '../src' 6 | import * as process from '../src/libs/process' 7 | import * as prompt from '../src/libs/prompt' 8 | 9 | import { type Spy } from './libs/vitest' 10 | 11 | describe('prompt', () => { 12 | let execSpy: Spy 13 | 14 | let confirmSpy: Spy 15 | let spinSpy: Spy 16 | let tableSpy: Spy 17 | let textSpy: Spy 18 | 19 | beforeAll(() => { 20 | vi.mock('nanospinner') 21 | vi.mock('wyt') 22 | 23 | execSpy = vi.spyOn(process, 'exec').mockImplementation(vi.fn<[string]>()) 24 | 25 | confirmSpy = vi.spyOn(prompt, 'confirm') 26 | confirmSpy = vi.spyOn(prompt, 'confirm') 27 | spinSpy = vi.spyOn(prompt, 'spin') 28 | tableSpy = vi.spyOn(prompt, 'table').mockReturnValue() 29 | textSpy = vi.spyOn(prompt, 'text').mockReturnValue() 30 | }) 31 | 32 | afterAll(() => { 33 | vi.restoreAllMocks() 34 | }) 35 | 36 | afterEach(() => { 37 | vi.clearAllMocks() 38 | }) 39 | 40 | test('should not ask for confirmation in non-interactive mode', async () => { 41 | await pushEnvVars('test/fixtures/.env.test', ['production']) 42 | 43 | expect(confirmSpy).not.toHaveBeenCalled() 44 | }) 45 | 46 | test('should not ask for confirmation in interactive mode with --yes option', async () => { 47 | await pushEnvVars('test/fixtures/.env.test', ['production'], { interactive: true, yes: true }) 48 | 49 | expect(confirmSpy).not.toHaveBeenCalled() 50 | }) 51 | 52 | test('should not push environment variables in interactive mode with no confirmation', async () => { 53 | confirmSpy.mockRejectedValue(new Error('test')) 54 | 55 | await expect(pushEnvVars('test/fixtures/.env.test', ['production'], { interactive: true })).rejects.toThrowError() 56 | 57 | expect(execSpy).not.toHaveBeenCalled() 58 | }) 59 | 60 | test('should push environment variables in interactive mode with a confirmation', async () => { 61 | confirmSpy.mockResolvedValue() 62 | 63 | await pushEnvVars('test/fixtures/.env.test', ['production'], { interactive: true }) 64 | 65 | expect(execSpy).toHaveBeenCalledTimes(6) 66 | }) 67 | 68 | test('should not log anything in non-interactive mode', async () => { 69 | await pushEnvVars('test/fixtures/.env.test', ['production']) 70 | 71 | expect(textSpy).not.toHaveBeenCalled() 72 | }) 73 | 74 | test('should log the environment file path and push environments in interactive mode', async () => { 75 | confirmSpy.mockResolvedValue() 76 | 77 | await pushEnvVars('test/fixtures/.env.test', ['development', 'preview', 'production'], { interactive: true }) 78 | 79 | expect(textSpy.mock.calls[0]?.[0](kolorist)).toMatchInlineSnapshot( 80 | '"Preparing environment variables push from \'test/fixtures/.env.test\' to development, preview, & production."' 81 | ) 82 | }) 83 | 84 | test('should log the environment file path, push environment and git branch in interactive mode', async () => { 85 | confirmSpy.mockResolvedValue() 86 | 87 | await pushEnvVars('test/fixtures/.env.test', ['preview'], { interactive: true, branch: 'test-branch' }) 88 | 89 | expect(textSpy.mock.calls[0]?.[0](kolorist)).toMatchInlineSnapshot( 90 | '"Preparing environment variables push from \'test/fixtures/.env.test\' to preview (branch: test-branch)."' 91 | ) 92 | }) 93 | 94 | test('should log redacted environment variables in interactive mode', async () => { 95 | confirmSpy.mockResolvedValue() 96 | 97 | await pushEnvVars('test/fixtures/.env.test', ['production'], { interactive: true }) 98 | 99 | expect(textSpy.mock.calls[1]?.[0](kolorist)).toMatchInlineSnapshot( 100 | '"The following environment variables will be pushed:"' 101 | ) 102 | 103 | expect(tableSpy).toHaveBeenCalledOnce() 104 | expect(tableSpy.mock.calls[0]?.[0](kolorist)).toMatchInlineSnapshot(` 105 | [ 106 | [ 107 | "Variable", 108 | "Value", 109 | ], 110 | [ 111 | [ 112 | "keyA", 113 | "v****A", 114 | ], 115 | [ 116 | "keyAExpanded", 117 | "v****A", 118 | ], 119 | [ 120 | "keyB", 121 | "v****B", 122 | ], 123 | ], 124 | ] 125 | `) 126 | }) 127 | 128 | test('should not show a spinner in non-interactive mode', async () => { 129 | await pushEnvVars('test/fixtures/.env.test', ['production']) 130 | 131 | expect(spinSpy).not.toHaveBeenCalled() 132 | }) 133 | 134 | test('should show a spinner in interactive mode', async () => { 135 | confirmSpy.mockResolvedValue() 136 | 137 | await pushEnvVars('test/fixtures/.env.test', ['production'], { interactive: true }) 138 | 139 | expect(spinSpy).toHaveBeenCalledOnce() 140 | 141 | const spinnerMock = vi.mocked(createSpinner).mock.results[0]?.value 142 | 143 | expect(spinnerMock.start).toHaveBeenCalledOnce() 144 | expect(spinnerMock.success).toHaveBeenCalledOnce() 145 | }) 146 | 147 | test('should show an error symbol instead of a spinner when encountering an error in interactive mode', async () => { 148 | execSpy.mockRejectedValueOnce(new Error('test')) 149 | 150 | confirmSpy.mockResolvedValue() 151 | 152 | await expect(pushEnvVars('test/fixtures/.env.test', ['production'], { interactive: true })).rejects.toThrow() 153 | 154 | expect(spinSpy).toHaveBeenCalledOnce() 155 | 156 | const spinnerMock = vi.mocked(createSpinner).mock.results[0]?.value 157 | 158 | expect(spinnerMock.start).toHaveBeenCalledOnce() 159 | expect(spinnerMock.error).toHaveBeenCalledOnce() 160 | }) 161 | }) 162 | 163 | describe('redact', () => { 164 | test.each([ 165 | ['a', '*'], 166 | ['ab', '**'], 167 | ['abc', '***'], 168 | ['abcd', '****'], 169 | ['abcde', 'a***e'], 170 | ['abcdefghijklmnopqrstuvwxyz', `a${'*'.repeat(24)}z`], 171 | ['12345', '1***5'], 172 | ])("should properly redact '%s'", async (value, redactedValue) => { 173 | expect(prompt.redact(value)).toBe(redactedValue) 174 | }) 175 | }) 176 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 |

vercel-env-push 🔏

3 |

The missing vercel env push command

4 |

5 | 6 | Screenshot of vercel-env-push 7 | 8 |

9 |
10 | 11 |
12 | 13 | Integration Status 14 | 15 | 16 | License 17 | 18 |

19 |
20 | 21 | ## Motivations 22 | 23 | The [Vercel command-line interface (CLI)](https://vercel.com/docs/cli) provides a `vercel env pull [file]` command that can be used to pull development environment variables from a Vercel project and write them to a .env file. Unfortunately, the reverse operation is not doable through the Vercel CLI. 24 | 25 | As I couldn't find any other tools providing this functionality with the features I wanted, I decided to write my own which internally uses [`npx`](https://docs.npmjs.com/cli/v8/commands/npx) to run the Vercel CLI either installed locally or fetched remotely. 26 | 27 | > **Note** 28 | > On November 17th 2022, Vercel [released](https://vercel.com/changelog/bulk-upload-now-available-for-environment-variables) bulk upload for environment variables altho this feature is only available through the Vercel Dashboard UI which is an improvement but still not ideal. 29 | 30 | ## Features 31 | 32 | - Usable as a command-line tool or through an API 33 | - Push to multiple environments at once 34 | - Ability to add/remove/edit environment variables before pushing 35 | - Support for [authorization tokens](https://vercel.com/docs/cli#introduction/global-options/token) 36 | - Dry-run mode 37 | 38 | ## Usage 39 | 40 | ### CLI 41 | 42 | You can either add `vercel-env-push` to your project and invoke it with your favorite package manager (or through an entry in your project's `package.json` file): 43 | 44 | ```shell 45 | $ pnpm add -D vercel-env-push 46 | $ pnpm vercel-env-push [...otherEnvs] 47 | ``` 48 | 49 | or use it directly with `npx`: 50 | 51 | ```shell 52 | $ npx vercel-env-push [...otherEnvs] 53 | ``` 54 | 55 | The `file` argument is the path to the .env file containing the environment variables to push. The `env` argument is the name of the environment to push the environment variables to (the supported environments are `development`, `preview` and `production`). You can specify multiple environments by separating them with spaces. 56 | 57 | > **Warning** 58 | > Due to the way the Vercel CLI works, if you have pre-existing environment variables associated to multiple environments (e.g. created through the Vercel Dashboard UI), running `vercel-env-push` to push environment variables to a single environment will remove the environment variables associated to the other environments. Note that environment variables pushed to multiple environments with `vercel-env-push` do not have this limitation as `vercel-env-push` will create a new environment variable for each environment instead of a single one shared across multiple environments. 59 | 60 | #### Usage 61 | 62 | ```shell 63 | # Push the environment variables from the .env.local file to the preview & production environments. 64 | $ pnpm vercel-env-push .env.local preview production 65 | ``` 66 | 67 | #### Options 68 | 69 | The following options are available through the CLI: 70 | 71 | ##### `--dry, --dry-run` 72 | 73 | List environment variables without pushing them. 74 | 75 | ```shell 76 | $ pnpm vercel-env-push .env.local development --dry 77 | ``` 78 | 79 | ##### `-t, --token` 80 | 81 | Login token to use for pushing environment variables. 82 | 83 | ```shell 84 | $ VERCEL_ORG_ID= VERCEL_PROJECT_ID= pnpm vercel-env-push .env.local development -t 85 | ``` 86 | 87 | This can be especially useful if you ever need to push environment variables [from a CI pipeline](https://vercel.com/support/articles/using-vercel-cli-for-custom-workflows). 88 | 89 | ```yaml 90 | - name: Push environment variables from GitHub Actions 91 | run: pnpm vercel-env-push .env.ci preview -t "$VERCEL_TOKEN" --yes 92 | env: 93 | VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} 94 | VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} 95 | VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }} 96 | ``` 97 | 98 | ##### `-b, --branch` 99 | 100 | The Git branch to apply the environment variables to when pushing environment variables to the Preview environment. 101 | 102 | ```shell 103 | $ pnpm vercel-env-push .env.local preview --branch my-preview-branch 104 | ``` 105 | 106 | ##### `-y, --yes` 107 | 108 | Skip confirmation prompt for pushing environment variables. 109 | 110 | This can be especially useful if you ever need to push environment variables [from a CI pipeline](https://vercel.com/support/articles/using-vercel-cli-for-custom-workflows). 111 | 112 | ```yaml 113 | - name: Push environment variables from GitHub Actions 114 | run: pnpm vercel-env-push .env.ci preview -t "$VERCEL_TOKEN" --yes 115 | env: 116 | VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} 117 | VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} 118 | VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }} 119 | ``` 120 | 121 | ### API 122 | 123 | `vercel-env-push` can also be used through an API: 124 | 125 | ```ts 126 | pushEnvVars(envFilePath: string, envs: string[], options?: Options): Promise 127 | ``` 128 | 129 | #### Usage 130 | 131 | ```ts 132 | import { pushEnvVars } from 'vercel-env-push' 133 | 134 | // Push the environment variables from the .env.local file to the preview & production environments. 135 | await pushEnvVars('.env.local', ['preview', 'production']) 136 | ``` 137 | 138 | #### Options 139 | 140 | ##### `token` 141 | 142 | Determines a [login token](https://vercel.com/docs/cli#introduction/global-options/token) to use for pushing environment variables. 143 | 144 | ```ts 145 | import { pushEnvVars } from 'vercel-env-push' 146 | 147 | await pushEnvVars('.env.local', ['preview', 'production'], { 148 | token: process.env.VERCEL_TOKEN, 149 | }) 150 | ``` 151 | 152 | ##### `branch` 153 | 154 | Determines a Git branch to apply the environment variables to when pushing environment variables to the Preview environment. 155 | 156 | ```ts 157 | import { pushEnvVars } from 'vercel-env-push' 158 | 159 | await pushEnvVars('.env.local', ['preview'], { 160 | branch: process.env.GIT_BRANCH, 161 | }) 162 | ``` 163 | 164 | ##### `prePush` 165 | 166 | Specifies a callback that can be used to add/remove/edit environment variables before pushing. 167 | 168 | ```ts 169 | import { pushEnvVars } from 'vercel-env-push' 170 | 171 | await pushEnvVars('.env.local', ['preview', 'production'], { 172 | prePush: async ({ keyToRemove, ...otherEnvVars }) => { 173 | const secretValue = await getSecretValueFromVault() 174 | 175 | return { 176 | ...otherEnvVars, 177 | newKey: 'newValue', 178 | existingKey: 'updatedValue', 179 | secret: secretValue, 180 | } 181 | }, 182 | }) 183 | ``` 184 | 185 | > **Note** 186 | > The `dryRun`, `interactive`, & `yes` options are also available through the API but are mostly useless in this context. 187 | 188 | ## License 189 | 190 | Licensed under the MIT License, Copyright © HiDeoo. 191 | 192 | See [LICENSE](https://github.com/HiDeoo/vercel-env-push/blob/main/LICENSE) for more information. 193 | -------------------------------------------------------------------------------- /test/vercel.test.ts: -------------------------------------------------------------------------------- 1 | import { afterAll, afterEach, beforeAll, describe, expect, test, vi } from 'vitest' 2 | import wyt from 'wyt' 3 | 4 | import { pushEnvVars } from '../src' 5 | import { type EnvVars } from '../src/libs/file' 6 | import * as process from '../src/libs/process' 7 | 8 | import { type Spy } from './libs/vitest' 9 | 10 | const defaultExpectedEnvVars = { 11 | keyA: 'valueA', 12 | keyAExpanded: 'valueA', 13 | keyB: 'valueB', 14 | } 15 | 16 | describe('env', () => { 17 | test('should throw if no environments are provided', async () => { 18 | await expect(pushEnvVars('', [])).rejects.toThrowErrorMatchingInlineSnapshot('"No environments specified."') 19 | }) 20 | 21 | test('should throw if an unknown environment is provided', async () => { 22 | await expect(pushEnvVars('', ['test'])).rejects.toThrowErrorMatchingInlineSnapshot( 23 | '"Unknown environment \'test\' specified."' 24 | ) 25 | }) 26 | 27 | test('should throw if multiple unknown environments are provided', async () => { 28 | await expect(pushEnvVars('', ['test', 'staging'])).rejects.toThrowErrorMatchingInlineSnapshot( 29 | '"Unknown environment \'test\' specified."' 30 | ) 31 | }) 32 | 33 | test('should throw if an unknown environment is provided with known environments', async () => { 34 | await expect(pushEnvVars('', ['production', 'test'])).rejects.toThrowErrorMatchingInlineSnapshot( 35 | '"Unknown environment \'test\' specified."' 36 | ) 37 | }) 38 | 39 | test('should throw if a git branch is specified with more than 1 environment', async () => { 40 | await expect( 41 | pushEnvVars('', ['preview', 'production'], { branch: 'test-branch' }) 42 | ).rejects.toThrowErrorMatchingInlineSnapshot( 43 | '"Only the preview environment can be specified when specifying a branch."' 44 | ) 45 | }) 46 | 47 | test.todo('should throw if a git branch is specified with an environment that is not preview', async () => { 48 | await expect(pushEnvVars('', ['production'], { branch: 'test-branch' })).rejects.toThrowErrorMatchingInlineSnapshot( 49 | '"Only the preview environment can be specified when specifying a branch."' 50 | ) 51 | }) 52 | }) 53 | 54 | describe('env var', () => { 55 | let execSpy: Spy 56 | 57 | beforeAll(() => { 58 | vi.mock('wyt') 59 | 60 | execSpy = vi.spyOn(process, 'exec').mockImplementation(vi.fn<[string]>()) 61 | }) 62 | 63 | afterAll(() => { 64 | vi.restoreAllMocks() 65 | }) 66 | 67 | afterEach(() => { 68 | execSpy.mockClear() 69 | 70 | const rateLimiterMock = vi.mocked(vi.mocked(wyt).mock.results[0]?.value) 71 | rateLimiterMock.mockClear() 72 | }) 73 | 74 | test.each([ 75 | [1, ['production']], 76 | [2, ['preview', 'production']], 77 | [3, ['development', 'preview', 'production']], 78 | ])('should push environment variables to %i environment(s)', async (_count, envs) => { 79 | await pushEnvVars('test/fixtures/.env.test', envs) 80 | 81 | const expectedCommands = getExpectedCommands(envs, defaultExpectedEnvVars) 82 | 83 | expect(execSpy.mock.calls.length).toBe(expectedCommands.length) 84 | 85 | for (const expectedCommand of expectedCommands) { 86 | expect(execSpy.mock.calls).toContainEqual(expectedCommand) 87 | } 88 | }) 89 | 90 | test('should not try to add environment variables if removing them failed for an unknown reason', async () => { 91 | execSpy.mockResolvedValueOnce({ stderr: '', stdout: '' }).mockRejectedValueOnce(new Error('test')) 92 | 93 | await expect(pushEnvVars('test/fixtures/.env.test', ['production'])).rejects.toThrowErrorMatchingInlineSnapshot( 94 | "\"Unable to remove environment variable 'keyAExpanded' from 'production'.\"" 95 | ) 96 | 97 | expect(execSpy).toHaveBeenCalledTimes(3) 98 | }) 99 | 100 | test('should ignore errors related to deleting an unknown environment variables', async () => { 101 | class ExecError extends Error { 102 | constructor(public stderr: string) { 103 | super() 104 | } 105 | } 106 | 107 | const error = new ExecError('test') 108 | error.stderr = 'was not found' 109 | 110 | execSpy.mockResolvedValueOnce({ stderr: '', stdout: '' }).mockRejectedValueOnce(error) 111 | 112 | await pushEnvVars('test/fixtures/.env.test', ['production']) 113 | 114 | expect(execSpy).toHaveBeenCalledTimes(6) 115 | }) 116 | 117 | test('should throw the first encountered error during a push', async () => { 118 | const execResponse = { stderr: '', stdout: '' } 119 | 120 | execSpy 121 | .mockResolvedValueOnce(execResponse) 122 | .mockResolvedValueOnce(execResponse) 123 | .mockResolvedValueOnce(execResponse) 124 | .mockResolvedValueOnce(execResponse) 125 | .mockRejectedValueOnce(new Error('test')) 126 | 127 | await expect(pushEnvVars('test/fixtures/.env.test', ['production'])).rejects.toThrowErrorMatchingInlineSnapshot( 128 | "\"Unable to add environment variable 'keyAExpanded' to 'production'.\"" 129 | ) 130 | 131 | expect(execSpy).toHaveBeenCalledTimes(6) 132 | }) 133 | 134 | test('should rate limit requests', async () => { 135 | await pushEnvVars('test/fixtures/.env.test', ['production']) 136 | 137 | const rateLimiterMock = vi.mocked(vi.mocked(wyt).mock.results[0]?.value) 138 | 139 | expect(rateLimiterMock).toHaveBeenCalledTimes(6) 140 | }) 141 | 142 | describe('dryRun', () => { 143 | test('should not push environment variables with the dry option', async () => { 144 | await pushEnvVars('test/fixtures/.env.test', ['production'], { dryRun: true }) 145 | 146 | expect(execSpy).not.toHaveBeenCalled() 147 | }) 148 | }) 149 | 150 | describe('prePush', () => { 151 | test('should modify environment variable names and values', async () => { 152 | const envs = ['development', 'production'] 153 | 154 | await pushEnvVars('test/fixtures/.env.test', envs, { 155 | prePush: (envVars) => { 156 | const newEnvVars: EnvVars = {} 157 | 158 | for (const [key, value] of Object.entries(envVars)) { 159 | newEnvVars[`modified_${key}`] = `modified_${value}` 160 | } 161 | 162 | return newEnvVars 163 | }, 164 | }) 165 | 166 | const expectedCommands = getExpectedCommands(envs, { 167 | modified_keyA: 'modified_valueA', 168 | modified_keyAExpanded: 'modified_valueA', 169 | modified_keyB: 'modified_valueB', 170 | }) 171 | 172 | expect(execSpy.mock.calls.length).toBe(expectedCommands.length) 173 | 174 | for (const expectedCommand of expectedCommands) { 175 | expect(execSpy.mock.calls).toContainEqual(expectedCommand) 176 | } 177 | }) 178 | 179 | test('should add environment variables', async () => { 180 | const envs = ['development', 'production'] 181 | 182 | await pushEnvVars('test/fixtures/.env.test', envs, { 183 | prePush: (envVars) => { 184 | return { ...envVars, newKey: 'newValue' } 185 | }, 186 | }) 187 | 188 | const expectedCommands = getExpectedCommands(envs, { 189 | ...defaultExpectedEnvVars, 190 | newKey: 'newValue', 191 | }) 192 | 193 | expect(execSpy.mock.calls.length).toBe(expectedCommands.length) 194 | 195 | for (const expectedCommand of expectedCommands) { 196 | expect(execSpy.mock.calls).toContainEqual(expectedCommand) 197 | } 198 | }) 199 | 200 | test('should remove environment variables', async () => { 201 | const envs = ['development', 'production'] 202 | 203 | await pushEnvVars('test/fixtures/.env.test', envs, { 204 | prePush: ({ keyA, keyB, ...otherEnvVars }) => { 205 | return otherEnvVars 206 | }, 207 | }) 208 | 209 | const expectedCommands = getExpectedCommands(envs, { 210 | keyAExpanded: 'valueA', 211 | }) 212 | 213 | expect(execSpy.mock.calls.length).toBe(expectedCommands.length) 214 | 215 | for (const expectedCommand of expectedCommands) { 216 | expect(execSpy.mock.calls).toContainEqual(expectedCommand) 217 | } 218 | }) 219 | 220 | test('should accept an asynchronous prePush transformer', async () => { 221 | const envs = ['development', 'production'] 222 | 223 | await pushEnvVars('test/fixtures/.env.test', envs, { 224 | prePush: async (envVars) => { 225 | const secretValue = await getAsyncSecretValue() 226 | 227 | return { ...envVars, secretValue } 228 | }, 229 | }) 230 | 231 | const expectedCommands = getExpectedCommands(envs, { 232 | ...defaultExpectedEnvVars, 233 | secretValue: 'secretValue', 234 | }) 235 | 236 | expect(execSpy.mock.calls.length).toBe(expectedCommands.length) 237 | 238 | for (const expectedCommand of expectedCommands) { 239 | expect(execSpy.mock.calls).toContainEqual(expectedCommand) 240 | } 241 | }) 242 | 243 | test('should handle a prePush transformer throwing an exception', async () => { 244 | const envs = ['development', 'production'] 245 | 246 | await expect( 247 | pushEnvVars('test/fixtures/.env.test', envs, { 248 | prePush: (envVars) => { 249 | if (Object.keys(envVars).length === Object.keys(defaultExpectedEnvVars).length) { 250 | throw new Error('prePush Error') 251 | } 252 | 253 | return envVars 254 | }, 255 | }) 256 | ).rejects.toThrowErrorMatchingInlineSnapshot('"prePush Error"') 257 | }) 258 | }) 259 | 260 | describe('token', () => { 261 | test('should forward a token to the vercel CLI', async () => { 262 | const envs = ['production'] 263 | const token = 'testToken' 264 | 265 | await pushEnvVars('test/fixtures/.env.test', envs, { token }) 266 | 267 | let expectedCommands = getExpectedCommands(envs, defaultExpectedEnvVars) 268 | expectedCommands = expectedCommands.map((expectedCommand) => [`${expectedCommand} -t ${token}`]) 269 | 270 | expect(execSpy.mock.calls.length).toBe(expectedCommands.length) 271 | 272 | for (const expectedCommand of expectedCommands) { 273 | expect(execSpy.mock.calls).toContainEqual(expectedCommand) 274 | } 275 | }) 276 | }) 277 | 278 | describe('branch', () => { 279 | test('should forward a git branch to the vercel CLI', async () => { 280 | const envs = ['preview'] 281 | const branch = 'test-branch' 282 | 283 | await pushEnvVars('test/fixtures/.env.test', envs, { branch }) 284 | 285 | let expectedCommands = getExpectedCommands(envs, defaultExpectedEnvVars) 286 | expectedCommands = expectedCommands.map((expectedCommand) => [ 287 | expectedCommand[0].replace('preview', `${envs} ${branch}`), 288 | ]) 289 | 290 | expect(execSpy.mock.calls.length).toBe(expectedCommands.length) 291 | 292 | for (const expectedCommand of expectedCommands) { 293 | expect(execSpy.mock.calls).toContainEqual(expectedCommand) 294 | } 295 | }) 296 | }) 297 | }) 298 | 299 | function getExpectedCommands(envs: string[], envVars: EnvVars): [string][] { 300 | const expectedCommands: [string][] = [] 301 | 302 | for (const [envKey, envValue] of Object.entries(envVars)) { 303 | for (const env of envs) { 304 | expectedCommands.push( 305 | [`npx --yes vercel env rm ${envKey} ${env} -y`], 306 | [`printf "${envValue}" | npx --yes vercel env add ${envKey} ${env}`] 307 | ) 308 | } 309 | } 310 | 311 | return expectedCommands 312 | } 313 | 314 | function getAsyncSecretValue() { 315 | return new Promise((resolve) => { 316 | setTimeout(() => { 317 | resolve(`secretValue`) 318 | }, 10) 319 | }) 320 | } 321 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | cac: 12 | specifier: 6.7.12 13 | version: 6.7.12 14 | cli-table3: 15 | specifier: 0.6.2 16 | version: 0.6.2 17 | dotenv: 18 | specifier: 16.0.1 19 | version: 16.0.1 20 | dotenv-expand: 21 | specifier: 8.0.3 22 | version: 8.0.3 23 | kolorist: 24 | specifier: 1.5.1 25 | version: 1.5.1 26 | nanospinner: 27 | specifier: 1.1.0 28 | version: 1.1.0 29 | wyt: 30 | specifier: 2.0.1 31 | version: 2.0.1 32 | devDependencies: 33 | '@hideoo/eslint-config': 34 | specifier: 0.0.5 35 | version: 0.0.5(eslint@8.18.0)(typescript@4.7.4) 36 | '@hideoo/prettier-config': 37 | specifier: 0.0.1 38 | version: 0.0.1 39 | '@types/node': 40 | specifier: 14.18.21 41 | version: 14.18.21 42 | eslint: 43 | specifier: 8.18.0 44 | version: 8.18.0 45 | husky: 46 | specifier: 8.0.1 47 | version: 8.0.1 48 | lint-staged: 49 | specifier: 13.0.3 50 | version: 13.0.3 51 | prettier: 52 | specifier: 2.7.1 53 | version: 2.7.1 54 | typescript: 55 | specifier: 4.7.4 56 | version: 4.7.4 57 | unbuild: 58 | specifier: 0.7.4 59 | version: 0.7.4 60 | vitest: 61 | specifier: 0.17.0 62 | version: 0.17.0 63 | 64 | packages: 65 | 66 | '@ampproject/remapping@2.3.0': 67 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} 68 | engines: {node: '>=6.0.0'} 69 | 70 | '@babel/code-frame@7.27.1': 71 | resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} 72 | engines: {node: '>=6.9.0'} 73 | 74 | '@babel/compat-data@7.28.0': 75 | resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==} 76 | engines: {node: '>=6.9.0'} 77 | 78 | '@babel/core@7.28.0': 79 | resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==} 80 | engines: {node: '>=6.9.0'} 81 | 82 | '@babel/generator@7.28.0': 83 | resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==} 84 | engines: {node: '>=6.9.0'} 85 | 86 | '@babel/helper-compilation-targets@7.27.2': 87 | resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} 88 | engines: {node: '>=6.9.0'} 89 | 90 | '@babel/helper-globals@7.28.0': 91 | resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} 92 | engines: {node: '>=6.9.0'} 93 | 94 | '@babel/helper-module-imports@7.27.1': 95 | resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} 96 | engines: {node: '>=6.9.0'} 97 | 98 | '@babel/helper-module-transforms@7.27.3': 99 | resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} 100 | engines: {node: '>=6.9.0'} 101 | peerDependencies: 102 | '@babel/core': ^7.0.0 103 | 104 | '@babel/helper-string-parser@7.27.1': 105 | resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} 106 | engines: {node: '>=6.9.0'} 107 | 108 | '@babel/helper-validator-identifier@7.27.1': 109 | resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} 110 | engines: {node: '>=6.9.0'} 111 | 112 | '@babel/helper-validator-option@7.27.1': 113 | resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} 114 | engines: {node: '>=6.9.0'} 115 | 116 | '@babel/helpers@7.28.2': 117 | resolution: {integrity: sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==} 118 | engines: {node: '>=6.9.0'} 119 | 120 | '@babel/parser@7.28.0': 121 | resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==} 122 | engines: {node: '>=6.0.0'} 123 | hasBin: true 124 | 125 | '@babel/runtime-corejs3@7.28.2': 126 | resolution: {integrity: sha512-FVFaVs2/dZgD3Y9ZD+AKNKjyGKzwu0C54laAXWUXgLcVXcCX6YZ6GhK2cp7FogSN2OA0Fu+QT8dP3FUdo9ShSQ==} 127 | engines: {node: '>=6.9.0'} 128 | 129 | '@babel/runtime@7.28.2': 130 | resolution: {integrity: sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==} 131 | engines: {node: '>=6.9.0'} 132 | 133 | '@babel/standalone@7.28.2': 134 | resolution: {integrity: sha512-1kjA8XzBRN68HoDDYKP38bucHtxYWCIX8XdYwe1drRNUOjOVNt8EMy9jiE6UwaGFfU7NOHCG+C8KgBc9CR08nA==} 135 | engines: {node: '>=6.9.0'} 136 | 137 | '@babel/template@7.27.2': 138 | resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} 139 | engines: {node: '>=6.9.0'} 140 | 141 | '@babel/traverse@7.28.0': 142 | resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==} 143 | engines: {node: '>=6.9.0'} 144 | 145 | '@babel/types@7.28.2': 146 | resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} 147 | engines: {node: '>=6.9.0'} 148 | 149 | '@colors/colors@1.5.0': 150 | resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} 151 | engines: {node: '>=0.1.90'} 152 | 153 | '@esbuild/android-arm@0.15.18': 154 | resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==} 155 | engines: {node: '>=12'} 156 | cpu: [arm] 157 | os: [android] 158 | 159 | '@esbuild/linux-loong64@0.14.54': 160 | resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} 161 | engines: {node: '>=12'} 162 | cpu: [loong64] 163 | os: [linux] 164 | 165 | '@esbuild/linux-loong64@0.15.18': 166 | resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==} 167 | engines: {node: '>=12'} 168 | cpu: [loong64] 169 | os: [linux] 170 | 171 | '@eslint/eslintrc@1.4.1': 172 | resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} 173 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 174 | 175 | '@hideoo/eslint-config-base@0.0.5': 176 | resolution: {integrity: sha512-2bT1A4dMgWjObieYVmLnZOmIUnBmeeYrk3A1xi0sbrlHgmwMoi0dMMj2Rs8r0QZ2s1FXhirlZqxozDICNNma/w==} 177 | deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. 178 | peerDependencies: 179 | eslint: '>=8.0.0' 180 | 181 | '@hideoo/eslint-config-react@0.0.5': 182 | resolution: {integrity: sha512-EDKRukDK52z2OPkGjpndFt0wG0TsV5NdlOjO41FrLV7bOrPovx1w2VdAxKUg+TG37YIoeou+l5kqCp1TvTFEIg==} 183 | deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. 184 | peerDependencies: 185 | eslint: '>=8.0.0' 186 | 187 | '@hideoo/eslint-config-typescript@0.0.5': 188 | resolution: {integrity: sha512-71K2kHJzLBeJZjjLkaNhp9QXx4DkK4frcYrId383Hsfznjst3j4dngx0h9cSIUQW7A7eaBufa45Lk+nclhFtEg==} 189 | deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. 190 | peerDependencies: 191 | eslint: '>=8.0.0' 192 | typescript: '>=4.0.2' 193 | 194 | '@hideoo/eslint-config@0.0.5': 195 | resolution: {integrity: sha512-6YAY8wpDbEw1evsSfgpHSvmHIWcLs3fZSegGJsWKg7J4vbapkoTjEGYuYuiFvHf5gpNLO00H8BE6PRfVOWVIpQ==} 196 | peerDependencies: 197 | eslint: '>=8.0.0' 198 | 199 | '@hideoo/prettier-config@0.0.1': 200 | resolution: {integrity: sha512-+YgIQ4P4iAYmhWHAWpxgnYEHZBjymCG3YFRZHN2zJr5c9z7j0gmzaXgOA5CdxWNmZr+qHY0QrNWCIoZf2B9CKg==} 201 | 202 | '@humanwhocodes/config-array@0.9.5': 203 | resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==} 204 | engines: {node: '>=10.10.0'} 205 | deprecated: Use @eslint/config-array instead 206 | 207 | '@humanwhocodes/object-schema@1.2.1': 208 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} 209 | deprecated: Use @eslint/object-schema instead 210 | 211 | '@jridgewell/gen-mapping@0.3.12': 212 | resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} 213 | 214 | '@jridgewell/resolve-uri@3.1.2': 215 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 216 | engines: {node: '>=6.0.0'} 217 | 218 | '@jridgewell/sourcemap-codec@1.5.4': 219 | resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==} 220 | 221 | '@jridgewell/trace-mapping@0.3.29': 222 | resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} 223 | 224 | '@nodelib/fs.scandir@2.1.5': 225 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 226 | engines: {node: '>= 8'} 227 | 228 | '@nodelib/fs.stat@2.0.5': 229 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 230 | engines: {node: '>= 8'} 231 | 232 | '@nodelib/fs.walk@1.2.8': 233 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 234 | engines: {node: '>= 8'} 235 | 236 | '@rollup/plugin-alias@3.1.9': 237 | resolution: {integrity: sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==} 238 | engines: {node: '>=8.0.0'} 239 | peerDependencies: 240 | rollup: ^1.20.0||^2.0.0 241 | 242 | '@rollup/plugin-commonjs@21.1.0': 243 | resolution: {integrity: sha512-6ZtHx3VHIp2ReNNDxHjuUml6ur+WcQ28N1yHgCQwsbNkQg2suhxGMDQGJOn/KuDxKtd1xuZP5xSTwBA4GQ8hbA==} 244 | engines: {node: '>= 8.0.0'} 245 | peerDependencies: 246 | rollup: ^2.38.3 247 | 248 | '@rollup/plugin-json@4.1.0': 249 | resolution: {integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==} 250 | peerDependencies: 251 | rollup: ^1.20.0 || ^2.0.0 252 | 253 | '@rollup/plugin-node-resolve@13.3.0': 254 | resolution: {integrity: sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==} 255 | engines: {node: '>= 10.0.0'} 256 | peerDependencies: 257 | rollup: ^2.42.0 258 | 259 | '@rollup/plugin-replace@4.0.0': 260 | resolution: {integrity: sha512-+rumQFiaNac9y64OHtkHGmdjm7us9bo1PlbgQfdihQtuNxzjpaB064HbRnewUOggLQxVCCyINfStkgmBeQpv1g==} 261 | peerDependencies: 262 | rollup: ^1.20.0 || ^2.0.0 263 | 264 | '@rollup/pluginutils@3.1.0': 265 | resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} 266 | engines: {node: '>= 8.0.0'} 267 | peerDependencies: 268 | rollup: ^1.20.0||^2.0.0 269 | 270 | '@rollup/pluginutils@4.2.1': 271 | resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} 272 | engines: {node: '>= 8.0.0'} 273 | 274 | '@types/chai-subset@1.3.6': 275 | resolution: {integrity: sha512-m8lERkkQj+uek18hXOZuec3W/fCRTrU4hrnXjH3qhHy96ytuPaPiWGgu7sJb7tZxZonO75vYAjCvpe/e4VUwRw==} 276 | peerDependencies: 277 | '@types/chai': <5.2.0 278 | 279 | '@types/chai@4.3.20': 280 | resolution: {integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==} 281 | 282 | '@types/estree@0.0.39': 283 | resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} 284 | 285 | '@types/estree@1.0.8': 286 | resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} 287 | 288 | '@types/json-schema@7.0.15': 289 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 290 | 291 | '@types/json5@0.0.29': 292 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} 293 | 294 | '@types/node@14.18.21': 295 | resolution: {integrity: sha512-x5W9s+8P4XteaxT/jKF0PSb7XEvo5VmqEWgsMlyeY4ZlLK8I6aH6g5TPPyDlLAep+GYf4kefb7HFyc7PAO3m+Q==} 296 | 297 | '@types/normalize-package-data@2.4.4': 298 | resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} 299 | 300 | '@types/resolve@1.17.1': 301 | resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} 302 | 303 | '@typescript-eslint/eslint-plugin@5.30.0': 304 | resolution: {integrity: sha512-lvhRJ2pGe2V9MEU46ELTdiHgiAFZPKtLhiU5wlnaYpMc2+c1R8fh8i80ZAa665drvjHKUJyRRGg3gEm1If54ow==} 305 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 306 | peerDependencies: 307 | '@typescript-eslint/parser': ^5.0.0 308 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 309 | typescript: '*' 310 | peerDependenciesMeta: 311 | typescript: 312 | optional: true 313 | 314 | '@typescript-eslint/parser@5.30.0': 315 | resolution: {integrity: sha512-2oYYUws5o2liX6SrFQ5RB88+PuRymaM2EU02/9Ppoyu70vllPnHVO7ioxDdq/ypXHA277R04SVjxvwI8HmZpzA==} 316 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 317 | peerDependencies: 318 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 319 | typescript: '*' 320 | peerDependenciesMeta: 321 | typescript: 322 | optional: true 323 | 324 | '@typescript-eslint/scope-manager@5.30.0': 325 | resolution: {integrity: sha512-3TZxvlQcK5fhTBw5solQucWSJvonXf5yua5nx8OqK94hxdrT7/6W3/CS42MLd/f1BmlmmbGEgQcTHHCktUX5bQ==} 326 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 327 | 328 | '@typescript-eslint/type-utils@5.30.0': 329 | resolution: {integrity: sha512-GF8JZbZqSS+azehzlv/lmQQ3EU3VfWYzCczdZjJRxSEeXDQkqFhCBgFhallLDbPwQOEQ4MHpiPfkjKk7zlmeNg==} 330 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 331 | peerDependencies: 332 | eslint: '*' 333 | typescript: '*' 334 | peerDependenciesMeta: 335 | typescript: 336 | optional: true 337 | 338 | '@typescript-eslint/types@5.30.0': 339 | resolution: {integrity: sha512-vfqcBrsRNWw/LBXyncMF/KrUTYYzzygCSsVqlZ1qGu1QtGs6vMkt3US0VNSQ05grXi5Yadp3qv5XZdYLjpp8ag==} 340 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 341 | 342 | '@typescript-eslint/typescript-estree@5.30.0': 343 | resolution: {integrity: sha512-hDEawogreZB4n1zoqcrrtg/wPyyiCxmhPLpZ6kmWfKF5M5G0clRLaEexpuWr31fZ42F96SlD/5xCt1bT5Qm4Nw==} 344 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 345 | peerDependencies: 346 | typescript: '*' 347 | peerDependenciesMeta: 348 | typescript: 349 | optional: true 350 | 351 | '@typescript-eslint/utils@5.30.0': 352 | resolution: {integrity: sha512-0bIgOgZflLKIcZsWvfklsaQTM3ZUbmtH0rJ1hKyV3raoUYyeZwcjQ8ZUJTzS7KnhNcsVT1Rxs7zeeMHEhGlltw==} 353 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 354 | peerDependencies: 355 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 356 | 357 | '@typescript-eslint/visitor-keys@5.30.0': 358 | resolution: {integrity: sha512-6WcIeRk2DQ3pHKxU1Ni0qMXJkjO/zLjBymlYBy/53qxe7yjEFSvzKLDToJjURUhSl2Fzhkl4SMXQoETauF74cw==} 359 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 360 | 361 | acorn-jsx@5.3.2: 362 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 363 | peerDependencies: 364 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 365 | 366 | acorn@8.15.0: 367 | resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} 368 | engines: {node: '>=0.4.0'} 369 | hasBin: true 370 | 371 | aggregate-error@3.1.0: 372 | resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} 373 | engines: {node: '>=8'} 374 | 375 | ajv@6.12.6: 376 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 377 | 378 | ansi-escapes@4.3.2: 379 | resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} 380 | engines: {node: '>=8'} 381 | 382 | ansi-regex@5.0.1: 383 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 384 | engines: {node: '>=8'} 385 | 386 | ansi-regex@6.1.0: 387 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} 388 | engines: {node: '>=12'} 389 | 390 | ansi-styles@4.3.0: 391 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 392 | engines: {node: '>=8'} 393 | 394 | ansi-styles@6.2.1: 395 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 396 | engines: {node: '>=12'} 397 | 398 | argparse@2.0.1: 399 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 400 | 401 | aria-query@4.2.2: 402 | resolution: {integrity: sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==} 403 | engines: {node: '>=6.0'} 404 | 405 | array-buffer-byte-length@1.0.2: 406 | resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} 407 | engines: {node: '>= 0.4'} 408 | 409 | array-includes@3.1.9: 410 | resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} 411 | engines: {node: '>= 0.4'} 412 | 413 | array-union@2.1.0: 414 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 415 | engines: {node: '>=8'} 416 | 417 | array.prototype.flat@1.3.3: 418 | resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} 419 | engines: {node: '>= 0.4'} 420 | 421 | array.prototype.flatmap@1.3.3: 422 | resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} 423 | engines: {node: '>= 0.4'} 424 | 425 | arraybuffer.prototype.slice@1.0.4: 426 | resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} 427 | engines: {node: '>= 0.4'} 428 | 429 | assertion-error@1.1.0: 430 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} 431 | 432 | ast-types-flow@0.0.7: 433 | resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} 434 | 435 | astral-regex@2.0.0: 436 | resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} 437 | engines: {node: '>=8'} 438 | 439 | async-function@1.0.0: 440 | resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} 441 | engines: {node: '>= 0.4'} 442 | 443 | available-typed-arrays@1.0.7: 444 | resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} 445 | engines: {node: '>= 0.4'} 446 | 447 | axe-core@4.10.3: 448 | resolution: {integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==} 449 | engines: {node: '>=4'} 450 | 451 | axobject-query@2.2.0: 452 | resolution: {integrity: sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==} 453 | 454 | balanced-match@1.0.2: 455 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 456 | 457 | brace-expansion@1.1.12: 458 | resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} 459 | 460 | braces@3.0.3: 461 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 462 | engines: {node: '>=8'} 463 | 464 | browserslist@4.25.1: 465 | resolution: {integrity: sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==} 466 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 467 | hasBin: true 468 | 469 | builtin-modules@3.3.0: 470 | resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} 471 | engines: {node: '>=6'} 472 | 473 | cac@6.7.12: 474 | resolution: {integrity: sha512-rM7E2ygtMkJqD9c7WnFU6fruFcN3xe4FM5yUmgxhZzIKJk4uHl9U/fhwdajGFQbQuv43FAUo1Fe8gX/oIKDeSA==} 475 | engines: {node: '>=8'} 476 | 477 | call-bind-apply-helpers@1.0.2: 478 | resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} 479 | engines: {node: '>= 0.4'} 480 | 481 | call-bind@1.0.8: 482 | resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} 483 | engines: {node: '>= 0.4'} 484 | 485 | call-bound@1.0.4: 486 | resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} 487 | engines: {node: '>= 0.4'} 488 | 489 | callsites@3.1.0: 490 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 491 | engines: {node: '>=6'} 492 | 493 | caniuse-lite@1.0.30001727: 494 | resolution: {integrity: sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==} 495 | 496 | chai@4.5.0: 497 | resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} 498 | engines: {node: '>=4'} 499 | 500 | chalk@4.1.2: 501 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 502 | engines: {node: '>=10'} 503 | 504 | chalk@5.4.1: 505 | resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} 506 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 507 | 508 | check-error@1.0.3: 509 | resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} 510 | 511 | ci-info@3.9.0: 512 | resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} 513 | engines: {node: '>=8'} 514 | 515 | clean-regexp@1.0.0: 516 | resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} 517 | engines: {node: '>=4'} 518 | 519 | clean-stack@2.2.0: 520 | resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} 521 | engines: {node: '>=6'} 522 | 523 | cli-cursor@3.1.0: 524 | resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} 525 | engines: {node: '>=8'} 526 | 527 | cli-table3@0.6.2: 528 | resolution: {integrity: sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==} 529 | engines: {node: 10.* || >= 12.*} 530 | 531 | cli-truncate@2.1.0: 532 | resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} 533 | engines: {node: '>=8'} 534 | 535 | cli-truncate@3.1.0: 536 | resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} 537 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 538 | 539 | color-convert@2.0.1: 540 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 541 | engines: {node: '>=7.0.0'} 542 | 543 | color-name@1.1.4: 544 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 545 | 546 | colorette@2.0.20: 547 | resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} 548 | 549 | commander@9.5.0: 550 | resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} 551 | engines: {node: ^12.20.0 || >=14} 552 | 553 | commondir@1.0.1: 554 | resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} 555 | 556 | concat-map@0.0.1: 557 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 558 | 559 | confbox@0.1.8: 560 | resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} 561 | 562 | consola@2.15.3: 563 | resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} 564 | 565 | convert-source-map@2.0.0: 566 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 567 | 568 | core-js-pure@3.44.0: 569 | resolution: {integrity: sha512-gvMQAGB4dfVUxpYD0k3Fq8J+n5bB6Ytl15lqlZrOIXFzxOhtPaObfkQGHtMRdyjIf7z2IeNULwi1jEwyS+ltKQ==} 570 | 571 | cross-spawn@7.0.6: 572 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 573 | engines: {node: '>= 8'} 574 | 575 | damerau-levenshtein@1.0.8: 576 | resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} 577 | 578 | data-view-buffer@1.0.2: 579 | resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} 580 | engines: {node: '>= 0.4'} 581 | 582 | data-view-byte-length@1.0.2: 583 | resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} 584 | engines: {node: '>= 0.4'} 585 | 586 | data-view-byte-offset@1.0.1: 587 | resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} 588 | engines: {node: '>= 0.4'} 589 | 590 | debug@2.6.9: 591 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} 592 | peerDependencies: 593 | supports-color: '*' 594 | peerDependenciesMeta: 595 | supports-color: 596 | optional: true 597 | 598 | debug@3.2.7: 599 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 600 | peerDependencies: 601 | supports-color: '*' 602 | peerDependenciesMeta: 603 | supports-color: 604 | optional: true 605 | 606 | debug@4.4.1: 607 | resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} 608 | engines: {node: '>=6.0'} 609 | peerDependencies: 610 | supports-color: '*' 611 | peerDependenciesMeta: 612 | supports-color: 613 | optional: true 614 | 615 | deep-eql@4.1.4: 616 | resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} 617 | engines: {node: '>=6'} 618 | 619 | deep-is@0.1.4: 620 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 621 | 622 | deepmerge@4.3.1: 623 | resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} 624 | engines: {node: '>=0.10.0'} 625 | 626 | define-data-property@1.1.4: 627 | resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} 628 | engines: {node: '>= 0.4'} 629 | 630 | define-properties@1.2.1: 631 | resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} 632 | engines: {node: '>= 0.4'} 633 | 634 | defu@6.1.4: 635 | resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} 636 | 637 | dir-glob@3.0.1: 638 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 639 | engines: {node: '>=8'} 640 | 641 | doctrine@2.1.0: 642 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} 643 | engines: {node: '>=0.10.0'} 644 | 645 | doctrine@3.0.0: 646 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 647 | engines: {node: '>=6.0.0'} 648 | 649 | dotenv-expand@8.0.3: 650 | resolution: {integrity: sha512-SErOMvge0ZUyWd5B0NXMQlDkN+8r+HhVUsxgOO7IoPDOdDRD2JjExpN6y3KnFR66jsJMwSn1pqIivhU5rcJiNg==} 651 | engines: {node: '>=12'} 652 | 653 | dotenv@16.0.1: 654 | resolution: {integrity: sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==} 655 | engines: {node: '>=12'} 656 | 657 | dunder-proto@1.0.1: 658 | resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} 659 | engines: {node: '>= 0.4'} 660 | 661 | eastasianwidth@0.2.0: 662 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 663 | 664 | electron-to-chromium@1.5.191: 665 | resolution: {integrity: sha512-xcwe9ELcuxYLUFqZZxL19Z6HVKcvNkIwhbHUz7L3us6u12yR+7uY89dSl570f/IqNthx8dAw3tojG7i4Ni4tDA==} 666 | 667 | emoji-regex@8.0.0: 668 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 669 | 670 | emoji-regex@9.2.2: 671 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 672 | 673 | error-ex@1.3.2: 674 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 675 | 676 | es-abstract@1.24.0: 677 | resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} 678 | engines: {node: '>= 0.4'} 679 | 680 | es-define-property@1.0.1: 681 | resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} 682 | engines: {node: '>= 0.4'} 683 | 684 | es-errors@1.3.0: 685 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 686 | engines: {node: '>= 0.4'} 687 | 688 | es-module-lexer@0.9.3: 689 | resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} 690 | 691 | es-object-atoms@1.1.1: 692 | resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} 693 | engines: {node: '>= 0.4'} 694 | 695 | es-set-tostringtag@2.1.0: 696 | resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} 697 | engines: {node: '>= 0.4'} 698 | 699 | es-shim-unscopables@1.1.0: 700 | resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} 701 | engines: {node: '>= 0.4'} 702 | 703 | es-to-primitive@1.3.0: 704 | resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} 705 | engines: {node: '>= 0.4'} 706 | 707 | esbuild-android-64@0.14.54: 708 | resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==} 709 | engines: {node: '>=12'} 710 | cpu: [x64] 711 | os: [android] 712 | 713 | esbuild-android-64@0.15.18: 714 | resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==} 715 | engines: {node: '>=12'} 716 | cpu: [x64] 717 | os: [android] 718 | 719 | esbuild-android-arm64@0.14.54: 720 | resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==} 721 | engines: {node: '>=12'} 722 | cpu: [arm64] 723 | os: [android] 724 | 725 | esbuild-android-arm64@0.15.18: 726 | resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==} 727 | engines: {node: '>=12'} 728 | cpu: [arm64] 729 | os: [android] 730 | 731 | esbuild-darwin-64@0.14.54: 732 | resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==} 733 | engines: {node: '>=12'} 734 | cpu: [x64] 735 | os: [darwin] 736 | 737 | esbuild-darwin-64@0.15.18: 738 | resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==} 739 | engines: {node: '>=12'} 740 | cpu: [x64] 741 | os: [darwin] 742 | 743 | esbuild-darwin-arm64@0.14.54: 744 | resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==} 745 | engines: {node: '>=12'} 746 | cpu: [arm64] 747 | os: [darwin] 748 | 749 | esbuild-darwin-arm64@0.15.18: 750 | resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==} 751 | engines: {node: '>=12'} 752 | cpu: [arm64] 753 | os: [darwin] 754 | 755 | esbuild-freebsd-64@0.14.54: 756 | resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==} 757 | engines: {node: '>=12'} 758 | cpu: [x64] 759 | os: [freebsd] 760 | 761 | esbuild-freebsd-64@0.15.18: 762 | resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==} 763 | engines: {node: '>=12'} 764 | cpu: [x64] 765 | os: [freebsd] 766 | 767 | esbuild-freebsd-arm64@0.14.54: 768 | resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==} 769 | engines: {node: '>=12'} 770 | cpu: [arm64] 771 | os: [freebsd] 772 | 773 | esbuild-freebsd-arm64@0.15.18: 774 | resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==} 775 | engines: {node: '>=12'} 776 | cpu: [arm64] 777 | os: [freebsd] 778 | 779 | esbuild-linux-32@0.14.54: 780 | resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==} 781 | engines: {node: '>=12'} 782 | cpu: [ia32] 783 | os: [linux] 784 | 785 | esbuild-linux-32@0.15.18: 786 | resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==} 787 | engines: {node: '>=12'} 788 | cpu: [ia32] 789 | os: [linux] 790 | 791 | esbuild-linux-64@0.14.54: 792 | resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==} 793 | engines: {node: '>=12'} 794 | cpu: [x64] 795 | os: [linux] 796 | 797 | esbuild-linux-64@0.15.18: 798 | resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==} 799 | engines: {node: '>=12'} 800 | cpu: [x64] 801 | os: [linux] 802 | 803 | esbuild-linux-arm64@0.14.54: 804 | resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==} 805 | engines: {node: '>=12'} 806 | cpu: [arm64] 807 | os: [linux] 808 | 809 | esbuild-linux-arm64@0.15.18: 810 | resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==} 811 | engines: {node: '>=12'} 812 | cpu: [arm64] 813 | os: [linux] 814 | 815 | esbuild-linux-arm@0.14.54: 816 | resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==} 817 | engines: {node: '>=12'} 818 | cpu: [arm] 819 | os: [linux] 820 | 821 | esbuild-linux-arm@0.15.18: 822 | resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==} 823 | engines: {node: '>=12'} 824 | cpu: [arm] 825 | os: [linux] 826 | 827 | esbuild-linux-mips64le@0.14.54: 828 | resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==} 829 | engines: {node: '>=12'} 830 | cpu: [mips64el] 831 | os: [linux] 832 | 833 | esbuild-linux-mips64le@0.15.18: 834 | resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==} 835 | engines: {node: '>=12'} 836 | cpu: [mips64el] 837 | os: [linux] 838 | 839 | esbuild-linux-ppc64le@0.14.54: 840 | resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==} 841 | engines: {node: '>=12'} 842 | cpu: [ppc64] 843 | os: [linux] 844 | 845 | esbuild-linux-ppc64le@0.15.18: 846 | resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==} 847 | engines: {node: '>=12'} 848 | cpu: [ppc64] 849 | os: [linux] 850 | 851 | esbuild-linux-riscv64@0.14.54: 852 | resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==} 853 | engines: {node: '>=12'} 854 | cpu: [riscv64] 855 | os: [linux] 856 | 857 | esbuild-linux-riscv64@0.15.18: 858 | resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==} 859 | engines: {node: '>=12'} 860 | cpu: [riscv64] 861 | os: [linux] 862 | 863 | esbuild-linux-s390x@0.14.54: 864 | resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==} 865 | engines: {node: '>=12'} 866 | cpu: [s390x] 867 | os: [linux] 868 | 869 | esbuild-linux-s390x@0.15.18: 870 | resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==} 871 | engines: {node: '>=12'} 872 | cpu: [s390x] 873 | os: [linux] 874 | 875 | esbuild-netbsd-64@0.14.54: 876 | resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==} 877 | engines: {node: '>=12'} 878 | cpu: [x64] 879 | os: [netbsd] 880 | 881 | esbuild-netbsd-64@0.15.18: 882 | resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==} 883 | engines: {node: '>=12'} 884 | cpu: [x64] 885 | os: [netbsd] 886 | 887 | esbuild-openbsd-64@0.14.54: 888 | resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==} 889 | engines: {node: '>=12'} 890 | cpu: [x64] 891 | os: [openbsd] 892 | 893 | esbuild-openbsd-64@0.15.18: 894 | resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==} 895 | engines: {node: '>=12'} 896 | cpu: [x64] 897 | os: [openbsd] 898 | 899 | esbuild-sunos-64@0.14.54: 900 | resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==} 901 | engines: {node: '>=12'} 902 | cpu: [x64] 903 | os: [sunos] 904 | 905 | esbuild-sunos-64@0.15.18: 906 | resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==} 907 | engines: {node: '>=12'} 908 | cpu: [x64] 909 | os: [sunos] 910 | 911 | esbuild-windows-32@0.14.54: 912 | resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==} 913 | engines: {node: '>=12'} 914 | cpu: [ia32] 915 | os: [win32] 916 | 917 | esbuild-windows-32@0.15.18: 918 | resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==} 919 | engines: {node: '>=12'} 920 | cpu: [ia32] 921 | os: [win32] 922 | 923 | esbuild-windows-64@0.14.54: 924 | resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==} 925 | engines: {node: '>=12'} 926 | cpu: [x64] 927 | os: [win32] 928 | 929 | esbuild-windows-64@0.15.18: 930 | resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==} 931 | engines: {node: '>=12'} 932 | cpu: [x64] 933 | os: [win32] 934 | 935 | esbuild-windows-arm64@0.14.54: 936 | resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==} 937 | engines: {node: '>=12'} 938 | cpu: [arm64] 939 | os: [win32] 940 | 941 | esbuild-windows-arm64@0.15.18: 942 | resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==} 943 | engines: {node: '>=12'} 944 | cpu: [arm64] 945 | os: [win32] 946 | 947 | esbuild@0.14.54: 948 | resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} 949 | engines: {node: '>=12'} 950 | hasBin: true 951 | 952 | esbuild@0.15.18: 953 | resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==} 954 | engines: {node: '>=12'} 955 | hasBin: true 956 | 957 | escalade@3.2.0: 958 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 959 | engines: {node: '>=6'} 960 | 961 | escape-string-regexp@1.0.5: 962 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 963 | engines: {node: '>=0.8.0'} 964 | 965 | escape-string-regexp@4.0.0: 966 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 967 | engines: {node: '>=10'} 968 | 969 | eslint-config-prettier@8.5.0: 970 | resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} 971 | hasBin: true 972 | peerDependencies: 973 | eslint: '>=7.0.0' 974 | 975 | eslint-import-resolver-node@0.3.9: 976 | resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} 977 | 978 | eslint-module-utils@2.12.1: 979 | resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==} 980 | engines: {node: '>=4'} 981 | peerDependencies: 982 | '@typescript-eslint/parser': '*' 983 | eslint: '*' 984 | eslint-import-resolver-node: '*' 985 | eslint-import-resolver-typescript: '*' 986 | eslint-import-resolver-webpack: '*' 987 | peerDependenciesMeta: 988 | '@typescript-eslint/parser': 989 | optional: true 990 | eslint: 991 | optional: true 992 | eslint-import-resolver-node: 993 | optional: true 994 | eslint-import-resolver-typescript: 995 | optional: true 996 | eslint-import-resolver-webpack: 997 | optional: true 998 | 999 | eslint-plugin-import@2.26.0: 1000 | resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} 1001 | engines: {node: '>=4'} 1002 | peerDependencies: 1003 | '@typescript-eslint/parser': '*' 1004 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 1005 | peerDependenciesMeta: 1006 | '@typescript-eslint/parser': 1007 | optional: true 1008 | 1009 | eslint-plugin-jsx-a11y@6.6.0: 1010 | resolution: {integrity: sha512-kTeLuIzpNhXL2CwLlc8AHI0aFRwWHcg483yepO9VQiHzM9bZwJdzTkzBszbuPrbgGmq2rlX/FaT2fJQsjUSHsw==} 1011 | engines: {node: '>=4.0'} 1012 | peerDependencies: 1013 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 1014 | 1015 | eslint-plugin-react@7.30.1: 1016 | resolution: {integrity: sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg==} 1017 | engines: {node: '>=4'} 1018 | peerDependencies: 1019 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 1020 | 1021 | eslint-plugin-unicorn@42.0.0: 1022 | resolution: {integrity: sha512-ixBsbhgWuxVaNlPTT8AyfJMlhyC5flCJFjyK3oKE8TRrwBnaHvUbuIkCM1lqg8ryYrFStL/T557zfKzX4GKSlg==} 1023 | engines: {node: '>=12'} 1024 | peerDependencies: 1025 | eslint: '>=8.8.0' 1026 | 1027 | eslint-scope@5.1.1: 1028 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 1029 | engines: {node: '>=8.0.0'} 1030 | 1031 | eslint-scope@7.2.2: 1032 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 1033 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1034 | 1035 | eslint-utils@3.0.0: 1036 | resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} 1037 | engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} 1038 | peerDependencies: 1039 | eslint: '>=5' 1040 | 1041 | eslint-visitor-keys@2.1.0: 1042 | resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} 1043 | engines: {node: '>=10'} 1044 | 1045 | eslint-visitor-keys@3.4.3: 1046 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 1047 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1048 | 1049 | eslint@8.18.0: 1050 | resolution: {integrity: sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==} 1051 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1052 | deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. 1053 | hasBin: true 1054 | 1055 | espree@9.6.1: 1056 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 1057 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1058 | 1059 | esquery@1.6.0: 1060 | resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} 1061 | engines: {node: '>=0.10'} 1062 | 1063 | esrecurse@4.3.0: 1064 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1065 | engines: {node: '>=4.0'} 1066 | 1067 | estraverse@4.3.0: 1068 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} 1069 | engines: {node: '>=4.0'} 1070 | 1071 | estraverse@5.3.0: 1072 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1073 | engines: {node: '>=4.0'} 1074 | 1075 | estree-walker@1.0.1: 1076 | resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} 1077 | 1078 | estree-walker@2.0.2: 1079 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 1080 | 1081 | esutils@2.0.3: 1082 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1083 | engines: {node: '>=0.10.0'} 1084 | 1085 | execa@6.1.0: 1086 | resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} 1087 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1088 | 1089 | fast-deep-equal@3.1.3: 1090 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1091 | 1092 | fast-glob@3.3.3: 1093 | resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} 1094 | engines: {node: '>=8.6.0'} 1095 | 1096 | fast-json-stable-stringify@2.1.0: 1097 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1098 | 1099 | fast-levenshtein@2.0.6: 1100 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1101 | 1102 | fastq@1.19.1: 1103 | resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} 1104 | 1105 | file-entry-cache@6.0.1: 1106 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1107 | engines: {node: ^10.12.0 || >=12.0.0} 1108 | 1109 | fill-range@7.1.1: 1110 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 1111 | engines: {node: '>=8'} 1112 | 1113 | find-up@4.1.0: 1114 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 1115 | engines: {node: '>=8'} 1116 | 1117 | flat-cache@3.2.0: 1118 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} 1119 | engines: {node: ^10.12.0 || >=12.0.0} 1120 | 1121 | flatted@3.3.3: 1122 | resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} 1123 | 1124 | for-each@0.3.5: 1125 | resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} 1126 | engines: {node: '>= 0.4'} 1127 | 1128 | fs-extra@10.1.0: 1129 | resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} 1130 | engines: {node: '>=12'} 1131 | 1132 | fs.realpath@1.0.0: 1133 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1134 | 1135 | fsevents@2.3.3: 1136 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1137 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1138 | os: [darwin] 1139 | 1140 | function-bind@1.1.2: 1141 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1142 | 1143 | function.prototype.name@1.1.8: 1144 | resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} 1145 | engines: {node: '>= 0.4'} 1146 | 1147 | functional-red-black-tree@1.0.1: 1148 | resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} 1149 | 1150 | functions-have-names@1.2.3: 1151 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 1152 | 1153 | gensync@1.0.0-beta.2: 1154 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 1155 | engines: {node: '>=6.9.0'} 1156 | 1157 | get-func-name@2.0.2: 1158 | resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} 1159 | 1160 | get-intrinsic@1.3.0: 1161 | resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} 1162 | engines: {node: '>= 0.4'} 1163 | 1164 | get-proto@1.0.1: 1165 | resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} 1166 | engines: {node: '>= 0.4'} 1167 | 1168 | get-stream@6.0.1: 1169 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 1170 | engines: {node: '>=10'} 1171 | 1172 | get-symbol-description@1.1.0: 1173 | resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} 1174 | engines: {node: '>= 0.4'} 1175 | 1176 | glob-parent@5.1.2: 1177 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1178 | engines: {node: '>= 6'} 1179 | 1180 | glob-parent@6.0.2: 1181 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1182 | engines: {node: '>=10.13.0'} 1183 | 1184 | glob@7.2.3: 1185 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1186 | deprecated: Glob versions prior to v9 are no longer supported 1187 | 1188 | globals@13.24.0: 1189 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} 1190 | engines: {node: '>=8'} 1191 | 1192 | globalthis@1.0.4: 1193 | resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} 1194 | engines: {node: '>= 0.4'} 1195 | 1196 | globby@11.1.0: 1197 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1198 | engines: {node: '>=10'} 1199 | 1200 | gopd@1.2.0: 1201 | resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} 1202 | engines: {node: '>= 0.4'} 1203 | 1204 | graceful-fs@4.2.11: 1205 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1206 | 1207 | has-bigints@1.1.0: 1208 | resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} 1209 | engines: {node: '>= 0.4'} 1210 | 1211 | has-flag@4.0.0: 1212 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1213 | engines: {node: '>=8'} 1214 | 1215 | has-property-descriptors@1.0.2: 1216 | resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} 1217 | 1218 | has-proto@1.2.0: 1219 | resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} 1220 | engines: {node: '>= 0.4'} 1221 | 1222 | has-symbols@1.1.0: 1223 | resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} 1224 | engines: {node: '>= 0.4'} 1225 | 1226 | has-tostringtag@1.0.2: 1227 | resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} 1228 | engines: {node: '>= 0.4'} 1229 | 1230 | has@1.0.4: 1231 | resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} 1232 | engines: {node: '>= 0.4.0'} 1233 | 1234 | hasown@2.0.2: 1235 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 1236 | engines: {node: '>= 0.4'} 1237 | 1238 | hookable@5.5.3: 1239 | resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} 1240 | 1241 | hosted-git-info@2.8.9: 1242 | resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} 1243 | 1244 | human-signals@3.0.1: 1245 | resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} 1246 | engines: {node: '>=12.20.0'} 1247 | 1248 | husky@8.0.1: 1249 | resolution: {integrity: sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==} 1250 | engines: {node: '>=14'} 1251 | hasBin: true 1252 | 1253 | ignore@5.3.2: 1254 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 1255 | engines: {node: '>= 4'} 1256 | 1257 | import-fresh@3.3.1: 1258 | resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} 1259 | engines: {node: '>=6'} 1260 | 1261 | imurmurhash@0.1.4: 1262 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1263 | engines: {node: '>=0.8.19'} 1264 | 1265 | indent-string@4.0.0: 1266 | resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} 1267 | engines: {node: '>=8'} 1268 | 1269 | inflight@1.0.6: 1270 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1271 | deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. 1272 | 1273 | inherits@2.0.4: 1274 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1275 | 1276 | internal-slot@1.1.0: 1277 | resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} 1278 | engines: {node: '>= 0.4'} 1279 | 1280 | is-array-buffer@3.0.5: 1281 | resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} 1282 | engines: {node: '>= 0.4'} 1283 | 1284 | is-arrayish@0.2.1: 1285 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} 1286 | 1287 | is-async-function@2.1.1: 1288 | resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} 1289 | engines: {node: '>= 0.4'} 1290 | 1291 | is-bigint@1.1.0: 1292 | resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} 1293 | engines: {node: '>= 0.4'} 1294 | 1295 | is-boolean-object@1.2.2: 1296 | resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} 1297 | engines: {node: '>= 0.4'} 1298 | 1299 | is-builtin-module@3.2.1: 1300 | resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} 1301 | engines: {node: '>=6'} 1302 | 1303 | is-callable@1.2.7: 1304 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 1305 | engines: {node: '>= 0.4'} 1306 | 1307 | is-core-module@2.16.1: 1308 | resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} 1309 | engines: {node: '>= 0.4'} 1310 | 1311 | is-data-view@1.0.2: 1312 | resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} 1313 | engines: {node: '>= 0.4'} 1314 | 1315 | is-date-object@1.1.0: 1316 | resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} 1317 | engines: {node: '>= 0.4'} 1318 | 1319 | is-extglob@2.1.1: 1320 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1321 | engines: {node: '>=0.10.0'} 1322 | 1323 | is-finalizationregistry@1.1.1: 1324 | resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} 1325 | engines: {node: '>= 0.4'} 1326 | 1327 | is-fullwidth-code-point@3.0.0: 1328 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1329 | engines: {node: '>=8'} 1330 | 1331 | is-fullwidth-code-point@4.0.0: 1332 | resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} 1333 | engines: {node: '>=12'} 1334 | 1335 | is-generator-function@1.1.0: 1336 | resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} 1337 | engines: {node: '>= 0.4'} 1338 | 1339 | is-glob@4.0.3: 1340 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1341 | engines: {node: '>=0.10.0'} 1342 | 1343 | is-map@2.0.3: 1344 | resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} 1345 | engines: {node: '>= 0.4'} 1346 | 1347 | is-module@1.0.0: 1348 | resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} 1349 | 1350 | is-negative-zero@2.0.3: 1351 | resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} 1352 | engines: {node: '>= 0.4'} 1353 | 1354 | is-number-object@1.1.1: 1355 | resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} 1356 | engines: {node: '>= 0.4'} 1357 | 1358 | is-number@7.0.0: 1359 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1360 | engines: {node: '>=0.12.0'} 1361 | 1362 | is-reference@1.2.1: 1363 | resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} 1364 | 1365 | is-regex@1.2.1: 1366 | resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} 1367 | engines: {node: '>= 0.4'} 1368 | 1369 | is-set@2.0.3: 1370 | resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} 1371 | engines: {node: '>= 0.4'} 1372 | 1373 | is-shared-array-buffer@1.0.4: 1374 | resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} 1375 | engines: {node: '>= 0.4'} 1376 | 1377 | is-stream@3.0.0: 1378 | resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} 1379 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1380 | 1381 | is-string@1.1.1: 1382 | resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} 1383 | engines: {node: '>= 0.4'} 1384 | 1385 | is-symbol@1.1.1: 1386 | resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} 1387 | engines: {node: '>= 0.4'} 1388 | 1389 | is-typed-array@1.1.15: 1390 | resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} 1391 | engines: {node: '>= 0.4'} 1392 | 1393 | is-weakmap@2.0.2: 1394 | resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} 1395 | engines: {node: '>= 0.4'} 1396 | 1397 | is-weakref@1.1.1: 1398 | resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} 1399 | engines: {node: '>= 0.4'} 1400 | 1401 | is-weakset@2.0.4: 1402 | resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} 1403 | engines: {node: '>= 0.4'} 1404 | 1405 | isarray@2.0.5: 1406 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 1407 | 1408 | isexe@2.0.0: 1409 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1410 | 1411 | jiti@1.21.7: 1412 | resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} 1413 | hasBin: true 1414 | 1415 | joycon@3.1.1: 1416 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 1417 | engines: {node: '>=10'} 1418 | 1419 | js-tokens@4.0.0: 1420 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1421 | 1422 | js-yaml@4.1.0: 1423 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1424 | hasBin: true 1425 | 1426 | jsesc@3.1.0: 1427 | resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} 1428 | engines: {node: '>=6'} 1429 | hasBin: true 1430 | 1431 | json-buffer@3.0.1: 1432 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 1433 | 1434 | json-parse-even-better-errors@2.3.1: 1435 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 1436 | 1437 | json-schema-traverse@0.4.1: 1438 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1439 | 1440 | json-stable-stringify-without-jsonify@1.0.1: 1441 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1442 | 1443 | json5@1.0.2: 1444 | resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} 1445 | hasBin: true 1446 | 1447 | json5@2.2.3: 1448 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 1449 | engines: {node: '>=6'} 1450 | hasBin: true 1451 | 1452 | jsonc-parser@3.3.1: 1453 | resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} 1454 | 1455 | jsonfile@6.1.0: 1456 | resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} 1457 | 1458 | jsx-ast-utils@3.3.5: 1459 | resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} 1460 | engines: {node: '>=4.0'} 1461 | 1462 | keyv@4.5.4: 1463 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 1464 | 1465 | kolorist@1.5.1: 1466 | resolution: {integrity: sha512-lxpCM3HTvquGxKGzHeknB/sUjuVoUElLlfYnXZT73K8geR9jQbroGlSCFBax9/0mpGoD3kzcMLnOlGQPJJNyqQ==} 1467 | 1468 | language-subtag-registry@0.3.23: 1469 | resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} 1470 | 1471 | language-tags@1.0.9: 1472 | resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} 1473 | engines: {node: '>=0.10'} 1474 | 1475 | levn@0.4.1: 1476 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1477 | engines: {node: '>= 0.8.0'} 1478 | 1479 | lilconfig@2.0.5: 1480 | resolution: {integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==} 1481 | engines: {node: '>=10'} 1482 | 1483 | lines-and-columns@1.2.4: 1484 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1485 | 1486 | lint-staged@13.0.3: 1487 | resolution: {integrity: sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug==} 1488 | engines: {node: ^14.13.1 || >=16.0.0} 1489 | hasBin: true 1490 | 1491 | listr2@4.0.5: 1492 | resolution: {integrity: sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==} 1493 | engines: {node: '>=12'} 1494 | peerDependencies: 1495 | enquirer: '>= 2.3.0 < 3' 1496 | peerDependenciesMeta: 1497 | enquirer: 1498 | optional: true 1499 | 1500 | local-pkg@0.4.3: 1501 | resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} 1502 | engines: {node: '>=14'} 1503 | 1504 | locate-path@5.0.0: 1505 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 1506 | engines: {node: '>=8'} 1507 | 1508 | lodash.merge@4.6.2: 1509 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1510 | 1511 | lodash@4.17.21: 1512 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1513 | 1514 | log-update@4.0.0: 1515 | resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} 1516 | engines: {node: '>=10'} 1517 | 1518 | loose-envify@1.4.0: 1519 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 1520 | hasBin: true 1521 | 1522 | loupe@2.3.7: 1523 | resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} 1524 | 1525 | lru-cache@5.1.1: 1526 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 1527 | 1528 | magic-string@0.25.9: 1529 | resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} 1530 | 1531 | magic-string@0.26.7: 1532 | resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==} 1533 | engines: {node: '>=12'} 1534 | 1535 | math-intrinsics@1.1.0: 1536 | resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} 1537 | engines: {node: '>= 0.4'} 1538 | 1539 | merge-stream@2.0.0: 1540 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 1541 | 1542 | merge2@1.4.1: 1543 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1544 | engines: {node: '>= 8'} 1545 | 1546 | micromatch@4.0.8: 1547 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 1548 | engines: {node: '>=8.6'} 1549 | 1550 | mimic-fn@2.1.0: 1551 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 1552 | engines: {node: '>=6'} 1553 | 1554 | mimic-fn@4.0.0: 1555 | resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} 1556 | engines: {node: '>=12'} 1557 | 1558 | min-indent@1.0.1: 1559 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 1560 | engines: {node: '>=4'} 1561 | 1562 | minimatch@3.1.2: 1563 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1564 | 1565 | minimist@1.2.8: 1566 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 1567 | 1568 | mkdirp@1.0.4: 1569 | resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} 1570 | engines: {node: '>=10'} 1571 | hasBin: true 1572 | 1573 | mkdist@0.3.13: 1574 | resolution: {integrity: sha512-+eCPpkr8l2X630y5PIlkts2tzYEsb+aGIgXdrQv9ZGtWE2bLlD6kVIFfI6FJwFpjjw4dPPyorxQc6Uhm/oXlvg==} 1575 | hasBin: true 1576 | peerDependencies: 1577 | typescript: '>=4.7.4' 1578 | peerDependenciesMeta: 1579 | typescript: 1580 | optional: true 1581 | 1582 | mlly@0.5.17: 1583 | resolution: {integrity: sha512-Rn+ai4G+CQXptDFSRNnChEgNr+xAEauYhwRvpPl/UHStTlgkIftplgJRsA2OXPuoUn86K4XAjB26+x5CEvVb6A==} 1584 | 1585 | mlly@1.7.4: 1586 | resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} 1587 | 1588 | mri@1.2.0: 1589 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 1590 | engines: {node: '>=4'} 1591 | 1592 | ms@2.0.0: 1593 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} 1594 | 1595 | ms@2.1.3: 1596 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1597 | 1598 | nanoid@3.3.11: 1599 | resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} 1600 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1601 | hasBin: true 1602 | 1603 | nanospinner@1.1.0: 1604 | resolution: {integrity: sha512-yFvNYMig4AthKYfHFl1sLj7B2nkHL4lzdig4osvl9/LdGbXwrdFRoqBS98gsEsOakr0yH+r5NZ/1Y9gdVB8trA==} 1605 | 1606 | natural-compare@1.4.0: 1607 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1608 | 1609 | node-releases@2.0.19: 1610 | resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} 1611 | 1612 | normalize-package-data@2.5.0: 1613 | resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} 1614 | 1615 | normalize-path@3.0.0: 1616 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1617 | engines: {node: '>=0.10.0'} 1618 | 1619 | npm-run-path@5.3.0: 1620 | resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} 1621 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1622 | 1623 | object-assign@4.1.1: 1624 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1625 | engines: {node: '>=0.10.0'} 1626 | 1627 | object-inspect@1.13.4: 1628 | resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} 1629 | engines: {node: '>= 0.4'} 1630 | 1631 | object-keys@1.1.1: 1632 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 1633 | engines: {node: '>= 0.4'} 1634 | 1635 | object.assign@4.1.7: 1636 | resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} 1637 | engines: {node: '>= 0.4'} 1638 | 1639 | object.entries@1.1.9: 1640 | resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} 1641 | engines: {node: '>= 0.4'} 1642 | 1643 | object.fromentries@2.0.8: 1644 | resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} 1645 | engines: {node: '>= 0.4'} 1646 | 1647 | object.hasown@1.1.4: 1648 | resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} 1649 | engines: {node: '>= 0.4'} 1650 | 1651 | object.values@1.2.1: 1652 | resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} 1653 | engines: {node: '>= 0.4'} 1654 | 1655 | once@1.4.0: 1656 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1657 | 1658 | onetime@5.1.2: 1659 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 1660 | engines: {node: '>=6'} 1661 | 1662 | onetime@6.0.0: 1663 | resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} 1664 | engines: {node: '>=12'} 1665 | 1666 | optionator@0.9.4: 1667 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1668 | engines: {node: '>= 0.8.0'} 1669 | 1670 | own-keys@1.0.1: 1671 | resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} 1672 | engines: {node: '>= 0.4'} 1673 | 1674 | p-limit@2.3.0: 1675 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 1676 | engines: {node: '>=6'} 1677 | 1678 | p-locate@4.1.0: 1679 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 1680 | engines: {node: '>=8'} 1681 | 1682 | p-map@4.0.0: 1683 | resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} 1684 | engines: {node: '>=10'} 1685 | 1686 | p-try@2.2.0: 1687 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 1688 | engines: {node: '>=6'} 1689 | 1690 | parent-module@1.0.1: 1691 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1692 | engines: {node: '>=6'} 1693 | 1694 | parse-json@5.2.0: 1695 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 1696 | engines: {node: '>=8'} 1697 | 1698 | path-exists@4.0.0: 1699 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1700 | engines: {node: '>=8'} 1701 | 1702 | path-is-absolute@1.0.1: 1703 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1704 | engines: {node: '>=0.10.0'} 1705 | 1706 | path-key@3.1.1: 1707 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1708 | engines: {node: '>=8'} 1709 | 1710 | path-key@4.0.0: 1711 | resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} 1712 | engines: {node: '>=12'} 1713 | 1714 | path-parse@1.0.7: 1715 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1716 | 1717 | path-type@4.0.0: 1718 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1719 | engines: {node: '>=8'} 1720 | 1721 | pathe@0.2.0: 1722 | resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} 1723 | 1724 | pathe@0.3.9: 1725 | resolution: {integrity: sha512-6Y6s0vT112P3jD8dGfuS6r+lpa0qqNrLyHPOwvXMnyNTQaYiwgau2DP3aNDsR13xqtGj7rrPo+jFUATpU6/s+g==} 1726 | 1727 | pathe@1.1.2: 1728 | resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} 1729 | 1730 | pathe@2.0.3: 1731 | resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} 1732 | 1733 | pathval@1.1.1: 1734 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} 1735 | 1736 | picocolors@1.1.1: 1737 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1738 | 1739 | picomatch@2.3.1: 1740 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1741 | engines: {node: '>=8.6'} 1742 | 1743 | pidtree@0.6.0: 1744 | resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} 1745 | engines: {node: '>=0.10'} 1746 | hasBin: true 1747 | 1748 | pkg-types@0.3.6: 1749 | resolution: {integrity: sha512-uQZutkkh6axl1GxDm5/+8ivVdwuJ5pyDGqJeSiIWIUWIqYiK3p9QKozN/Rv6eVvFoeSWkN1uoYeSDBwwBJBtbg==} 1750 | 1751 | pkg-types@1.3.1: 1752 | resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} 1753 | 1754 | pluralize@8.0.0: 1755 | resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} 1756 | engines: {node: '>=4'} 1757 | 1758 | possible-typed-array-names@1.1.0: 1759 | resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} 1760 | engines: {node: '>= 0.4'} 1761 | 1762 | postcss@8.5.6: 1763 | resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} 1764 | engines: {node: ^10 || ^12 || >=14} 1765 | 1766 | prelude-ls@1.2.1: 1767 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1768 | engines: {node: '>= 0.8.0'} 1769 | 1770 | prettier@2.7.1: 1771 | resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==} 1772 | engines: {node: '>=10.13.0'} 1773 | hasBin: true 1774 | 1775 | pretty-bytes@6.1.1: 1776 | resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} 1777 | engines: {node: ^14.13.1 || >=16.0.0} 1778 | 1779 | prop-types@15.8.1: 1780 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} 1781 | 1782 | punycode@2.3.1: 1783 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1784 | engines: {node: '>=6'} 1785 | 1786 | queue-microtask@1.2.3: 1787 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1788 | 1789 | react-is@16.13.1: 1790 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} 1791 | 1792 | read-pkg-up@7.0.1: 1793 | resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} 1794 | engines: {node: '>=8'} 1795 | 1796 | read-pkg@5.2.0: 1797 | resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} 1798 | engines: {node: '>=8'} 1799 | 1800 | reflect.getprototypeof@1.0.10: 1801 | resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} 1802 | engines: {node: '>= 0.4'} 1803 | 1804 | regexp-tree@0.1.27: 1805 | resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} 1806 | hasBin: true 1807 | 1808 | regexp.prototype.flags@1.5.4: 1809 | resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} 1810 | engines: {node: '>= 0.4'} 1811 | 1812 | regexpp@3.2.0: 1813 | resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} 1814 | engines: {node: '>=8'} 1815 | 1816 | resolve-from@4.0.0: 1817 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1818 | engines: {node: '>=4'} 1819 | 1820 | resolve@1.22.10: 1821 | resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} 1822 | engines: {node: '>= 0.4'} 1823 | hasBin: true 1824 | 1825 | resolve@2.0.0-next.5: 1826 | resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} 1827 | hasBin: true 1828 | 1829 | restore-cursor@3.1.0: 1830 | resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} 1831 | engines: {node: '>=8'} 1832 | 1833 | reusify@1.1.0: 1834 | resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} 1835 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1836 | 1837 | rfdc@1.4.1: 1838 | resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} 1839 | 1840 | rimraf@3.0.2: 1841 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 1842 | deprecated: Rimraf versions prior to v4 are no longer supported 1843 | hasBin: true 1844 | 1845 | rollup-plugin-dts@4.2.3: 1846 | resolution: {integrity: sha512-jlcpItqM2efqfIiKzDB/IKOS9E9fDvbkJSGw5GtK/PqPGS9eC3R3JKyw2VvpTktZA+TNgJRMu1NTv244aTUzzQ==} 1847 | engines: {node: '>=v12.22.12'} 1848 | peerDependencies: 1849 | rollup: ^2.55 1850 | typescript: ^4.1 1851 | 1852 | rollup-plugin-esbuild@4.10.3: 1853 | resolution: {integrity: sha512-RILwUCgnCL5vo8vyZ/ZpwcqRuE5KmLizEv6BujBQfgXFZ6ggcS0FiYvQN+gsTJfWCMaU37l0Fosh4eEufyO97Q==} 1854 | engines: {node: '>=12'} 1855 | peerDependencies: 1856 | esbuild: '>=0.10.1' 1857 | rollup: ^1.20.0 || ^2.0.0 1858 | 1859 | rollup@2.79.2: 1860 | resolution: {integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==} 1861 | engines: {node: '>=10.0.0'} 1862 | hasBin: true 1863 | 1864 | run-parallel@1.2.0: 1865 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1866 | 1867 | rxjs@7.8.2: 1868 | resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} 1869 | 1870 | safe-array-concat@1.1.3: 1871 | resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} 1872 | engines: {node: '>=0.4'} 1873 | 1874 | safe-push-apply@1.0.0: 1875 | resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} 1876 | engines: {node: '>= 0.4'} 1877 | 1878 | safe-regex-test@1.1.0: 1879 | resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} 1880 | engines: {node: '>= 0.4'} 1881 | 1882 | safe-regex@2.1.1: 1883 | resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} 1884 | 1885 | scule@0.2.1: 1886 | resolution: {integrity: sha512-M9gnWtn3J0W+UhJOHmBxBTwv8mZCan5i1Himp60t6vvZcor0wr+IM0URKmIglsWJ7bRujNAVVN77fp+uZaWoKg==} 1887 | 1888 | scule@0.3.2: 1889 | resolution: {integrity: sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==} 1890 | 1891 | semver@5.7.2: 1892 | resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} 1893 | hasBin: true 1894 | 1895 | semver@6.3.1: 1896 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1897 | hasBin: true 1898 | 1899 | semver@7.7.2: 1900 | resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} 1901 | engines: {node: '>=10'} 1902 | hasBin: true 1903 | 1904 | set-function-length@1.2.2: 1905 | resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} 1906 | engines: {node: '>= 0.4'} 1907 | 1908 | set-function-name@2.0.2: 1909 | resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} 1910 | engines: {node: '>= 0.4'} 1911 | 1912 | set-proto@1.0.0: 1913 | resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} 1914 | engines: {node: '>= 0.4'} 1915 | 1916 | shebang-command@2.0.0: 1917 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1918 | engines: {node: '>=8'} 1919 | 1920 | shebang-regex@3.0.0: 1921 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1922 | engines: {node: '>=8'} 1923 | 1924 | side-channel-list@1.0.0: 1925 | resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} 1926 | engines: {node: '>= 0.4'} 1927 | 1928 | side-channel-map@1.0.1: 1929 | resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} 1930 | engines: {node: '>= 0.4'} 1931 | 1932 | side-channel-weakmap@1.0.2: 1933 | resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} 1934 | engines: {node: '>= 0.4'} 1935 | 1936 | side-channel@1.1.0: 1937 | resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} 1938 | engines: {node: '>= 0.4'} 1939 | 1940 | signal-exit@3.0.7: 1941 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 1942 | 1943 | slash@3.0.0: 1944 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1945 | engines: {node: '>=8'} 1946 | 1947 | slice-ansi@3.0.0: 1948 | resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} 1949 | engines: {node: '>=8'} 1950 | 1951 | slice-ansi@4.0.0: 1952 | resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} 1953 | engines: {node: '>=10'} 1954 | 1955 | slice-ansi@5.0.0: 1956 | resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} 1957 | engines: {node: '>=12'} 1958 | 1959 | source-map-js@1.2.1: 1960 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 1961 | engines: {node: '>=0.10.0'} 1962 | 1963 | sourcemap-codec@1.4.8: 1964 | resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} 1965 | deprecated: Please use @jridgewell/sourcemap-codec instead 1966 | 1967 | spdx-correct@3.2.0: 1968 | resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} 1969 | 1970 | spdx-exceptions@2.5.0: 1971 | resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} 1972 | 1973 | spdx-expression-parse@3.0.1: 1974 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} 1975 | 1976 | spdx-license-ids@3.0.21: 1977 | resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} 1978 | 1979 | stop-iteration-iterator@1.1.0: 1980 | resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} 1981 | engines: {node: '>= 0.4'} 1982 | 1983 | string-argv@0.3.2: 1984 | resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} 1985 | engines: {node: '>=0.6.19'} 1986 | 1987 | string-width@4.2.3: 1988 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1989 | engines: {node: '>=8'} 1990 | 1991 | string-width@5.1.2: 1992 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1993 | engines: {node: '>=12'} 1994 | 1995 | string.prototype.matchall@4.0.12: 1996 | resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} 1997 | engines: {node: '>= 0.4'} 1998 | 1999 | string.prototype.trim@1.2.10: 2000 | resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} 2001 | engines: {node: '>= 0.4'} 2002 | 2003 | string.prototype.trimend@1.0.9: 2004 | resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} 2005 | engines: {node: '>= 0.4'} 2006 | 2007 | string.prototype.trimstart@1.0.8: 2008 | resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} 2009 | engines: {node: '>= 0.4'} 2010 | 2011 | strip-ansi@6.0.1: 2012 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 2013 | engines: {node: '>=8'} 2014 | 2015 | strip-ansi@7.1.0: 2016 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 2017 | engines: {node: '>=12'} 2018 | 2019 | strip-bom@3.0.0: 2020 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 2021 | engines: {node: '>=4'} 2022 | 2023 | strip-final-newline@3.0.0: 2024 | resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} 2025 | engines: {node: '>=12'} 2026 | 2027 | strip-indent@3.0.0: 2028 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 2029 | engines: {node: '>=8'} 2030 | 2031 | strip-json-comments@3.1.1: 2032 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 2033 | engines: {node: '>=8'} 2034 | 2035 | supports-color@7.2.0: 2036 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 2037 | engines: {node: '>=8'} 2038 | 2039 | supports-preserve-symlinks-flag@1.0.0: 2040 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 2041 | engines: {node: '>= 0.4'} 2042 | 2043 | text-table@0.2.0: 2044 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 2045 | 2046 | through@2.3.8: 2047 | resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} 2048 | 2049 | tinypool@0.2.4: 2050 | resolution: {integrity: sha512-Vs3rhkUH6Qq1t5bqtb816oT+HeJTXfwt2cbPH17sWHIYKTotQIFPk3tf2fgqRrVyMDVOc1EnPgzIxfIulXVzwQ==} 2051 | engines: {node: '>=14.0.0'} 2052 | 2053 | tinyspy@0.3.3: 2054 | resolution: {integrity: sha512-gRiUR8fuhUf0W9lzojPf1N1euJYA30ISebSfgca8z76FOvXtVXqd5ojEIaKLWbDQhAaC3ibxZIjqbyi4ybjcTw==} 2055 | engines: {node: '>=14.0.0'} 2056 | 2057 | to-regex-range@5.0.1: 2058 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2059 | engines: {node: '>=8.0'} 2060 | 2061 | tsconfig-paths@3.15.0: 2062 | resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} 2063 | 2064 | tslib@1.14.1: 2065 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} 2066 | 2067 | tslib@2.8.1: 2068 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 2069 | 2070 | tsutils@3.21.0: 2071 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} 2072 | engines: {node: '>= 6'} 2073 | peerDependencies: 2074 | typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' 2075 | 2076 | type-check@0.4.0: 2077 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 2078 | engines: {node: '>= 0.8.0'} 2079 | 2080 | type-detect@4.1.0: 2081 | resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} 2082 | engines: {node: '>=4'} 2083 | 2084 | type-fest@0.20.2: 2085 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 2086 | engines: {node: '>=10'} 2087 | 2088 | type-fest@0.21.3: 2089 | resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} 2090 | engines: {node: '>=10'} 2091 | 2092 | type-fest@0.6.0: 2093 | resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} 2094 | engines: {node: '>=8'} 2095 | 2096 | type-fest@0.8.1: 2097 | resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} 2098 | engines: {node: '>=8'} 2099 | 2100 | typed-array-buffer@1.0.3: 2101 | resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} 2102 | engines: {node: '>= 0.4'} 2103 | 2104 | typed-array-byte-length@1.0.3: 2105 | resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} 2106 | engines: {node: '>= 0.4'} 2107 | 2108 | typed-array-byte-offset@1.0.4: 2109 | resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} 2110 | engines: {node: '>= 0.4'} 2111 | 2112 | typed-array-length@1.0.7: 2113 | resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} 2114 | engines: {node: '>= 0.4'} 2115 | 2116 | typescript@4.7.4: 2117 | resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==} 2118 | engines: {node: '>=4.2.0'} 2119 | hasBin: true 2120 | 2121 | ufo@1.6.1: 2122 | resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} 2123 | 2124 | unbox-primitive@1.1.0: 2125 | resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} 2126 | engines: {node: '>= 0.4'} 2127 | 2128 | unbuild@0.7.4: 2129 | resolution: {integrity: sha512-gJvfMw4h5Q7xieMCeW/d3wtNKZDpFyDR9651s8kL+AGp95sMNhAFRLxy24AUKC3b5EQbB74vaDoU5R+XwsZC6A==} 2130 | hasBin: true 2131 | 2132 | universalify@2.0.1: 2133 | resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} 2134 | engines: {node: '>= 10.0.0'} 2135 | 2136 | untyped@0.4.7: 2137 | resolution: {integrity: sha512-hBgCv7fnqIRzAagn2cUZxxVmhTE7NcMAgI8CfQelFVacG4O55VrurigpK0G504ph4sQSqVsGEo52O5EKFCnJ9g==} 2138 | 2139 | update-browserslist-db@1.1.3: 2140 | resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} 2141 | hasBin: true 2142 | peerDependencies: 2143 | browserslist: '>= 4.21.0' 2144 | 2145 | uri-js@4.4.1: 2146 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 2147 | 2148 | v8-compile-cache@2.4.0: 2149 | resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} 2150 | 2151 | validate-npm-package-license@3.0.4: 2152 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} 2153 | 2154 | vite@3.2.11: 2155 | resolution: {integrity: sha512-K/jGKL/PgbIgKCiJo5QbASQhFiV02X9Jh+Qq0AKCRCRKZtOTVi4t6wh75FDpGf2N9rYOnzH87OEFQNaFy6pdxQ==} 2156 | engines: {node: ^14.18.0 || >=16.0.0} 2157 | hasBin: true 2158 | peerDependencies: 2159 | '@types/node': '>= 14' 2160 | less: '*' 2161 | sass: '*' 2162 | stylus: '*' 2163 | sugarss: '*' 2164 | terser: ^5.4.0 2165 | peerDependenciesMeta: 2166 | '@types/node': 2167 | optional: true 2168 | less: 2169 | optional: true 2170 | sass: 2171 | optional: true 2172 | stylus: 2173 | optional: true 2174 | sugarss: 2175 | optional: true 2176 | terser: 2177 | optional: true 2178 | 2179 | vitest@0.17.0: 2180 | resolution: {integrity: sha512-5YO9ubHo0Zg35mea3+zZAr4sCku32C3usvIH5COeJB48TZV/R0J9aGNtGOOqEWZYfOKP0pGZUvTokne3x/QEFg==} 2181 | engines: {node: '>=v14.16.0'} 2182 | hasBin: true 2183 | peerDependencies: 2184 | '@edge-runtime/vm': '*' 2185 | '@vitest/ui': '*' 2186 | c8: '*' 2187 | happy-dom: '*' 2188 | jsdom: '*' 2189 | peerDependenciesMeta: 2190 | '@edge-runtime/vm': 2191 | optional: true 2192 | '@vitest/ui': 2193 | optional: true 2194 | c8: 2195 | optional: true 2196 | happy-dom: 2197 | optional: true 2198 | jsdom: 2199 | optional: true 2200 | 2201 | which-boxed-primitive@1.1.1: 2202 | resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} 2203 | engines: {node: '>= 0.4'} 2204 | 2205 | which-builtin-type@1.2.1: 2206 | resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} 2207 | engines: {node: '>= 0.4'} 2208 | 2209 | which-collection@1.0.2: 2210 | resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} 2211 | engines: {node: '>= 0.4'} 2212 | 2213 | which-typed-array@1.1.19: 2214 | resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} 2215 | engines: {node: '>= 0.4'} 2216 | 2217 | which@2.0.2: 2218 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2219 | engines: {node: '>= 8'} 2220 | hasBin: true 2221 | 2222 | word-wrap@1.2.5: 2223 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 2224 | engines: {node: '>=0.10.0'} 2225 | 2226 | wrap-ansi@6.2.0: 2227 | resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} 2228 | engines: {node: '>=8'} 2229 | 2230 | wrap-ansi@7.0.0: 2231 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 2232 | engines: {node: '>=10'} 2233 | 2234 | wrappy@1.0.2: 2235 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 2236 | 2237 | wyt@2.0.1: 2238 | resolution: {integrity: sha512-gNsX1wq1L+v5fgyqOKN8xz+gJwzRUuK5c5RDJOyRC2dGHzc6EmXj/irsyysjKx4Ij/4dBREgIKMO50vSDUhlHg==} 2239 | engines: {node: '>=6.10.0'} 2240 | 2241 | yallist@3.1.1: 2242 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 2243 | 2244 | yaml@2.8.0: 2245 | resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==} 2246 | engines: {node: '>= 14.6'} 2247 | hasBin: true 2248 | 2249 | snapshots: 2250 | 2251 | '@ampproject/remapping@2.3.0': 2252 | dependencies: 2253 | '@jridgewell/gen-mapping': 0.3.12 2254 | '@jridgewell/trace-mapping': 0.3.29 2255 | 2256 | '@babel/code-frame@7.27.1': 2257 | dependencies: 2258 | '@babel/helper-validator-identifier': 7.27.1 2259 | js-tokens: 4.0.0 2260 | picocolors: 1.1.1 2261 | 2262 | '@babel/compat-data@7.28.0': {} 2263 | 2264 | '@babel/core@7.28.0': 2265 | dependencies: 2266 | '@ampproject/remapping': 2.3.0 2267 | '@babel/code-frame': 7.27.1 2268 | '@babel/generator': 7.28.0 2269 | '@babel/helper-compilation-targets': 7.27.2 2270 | '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) 2271 | '@babel/helpers': 7.28.2 2272 | '@babel/parser': 7.28.0 2273 | '@babel/template': 7.27.2 2274 | '@babel/traverse': 7.28.0 2275 | '@babel/types': 7.28.2 2276 | convert-source-map: 2.0.0 2277 | debug: 4.4.1 2278 | gensync: 1.0.0-beta.2 2279 | json5: 2.2.3 2280 | semver: 6.3.1 2281 | transitivePeerDependencies: 2282 | - supports-color 2283 | 2284 | '@babel/generator@7.28.0': 2285 | dependencies: 2286 | '@babel/parser': 7.28.0 2287 | '@babel/types': 7.28.2 2288 | '@jridgewell/gen-mapping': 0.3.12 2289 | '@jridgewell/trace-mapping': 0.3.29 2290 | jsesc: 3.1.0 2291 | 2292 | '@babel/helper-compilation-targets@7.27.2': 2293 | dependencies: 2294 | '@babel/compat-data': 7.28.0 2295 | '@babel/helper-validator-option': 7.27.1 2296 | browserslist: 4.25.1 2297 | lru-cache: 5.1.1 2298 | semver: 6.3.1 2299 | 2300 | '@babel/helper-globals@7.28.0': {} 2301 | 2302 | '@babel/helper-module-imports@7.27.1': 2303 | dependencies: 2304 | '@babel/traverse': 7.28.0 2305 | '@babel/types': 7.28.2 2306 | transitivePeerDependencies: 2307 | - supports-color 2308 | 2309 | '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0)': 2310 | dependencies: 2311 | '@babel/core': 7.28.0 2312 | '@babel/helper-module-imports': 7.27.1 2313 | '@babel/helper-validator-identifier': 7.27.1 2314 | '@babel/traverse': 7.28.0 2315 | transitivePeerDependencies: 2316 | - supports-color 2317 | 2318 | '@babel/helper-string-parser@7.27.1': {} 2319 | 2320 | '@babel/helper-validator-identifier@7.27.1': {} 2321 | 2322 | '@babel/helper-validator-option@7.27.1': {} 2323 | 2324 | '@babel/helpers@7.28.2': 2325 | dependencies: 2326 | '@babel/template': 7.27.2 2327 | '@babel/types': 7.28.2 2328 | 2329 | '@babel/parser@7.28.0': 2330 | dependencies: 2331 | '@babel/types': 7.28.2 2332 | 2333 | '@babel/runtime-corejs3@7.28.2': 2334 | dependencies: 2335 | core-js-pure: 3.44.0 2336 | 2337 | '@babel/runtime@7.28.2': {} 2338 | 2339 | '@babel/standalone@7.28.2': {} 2340 | 2341 | '@babel/template@7.27.2': 2342 | dependencies: 2343 | '@babel/code-frame': 7.27.1 2344 | '@babel/parser': 7.28.0 2345 | '@babel/types': 7.28.2 2346 | 2347 | '@babel/traverse@7.28.0': 2348 | dependencies: 2349 | '@babel/code-frame': 7.27.1 2350 | '@babel/generator': 7.28.0 2351 | '@babel/helper-globals': 7.28.0 2352 | '@babel/parser': 7.28.0 2353 | '@babel/template': 7.27.2 2354 | '@babel/types': 7.28.2 2355 | debug: 4.4.1 2356 | transitivePeerDependencies: 2357 | - supports-color 2358 | 2359 | '@babel/types@7.28.2': 2360 | dependencies: 2361 | '@babel/helper-string-parser': 7.27.1 2362 | '@babel/helper-validator-identifier': 7.27.1 2363 | 2364 | '@colors/colors@1.5.0': 2365 | optional: true 2366 | 2367 | '@esbuild/android-arm@0.15.18': 2368 | optional: true 2369 | 2370 | '@esbuild/linux-loong64@0.14.54': 2371 | optional: true 2372 | 2373 | '@esbuild/linux-loong64@0.15.18': 2374 | optional: true 2375 | 2376 | '@eslint/eslintrc@1.4.1': 2377 | dependencies: 2378 | ajv: 6.12.6 2379 | debug: 4.4.1 2380 | espree: 9.6.1 2381 | globals: 13.24.0 2382 | ignore: 5.3.2 2383 | import-fresh: 3.3.1 2384 | js-yaml: 4.1.0 2385 | minimatch: 3.1.2 2386 | strip-json-comments: 3.1.1 2387 | transitivePeerDependencies: 2388 | - supports-color 2389 | 2390 | '@hideoo/eslint-config-base@0.0.5(@typescript-eslint/parser@5.30.0(eslint@8.18.0)(typescript@4.7.4))(eslint@8.18.0)': 2391 | dependencies: 2392 | eslint: 8.18.0 2393 | eslint-config-prettier: 8.5.0(eslint@8.18.0) 2394 | eslint-plugin-import: 2.26.0(@typescript-eslint/parser@5.30.0(eslint@8.18.0)(typescript@4.7.4))(eslint@8.18.0) 2395 | eslint-plugin-unicorn: 42.0.0(eslint@8.18.0) 2396 | transitivePeerDependencies: 2397 | - '@typescript-eslint/parser' 2398 | - eslint-import-resolver-typescript 2399 | - eslint-import-resolver-webpack 2400 | - supports-color 2401 | 2402 | '@hideoo/eslint-config-react@0.0.5(eslint@8.18.0)(typescript@4.7.4)': 2403 | dependencies: 2404 | '@hideoo/eslint-config-typescript': 0.0.5(eslint@8.18.0)(typescript@4.7.4) 2405 | eslint: 8.18.0 2406 | eslint-plugin-jsx-a11y: 6.6.0(eslint@8.18.0) 2407 | eslint-plugin-react: 7.30.1(eslint@8.18.0) 2408 | transitivePeerDependencies: 2409 | - eslint-import-resolver-typescript 2410 | - eslint-import-resolver-webpack 2411 | - supports-color 2412 | - typescript 2413 | 2414 | '@hideoo/eslint-config-typescript@0.0.5(eslint@8.18.0)(typescript@4.7.4)': 2415 | dependencies: 2416 | '@hideoo/eslint-config-base': 0.0.5(@typescript-eslint/parser@5.30.0(eslint@8.18.0)(typescript@4.7.4))(eslint@8.18.0) 2417 | '@typescript-eslint/eslint-plugin': 5.30.0(@typescript-eslint/parser@5.30.0(eslint@8.18.0)(typescript@4.7.4))(eslint@8.18.0)(typescript@4.7.4) 2418 | '@typescript-eslint/parser': 5.30.0(eslint@8.18.0)(typescript@4.7.4) 2419 | eslint: 8.18.0 2420 | typescript: 4.7.4 2421 | transitivePeerDependencies: 2422 | - eslint-import-resolver-typescript 2423 | - eslint-import-resolver-webpack 2424 | - supports-color 2425 | 2426 | '@hideoo/eslint-config@0.0.5(eslint@8.18.0)(typescript@4.7.4)': 2427 | dependencies: 2428 | '@hideoo/eslint-config-react': 0.0.5(eslint@8.18.0)(typescript@4.7.4) 2429 | eslint: 8.18.0 2430 | transitivePeerDependencies: 2431 | - eslint-import-resolver-typescript 2432 | - eslint-import-resolver-webpack 2433 | - supports-color 2434 | - typescript 2435 | 2436 | '@hideoo/prettier-config@0.0.1': {} 2437 | 2438 | '@humanwhocodes/config-array@0.9.5': 2439 | dependencies: 2440 | '@humanwhocodes/object-schema': 1.2.1 2441 | debug: 4.4.1 2442 | minimatch: 3.1.2 2443 | transitivePeerDependencies: 2444 | - supports-color 2445 | 2446 | '@humanwhocodes/object-schema@1.2.1': {} 2447 | 2448 | '@jridgewell/gen-mapping@0.3.12': 2449 | dependencies: 2450 | '@jridgewell/sourcemap-codec': 1.5.4 2451 | '@jridgewell/trace-mapping': 0.3.29 2452 | 2453 | '@jridgewell/resolve-uri@3.1.2': {} 2454 | 2455 | '@jridgewell/sourcemap-codec@1.5.4': {} 2456 | 2457 | '@jridgewell/trace-mapping@0.3.29': 2458 | dependencies: 2459 | '@jridgewell/resolve-uri': 3.1.2 2460 | '@jridgewell/sourcemap-codec': 1.5.4 2461 | 2462 | '@nodelib/fs.scandir@2.1.5': 2463 | dependencies: 2464 | '@nodelib/fs.stat': 2.0.5 2465 | run-parallel: 1.2.0 2466 | 2467 | '@nodelib/fs.stat@2.0.5': {} 2468 | 2469 | '@nodelib/fs.walk@1.2.8': 2470 | dependencies: 2471 | '@nodelib/fs.scandir': 2.1.5 2472 | fastq: 1.19.1 2473 | 2474 | '@rollup/plugin-alias@3.1.9(rollup@2.79.2)': 2475 | dependencies: 2476 | rollup: 2.79.2 2477 | slash: 3.0.0 2478 | 2479 | '@rollup/plugin-commonjs@21.1.0(rollup@2.79.2)': 2480 | dependencies: 2481 | '@rollup/pluginutils': 3.1.0(rollup@2.79.2) 2482 | commondir: 1.0.1 2483 | estree-walker: 2.0.2 2484 | glob: 7.2.3 2485 | is-reference: 1.2.1 2486 | magic-string: 0.25.9 2487 | resolve: 1.22.10 2488 | rollup: 2.79.2 2489 | 2490 | '@rollup/plugin-json@4.1.0(rollup@2.79.2)': 2491 | dependencies: 2492 | '@rollup/pluginutils': 3.1.0(rollup@2.79.2) 2493 | rollup: 2.79.2 2494 | 2495 | '@rollup/plugin-node-resolve@13.3.0(rollup@2.79.2)': 2496 | dependencies: 2497 | '@rollup/pluginutils': 3.1.0(rollup@2.79.2) 2498 | '@types/resolve': 1.17.1 2499 | deepmerge: 4.3.1 2500 | is-builtin-module: 3.2.1 2501 | is-module: 1.0.0 2502 | resolve: 1.22.10 2503 | rollup: 2.79.2 2504 | 2505 | '@rollup/plugin-replace@4.0.0(rollup@2.79.2)': 2506 | dependencies: 2507 | '@rollup/pluginutils': 3.1.0(rollup@2.79.2) 2508 | magic-string: 0.25.9 2509 | rollup: 2.79.2 2510 | 2511 | '@rollup/pluginutils@3.1.0(rollup@2.79.2)': 2512 | dependencies: 2513 | '@types/estree': 0.0.39 2514 | estree-walker: 1.0.1 2515 | picomatch: 2.3.1 2516 | rollup: 2.79.2 2517 | 2518 | '@rollup/pluginutils@4.2.1': 2519 | dependencies: 2520 | estree-walker: 2.0.2 2521 | picomatch: 2.3.1 2522 | 2523 | '@types/chai-subset@1.3.6(@types/chai@4.3.20)': 2524 | dependencies: 2525 | '@types/chai': 4.3.20 2526 | 2527 | '@types/chai@4.3.20': {} 2528 | 2529 | '@types/estree@0.0.39': {} 2530 | 2531 | '@types/estree@1.0.8': {} 2532 | 2533 | '@types/json-schema@7.0.15': {} 2534 | 2535 | '@types/json5@0.0.29': {} 2536 | 2537 | '@types/node@14.18.21': {} 2538 | 2539 | '@types/normalize-package-data@2.4.4': {} 2540 | 2541 | '@types/resolve@1.17.1': 2542 | dependencies: 2543 | '@types/node': 14.18.21 2544 | 2545 | '@typescript-eslint/eslint-plugin@5.30.0(@typescript-eslint/parser@5.30.0(eslint@8.18.0)(typescript@4.7.4))(eslint@8.18.0)(typescript@4.7.4)': 2546 | dependencies: 2547 | '@typescript-eslint/parser': 5.30.0(eslint@8.18.0)(typescript@4.7.4) 2548 | '@typescript-eslint/scope-manager': 5.30.0 2549 | '@typescript-eslint/type-utils': 5.30.0(eslint@8.18.0)(typescript@4.7.4) 2550 | '@typescript-eslint/utils': 5.30.0(eslint@8.18.0)(typescript@4.7.4) 2551 | debug: 4.4.1 2552 | eslint: 8.18.0 2553 | functional-red-black-tree: 1.0.1 2554 | ignore: 5.3.2 2555 | regexpp: 3.2.0 2556 | semver: 7.7.2 2557 | tsutils: 3.21.0(typescript@4.7.4) 2558 | optionalDependencies: 2559 | typescript: 4.7.4 2560 | transitivePeerDependencies: 2561 | - supports-color 2562 | 2563 | '@typescript-eslint/parser@5.30.0(eslint@8.18.0)(typescript@4.7.4)': 2564 | dependencies: 2565 | '@typescript-eslint/scope-manager': 5.30.0 2566 | '@typescript-eslint/types': 5.30.0 2567 | '@typescript-eslint/typescript-estree': 5.30.0(typescript@4.7.4) 2568 | debug: 4.4.1 2569 | eslint: 8.18.0 2570 | optionalDependencies: 2571 | typescript: 4.7.4 2572 | transitivePeerDependencies: 2573 | - supports-color 2574 | 2575 | '@typescript-eslint/scope-manager@5.30.0': 2576 | dependencies: 2577 | '@typescript-eslint/types': 5.30.0 2578 | '@typescript-eslint/visitor-keys': 5.30.0 2579 | 2580 | '@typescript-eslint/type-utils@5.30.0(eslint@8.18.0)(typescript@4.7.4)': 2581 | dependencies: 2582 | '@typescript-eslint/utils': 5.30.0(eslint@8.18.0)(typescript@4.7.4) 2583 | debug: 4.4.1 2584 | eslint: 8.18.0 2585 | tsutils: 3.21.0(typescript@4.7.4) 2586 | optionalDependencies: 2587 | typescript: 4.7.4 2588 | transitivePeerDependencies: 2589 | - supports-color 2590 | 2591 | '@typescript-eslint/types@5.30.0': {} 2592 | 2593 | '@typescript-eslint/typescript-estree@5.30.0(typescript@4.7.4)': 2594 | dependencies: 2595 | '@typescript-eslint/types': 5.30.0 2596 | '@typescript-eslint/visitor-keys': 5.30.0 2597 | debug: 4.4.1 2598 | globby: 11.1.0 2599 | is-glob: 4.0.3 2600 | semver: 7.7.2 2601 | tsutils: 3.21.0(typescript@4.7.4) 2602 | optionalDependencies: 2603 | typescript: 4.7.4 2604 | transitivePeerDependencies: 2605 | - supports-color 2606 | 2607 | '@typescript-eslint/utils@5.30.0(eslint@8.18.0)(typescript@4.7.4)': 2608 | dependencies: 2609 | '@types/json-schema': 7.0.15 2610 | '@typescript-eslint/scope-manager': 5.30.0 2611 | '@typescript-eslint/types': 5.30.0 2612 | '@typescript-eslint/typescript-estree': 5.30.0(typescript@4.7.4) 2613 | eslint: 8.18.0 2614 | eslint-scope: 5.1.1 2615 | eslint-utils: 3.0.0(eslint@8.18.0) 2616 | transitivePeerDependencies: 2617 | - supports-color 2618 | - typescript 2619 | 2620 | '@typescript-eslint/visitor-keys@5.30.0': 2621 | dependencies: 2622 | '@typescript-eslint/types': 5.30.0 2623 | eslint-visitor-keys: 3.4.3 2624 | 2625 | acorn-jsx@5.3.2(acorn@8.15.0): 2626 | dependencies: 2627 | acorn: 8.15.0 2628 | 2629 | acorn@8.15.0: {} 2630 | 2631 | aggregate-error@3.1.0: 2632 | dependencies: 2633 | clean-stack: 2.2.0 2634 | indent-string: 4.0.0 2635 | 2636 | ajv@6.12.6: 2637 | dependencies: 2638 | fast-deep-equal: 3.1.3 2639 | fast-json-stable-stringify: 2.1.0 2640 | json-schema-traverse: 0.4.1 2641 | uri-js: 4.4.1 2642 | 2643 | ansi-escapes@4.3.2: 2644 | dependencies: 2645 | type-fest: 0.21.3 2646 | 2647 | ansi-regex@5.0.1: {} 2648 | 2649 | ansi-regex@6.1.0: {} 2650 | 2651 | ansi-styles@4.3.0: 2652 | dependencies: 2653 | color-convert: 2.0.1 2654 | 2655 | ansi-styles@6.2.1: {} 2656 | 2657 | argparse@2.0.1: {} 2658 | 2659 | aria-query@4.2.2: 2660 | dependencies: 2661 | '@babel/runtime': 7.28.2 2662 | '@babel/runtime-corejs3': 7.28.2 2663 | 2664 | array-buffer-byte-length@1.0.2: 2665 | dependencies: 2666 | call-bound: 1.0.4 2667 | is-array-buffer: 3.0.5 2668 | 2669 | array-includes@3.1.9: 2670 | dependencies: 2671 | call-bind: 1.0.8 2672 | call-bound: 1.0.4 2673 | define-properties: 1.2.1 2674 | es-abstract: 1.24.0 2675 | es-object-atoms: 1.1.1 2676 | get-intrinsic: 1.3.0 2677 | is-string: 1.1.1 2678 | math-intrinsics: 1.1.0 2679 | 2680 | array-union@2.1.0: {} 2681 | 2682 | array.prototype.flat@1.3.3: 2683 | dependencies: 2684 | call-bind: 1.0.8 2685 | define-properties: 1.2.1 2686 | es-abstract: 1.24.0 2687 | es-shim-unscopables: 1.1.0 2688 | 2689 | array.prototype.flatmap@1.3.3: 2690 | dependencies: 2691 | call-bind: 1.0.8 2692 | define-properties: 1.2.1 2693 | es-abstract: 1.24.0 2694 | es-shim-unscopables: 1.1.0 2695 | 2696 | arraybuffer.prototype.slice@1.0.4: 2697 | dependencies: 2698 | array-buffer-byte-length: 1.0.2 2699 | call-bind: 1.0.8 2700 | define-properties: 1.2.1 2701 | es-abstract: 1.24.0 2702 | es-errors: 1.3.0 2703 | get-intrinsic: 1.3.0 2704 | is-array-buffer: 3.0.5 2705 | 2706 | assertion-error@1.1.0: {} 2707 | 2708 | ast-types-flow@0.0.7: {} 2709 | 2710 | astral-regex@2.0.0: {} 2711 | 2712 | async-function@1.0.0: {} 2713 | 2714 | available-typed-arrays@1.0.7: 2715 | dependencies: 2716 | possible-typed-array-names: 1.1.0 2717 | 2718 | axe-core@4.10.3: {} 2719 | 2720 | axobject-query@2.2.0: {} 2721 | 2722 | balanced-match@1.0.2: {} 2723 | 2724 | brace-expansion@1.1.12: 2725 | dependencies: 2726 | balanced-match: 1.0.2 2727 | concat-map: 0.0.1 2728 | 2729 | braces@3.0.3: 2730 | dependencies: 2731 | fill-range: 7.1.1 2732 | 2733 | browserslist@4.25.1: 2734 | dependencies: 2735 | caniuse-lite: 1.0.30001727 2736 | electron-to-chromium: 1.5.191 2737 | node-releases: 2.0.19 2738 | update-browserslist-db: 1.1.3(browserslist@4.25.1) 2739 | 2740 | builtin-modules@3.3.0: {} 2741 | 2742 | cac@6.7.12: {} 2743 | 2744 | call-bind-apply-helpers@1.0.2: 2745 | dependencies: 2746 | es-errors: 1.3.0 2747 | function-bind: 1.1.2 2748 | 2749 | call-bind@1.0.8: 2750 | dependencies: 2751 | call-bind-apply-helpers: 1.0.2 2752 | es-define-property: 1.0.1 2753 | get-intrinsic: 1.3.0 2754 | set-function-length: 1.2.2 2755 | 2756 | call-bound@1.0.4: 2757 | dependencies: 2758 | call-bind-apply-helpers: 1.0.2 2759 | get-intrinsic: 1.3.0 2760 | 2761 | callsites@3.1.0: {} 2762 | 2763 | caniuse-lite@1.0.30001727: {} 2764 | 2765 | chai@4.5.0: 2766 | dependencies: 2767 | assertion-error: 1.1.0 2768 | check-error: 1.0.3 2769 | deep-eql: 4.1.4 2770 | get-func-name: 2.0.2 2771 | loupe: 2.3.7 2772 | pathval: 1.1.1 2773 | type-detect: 4.1.0 2774 | 2775 | chalk@4.1.2: 2776 | dependencies: 2777 | ansi-styles: 4.3.0 2778 | supports-color: 7.2.0 2779 | 2780 | chalk@5.4.1: {} 2781 | 2782 | check-error@1.0.3: 2783 | dependencies: 2784 | get-func-name: 2.0.2 2785 | 2786 | ci-info@3.9.0: {} 2787 | 2788 | clean-regexp@1.0.0: 2789 | dependencies: 2790 | escape-string-regexp: 1.0.5 2791 | 2792 | clean-stack@2.2.0: {} 2793 | 2794 | cli-cursor@3.1.0: 2795 | dependencies: 2796 | restore-cursor: 3.1.0 2797 | 2798 | cli-table3@0.6.2: 2799 | dependencies: 2800 | string-width: 4.2.3 2801 | optionalDependencies: 2802 | '@colors/colors': 1.5.0 2803 | 2804 | cli-truncate@2.1.0: 2805 | dependencies: 2806 | slice-ansi: 3.0.0 2807 | string-width: 4.2.3 2808 | 2809 | cli-truncate@3.1.0: 2810 | dependencies: 2811 | slice-ansi: 5.0.0 2812 | string-width: 5.1.2 2813 | 2814 | color-convert@2.0.1: 2815 | dependencies: 2816 | color-name: 1.1.4 2817 | 2818 | color-name@1.1.4: {} 2819 | 2820 | colorette@2.0.20: {} 2821 | 2822 | commander@9.5.0: {} 2823 | 2824 | commondir@1.0.1: {} 2825 | 2826 | concat-map@0.0.1: {} 2827 | 2828 | confbox@0.1.8: {} 2829 | 2830 | consola@2.15.3: {} 2831 | 2832 | convert-source-map@2.0.0: {} 2833 | 2834 | core-js-pure@3.44.0: {} 2835 | 2836 | cross-spawn@7.0.6: 2837 | dependencies: 2838 | path-key: 3.1.1 2839 | shebang-command: 2.0.0 2840 | which: 2.0.2 2841 | 2842 | damerau-levenshtein@1.0.8: {} 2843 | 2844 | data-view-buffer@1.0.2: 2845 | dependencies: 2846 | call-bound: 1.0.4 2847 | es-errors: 1.3.0 2848 | is-data-view: 1.0.2 2849 | 2850 | data-view-byte-length@1.0.2: 2851 | dependencies: 2852 | call-bound: 1.0.4 2853 | es-errors: 1.3.0 2854 | is-data-view: 1.0.2 2855 | 2856 | data-view-byte-offset@1.0.1: 2857 | dependencies: 2858 | call-bound: 1.0.4 2859 | es-errors: 1.3.0 2860 | is-data-view: 1.0.2 2861 | 2862 | debug@2.6.9: 2863 | dependencies: 2864 | ms: 2.0.0 2865 | 2866 | debug@3.2.7: 2867 | dependencies: 2868 | ms: 2.1.3 2869 | 2870 | debug@4.4.1: 2871 | dependencies: 2872 | ms: 2.1.3 2873 | 2874 | deep-eql@4.1.4: 2875 | dependencies: 2876 | type-detect: 4.1.0 2877 | 2878 | deep-is@0.1.4: {} 2879 | 2880 | deepmerge@4.3.1: {} 2881 | 2882 | define-data-property@1.1.4: 2883 | dependencies: 2884 | es-define-property: 1.0.1 2885 | es-errors: 1.3.0 2886 | gopd: 1.2.0 2887 | 2888 | define-properties@1.2.1: 2889 | dependencies: 2890 | define-data-property: 1.1.4 2891 | has-property-descriptors: 1.0.2 2892 | object-keys: 1.1.1 2893 | 2894 | defu@6.1.4: {} 2895 | 2896 | dir-glob@3.0.1: 2897 | dependencies: 2898 | path-type: 4.0.0 2899 | 2900 | doctrine@2.1.0: 2901 | dependencies: 2902 | esutils: 2.0.3 2903 | 2904 | doctrine@3.0.0: 2905 | dependencies: 2906 | esutils: 2.0.3 2907 | 2908 | dotenv-expand@8.0.3: {} 2909 | 2910 | dotenv@16.0.1: {} 2911 | 2912 | dunder-proto@1.0.1: 2913 | dependencies: 2914 | call-bind-apply-helpers: 1.0.2 2915 | es-errors: 1.3.0 2916 | gopd: 1.2.0 2917 | 2918 | eastasianwidth@0.2.0: {} 2919 | 2920 | electron-to-chromium@1.5.191: {} 2921 | 2922 | emoji-regex@8.0.0: {} 2923 | 2924 | emoji-regex@9.2.2: {} 2925 | 2926 | error-ex@1.3.2: 2927 | dependencies: 2928 | is-arrayish: 0.2.1 2929 | 2930 | es-abstract@1.24.0: 2931 | dependencies: 2932 | array-buffer-byte-length: 1.0.2 2933 | arraybuffer.prototype.slice: 1.0.4 2934 | available-typed-arrays: 1.0.7 2935 | call-bind: 1.0.8 2936 | call-bound: 1.0.4 2937 | data-view-buffer: 1.0.2 2938 | data-view-byte-length: 1.0.2 2939 | data-view-byte-offset: 1.0.1 2940 | es-define-property: 1.0.1 2941 | es-errors: 1.3.0 2942 | es-object-atoms: 1.1.1 2943 | es-set-tostringtag: 2.1.0 2944 | es-to-primitive: 1.3.0 2945 | function.prototype.name: 1.1.8 2946 | get-intrinsic: 1.3.0 2947 | get-proto: 1.0.1 2948 | get-symbol-description: 1.1.0 2949 | globalthis: 1.0.4 2950 | gopd: 1.2.0 2951 | has-property-descriptors: 1.0.2 2952 | has-proto: 1.2.0 2953 | has-symbols: 1.1.0 2954 | hasown: 2.0.2 2955 | internal-slot: 1.1.0 2956 | is-array-buffer: 3.0.5 2957 | is-callable: 1.2.7 2958 | is-data-view: 1.0.2 2959 | is-negative-zero: 2.0.3 2960 | is-regex: 1.2.1 2961 | is-set: 2.0.3 2962 | is-shared-array-buffer: 1.0.4 2963 | is-string: 1.1.1 2964 | is-typed-array: 1.1.15 2965 | is-weakref: 1.1.1 2966 | math-intrinsics: 1.1.0 2967 | object-inspect: 1.13.4 2968 | object-keys: 1.1.1 2969 | object.assign: 4.1.7 2970 | own-keys: 1.0.1 2971 | regexp.prototype.flags: 1.5.4 2972 | safe-array-concat: 1.1.3 2973 | safe-push-apply: 1.0.0 2974 | safe-regex-test: 1.1.0 2975 | set-proto: 1.0.0 2976 | stop-iteration-iterator: 1.1.0 2977 | string.prototype.trim: 1.2.10 2978 | string.prototype.trimend: 1.0.9 2979 | string.prototype.trimstart: 1.0.8 2980 | typed-array-buffer: 1.0.3 2981 | typed-array-byte-length: 1.0.3 2982 | typed-array-byte-offset: 1.0.4 2983 | typed-array-length: 1.0.7 2984 | unbox-primitive: 1.1.0 2985 | which-typed-array: 1.1.19 2986 | 2987 | es-define-property@1.0.1: {} 2988 | 2989 | es-errors@1.3.0: {} 2990 | 2991 | es-module-lexer@0.9.3: {} 2992 | 2993 | es-object-atoms@1.1.1: 2994 | dependencies: 2995 | es-errors: 1.3.0 2996 | 2997 | es-set-tostringtag@2.1.0: 2998 | dependencies: 2999 | es-errors: 1.3.0 3000 | get-intrinsic: 1.3.0 3001 | has-tostringtag: 1.0.2 3002 | hasown: 2.0.2 3003 | 3004 | es-shim-unscopables@1.1.0: 3005 | dependencies: 3006 | hasown: 2.0.2 3007 | 3008 | es-to-primitive@1.3.0: 3009 | dependencies: 3010 | is-callable: 1.2.7 3011 | is-date-object: 1.1.0 3012 | is-symbol: 1.1.1 3013 | 3014 | esbuild-android-64@0.14.54: 3015 | optional: true 3016 | 3017 | esbuild-android-64@0.15.18: 3018 | optional: true 3019 | 3020 | esbuild-android-arm64@0.14.54: 3021 | optional: true 3022 | 3023 | esbuild-android-arm64@0.15.18: 3024 | optional: true 3025 | 3026 | esbuild-darwin-64@0.14.54: 3027 | optional: true 3028 | 3029 | esbuild-darwin-64@0.15.18: 3030 | optional: true 3031 | 3032 | esbuild-darwin-arm64@0.14.54: 3033 | optional: true 3034 | 3035 | esbuild-darwin-arm64@0.15.18: 3036 | optional: true 3037 | 3038 | esbuild-freebsd-64@0.14.54: 3039 | optional: true 3040 | 3041 | esbuild-freebsd-64@0.15.18: 3042 | optional: true 3043 | 3044 | esbuild-freebsd-arm64@0.14.54: 3045 | optional: true 3046 | 3047 | esbuild-freebsd-arm64@0.15.18: 3048 | optional: true 3049 | 3050 | esbuild-linux-32@0.14.54: 3051 | optional: true 3052 | 3053 | esbuild-linux-32@0.15.18: 3054 | optional: true 3055 | 3056 | esbuild-linux-64@0.14.54: 3057 | optional: true 3058 | 3059 | esbuild-linux-64@0.15.18: 3060 | optional: true 3061 | 3062 | esbuild-linux-arm64@0.14.54: 3063 | optional: true 3064 | 3065 | esbuild-linux-arm64@0.15.18: 3066 | optional: true 3067 | 3068 | esbuild-linux-arm@0.14.54: 3069 | optional: true 3070 | 3071 | esbuild-linux-arm@0.15.18: 3072 | optional: true 3073 | 3074 | esbuild-linux-mips64le@0.14.54: 3075 | optional: true 3076 | 3077 | esbuild-linux-mips64le@0.15.18: 3078 | optional: true 3079 | 3080 | esbuild-linux-ppc64le@0.14.54: 3081 | optional: true 3082 | 3083 | esbuild-linux-ppc64le@0.15.18: 3084 | optional: true 3085 | 3086 | esbuild-linux-riscv64@0.14.54: 3087 | optional: true 3088 | 3089 | esbuild-linux-riscv64@0.15.18: 3090 | optional: true 3091 | 3092 | esbuild-linux-s390x@0.14.54: 3093 | optional: true 3094 | 3095 | esbuild-linux-s390x@0.15.18: 3096 | optional: true 3097 | 3098 | esbuild-netbsd-64@0.14.54: 3099 | optional: true 3100 | 3101 | esbuild-netbsd-64@0.15.18: 3102 | optional: true 3103 | 3104 | esbuild-openbsd-64@0.14.54: 3105 | optional: true 3106 | 3107 | esbuild-openbsd-64@0.15.18: 3108 | optional: true 3109 | 3110 | esbuild-sunos-64@0.14.54: 3111 | optional: true 3112 | 3113 | esbuild-sunos-64@0.15.18: 3114 | optional: true 3115 | 3116 | esbuild-windows-32@0.14.54: 3117 | optional: true 3118 | 3119 | esbuild-windows-32@0.15.18: 3120 | optional: true 3121 | 3122 | esbuild-windows-64@0.14.54: 3123 | optional: true 3124 | 3125 | esbuild-windows-64@0.15.18: 3126 | optional: true 3127 | 3128 | esbuild-windows-arm64@0.14.54: 3129 | optional: true 3130 | 3131 | esbuild-windows-arm64@0.15.18: 3132 | optional: true 3133 | 3134 | esbuild@0.14.54: 3135 | optionalDependencies: 3136 | '@esbuild/linux-loong64': 0.14.54 3137 | esbuild-android-64: 0.14.54 3138 | esbuild-android-arm64: 0.14.54 3139 | esbuild-darwin-64: 0.14.54 3140 | esbuild-darwin-arm64: 0.14.54 3141 | esbuild-freebsd-64: 0.14.54 3142 | esbuild-freebsd-arm64: 0.14.54 3143 | esbuild-linux-32: 0.14.54 3144 | esbuild-linux-64: 0.14.54 3145 | esbuild-linux-arm: 0.14.54 3146 | esbuild-linux-arm64: 0.14.54 3147 | esbuild-linux-mips64le: 0.14.54 3148 | esbuild-linux-ppc64le: 0.14.54 3149 | esbuild-linux-riscv64: 0.14.54 3150 | esbuild-linux-s390x: 0.14.54 3151 | esbuild-netbsd-64: 0.14.54 3152 | esbuild-openbsd-64: 0.14.54 3153 | esbuild-sunos-64: 0.14.54 3154 | esbuild-windows-32: 0.14.54 3155 | esbuild-windows-64: 0.14.54 3156 | esbuild-windows-arm64: 0.14.54 3157 | 3158 | esbuild@0.15.18: 3159 | optionalDependencies: 3160 | '@esbuild/android-arm': 0.15.18 3161 | '@esbuild/linux-loong64': 0.15.18 3162 | esbuild-android-64: 0.15.18 3163 | esbuild-android-arm64: 0.15.18 3164 | esbuild-darwin-64: 0.15.18 3165 | esbuild-darwin-arm64: 0.15.18 3166 | esbuild-freebsd-64: 0.15.18 3167 | esbuild-freebsd-arm64: 0.15.18 3168 | esbuild-linux-32: 0.15.18 3169 | esbuild-linux-64: 0.15.18 3170 | esbuild-linux-arm: 0.15.18 3171 | esbuild-linux-arm64: 0.15.18 3172 | esbuild-linux-mips64le: 0.15.18 3173 | esbuild-linux-ppc64le: 0.15.18 3174 | esbuild-linux-riscv64: 0.15.18 3175 | esbuild-linux-s390x: 0.15.18 3176 | esbuild-netbsd-64: 0.15.18 3177 | esbuild-openbsd-64: 0.15.18 3178 | esbuild-sunos-64: 0.15.18 3179 | esbuild-windows-32: 0.15.18 3180 | esbuild-windows-64: 0.15.18 3181 | esbuild-windows-arm64: 0.15.18 3182 | 3183 | escalade@3.2.0: {} 3184 | 3185 | escape-string-regexp@1.0.5: {} 3186 | 3187 | escape-string-regexp@4.0.0: {} 3188 | 3189 | eslint-config-prettier@8.5.0(eslint@8.18.0): 3190 | dependencies: 3191 | eslint: 8.18.0 3192 | 3193 | eslint-import-resolver-node@0.3.9: 3194 | dependencies: 3195 | debug: 3.2.7 3196 | is-core-module: 2.16.1 3197 | resolve: 1.22.10 3198 | transitivePeerDependencies: 3199 | - supports-color 3200 | 3201 | eslint-module-utils@2.12.1(@typescript-eslint/parser@5.30.0(eslint@8.18.0)(typescript@4.7.4))(eslint-import-resolver-node@0.3.9)(eslint@8.18.0): 3202 | dependencies: 3203 | debug: 3.2.7 3204 | optionalDependencies: 3205 | '@typescript-eslint/parser': 5.30.0(eslint@8.18.0)(typescript@4.7.4) 3206 | eslint: 8.18.0 3207 | eslint-import-resolver-node: 0.3.9 3208 | transitivePeerDependencies: 3209 | - supports-color 3210 | 3211 | eslint-plugin-import@2.26.0(@typescript-eslint/parser@5.30.0(eslint@8.18.0)(typescript@4.7.4))(eslint@8.18.0): 3212 | dependencies: 3213 | array-includes: 3.1.9 3214 | array.prototype.flat: 1.3.3 3215 | debug: 2.6.9 3216 | doctrine: 2.1.0 3217 | eslint: 8.18.0 3218 | eslint-import-resolver-node: 0.3.9 3219 | eslint-module-utils: 2.12.1(@typescript-eslint/parser@5.30.0(eslint@8.18.0)(typescript@4.7.4))(eslint-import-resolver-node@0.3.9)(eslint@8.18.0) 3220 | has: 1.0.4 3221 | is-core-module: 2.16.1 3222 | is-glob: 4.0.3 3223 | minimatch: 3.1.2 3224 | object.values: 1.2.1 3225 | resolve: 1.22.10 3226 | tsconfig-paths: 3.15.0 3227 | optionalDependencies: 3228 | '@typescript-eslint/parser': 5.30.0(eslint@8.18.0)(typescript@4.7.4) 3229 | transitivePeerDependencies: 3230 | - eslint-import-resolver-typescript 3231 | - eslint-import-resolver-webpack 3232 | - supports-color 3233 | 3234 | eslint-plugin-jsx-a11y@6.6.0(eslint@8.18.0): 3235 | dependencies: 3236 | '@babel/runtime': 7.28.2 3237 | aria-query: 4.2.2 3238 | array-includes: 3.1.9 3239 | ast-types-flow: 0.0.7 3240 | axe-core: 4.10.3 3241 | axobject-query: 2.2.0 3242 | damerau-levenshtein: 1.0.8 3243 | emoji-regex: 9.2.2 3244 | eslint: 8.18.0 3245 | has: 1.0.4 3246 | jsx-ast-utils: 3.3.5 3247 | language-tags: 1.0.9 3248 | minimatch: 3.1.2 3249 | semver: 6.3.1 3250 | 3251 | eslint-plugin-react@7.30.1(eslint@8.18.0): 3252 | dependencies: 3253 | array-includes: 3.1.9 3254 | array.prototype.flatmap: 1.3.3 3255 | doctrine: 2.1.0 3256 | eslint: 8.18.0 3257 | estraverse: 5.3.0 3258 | jsx-ast-utils: 3.3.5 3259 | minimatch: 3.1.2 3260 | object.entries: 1.1.9 3261 | object.fromentries: 2.0.8 3262 | object.hasown: 1.1.4 3263 | object.values: 1.2.1 3264 | prop-types: 15.8.1 3265 | resolve: 2.0.0-next.5 3266 | semver: 6.3.1 3267 | string.prototype.matchall: 4.0.12 3268 | 3269 | eslint-plugin-unicorn@42.0.0(eslint@8.18.0): 3270 | dependencies: 3271 | '@babel/helper-validator-identifier': 7.27.1 3272 | ci-info: 3.9.0 3273 | clean-regexp: 1.0.0 3274 | eslint: 8.18.0 3275 | eslint-utils: 3.0.0(eslint@8.18.0) 3276 | esquery: 1.6.0 3277 | indent-string: 4.0.0 3278 | is-builtin-module: 3.2.1 3279 | lodash: 4.17.21 3280 | pluralize: 8.0.0 3281 | read-pkg-up: 7.0.1 3282 | regexp-tree: 0.1.27 3283 | safe-regex: 2.1.1 3284 | semver: 7.7.2 3285 | strip-indent: 3.0.0 3286 | 3287 | eslint-scope@5.1.1: 3288 | dependencies: 3289 | esrecurse: 4.3.0 3290 | estraverse: 4.3.0 3291 | 3292 | eslint-scope@7.2.2: 3293 | dependencies: 3294 | esrecurse: 4.3.0 3295 | estraverse: 5.3.0 3296 | 3297 | eslint-utils@3.0.0(eslint@8.18.0): 3298 | dependencies: 3299 | eslint: 8.18.0 3300 | eslint-visitor-keys: 2.1.0 3301 | 3302 | eslint-visitor-keys@2.1.0: {} 3303 | 3304 | eslint-visitor-keys@3.4.3: {} 3305 | 3306 | eslint@8.18.0: 3307 | dependencies: 3308 | '@eslint/eslintrc': 1.4.1 3309 | '@humanwhocodes/config-array': 0.9.5 3310 | ajv: 6.12.6 3311 | chalk: 4.1.2 3312 | cross-spawn: 7.0.6 3313 | debug: 4.4.1 3314 | doctrine: 3.0.0 3315 | escape-string-regexp: 4.0.0 3316 | eslint-scope: 7.2.2 3317 | eslint-utils: 3.0.0(eslint@8.18.0) 3318 | eslint-visitor-keys: 3.4.3 3319 | espree: 9.6.1 3320 | esquery: 1.6.0 3321 | esutils: 2.0.3 3322 | fast-deep-equal: 3.1.3 3323 | file-entry-cache: 6.0.1 3324 | functional-red-black-tree: 1.0.1 3325 | glob-parent: 6.0.2 3326 | globals: 13.24.0 3327 | ignore: 5.3.2 3328 | import-fresh: 3.3.1 3329 | imurmurhash: 0.1.4 3330 | is-glob: 4.0.3 3331 | js-yaml: 4.1.0 3332 | json-stable-stringify-without-jsonify: 1.0.1 3333 | levn: 0.4.1 3334 | lodash.merge: 4.6.2 3335 | minimatch: 3.1.2 3336 | natural-compare: 1.4.0 3337 | optionator: 0.9.4 3338 | regexpp: 3.2.0 3339 | strip-ansi: 6.0.1 3340 | strip-json-comments: 3.1.1 3341 | text-table: 0.2.0 3342 | v8-compile-cache: 2.4.0 3343 | transitivePeerDependencies: 3344 | - supports-color 3345 | 3346 | espree@9.6.1: 3347 | dependencies: 3348 | acorn: 8.15.0 3349 | acorn-jsx: 5.3.2(acorn@8.15.0) 3350 | eslint-visitor-keys: 3.4.3 3351 | 3352 | esquery@1.6.0: 3353 | dependencies: 3354 | estraverse: 5.3.0 3355 | 3356 | esrecurse@4.3.0: 3357 | dependencies: 3358 | estraverse: 5.3.0 3359 | 3360 | estraverse@4.3.0: {} 3361 | 3362 | estraverse@5.3.0: {} 3363 | 3364 | estree-walker@1.0.1: {} 3365 | 3366 | estree-walker@2.0.2: {} 3367 | 3368 | esutils@2.0.3: {} 3369 | 3370 | execa@6.1.0: 3371 | dependencies: 3372 | cross-spawn: 7.0.6 3373 | get-stream: 6.0.1 3374 | human-signals: 3.0.1 3375 | is-stream: 3.0.0 3376 | merge-stream: 2.0.0 3377 | npm-run-path: 5.3.0 3378 | onetime: 6.0.0 3379 | signal-exit: 3.0.7 3380 | strip-final-newline: 3.0.0 3381 | 3382 | fast-deep-equal@3.1.3: {} 3383 | 3384 | fast-glob@3.3.3: 3385 | dependencies: 3386 | '@nodelib/fs.stat': 2.0.5 3387 | '@nodelib/fs.walk': 1.2.8 3388 | glob-parent: 5.1.2 3389 | merge2: 1.4.1 3390 | micromatch: 4.0.8 3391 | 3392 | fast-json-stable-stringify@2.1.0: {} 3393 | 3394 | fast-levenshtein@2.0.6: {} 3395 | 3396 | fastq@1.19.1: 3397 | dependencies: 3398 | reusify: 1.1.0 3399 | 3400 | file-entry-cache@6.0.1: 3401 | dependencies: 3402 | flat-cache: 3.2.0 3403 | 3404 | fill-range@7.1.1: 3405 | dependencies: 3406 | to-regex-range: 5.0.1 3407 | 3408 | find-up@4.1.0: 3409 | dependencies: 3410 | locate-path: 5.0.0 3411 | path-exists: 4.0.0 3412 | 3413 | flat-cache@3.2.0: 3414 | dependencies: 3415 | flatted: 3.3.3 3416 | keyv: 4.5.4 3417 | rimraf: 3.0.2 3418 | 3419 | flatted@3.3.3: {} 3420 | 3421 | for-each@0.3.5: 3422 | dependencies: 3423 | is-callable: 1.2.7 3424 | 3425 | fs-extra@10.1.0: 3426 | dependencies: 3427 | graceful-fs: 4.2.11 3428 | jsonfile: 6.1.0 3429 | universalify: 2.0.1 3430 | 3431 | fs.realpath@1.0.0: {} 3432 | 3433 | fsevents@2.3.3: 3434 | optional: true 3435 | 3436 | function-bind@1.1.2: {} 3437 | 3438 | function.prototype.name@1.1.8: 3439 | dependencies: 3440 | call-bind: 1.0.8 3441 | call-bound: 1.0.4 3442 | define-properties: 1.2.1 3443 | functions-have-names: 1.2.3 3444 | hasown: 2.0.2 3445 | is-callable: 1.2.7 3446 | 3447 | functional-red-black-tree@1.0.1: {} 3448 | 3449 | functions-have-names@1.2.3: {} 3450 | 3451 | gensync@1.0.0-beta.2: {} 3452 | 3453 | get-func-name@2.0.2: {} 3454 | 3455 | get-intrinsic@1.3.0: 3456 | dependencies: 3457 | call-bind-apply-helpers: 1.0.2 3458 | es-define-property: 1.0.1 3459 | es-errors: 1.3.0 3460 | es-object-atoms: 1.1.1 3461 | function-bind: 1.1.2 3462 | get-proto: 1.0.1 3463 | gopd: 1.2.0 3464 | has-symbols: 1.1.0 3465 | hasown: 2.0.2 3466 | math-intrinsics: 1.1.0 3467 | 3468 | get-proto@1.0.1: 3469 | dependencies: 3470 | dunder-proto: 1.0.1 3471 | es-object-atoms: 1.1.1 3472 | 3473 | get-stream@6.0.1: {} 3474 | 3475 | get-symbol-description@1.1.0: 3476 | dependencies: 3477 | call-bound: 1.0.4 3478 | es-errors: 1.3.0 3479 | get-intrinsic: 1.3.0 3480 | 3481 | glob-parent@5.1.2: 3482 | dependencies: 3483 | is-glob: 4.0.3 3484 | 3485 | glob-parent@6.0.2: 3486 | dependencies: 3487 | is-glob: 4.0.3 3488 | 3489 | glob@7.2.3: 3490 | dependencies: 3491 | fs.realpath: 1.0.0 3492 | inflight: 1.0.6 3493 | inherits: 2.0.4 3494 | minimatch: 3.1.2 3495 | once: 1.4.0 3496 | path-is-absolute: 1.0.1 3497 | 3498 | globals@13.24.0: 3499 | dependencies: 3500 | type-fest: 0.20.2 3501 | 3502 | globalthis@1.0.4: 3503 | dependencies: 3504 | define-properties: 1.2.1 3505 | gopd: 1.2.0 3506 | 3507 | globby@11.1.0: 3508 | dependencies: 3509 | array-union: 2.1.0 3510 | dir-glob: 3.0.1 3511 | fast-glob: 3.3.3 3512 | ignore: 5.3.2 3513 | merge2: 1.4.1 3514 | slash: 3.0.0 3515 | 3516 | gopd@1.2.0: {} 3517 | 3518 | graceful-fs@4.2.11: {} 3519 | 3520 | has-bigints@1.1.0: {} 3521 | 3522 | has-flag@4.0.0: {} 3523 | 3524 | has-property-descriptors@1.0.2: 3525 | dependencies: 3526 | es-define-property: 1.0.1 3527 | 3528 | has-proto@1.2.0: 3529 | dependencies: 3530 | dunder-proto: 1.0.1 3531 | 3532 | has-symbols@1.1.0: {} 3533 | 3534 | has-tostringtag@1.0.2: 3535 | dependencies: 3536 | has-symbols: 1.1.0 3537 | 3538 | has@1.0.4: {} 3539 | 3540 | hasown@2.0.2: 3541 | dependencies: 3542 | function-bind: 1.1.2 3543 | 3544 | hookable@5.5.3: {} 3545 | 3546 | hosted-git-info@2.8.9: {} 3547 | 3548 | human-signals@3.0.1: {} 3549 | 3550 | husky@8.0.1: {} 3551 | 3552 | ignore@5.3.2: {} 3553 | 3554 | import-fresh@3.3.1: 3555 | dependencies: 3556 | parent-module: 1.0.1 3557 | resolve-from: 4.0.0 3558 | 3559 | imurmurhash@0.1.4: {} 3560 | 3561 | indent-string@4.0.0: {} 3562 | 3563 | inflight@1.0.6: 3564 | dependencies: 3565 | once: 1.4.0 3566 | wrappy: 1.0.2 3567 | 3568 | inherits@2.0.4: {} 3569 | 3570 | internal-slot@1.1.0: 3571 | dependencies: 3572 | es-errors: 1.3.0 3573 | hasown: 2.0.2 3574 | side-channel: 1.1.0 3575 | 3576 | is-array-buffer@3.0.5: 3577 | dependencies: 3578 | call-bind: 1.0.8 3579 | call-bound: 1.0.4 3580 | get-intrinsic: 1.3.0 3581 | 3582 | is-arrayish@0.2.1: {} 3583 | 3584 | is-async-function@2.1.1: 3585 | dependencies: 3586 | async-function: 1.0.0 3587 | call-bound: 1.0.4 3588 | get-proto: 1.0.1 3589 | has-tostringtag: 1.0.2 3590 | safe-regex-test: 1.1.0 3591 | 3592 | is-bigint@1.1.0: 3593 | dependencies: 3594 | has-bigints: 1.1.0 3595 | 3596 | is-boolean-object@1.2.2: 3597 | dependencies: 3598 | call-bound: 1.0.4 3599 | has-tostringtag: 1.0.2 3600 | 3601 | is-builtin-module@3.2.1: 3602 | dependencies: 3603 | builtin-modules: 3.3.0 3604 | 3605 | is-callable@1.2.7: {} 3606 | 3607 | is-core-module@2.16.1: 3608 | dependencies: 3609 | hasown: 2.0.2 3610 | 3611 | is-data-view@1.0.2: 3612 | dependencies: 3613 | call-bound: 1.0.4 3614 | get-intrinsic: 1.3.0 3615 | is-typed-array: 1.1.15 3616 | 3617 | is-date-object@1.1.0: 3618 | dependencies: 3619 | call-bound: 1.0.4 3620 | has-tostringtag: 1.0.2 3621 | 3622 | is-extglob@2.1.1: {} 3623 | 3624 | is-finalizationregistry@1.1.1: 3625 | dependencies: 3626 | call-bound: 1.0.4 3627 | 3628 | is-fullwidth-code-point@3.0.0: {} 3629 | 3630 | is-fullwidth-code-point@4.0.0: {} 3631 | 3632 | is-generator-function@1.1.0: 3633 | dependencies: 3634 | call-bound: 1.0.4 3635 | get-proto: 1.0.1 3636 | has-tostringtag: 1.0.2 3637 | safe-regex-test: 1.1.0 3638 | 3639 | is-glob@4.0.3: 3640 | dependencies: 3641 | is-extglob: 2.1.1 3642 | 3643 | is-map@2.0.3: {} 3644 | 3645 | is-module@1.0.0: {} 3646 | 3647 | is-negative-zero@2.0.3: {} 3648 | 3649 | is-number-object@1.1.1: 3650 | dependencies: 3651 | call-bound: 1.0.4 3652 | has-tostringtag: 1.0.2 3653 | 3654 | is-number@7.0.0: {} 3655 | 3656 | is-reference@1.2.1: 3657 | dependencies: 3658 | '@types/estree': 1.0.8 3659 | 3660 | is-regex@1.2.1: 3661 | dependencies: 3662 | call-bound: 1.0.4 3663 | gopd: 1.2.0 3664 | has-tostringtag: 1.0.2 3665 | hasown: 2.0.2 3666 | 3667 | is-set@2.0.3: {} 3668 | 3669 | is-shared-array-buffer@1.0.4: 3670 | dependencies: 3671 | call-bound: 1.0.4 3672 | 3673 | is-stream@3.0.0: {} 3674 | 3675 | is-string@1.1.1: 3676 | dependencies: 3677 | call-bound: 1.0.4 3678 | has-tostringtag: 1.0.2 3679 | 3680 | is-symbol@1.1.1: 3681 | dependencies: 3682 | call-bound: 1.0.4 3683 | has-symbols: 1.1.0 3684 | safe-regex-test: 1.1.0 3685 | 3686 | is-typed-array@1.1.15: 3687 | dependencies: 3688 | which-typed-array: 1.1.19 3689 | 3690 | is-weakmap@2.0.2: {} 3691 | 3692 | is-weakref@1.1.1: 3693 | dependencies: 3694 | call-bound: 1.0.4 3695 | 3696 | is-weakset@2.0.4: 3697 | dependencies: 3698 | call-bound: 1.0.4 3699 | get-intrinsic: 1.3.0 3700 | 3701 | isarray@2.0.5: {} 3702 | 3703 | isexe@2.0.0: {} 3704 | 3705 | jiti@1.21.7: {} 3706 | 3707 | joycon@3.1.1: {} 3708 | 3709 | js-tokens@4.0.0: {} 3710 | 3711 | js-yaml@4.1.0: 3712 | dependencies: 3713 | argparse: 2.0.1 3714 | 3715 | jsesc@3.1.0: {} 3716 | 3717 | json-buffer@3.0.1: {} 3718 | 3719 | json-parse-even-better-errors@2.3.1: {} 3720 | 3721 | json-schema-traverse@0.4.1: {} 3722 | 3723 | json-stable-stringify-without-jsonify@1.0.1: {} 3724 | 3725 | json5@1.0.2: 3726 | dependencies: 3727 | minimist: 1.2.8 3728 | 3729 | json5@2.2.3: {} 3730 | 3731 | jsonc-parser@3.3.1: {} 3732 | 3733 | jsonfile@6.1.0: 3734 | dependencies: 3735 | universalify: 2.0.1 3736 | optionalDependencies: 3737 | graceful-fs: 4.2.11 3738 | 3739 | jsx-ast-utils@3.3.5: 3740 | dependencies: 3741 | array-includes: 3.1.9 3742 | array.prototype.flat: 1.3.3 3743 | object.assign: 4.1.7 3744 | object.values: 1.2.1 3745 | 3746 | keyv@4.5.4: 3747 | dependencies: 3748 | json-buffer: 3.0.1 3749 | 3750 | kolorist@1.5.1: {} 3751 | 3752 | language-subtag-registry@0.3.23: {} 3753 | 3754 | language-tags@1.0.9: 3755 | dependencies: 3756 | language-subtag-registry: 0.3.23 3757 | 3758 | levn@0.4.1: 3759 | dependencies: 3760 | prelude-ls: 1.2.1 3761 | type-check: 0.4.0 3762 | 3763 | lilconfig@2.0.5: {} 3764 | 3765 | lines-and-columns@1.2.4: {} 3766 | 3767 | lint-staged@13.0.3: 3768 | dependencies: 3769 | cli-truncate: 3.1.0 3770 | colorette: 2.0.20 3771 | commander: 9.5.0 3772 | debug: 4.4.1 3773 | execa: 6.1.0 3774 | lilconfig: 2.0.5 3775 | listr2: 4.0.5 3776 | micromatch: 4.0.8 3777 | normalize-path: 3.0.0 3778 | object-inspect: 1.13.4 3779 | pidtree: 0.6.0 3780 | string-argv: 0.3.2 3781 | yaml: 2.8.0 3782 | transitivePeerDependencies: 3783 | - enquirer 3784 | - supports-color 3785 | 3786 | listr2@4.0.5: 3787 | dependencies: 3788 | cli-truncate: 2.1.0 3789 | colorette: 2.0.20 3790 | log-update: 4.0.0 3791 | p-map: 4.0.0 3792 | rfdc: 1.4.1 3793 | rxjs: 7.8.2 3794 | through: 2.3.8 3795 | wrap-ansi: 7.0.0 3796 | 3797 | local-pkg@0.4.3: {} 3798 | 3799 | locate-path@5.0.0: 3800 | dependencies: 3801 | p-locate: 4.1.0 3802 | 3803 | lodash.merge@4.6.2: {} 3804 | 3805 | lodash@4.17.21: {} 3806 | 3807 | log-update@4.0.0: 3808 | dependencies: 3809 | ansi-escapes: 4.3.2 3810 | cli-cursor: 3.1.0 3811 | slice-ansi: 4.0.0 3812 | wrap-ansi: 6.2.0 3813 | 3814 | loose-envify@1.4.0: 3815 | dependencies: 3816 | js-tokens: 4.0.0 3817 | 3818 | loupe@2.3.7: 3819 | dependencies: 3820 | get-func-name: 2.0.2 3821 | 3822 | lru-cache@5.1.1: 3823 | dependencies: 3824 | yallist: 3.1.1 3825 | 3826 | magic-string@0.25.9: 3827 | dependencies: 3828 | sourcemap-codec: 1.4.8 3829 | 3830 | magic-string@0.26.7: 3831 | dependencies: 3832 | sourcemap-codec: 1.4.8 3833 | 3834 | math-intrinsics@1.1.0: {} 3835 | 3836 | merge-stream@2.0.0: {} 3837 | 3838 | merge2@1.4.1: {} 3839 | 3840 | micromatch@4.0.8: 3841 | dependencies: 3842 | braces: 3.0.3 3843 | picomatch: 2.3.1 3844 | 3845 | mimic-fn@2.1.0: {} 3846 | 3847 | mimic-fn@4.0.0: {} 3848 | 3849 | min-indent@1.0.1: {} 3850 | 3851 | minimatch@3.1.2: 3852 | dependencies: 3853 | brace-expansion: 1.1.12 3854 | 3855 | minimist@1.2.8: {} 3856 | 3857 | mkdirp@1.0.4: {} 3858 | 3859 | mkdist@0.3.13(typescript@4.7.4): 3860 | dependencies: 3861 | defu: 6.1.4 3862 | esbuild: 0.14.54 3863 | fs-extra: 10.1.0 3864 | globby: 11.1.0 3865 | jiti: 1.21.7 3866 | mri: 1.2.0 3867 | pathe: 0.2.0 3868 | optionalDependencies: 3869 | typescript: 4.7.4 3870 | 3871 | mlly@0.5.17: 3872 | dependencies: 3873 | acorn: 8.15.0 3874 | pathe: 1.1.2 3875 | pkg-types: 1.3.1 3876 | ufo: 1.6.1 3877 | 3878 | mlly@1.7.4: 3879 | dependencies: 3880 | acorn: 8.15.0 3881 | pathe: 2.0.3 3882 | pkg-types: 1.3.1 3883 | ufo: 1.6.1 3884 | 3885 | mri@1.2.0: {} 3886 | 3887 | ms@2.0.0: {} 3888 | 3889 | ms@2.1.3: {} 3890 | 3891 | nanoid@3.3.11: {} 3892 | 3893 | nanospinner@1.1.0: 3894 | dependencies: 3895 | picocolors: 1.1.1 3896 | 3897 | natural-compare@1.4.0: {} 3898 | 3899 | node-releases@2.0.19: {} 3900 | 3901 | normalize-package-data@2.5.0: 3902 | dependencies: 3903 | hosted-git-info: 2.8.9 3904 | resolve: 1.22.10 3905 | semver: 5.7.2 3906 | validate-npm-package-license: 3.0.4 3907 | 3908 | normalize-path@3.0.0: {} 3909 | 3910 | npm-run-path@5.3.0: 3911 | dependencies: 3912 | path-key: 4.0.0 3913 | 3914 | object-assign@4.1.1: {} 3915 | 3916 | object-inspect@1.13.4: {} 3917 | 3918 | object-keys@1.1.1: {} 3919 | 3920 | object.assign@4.1.7: 3921 | dependencies: 3922 | call-bind: 1.0.8 3923 | call-bound: 1.0.4 3924 | define-properties: 1.2.1 3925 | es-object-atoms: 1.1.1 3926 | has-symbols: 1.1.0 3927 | object-keys: 1.1.1 3928 | 3929 | object.entries@1.1.9: 3930 | dependencies: 3931 | call-bind: 1.0.8 3932 | call-bound: 1.0.4 3933 | define-properties: 1.2.1 3934 | es-object-atoms: 1.1.1 3935 | 3936 | object.fromentries@2.0.8: 3937 | dependencies: 3938 | call-bind: 1.0.8 3939 | define-properties: 1.2.1 3940 | es-abstract: 1.24.0 3941 | es-object-atoms: 1.1.1 3942 | 3943 | object.hasown@1.1.4: 3944 | dependencies: 3945 | define-properties: 1.2.1 3946 | es-abstract: 1.24.0 3947 | es-object-atoms: 1.1.1 3948 | 3949 | object.values@1.2.1: 3950 | dependencies: 3951 | call-bind: 1.0.8 3952 | call-bound: 1.0.4 3953 | define-properties: 1.2.1 3954 | es-object-atoms: 1.1.1 3955 | 3956 | once@1.4.0: 3957 | dependencies: 3958 | wrappy: 1.0.2 3959 | 3960 | onetime@5.1.2: 3961 | dependencies: 3962 | mimic-fn: 2.1.0 3963 | 3964 | onetime@6.0.0: 3965 | dependencies: 3966 | mimic-fn: 4.0.0 3967 | 3968 | optionator@0.9.4: 3969 | dependencies: 3970 | deep-is: 0.1.4 3971 | fast-levenshtein: 2.0.6 3972 | levn: 0.4.1 3973 | prelude-ls: 1.2.1 3974 | type-check: 0.4.0 3975 | word-wrap: 1.2.5 3976 | 3977 | own-keys@1.0.1: 3978 | dependencies: 3979 | get-intrinsic: 1.3.0 3980 | object-keys: 1.1.1 3981 | safe-push-apply: 1.0.0 3982 | 3983 | p-limit@2.3.0: 3984 | dependencies: 3985 | p-try: 2.2.0 3986 | 3987 | p-locate@4.1.0: 3988 | dependencies: 3989 | p-limit: 2.3.0 3990 | 3991 | p-map@4.0.0: 3992 | dependencies: 3993 | aggregate-error: 3.1.0 3994 | 3995 | p-try@2.2.0: {} 3996 | 3997 | parent-module@1.0.1: 3998 | dependencies: 3999 | callsites: 3.1.0 4000 | 4001 | parse-json@5.2.0: 4002 | dependencies: 4003 | '@babel/code-frame': 7.27.1 4004 | error-ex: 1.3.2 4005 | json-parse-even-better-errors: 2.3.1 4006 | lines-and-columns: 1.2.4 4007 | 4008 | path-exists@4.0.0: {} 4009 | 4010 | path-is-absolute@1.0.1: {} 4011 | 4012 | path-key@3.1.1: {} 4013 | 4014 | path-key@4.0.0: {} 4015 | 4016 | path-parse@1.0.7: {} 4017 | 4018 | path-type@4.0.0: {} 4019 | 4020 | pathe@0.2.0: {} 4021 | 4022 | pathe@0.3.9: {} 4023 | 4024 | pathe@1.1.2: {} 4025 | 4026 | pathe@2.0.3: {} 4027 | 4028 | pathval@1.1.1: {} 4029 | 4030 | picocolors@1.1.1: {} 4031 | 4032 | picomatch@2.3.1: {} 4033 | 4034 | pidtree@0.6.0: {} 4035 | 4036 | pkg-types@0.3.6: 4037 | dependencies: 4038 | jsonc-parser: 3.3.1 4039 | mlly: 0.5.17 4040 | pathe: 0.3.9 4041 | 4042 | pkg-types@1.3.1: 4043 | dependencies: 4044 | confbox: 0.1.8 4045 | mlly: 1.7.4 4046 | pathe: 2.0.3 4047 | 4048 | pluralize@8.0.0: {} 4049 | 4050 | possible-typed-array-names@1.1.0: {} 4051 | 4052 | postcss@8.5.6: 4053 | dependencies: 4054 | nanoid: 3.3.11 4055 | picocolors: 1.1.1 4056 | source-map-js: 1.2.1 4057 | 4058 | prelude-ls@1.2.1: {} 4059 | 4060 | prettier@2.7.1: {} 4061 | 4062 | pretty-bytes@6.1.1: {} 4063 | 4064 | prop-types@15.8.1: 4065 | dependencies: 4066 | loose-envify: 1.4.0 4067 | object-assign: 4.1.1 4068 | react-is: 16.13.1 4069 | 4070 | punycode@2.3.1: {} 4071 | 4072 | queue-microtask@1.2.3: {} 4073 | 4074 | react-is@16.13.1: {} 4075 | 4076 | read-pkg-up@7.0.1: 4077 | dependencies: 4078 | find-up: 4.1.0 4079 | read-pkg: 5.2.0 4080 | type-fest: 0.8.1 4081 | 4082 | read-pkg@5.2.0: 4083 | dependencies: 4084 | '@types/normalize-package-data': 2.4.4 4085 | normalize-package-data: 2.5.0 4086 | parse-json: 5.2.0 4087 | type-fest: 0.6.0 4088 | 4089 | reflect.getprototypeof@1.0.10: 4090 | dependencies: 4091 | call-bind: 1.0.8 4092 | define-properties: 1.2.1 4093 | es-abstract: 1.24.0 4094 | es-errors: 1.3.0 4095 | es-object-atoms: 1.1.1 4096 | get-intrinsic: 1.3.0 4097 | get-proto: 1.0.1 4098 | which-builtin-type: 1.2.1 4099 | 4100 | regexp-tree@0.1.27: {} 4101 | 4102 | regexp.prototype.flags@1.5.4: 4103 | dependencies: 4104 | call-bind: 1.0.8 4105 | define-properties: 1.2.1 4106 | es-errors: 1.3.0 4107 | get-proto: 1.0.1 4108 | gopd: 1.2.0 4109 | set-function-name: 2.0.2 4110 | 4111 | regexpp@3.2.0: {} 4112 | 4113 | resolve-from@4.0.0: {} 4114 | 4115 | resolve@1.22.10: 4116 | dependencies: 4117 | is-core-module: 2.16.1 4118 | path-parse: 1.0.7 4119 | supports-preserve-symlinks-flag: 1.0.0 4120 | 4121 | resolve@2.0.0-next.5: 4122 | dependencies: 4123 | is-core-module: 2.16.1 4124 | path-parse: 1.0.7 4125 | supports-preserve-symlinks-flag: 1.0.0 4126 | 4127 | restore-cursor@3.1.0: 4128 | dependencies: 4129 | onetime: 5.1.2 4130 | signal-exit: 3.0.7 4131 | 4132 | reusify@1.1.0: {} 4133 | 4134 | rfdc@1.4.1: {} 4135 | 4136 | rimraf@3.0.2: 4137 | dependencies: 4138 | glob: 7.2.3 4139 | 4140 | rollup-plugin-dts@4.2.3(rollup@2.79.2)(typescript@4.7.4): 4141 | dependencies: 4142 | magic-string: 0.26.7 4143 | rollup: 2.79.2 4144 | typescript: 4.7.4 4145 | optionalDependencies: 4146 | '@babel/code-frame': 7.27.1 4147 | 4148 | rollup-plugin-esbuild@4.10.3(esbuild@0.14.54)(rollup@2.79.2): 4149 | dependencies: 4150 | '@rollup/pluginutils': 4.2.1 4151 | debug: 4.4.1 4152 | es-module-lexer: 0.9.3 4153 | esbuild: 0.14.54 4154 | joycon: 3.1.1 4155 | jsonc-parser: 3.3.1 4156 | rollup: 2.79.2 4157 | transitivePeerDependencies: 4158 | - supports-color 4159 | 4160 | rollup@2.79.2: 4161 | optionalDependencies: 4162 | fsevents: 2.3.3 4163 | 4164 | run-parallel@1.2.0: 4165 | dependencies: 4166 | queue-microtask: 1.2.3 4167 | 4168 | rxjs@7.8.2: 4169 | dependencies: 4170 | tslib: 2.8.1 4171 | 4172 | safe-array-concat@1.1.3: 4173 | dependencies: 4174 | call-bind: 1.0.8 4175 | call-bound: 1.0.4 4176 | get-intrinsic: 1.3.0 4177 | has-symbols: 1.1.0 4178 | isarray: 2.0.5 4179 | 4180 | safe-push-apply@1.0.0: 4181 | dependencies: 4182 | es-errors: 1.3.0 4183 | isarray: 2.0.5 4184 | 4185 | safe-regex-test@1.1.0: 4186 | dependencies: 4187 | call-bound: 1.0.4 4188 | es-errors: 1.3.0 4189 | is-regex: 1.2.1 4190 | 4191 | safe-regex@2.1.1: 4192 | dependencies: 4193 | regexp-tree: 0.1.27 4194 | 4195 | scule@0.2.1: {} 4196 | 4197 | scule@0.3.2: {} 4198 | 4199 | semver@5.7.2: {} 4200 | 4201 | semver@6.3.1: {} 4202 | 4203 | semver@7.7.2: {} 4204 | 4205 | set-function-length@1.2.2: 4206 | dependencies: 4207 | define-data-property: 1.1.4 4208 | es-errors: 1.3.0 4209 | function-bind: 1.1.2 4210 | get-intrinsic: 1.3.0 4211 | gopd: 1.2.0 4212 | has-property-descriptors: 1.0.2 4213 | 4214 | set-function-name@2.0.2: 4215 | dependencies: 4216 | define-data-property: 1.1.4 4217 | es-errors: 1.3.0 4218 | functions-have-names: 1.2.3 4219 | has-property-descriptors: 1.0.2 4220 | 4221 | set-proto@1.0.0: 4222 | dependencies: 4223 | dunder-proto: 1.0.1 4224 | es-errors: 1.3.0 4225 | es-object-atoms: 1.1.1 4226 | 4227 | shebang-command@2.0.0: 4228 | dependencies: 4229 | shebang-regex: 3.0.0 4230 | 4231 | shebang-regex@3.0.0: {} 4232 | 4233 | side-channel-list@1.0.0: 4234 | dependencies: 4235 | es-errors: 1.3.0 4236 | object-inspect: 1.13.4 4237 | 4238 | side-channel-map@1.0.1: 4239 | dependencies: 4240 | call-bound: 1.0.4 4241 | es-errors: 1.3.0 4242 | get-intrinsic: 1.3.0 4243 | object-inspect: 1.13.4 4244 | 4245 | side-channel-weakmap@1.0.2: 4246 | dependencies: 4247 | call-bound: 1.0.4 4248 | es-errors: 1.3.0 4249 | get-intrinsic: 1.3.0 4250 | object-inspect: 1.13.4 4251 | side-channel-map: 1.0.1 4252 | 4253 | side-channel@1.1.0: 4254 | dependencies: 4255 | es-errors: 1.3.0 4256 | object-inspect: 1.13.4 4257 | side-channel-list: 1.0.0 4258 | side-channel-map: 1.0.1 4259 | side-channel-weakmap: 1.0.2 4260 | 4261 | signal-exit@3.0.7: {} 4262 | 4263 | slash@3.0.0: {} 4264 | 4265 | slice-ansi@3.0.0: 4266 | dependencies: 4267 | ansi-styles: 4.3.0 4268 | astral-regex: 2.0.0 4269 | is-fullwidth-code-point: 3.0.0 4270 | 4271 | slice-ansi@4.0.0: 4272 | dependencies: 4273 | ansi-styles: 4.3.0 4274 | astral-regex: 2.0.0 4275 | is-fullwidth-code-point: 3.0.0 4276 | 4277 | slice-ansi@5.0.0: 4278 | dependencies: 4279 | ansi-styles: 6.2.1 4280 | is-fullwidth-code-point: 4.0.0 4281 | 4282 | source-map-js@1.2.1: {} 4283 | 4284 | sourcemap-codec@1.4.8: {} 4285 | 4286 | spdx-correct@3.2.0: 4287 | dependencies: 4288 | spdx-expression-parse: 3.0.1 4289 | spdx-license-ids: 3.0.21 4290 | 4291 | spdx-exceptions@2.5.0: {} 4292 | 4293 | spdx-expression-parse@3.0.1: 4294 | dependencies: 4295 | spdx-exceptions: 2.5.0 4296 | spdx-license-ids: 3.0.21 4297 | 4298 | spdx-license-ids@3.0.21: {} 4299 | 4300 | stop-iteration-iterator@1.1.0: 4301 | dependencies: 4302 | es-errors: 1.3.0 4303 | internal-slot: 1.1.0 4304 | 4305 | string-argv@0.3.2: {} 4306 | 4307 | string-width@4.2.3: 4308 | dependencies: 4309 | emoji-regex: 8.0.0 4310 | is-fullwidth-code-point: 3.0.0 4311 | strip-ansi: 6.0.1 4312 | 4313 | string-width@5.1.2: 4314 | dependencies: 4315 | eastasianwidth: 0.2.0 4316 | emoji-regex: 9.2.2 4317 | strip-ansi: 7.1.0 4318 | 4319 | string.prototype.matchall@4.0.12: 4320 | dependencies: 4321 | call-bind: 1.0.8 4322 | call-bound: 1.0.4 4323 | define-properties: 1.2.1 4324 | es-abstract: 1.24.0 4325 | es-errors: 1.3.0 4326 | es-object-atoms: 1.1.1 4327 | get-intrinsic: 1.3.0 4328 | gopd: 1.2.0 4329 | has-symbols: 1.1.0 4330 | internal-slot: 1.1.0 4331 | regexp.prototype.flags: 1.5.4 4332 | set-function-name: 2.0.2 4333 | side-channel: 1.1.0 4334 | 4335 | string.prototype.trim@1.2.10: 4336 | dependencies: 4337 | call-bind: 1.0.8 4338 | call-bound: 1.0.4 4339 | define-data-property: 1.1.4 4340 | define-properties: 1.2.1 4341 | es-abstract: 1.24.0 4342 | es-object-atoms: 1.1.1 4343 | has-property-descriptors: 1.0.2 4344 | 4345 | string.prototype.trimend@1.0.9: 4346 | dependencies: 4347 | call-bind: 1.0.8 4348 | call-bound: 1.0.4 4349 | define-properties: 1.2.1 4350 | es-object-atoms: 1.1.1 4351 | 4352 | string.prototype.trimstart@1.0.8: 4353 | dependencies: 4354 | call-bind: 1.0.8 4355 | define-properties: 1.2.1 4356 | es-object-atoms: 1.1.1 4357 | 4358 | strip-ansi@6.0.1: 4359 | dependencies: 4360 | ansi-regex: 5.0.1 4361 | 4362 | strip-ansi@7.1.0: 4363 | dependencies: 4364 | ansi-regex: 6.1.0 4365 | 4366 | strip-bom@3.0.0: {} 4367 | 4368 | strip-final-newline@3.0.0: {} 4369 | 4370 | strip-indent@3.0.0: 4371 | dependencies: 4372 | min-indent: 1.0.1 4373 | 4374 | strip-json-comments@3.1.1: {} 4375 | 4376 | supports-color@7.2.0: 4377 | dependencies: 4378 | has-flag: 4.0.0 4379 | 4380 | supports-preserve-symlinks-flag@1.0.0: {} 4381 | 4382 | text-table@0.2.0: {} 4383 | 4384 | through@2.3.8: {} 4385 | 4386 | tinypool@0.2.4: {} 4387 | 4388 | tinyspy@0.3.3: {} 4389 | 4390 | to-regex-range@5.0.1: 4391 | dependencies: 4392 | is-number: 7.0.0 4393 | 4394 | tsconfig-paths@3.15.0: 4395 | dependencies: 4396 | '@types/json5': 0.0.29 4397 | json5: 1.0.2 4398 | minimist: 1.2.8 4399 | strip-bom: 3.0.0 4400 | 4401 | tslib@1.14.1: {} 4402 | 4403 | tslib@2.8.1: {} 4404 | 4405 | tsutils@3.21.0(typescript@4.7.4): 4406 | dependencies: 4407 | tslib: 1.14.1 4408 | typescript: 4.7.4 4409 | 4410 | type-check@0.4.0: 4411 | dependencies: 4412 | prelude-ls: 1.2.1 4413 | 4414 | type-detect@4.1.0: {} 4415 | 4416 | type-fest@0.20.2: {} 4417 | 4418 | type-fest@0.21.3: {} 4419 | 4420 | type-fest@0.6.0: {} 4421 | 4422 | type-fest@0.8.1: {} 4423 | 4424 | typed-array-buffer@1.0.3: 4425 | dependencies: 4426 | call-bound: 1.0.4 4427 | es-errors: 1.3.0 4428 | is-typed-array: 1.1.15 4429 | 4430 | typed-array-byte-length@1.0.3: 4431 | dependencies: 4432 | call-bind: 1.0.8 4433 | for-each: 0.3.5 4434 | gopd: 1.2.0 4435 | has-proto: 1.2.0 4436 | is-typed-array: 1.1.15 4437 | 4438 | typed-array-byte-offset@1.0.4: 4439 | dependencies: 4440 | available-typed-arrays: 1.0.7 4441 | call-bind: 1.0.8 4442 | for-each: 0.3.5 4443 | gopd: 1.2.0 4444 | has-proto: 1.2.0 4445 | is-typed-array: 1.1.15 4446 | reflect.getprototypeof: 1.0.10 4447 | 4448 | typed-array-length@1.0.7: 4449 | dependencies: 4450 | call-bind: 1.0.8 4451 | for-each: 0.3.5 4452 | gopd: 1.2.0 4453 | is-typed-array: 1.1.15 4454 | possible-typed-array-names: 1.1.0 4455 | reflect.getprototypeof: 1.0.10 4456 | 4457 | typescript@4.7.4: {} 4458 | 4459 | ufo@1.6.1: {} 4460 | 4461 | unbox-primitive@1.1.0: 4462 | dependencies: 4463 | call-bound: 1.0.4 4464 | has-bigints: 1.1.0 4465 | has-symbols: 1.1.0 4466 | which-boxed-primitive: 1.1.1 4467 | 4468 | unbuild@0.7.4: 4469 | dependencies: 4470 | '@rollup/plugin-alias': 3.1.9(rollup@2.79.2) 4471 | '@rollup/plugin-commonjs': 21.1.0(rollup@2.79.2) 4472 | '@rollup/plugin-json': 4.1.0(rollup@2.79.2) 4473 | '@rollup/plugin-node-resolve': 13.3.0(rollup@2.79.2) 4474 | '@rollup/plugin-replace': 4.0.0(rollup@2.79.2) 4475 | '@rollup/pluginutils': 4.2.1 4476 | chalk: 5.4.1 4477 | consola: 2.15.3 4478 | defu: 6.1.4 4479 | esbuild: 0.14.54 4480 | hookable: 5.5.3 4481 | jiti: 1.21.7 4482 | magic-string: 0.26.7 4483 | mkdirp: 1.0.4 4484 | mkdist: 0.3.13(typescript@4.7.4) 4485 | mlly: 0.5.17 4486 | mri: 1.2.0 4487 | pathe: 0.2.0 4488 | pkg-types: 0.3.6 4489 | pretty-bytes: 6.1.1 4490 | rimraf: 3.0.2 4491 | rollup: 2.79.2 4492 | rollup-plugin-dts: 4.2.3(rollup@2.79.2)(typescript@4.7.4) 4493 | rollup-plugin-esbuild: 4.10.3(esbuild@0.14.54)(rollup@2.79.2) 4494 | scule: 0.2.1 4495 | typescript: 4.7.4 4496 | untyped: 0.4.7 4497 | transitivePeerDependencies: 4498 | - supports-color 4499 | 4500 | universalify@2.0.1: {} 4501 | 4502 | untyped@0.4.7: 4503 | dependencies: 4504 | '@babel/core': 7.28.0 4505 | '@babel/standalone': 7.28.2 4506 | '@babel/types': 7.28.2 4507 | scule: 0.3.2 4508 | transitivePeerDependencies: 4509 | - supports-color 4510 | 4511 | update-browserslist-db@1.1.3(browserslist@4.25.1): 4512 | dependencies: 4513 | browserslist: 4.25.1 4514 | escalade: 3.2.0 4515 | picocolors: 1.1.1 4516 | 4517 | uri-js@4.4.1: 4518 | dependencies: 4519 | punycode: 2.3.1 4520 | 4521 | v8-compile-cache@2.4.0: {} 4522 | 4523 | validate-npm-package-license@3.0.4: 4524 | dependencies: 4525 | spdx-correct: 3.2.0 4526 | spdx-expression-parse: 3.0.1 4527 | 4528 | vite@3.2.11(@types/node@14.18.21): 4529 | dependencies: 4530 | esbuild: 0.15.18 4531 | postcss: 8.5.6 4532 | resolve: 1.22.10 4533 | rollup: 2.79.2 4534 | optionalDependencies: 4535 | '@types/node': 14.18.21 4536 | fsevents: 2.3.3 4537 | 4538 | vitest@0.17.0: 4539 | dependencies: 4540 | '@types/chai': 4.3.20 4541 | '@types/chai-subset': 1.3.6(@types/chai@4.3.20) 4542 | '@types/node': 14.18.21 4543 | chai: 4.5.0 4544 | debug: 4.4.1 4545 | local-pkg: 0.4.3 4546 | tinypool: 0.2.4 4547 | tinyspy: 0.3.3 4548 | vite: 3.2.11(@types/node@14.18.21) 4549 | transitivePeerDependencies: 4550 | - less 4551 | - sass 4552 | - stylus 4553 | - sugarss 4554 | - supports-color 4555 | - terser 4556 | 4557 | which-boxed-primitive@1.1.1: 4558 | dependencies: 4559 | is-bigint: 1.1.0 4560 | is-boolean-object: 1.2.2 4561 | is-number-object: 1.1.1 4562 | is-string: 1.1.1 4563 | is-symbol: 1.1.1 4564 | 4565 | which-builtin-type@1.2.1: 4566 | dependencies: 4567 | call-bound: 1.0.4 4568 | function.prototype.name: 1.1.8 4569 | has-tostringtag: 1.0.2 4570 | is-async-function: 2.1.1 4571 | is-date-object: 1.1.0 4572 | is-finalizationregistry: 1.1.1 4573 | is-generator-function: 1.1.0 4574 | is-regex: 1.2.1 4575 | is-weakref: 1.1.1 4576 | isarray: 2.0.5 4577 | which-boxed-primitive: 1.1.1 4578 | which-collection: 1.0.2 4579 | which-typed-array: 1.1.19 4580 | 4581 | which-collection@1.0.2: 4582 | dependencies: 4583 | is-map: 2.0.3 4584 | is-set: 2.0.3 4585 | is-weakmap: 2.0.2 4586 | is-weakset: 2.0.4 4587 | 4588 | which-typed-array@1.1.19: 4589 | dependencies: 4590 | available-typed-arrays: 1.0.7 4591 | call-bind: 1.0.8 4592 | call-bound: 1.0.4 4593 | for-each: 0.3.5 4594 | get-proto: 1.0.1 4595 | gopd: 1.2.0 4596 | has-tostringtag: 1.0.2 4597 | 4598 | which@2.0.2: 4599 | dependencies: 4600 | isexe: 2.0.0 4601 | 4602 | word-wrap@1.2.5: {} 4603 | 4604 | wrap-ansi@6.2.0: 4605 | dependencies: 4606 | ansi-styles: 4.3.0 4607 | string-width: 4.2.3 4608 | strip-ansi: 6.0.1 4609 | 4610 | wrap-ansi@7.0.0: 4611 | dependencies: 4612 | ansi-styles: 4.3.0 4613 | string-width: 4.2.3 4614 | strip-ansi: 6.0.1 4615 | 4616 | wrappy@1.0.2: {} 4617 | 4618 | wyt@2.0.1: {} 4619 | 4620 | yallist@3.1.1: {} 4621 | 4622 | yaml@2.8.0: {} 4623 | --------------------------------------------------------------------------------