From 9330bb11ad722c55e2777d0e3852d173cc84de2d Mon Sep 17 00:00:00 2001 From: Hiroki Osame Date: Fri, 4 Jun 2021 07:30:50 -0400 Subject: [PATCH] feat: init --- .editorconfig | 8 + .github/ISSUE_TEMPLATE/BUG_REPORT.md | 38 + .github/ISSUE_TEMPLATE/FEATURE_REQUEST.md | 33 + .github/example-1.gif | Bin 0 -> 25974 bytes .github/example-2.gif | Bin 0 -> 37233 bytes .github/example-3.gif | Bin 0 -> 36580 bytes .github/example-4.gif | Bin 0 -> 17077 bytes .github/example-5.gif | Bin 0 -> 29060 bytes .github/example-6.gif | Bin 0 -> 15923 bytes .github/task-states.png | Bin 0 -> 29179 bytes .github/task-title-status-output.png | Bin 0 -> 15742 bytes .github/tasuku.png | Bin 0 -> 53699 bytes .github/tasuku.svg | 24 + .github/workflows/release.yml | 31 + .github/workflows/test.yml | 32 + .gitignore | 26 + .nvmrc | 1 + LICENSE | 21 + README.md | 319 ++ jest.config.json | 6 + package.json | 71 + pnpm-lock.yaml | 4999 +++++++++++++++++++++ src/components/CreateApp.tsx | 17 + src/components/TaskListApp.tsx | 28 + src/components/TaskListItem.tsx | 34 + src/index.ts | 163 + src/types.ts | 22 + src/utils.ts | 17 + tests/tasuku.spec.ts | 107 + tests/tsconfig.json | 4 + tsconfig.json | 17 + 31 files changed, 6018 insertions(+) create mode 100644 .editorconfig create mode 100644 .github/ISSUE_TEMPLATE/BUG_REPORT.md create mode 100644 .github/ISSUE_TEMPLATE/FEATURE_REQUEST.md create mode 100644 .github/example-1.gif create mode 100644 .github/example-2.gif create mode 100644 .github/example-3.gif create mode 100644 .github/example-4.gif create mode 100644 .github/example-5.gif create mode 100644 .github/example-6.gif create mode 100644 .github/task-states.png create mode 100644 .github/task-title-status-output.png create mode 100644 .github/tasuku.png create mode 100644 .github/tasuku.svg create mode 100644 .github/workflows/release.yml create mode 100644 .github/workflows/test.yml create mode 100644 .gitignore create mode 100644 .nvmrc create mode 100644 LICENSE create mode 100644 README.md create mode 100644 jest.config.json create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 src/components/CreateApp.tsx create mode 100644 src/components/TaskListApp.tsx create mode 100644 src/components/TaskListItem.tsx create mode 100644 src/index.ts create mode 100644 src/types.ts create mode 100644 src/utils.ts create mode 100644 tests/tasuku.spec.ts create mode 100644 tests/tsconfig.json create mode 100644 tsconfig.json diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..aaac325 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,8 @@ +root = true + +[*] +indent_style = tab +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/.github/ISSUE_TEMPLATE/BUG_REPORT.md b/.github/ISSUE_TEMPLATE/BUG_REPORT.md new file mode 100644 index 0000000..1ae2138 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/BUG_REPORT.md @@ -0,0 +1,38 @@ +--- +name: Bug report +about: Create a report to help us improve +labels: 'bug: pending triage' +--- + +## Bug description + + +## Reproduction + + +## Environment + +- tasuku version: +- Operating System: +- Node version: +- Package manager (npm/yarn/pnpm) and version: diff --git a/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md b/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md new file mode 100644 index 0000000..1f74613 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md @@ -0,0 +1,33 @@ +--- +name: Feature request +about: Suggest an idea for this project +labels: 'feature request' +--- + +## Is your feature request related to a problem? + + +## Describe the solution you'd like + + +## Describe alternatives you've considered + + +## Additional context + diff --git a/.github/example-1.gif b/.github/example-1.gif new file mode 100644 index 0000000000000000000000000000000000000000..dbe1c75ae11c7d3951b252b8cc50dd492cd00a56 GIT binary patch literal 25974 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±%;PM)DiQ3RGdLgjRm*w@e&JxswHj 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

(4Y6Vr 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 literal 0 HcmV?d00001 diff --git a/.github/example-3.gif b/.github/example-3.gif new file mode 100644 index 0000000000000000000000000000000000000000..d9b86b065262a42a816a203906d79e40ae2761ca GIT binary patch literal 36580 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 literal 0 HcmV?d00001 diff --git a/.github/example-4.gif b/.github/example-4.gif new file mode 100644 index 0000000000000000000000000000000000000000..c03fd68a04ea068546717cab17b5d2ad7977bdc4 GIT binary patch literal 17077 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�rO33;Zb6zr;FmKT?@U(ddZ+;83r|=Fx`5N|B}d&yUrW zP{Hf_af=aV+M@iF+}TMS9r={8Xzu2;$)&8iAo0V{6e9@TvTW!_#OYOY8{Dx^$AVV@ z(x&OUChJ9Zu5A7NudB>k&7(EU$4B8jkq~191D&lc`S5P&jr`nK#x*d=a0Sfr(;nx_ z3X(Y^8L&ti(W1s@8a0U`xBE`rh<61&1HJmfljk$Y(lIUhylR6Rr|HJ7%iT z#`za)pg&;y2{U0F@- z#6|4kp4V6oo8K+o0BsxW6I`q%oH<_+9_2V@BYd*Fzpnc(`U~%g@7Ly6w4uI0x(ggl zYJf3GI4=+>y`(NB5CE834+P1XFh;XcGD{nWL22;Zsg2Wy4(F#Qh?ttY5ZdPCrUYJo zlKj`E{EsIl00`n0c&YPFGd3P_etFo`+Ausi2qW_U_8vd_Kc3isu_+n9R;gV4ZBs7V z^(@U?n?~otYL|nn(EC9~bgtYvM)dS3G4xdsElV>q{Z@^K;)?oPVY#*}=bH7qw%h2( z7QYXh>NB^yXCK*R{R0J*{URdm1H50;YTCSGGxXLmB(&8{B}z{4gyiMNN54u*rh=v! zmFbiuSum!D7c@1e6%}Iwa!F%jje03-Um7=x*5WIqCRDe~__ei%zF@7%bOV=LtQGc8 z49)I4&u6Z5k@UWXp7tH>o@9$H9(*>vx$b8!-NiusGj3Zw*P9#;T@ap z9aw$y;8MO&6Fm{U#d!SuzEzrn8Ixbp2s@|AinI@IXT&}4i!HS@bF1h5susBlojnExKijh*K6~naf zg)8%B*2P9g2XBN)bNRQ0i`T|YRr+!6Oux20k+;Tkmyd1?&oL#N z<-r3@AVi*yd(yM0y_c=0=Z6za3N62d1@^j@miijbf8t2x9%L%n+O%qYyJ_ehof%>E zZP2oBioQie?|rU%R_bTS^Vw1w8u4z5nM)7I#fiuhL1re53_|1@(=iO{J6;NQah$SIemU7aHP_!y{@sTqtyb&;jqlPSAsG(HJKAeY%Uirf)V$XE`>x^3}f4#j}`n);0agwv%TvVH348WW%`rn|<_`Wf67X zPor@$)5-BDD zUG`$_(`lBq+o#3}{nhRJ4&1E|13olFm)l~iT_p!$Q+DnXDNbY`uEeo^x7N{nS2weN z#yzD~xS;IQ6YE7ZbiGtWj^y-Y%gnf*=^Ql}KCfIA@){lCuYEY&eaP%eCwzm2>nNM>+`!W-B%bIGTS_8YO3By?;^~n6q^^|4=ul z(xdYTGof4_%D=)mLdEVO*ArcPFzQC>(5k_tpmbb6dDrISAi^?!!LRXsMdPQEE3BKa zxPN5DbPV8Uw2OWN4NXi64wp;z7mZF(bx6<4&q<{>N1{&87ON#0~cG{ z-q9&l-@sQ@sM6mxJW|+G);IK8SGvt`c64zmW_*Gj(mf*yotlqf-d#R=ySiqud-w(; zjMonJ_@VvuQtR>j)Ax}tJSa>XUgw;5HR@fypz~}OoPdE|shbh

VeRVUAyQpPBIN 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 literal 0 HcmV?d00001 diff --git a/.github/example-5.gif b/.github/example-5.gif new file mode 100644 index 0000000000000000000000000000000000000000..12da6bd4a983a32b59a12358c55132a090f09815 GIT binary patch literal 29060 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

<2R~ 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 literal 0 HcmV?d00001 diff --git a/.github/task-states.png b/.github/task-states.png new file mode 100644 index 0000000000000000000000000000000000000000..62987d945ea8e2c9ea983b6b012483a68dc39654 GIT binary patch literal 29179 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 N(vk`imEwl}{{y+>izEO5 literal 0 HcmV?d00001 diff --git a/.github/task-title-status-output.png b/.github/task-title-status-output.png new file mode 100644 index 0000000000000000000000000000000000000000..34a9732c6627cae859414764a219f3dcc3e5b3a6 GIT binary patch literal 15742 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 literal 0 HcmV?d00001 diff --git a/.github/tasuku.svg b/.github/tasuku.svg new file mode 100644 index 0000000..cf2fc57 --- /dev/null +++ b/.github/tasuku.svg @@ -0,0 +1,24 @@ + + + + + + + + diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..849c7a2 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,31 @@ +name: Release + +on: + push: + branches: master + +jobs: + release: + name: Release + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: 14.x + - name: Install dependencies + run: npx ci + - name: Build + run: npm run build + - name: Lint + run: npm run lint + - name: Test + run: npm run test --if-present + - name: Release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + run: npx semantic-release diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..9125a66 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,32 @@ +name: Test + +on: + push: + branches: [develop] + pull_request: + branches: [master, develop] + +jobs: + test: + name: Test + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [12.x, 14.x] + + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - name: Install dependencies + run: npx ci + - name: Build + run: npm run build + - name: Lint + run: npm run lint + - name: Test + run: npm run test --if-present diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dc584c7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +# macOS +.DS_Store + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Dependency directories +node_modules/ + +# Output of 'npm pack' +*.tgz + +# dotenv environment variables file +.env +.env.test + +# VSCode +.vscode + +# Distribution +dist diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..9a0c3d3 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v14.15.4 diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..51e4fd8 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Hiroki Osame + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..864dc6f --- /dev/null +++ b/README.md @@ -0,0 +1,319 @@ + +

+ +
+ The minimal task runner +

+ +### Features +- Task list with dynamic states +- Parallel & nestable tasks +- Unopinionated +- Type-safe + +Support this project by starring and sharing it. [Follow me](https://github.com/privatenumber) to see what other cool projects I'm working on. + +## Install +```sh +npm i tasuku +``` + +## Usage +### Task list +Call `task(taskTitle, taskFunction)` to start a task and display it in a task list in the terminal. + +```ts +import task from 'tasuku' + +task('Task 1', async () => { + await someAsyncTask() +}) + +task('Task 2', async () => { + await someAsyncTask() +}) + +task('Task 3', async () => { + await someAsyncTask() +}) +``` + + + +#### Task states +- **◽️ Pending** The task is queued and has not started +- **🔅 Loading** The task is running +- **⚠️ Warning** The task completed with a warning +- **❌ Error** The task exited with an error +- **✅ Success** The task completed without error + + + +### Unopinionated +You can call `task()` from anywhere. There are no requirements. It is designed to be as unopinionated as possible not to interfere with your code. + +The tasks will be displayed in the terminal in a consolidated list. + +You can change the title of the task by calling `setTitle()`. +```ts +import task from 'tasuku' + +task('Task 1', async () => { + await someAsyncTask() +}) + +... + +someOtherCode() + +... + +task('Task 2', async ({ setTitle }) => { + await someAsyncTask() + + setTitle('Task 2 complete') +}) +``` + + + +### Task return values +The return value of a task will be stored in the output `.result` property. + +If using TypeScript, the type of `.result` will be inferred from the task function. + +```ts +const myTask = await task('Task 2', async () => { + await someAsyncTask() + + return 'Success' +}) + +console.log(myTask.result) // 'Success' +``` + +### Nesting tasks +Tasks can be nested indefinitely. Nested tasks will be stacked hierarchically in the task list. +```ts +await task('Do task', async ({ task }) => { + await someAsyncTask() + + await task('Do another task', async ({ task }) => { + await someAsyncTask() + + await task('And another', async () => { + await someAsyncTask() + }) + }) +}) +``` + + + +### Collapsing nested tasks +Call `.clear()` on the returned task API to collapse the nested task. +```ts +await task('Do task', async ({ task }) => { + await someAsyncTask() + + const nestedTask = await task('Do another task', async ({ task }) => { + await someAsyncTask() + }) + + nestedTask.clear() +}) +``` + + + +### Grouped tasks +Tasks can be grouped with `task.group()`. Pass in a function that returns an array of tasks to run them sequentially. + +This is useful for displaying a queue of tasks that have yet to run. + +```ts +const groupedTasks = await task.group(task => [ + task('Task 1', async () => { + await someAsyncTask() + + return 'one' + }), + + task('Waiting for Task 1', async ({ setTitle }) => { + setTitle('Task 2 running...') + + await someAsyncTask() + + setTitle('Task 2 complete') + + return 'two' + }), + + ... +]) + +console.log(groupedTasks.results) // ['one', 'two'] +``` + + + +### Running tasks in parallel +You can run tasks in parallel by passing in `{ concurrency: n }` as the second argument in `task.group()`. + +```ts +const api = await task.group(task => [ + task( + 'Task 1', + async () => await someAsyncTask(), + ), + + task( + 'Task 2', + async () => await someAsyncTask(), + ), + ... +], { + concurrency: 2 // Number of tasks to run at a time +}) + +api.clear() // Clear output +``` + + + +Alternatively, you can also use the native `Promise.all()` if you prefer. The advantage of using `task.group()` is that you can limit concurrency, displays queued tasks as pending, and it returns an API to easily clear the results. + +```ts +// No API +await Promise.all([ + task( + 'Task 1', + async () => await someAsyncTask(), + ), + + task( + 'Task 2', + async () => await someAsyncTask(), + ), + ... +]) +``` + +## API + +### task(taskTitle, taskFunction) + +Returns a Promise that resolves with object: +```ts +{ + // The result from taskFunction + result: any, + + // Invoke to clear the results from the terminal + clear: () => void, +} +``` + +#### taskTitle +Type: `string` + +Required: true + +The name of the task displayed. + +#### taskFunction +Type: +```ts +({ + task: taskFunction, + setTitle: (title: string) => void, + setStatus: (status: string) => void, + setOutput: (error: string | { message: string }) => void, + setWarning: (warning: Error | string) => void, + setError: (error: Error | string) => void, +}) => Promise +``` + +Required: true + +The task function. The return value will be stored in the `.result` property of the `task()` output object. + + +#### task +A task function to use for nesting. + +#### setTitle() +Call with a string to change the task title. + +#### setStatus() +Call with a string to set the status of the task. See image below. + +#### setOutput() +Call with a string to set the output of the task. See image below. + +#### setWarning() +Call with a string or Error instance to put the task in a warning state. + +#### setError() +Call with a string or Error instance to put the task in an error state. Tasks automatically go into an error state when it catches an error in the task. + + + + +### task.group(createTaskFunctions, options) +Returns a Promise that resolves with object: +```ts +{ + // The results from the taskFunctions + results: any[], + + // Invoke to clear the results from the terminal + clear: () => void, +} +``` + +#### createTaskFunctions +Type: `(task) => Task[]` + +Required: true + +A function that returns all the tasks you want to group in an array. + +#### options + +Directly passed into [`p-map`](https://github.com/sindresorhus/p-map). + +##### concurrency +Type: `number` (Integer) + +Default: `1` + +Number of tasks to run at a time. + +##### stopOnError +Type: `boolean` + +Default: `true` + +When set to `false`, instead of stopping when a task fails, it will wait for all the tasks to finish and then reject with an aggregated error containing all the errors from the rejected promises. + +## FAQ + +### What does "Tasuku" mean? +_Tasuku_ or タスク is the phonetic Japanese pronounciation of the word "task". + + +### Why did you make this? + +For writing scripts or CLI tools. _Tasuku_ is a great way to convey the state of the tasks that are running in your script without being imposing about the way you write your code. + +Major shoutout to [listr](https://github.com/SamVerschueren/listr) + [listr2](https://github.com/cenk1cenk2/listr2) for being the motivation and visual inspiration for _Tasuku_, and for being my go-to task runner for a long time. I made _Tasuku_ because I eventually found that they were too structured and declarative for my needs. + +Big thanks to [ink](https://github.com/vadimdemedes/ink) for doing all the heavy lifting for rendering interfaces in the terminal. Implementing a dynamic task list that doesn't interfere with `console.logs()` wouldn't have been so easy without it. + +### Doesn't the usage of nested `task` functions violate ESLint's [no-shadow](https://eslint.org/docs/rules/no-shadow)? +Yes, but it should be fine as you don't need access to other `task` functions aside from the immediate one. + +Put `task` in the allow list: +- `"no-shadow": ["error", { "allow": ["task"] }]` +- `"@typescript-eslint/no-shadow": ["error", { "allow": ["task"] }]` diff --git a/jest.config.json b/jest.config.json new file mode 100644 index 0000000..c3ce2e2 --- /dev/null +++ b/jest.config.json @@ -0,0 +1,6 @@ +{ + "preset": "es-jest", + "transformIgnorePatterns": [ + "node_modules/.pnpm(?!/(p-map|aggregate-error|indent-string|clean-stack|escape-string-regexp))" + ] +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..a4eb3da --- /dev/null +++ b/package.json @@ -0,0 +1,71 @@ +{ + "name": "tasuku", + "version": "0.0.0-semantic-release", + "description": "タスク — The minimal task runner", + "keywords": [ + "simple", + "minimal", + "task", + "runner", + "cli" + ], + "license": "MIT", + "repository": "privatenumber/tasuku", + "funding": "https://github.com/privatenumber/tasuku?sponsor=1", + "author": { + "name": "Hiroki Osame", + "email": "hiroki.osame@gmail.com" + }, + "files": [ + "bin", + "dist" + ], + "main": "./dist/index.js", + "scripts": { + "lint": "eslint .", + "test": "jest", + "typecheck": "tsc --noEmit", + "build": "rm -rf dist && tsup src/index.ts --dts --minify --no-splitting --external 'yoga-layout-prebuilt'" + }, + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, + "lint-staged": { + "*.{js,ts,tsx}": "eslint", + "*.{ts,tsx}": "npm run typecheck" + }, + "dependencies": { + "yoga-layout-prebuilt": "1.10.0" + }, + "devDependencies": { + "@pvtnbr/eslint-config-react": "^0.1.15", + "@types/jest": "^26.0.23", + "@types/node": "^15.6.1", + "@types/react": "^17.0.4", + "dts": "^0.1.1", + "es-jest": "^1.2.0", + "eslint": "^7.24.0", + "esno": "^0.5.0", + "husky": "^4.3.8", + "ink": "^3.0.8", + "ink-task-list": "^1.1.0", + "jest": "^27.0.3", + "lint-staged": "^10.5.4", + "p-map": "^5.0.0", + "react": "^17.0.2", + "tsup": "^4.11.1", + "typescript": "^4.2.4", + "valtio": "^1.0.5" + }, + "eslintConfig": { + "extends": "@pvtnbr/eslint-config-react", + "rules": { + "react/prop-types": "off", + "@typescript-eslint/no-shadow": ["error", { + "allow": ["task"] + }] + } + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..3eeb529 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,4999 @@ +lockfileVersion: 5.3 + +specifiers: + '@pvtnbr/eslint-config-react': ^0.1.15 + '@types/jest': ^26.0.23 + '@types/node': ^15.6.1 + '@types/react': ^17.0.4 + dts: ^0.1.1 + es-jest: ^1.2.0 + eslint: ^7.24.0 + esno: ^0.5.0 + husky: ^4.3.8 + ink: ^3.0.8 + ink-task-list: ^1.1.0 + jest: ^27.0.3 + lint-staged: ^10.5.4 + p-map: ^5.0.0 + react: ^17.0.2 + tsup: ^4.11.1 + typescript: ^4.2.4 + valtio: ^1.0.5 + yoga-layout-prebuilt: 1.10.0 + +dependencies: + yoga-layout-prebuilt: 1.10.0 + +devDependencies: + '@pvtnbr/eslint-config-react': 0.1.16_eslint@7.27.0+typescript@4.3.2 + '@types/jest': 26.0.23 + '@types/node': 15.6.1 + '@types/react': 17.0.8 + dts: 0.1.1 + es-jest: 1.2.0 + eslint: 7.27.0 + esno: 0.5.0 + husky: 4.3.8 + ink: 3.0.8_@types+react@17.0.8+react@17.0.2 + ink-task-list: 1.1.0_ink@3.0.8+react@17.0.2 + jest: 27.0.3 + lint-staged: 10.5.4 + p-map: 5.0.0 + react: 17.0.2 + tsup: 4.11.1_typescript@4.3.2 + typescript: 4.3.2 + valtio: 1.0.5_react@17.0.2 + +packages: + + /@babel/code-frame/7.12.11: + resolution: {integrity: sha1-9K1DWqJj25NbjxDyxVLSP7cWpj8=} + dependencies: + '@babel/highlight': 7.14.0 + dev: true + + /@babel/code-frame/7.12.13: + resolution: {integrity: sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==} + dependencies: + '@babel/highlight': 7.14.0 + dev: true + + /@babel/compat-data/7.14.4: + resolution: {integrity: sha512-i2wXrWQNkH6JplJQGn3Rd2I4Pij8GdHkXwHMxm+zV5YG/Jci+bCNrWZEWC4o+umiDkRrRs4dVzH3X4GP7vyjQQ==} + dev: true + + /@babel/core/7.14.3: + resolution: {integrity: sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.12.13 + '@babel/generator': 7.14.3 + '@babel/helper-compilation-targets': 7.14.4_@babel+core@7.14.3 + '@babel/helper-module-transforms': 7.14.2 + '@babel/helpers': 7.14.0 + '@babel/parser': 7.14.4 + '@babel/template': 7.12.13 + '@babel/traverse': 7.14.2 + '@babel/types': 7.14.4 + convert-source-map: 1.7.0 + debug: 4.3.1 + gensync: 1.0.0-beta.2 + json5: 2.2.0 + semver: 6.3.0 + source-map: 0.5.7 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/eslint-parser/7.14.3_@babel+core@7.14.3+eslint@7.27.0: + resolution: {integrity: sha1-jyksr4PdLXs2T5OP5wdIBq9tcOo=} + engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} + peerDependencies: + '@babel/core': '>=7.11.0' + eslint: '>=7.5.0' + dependencies: + '@babel/core': 7.14.3 + eslint: 7.27.0 + eslint-scope: 5.1.1 + eslint-visitor-keys: 2.1.0 + semver: 6.3.0 + dev: true + + /@babel/generator/7.14.3: + resolution: {integrity: sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==} + dependencies: + '@babel/types': 7.14.4 + jsesc: 2.5.2 + source-map: 0.5.7 + dev: true + + /@babel/helper-compilation-targets/7.14.4_@babel+core@7.14.3: + resolution: {integrity: sha512-JgdzOYZ/qGaKTVkn5qEDV/SXAh8KcyUVkCoSWGN8T3bwrgd6m+/dJa2kVGi6RJYJgEYPBdZ84BZp9dUjNWkBaA==} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.14.4 + '@babel/core': 7.14.3 + '@babel/helper-validator-option': 7.12.17 + browserslist: 4.16.6 + semver: 6.3.0 + dev: true + + /@babel/helper-function-name/7.14.2: + resolution: {integrity: sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==} + dependencies: + '@babel/helper-get-function-arity': 7.12.13 + '@babel/template': 7.12.13 + '@babel/types': 7.14.4 + dev: true + + /@babel/helper-get-function-arity/7.12.13: + resolution: {integrity: sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==} + dependencies: + '@babel/types': 7.14.4 + dev: true + + /@babel/helper-member-expression-to-functions/7.13.12: + resolution: {integrity: sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==} + dependencies: + '@babel/types': 7.14.4 + dev: true + + /@babel/helper-module-imports/7.13.12: + resolution: {integrity: sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==} + dependencies: + '@babel/types': 7.14.4 + dev: true + + /@babel/helper-module-transforms/7.14.2: + resolution: {integrity: sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==} + dependencies: + '@babel/helper-module-imports': 7.13.12 + '@babel/helper-replace-supers': 7.14.4 + '@babel/helper-simple-access': 7.13.12 + '@babel/helper-split-export-declaration': 7.12.13 + '@babel/helper-validator-identifier': 7.14.0 + '@babel/template': 7.12.13 + '@babel/traverse': 7.14.2 + '@babel/types': 7.14.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-optimise-call-expression/7.12.13: + resolution: {integrity: sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==} + dependencies: + '@babel/types': 7.14.4 + dev: true + + /@babel/helper-plugin-utils/7.13.0: + resolution: {integrity: sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==} + dev: true + + /@babel/helper-replace-supers/7.14.4: + resolution: {integrity: sha512-zZ7uHCWlxfEAAOVDYQpEf/uyi1dmeC7fX4nCf2iz9drnCwi1zvwXL3HwWWNXUQEJ1k23yVn3VbddiI9iJEXaTQ==} + dependencies: + '@babel/helper-member-expression-to-functions': 7.13.12 + '@babel/helper-optimise-call-expression': 7.12.13 + '@babel/traverse': 7.14.2 + '@babel/types': 7.14.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-simple-access/7.13.12: + resolution: {integrity: sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==} + dependencies: + '@babel/types': 7.14.4 + dev: true + + /@babel/helper-split-export-declaration/7.12.13: + resolution: {integrity: sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==} + dependencies: + '@babel/types': 7.14.4 + dev: true + + /@babel/helper-validator-identifier/7.14.0: + resolution: {integrity: sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==} + dev: true + + /@babel/helper-validator-option/7.12.17: + resolution: {integrity: sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==} + dev: true + + /@babel/helpers/7.14.0: + resolution: {integrity: sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==} + dependencies: + '@babel/template': 7.12.13 + '@babel/traverse': 7.14.2 + '@babel/types': 7.14.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight/7.14.0: + resolution: {integrity: sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==} + dependencies: + '@babel/helper-validator-identifier': 7.14.0 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/parser/7.14.4: + resolution: {integrity: sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA==} + engines: {node: '>=6.0.0'} + hasBin: true + dev: true + + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.14.3: + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.3 + '@babel/helper-plugin-utils': 7.13.0 + dev: true + + /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.14.3: + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.3 + '@babel/helper-plugin-utils': 7.13.0 + dev: true + + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.14.3: + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.3 + '@babel/helper-plugin-utils': 7.13.0 + dev: true + + /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.14.3: + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.3 + '@babel/helper-plugin-utils': 7.13.0 + dev: true + + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.14.3: + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.3 + '@babel/helper-plugin-utils': 7.13.0 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.14.3: + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.3 + '@babel/helper-plugin-utils': 7.13.0 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.14.3: + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.3 + '@babel/helper-plugin-utils': 7.13.0 + dev: true + + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.14.3: + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.3 + '@babel/helper-plugin-utils': 7.13.0 + dev: true + + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.14.3: + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.3 + '@babel/helper-plugin-utils': 7.13.0 + dev: true + + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.14.3: + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.3 + '@babel/helper-plugin-utils': 7.13.0 + dev: true + + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.14.3: + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.3 + '@babel/helper-plugin-utils': 7.13.0 + dev: true + + /@babel/plugin-syntax-top-level-await/7.12.13_@babel+core@7.14.3: + resolution: {integrity: sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.3 + '@babel/helper-plugin-utils': 7.13.0 + dev: true + + /@babel/plugin-syntax-typescript/7.12.13_@babel+core@7.14.3: + resolution: {integrity: sha512-cHP3u1JiUiG2LFDKbXnwVad81GvfyIOmCD6HIEId6ojrY0Drfy2q1jw7BwN7dE84+kTnBjLkXoL3IEy/3JPu2w==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.3 + '@babel/helper-plugin-utils': 7.13.0 + dev: true + + /@babel/template/7.12.13: + resolution: {integrity: sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==} + dependencies: + '@babel/code-frame': 7.12.13 + '@babel/parser': 7.14.4 + '@babel/types': 7.14.4 + dev: true + + /@babel/traverse/7.14.2: + resolution: {integrity: sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==} + dependencies: + '@babel/code-frame': 7.12.13 + '@babel/generator': 7.14.3 + '@babel/helper-function-name': 7.14.2 + '@babel/helper-split-export-declaration': 7.12.13 + '@babel/parser': 7.14.4 + '@babel/types': 7.14.4 + debug: 4.3.1 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types/7.14.4: + resolution: {integrity: sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==} + dependencies: + '@babel/helper-validator-identifier': 7.14.0 + to-fast-properties: 2.0.0 + dev: true + + /@bcoe/v8-coverage/0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true + + /@eslint/eslintrc/0.4.1: + resolution: {integrity: sha1-RCdjuIzsvj7g7Hym1t1haFUMvxQ=} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.1 + espree: 7.3.1 + globals: 12.4.0 + ignore: 4.0.6 + import-fresh: 3.3.0 + js-yaml: 3.14.1 + minimatch: 3.0.4 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@istanbuljs/load-nyc-config/1.1.0: + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.1 + resolve-from: 5.0.0 + dev: true + + /@istanbuljs/schema/0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true + + /@jest/console/27.0.2: + resolution: {integrity: sha512-/zYigssuHLImGeMAACkjI4VLAiiJznHgAl3xnFT19iWyct2LhrH3KXOjHRmxBGTkiPLZKKAJAgaPpiU9EZ9K+w==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/types': 27.0.2 + '@types/node': 15.6.1 + chalk: 4.1.1 + jest-message-util: 27.0.2 + jest-util: 27.0.2 + slash: 3.0.0 + dev: true + + /@jest/core/27.0.3: + resolution: {integrity: sha512-rN8lr/OJ8iApcQUh4khnMaOCVX4oRnLwy2tPW3Vh70y62K8Da8fhkxMUq0xX9VPa4+yWUm0tGc/jUSJi+Jzuwg==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/console': 27.0.2 + '@jest/reporters': 27.0.2 + '@jest/test-result': 27.0.2 + '@jest/transform': 27.0.2 + '@jest/types': 27.0.2 + '@types/node': 15.6.1 + ansi-escapes: 4.3.2 + chalk: 4.1.1 + emittery: 0.8.1 + exit: 0.1.2 + graceful-fs: 4.2.6 + jest-changed-files: 27.0.2 + jest-config: 27.0.3 + jest-haste-map: 27.0.2 + jest-message-util: 27.0.2 + jest-regex-util: 27.0.1 + jest-resolve: 27.0.2 + jest-resolve-dependencies: 27.0.3 + jest-runner: 27.0.3 + jest-runtime: 27.0.3 + jest-snapshot: 27.0.2 + jest-util: 27.0.2 + jest-validate: 27.0.2 + jest-watcher: 27.0.2 + micromatch: 4.0.4 + p-each-series: 2.2.0 + rimraf: 3.0.2 + slash: 3.0.0 + strip-ansi: 6.0.0 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + dev: true + + /@jest/environment/27.0.3: + resolution: {integrity: sha512-pN9m7fbKsop5vc3FOfH8NF7CKKdRbEZzcxfIo1n2TT6ucKWLFq0P6gCJH0GpnQp036++yY9utHOxpeT1WnkWTA==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/fake-timers': 27.0.3 + '@jest/types': 27.0.2 + '@types/node': 15.6.1 + jest-mock: 27.0.3 + dev: true + + /@jest/fake-timers/27.0.3: + resolution: {integrity: sha512-fQ+UCKRIYKvTCEOyKPnaPnomLATIhMnHC/xPZ7yT1Uldp7yMgMxoYIFidDbpSTgB79+/U+FgfoD30c6wg3IUjA==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/types': 27.0.2 + '@sinonjs/fake-timers': 7.1.2 + '@types/node': 15.6.1 + jest-message-util: 27.0.2 + jest-mock: 27.0.3 + jest-util: 27.0.2 + dev: true + + /@jest/globals/27.0.3: + resolution: {integrity: sha512-OzsIuf7uf+QalqAGbjClyezzEcLQkdZ+7PejUrZgDs+okdAK8GwRCGcYCirHvhMBBQh60Jr3NlIGbn/KBPQLEQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/environment': 27.0.3 + '@jest/types': 27.0.2 + expect: 27.0.2 + dev: true + + /@jest/reporters/27.0.2: + resolution: {integrity: sha512-SVQjew/kafNxSN1my4praGQP+VPVGHsU8zqiEDppLvq6j1lryIjdNb9P+bZSsKeifU4bIoaPnf9Ui0tK9WOpFA==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 27.0.2 + '@jest/test-result': 27.0.2 + '@jest/transform': 27.0.2 + '@jest/types': 27.0.2 + chalk: 4.1.1 + collect-v8-coverage: 1.0.1 + exit: 0.1.2 + glob: 7.1.7 + graceful-fs: 4.2.6 + istanbul-lib-coverage: 3.0.0 + istanbul-lib-instrument: 4.0.3 + istanbul-lib-report: 3.0.0 + istanbul-lib-source-maps: 4.0.0 + istanbul-reports: 3.0.2 + jest-haste-map: 27.0.2 + jest-resolve: 27.0.2 + jest-util: 27.0.2 + jest-worker: 27.0.2 + slash: 3.0.0 + source-map: 0.6.1 + string-length: 4.0.2 + terminal-link: 2.1.1 + v8-to-istanbul: 7.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/source-map/27.0.1: + resolution: {integrity: sha512-yMgkF0f+6WJtDMdDYNavmqvbHtiSpwRN2U/W+6uztgfqgkq/PXdKPqjBTUF1RD/feth4rH5N3NW0T5+wIuln1A==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + callsites: 3.1.0 + graceful-fs: 4.2.6 + source-map: 0.6.1 + dev: true + + /@jest/test-result/27.0.2: + resolution: {integrity: sha512-gcdWwL3yP5VaIadzwQtbZyZMgpmes8ryBAJp70tuxghiA8qL4imJyZex+i+USQH2H4jeLVVszhwntgdQ97fccA==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/console': 27.0.2 + '@jest/types': 27.0.2 + '@types/istanbul-lib-coverage': 2.0.3 + collect-v8-coverage: 1.0.1 + dev: true + + /@jest/test-sequencer/27.0.3: + resolution: {integrity: sha512-DcLTzraZ8xLr5fcIl+CF14vKeBBpBrn55wFxI9Ju+dhEBdjRdJQ/Z/pLkMehkPZWIQ+rR23J8e+wFDkfjree0Q==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/test-result': 27.0.2 + graceful-fs: 4.2.6 + jest-haste-map: 27.0.2 + jest-runtime: 27.0.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/transform/27.0.2: + resolution: {integrity: sha512-H8sqKlgtDfVog/s9I4GG2XMbi4Ar7RBxjsKQDUhn2XHAi3NG+GoQwWMER+YfantzExbjNqQvqBHzo/G2pfTiPw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@babel/core': 7.14.3 + '@jest/types': 27.0.2 + babel-plugin-istanbul: 6.0.0 + chalk: 4.1.1 + convert-source-map: 1.7.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.6 + jest-haste-map: 27.0.2 + jest-regex-util: 27.0.1 + jest-util: 27.0.2 + micromatch: 4.0.4 + pirates: 4.0.1 + slash: 3.0.0 + source-map: 0.6.1 + write-file-atomic: 3.0.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/types/26.6.2: + resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==} + engines: {node: '>= 10.14.2'} + dependencies: + '@types/istanbul-lib-coverage': 2.0.3 + '@types/istanbul-reports': 3.0.1 + '@types/node': 15.6.1 + '@types/yargs': 15.0.13 + chalk: 4.1.1 + dev: true + + /@jest/types/27.0.2: + resolution: {integrity: sha512-XpjCtJ/99HB4PmyJ2vgmN7vT+JLP7RW1FBT9RgnMFS4Dt7cvIyBee8O3/j98aUZ34ZpenPZFqmaaObWSeL65dg==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@types/istanbul-lib-coverage': 2.0.3 + '@types/istanbul-reports': 3.0.1 + '@types/node': 15.6.1 + '@types/yargs': 16.0.3 + chalk: 4.1.1 + dev: true + + /@nodelib/fs.scandir/2.1.4: + resolution: {integrity: sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.4 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat/2.0.4: + resolution: {integrity: sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk/1.2.6: + resolution: {integrity: sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.4 + fastq: 1.11.0 + dev: true + + /@pvtnbr/eslint-config-base/0.1.16_eslint@7.27.0: + resolution: {integrity: sha1-r2CD8nhS/ArJVc45JwakM37+f98=} + peerDependencies: + eslint: ^7.15.0 + dependencies: + confusing-browser-globals: 1.0.10 + eslint: 7.27.0 + eslint-plugin-eslint-comments: 3.2.0_eslint@7.27.0 + eslint-plugin-import: 2.23.3_eslint@7.27.0 + eslint-plugin-jsonc: 1.2.1_eslint@7.27.0 + eslint-plugin-no-use-extend-native: 0.5.0 + eslint-plugin-node: 11.1.0_eslint@7.27.0 + eslint-plugin-promise: 4.3.1 + eslint-plugin-regexp: 0.4.3_eslint@7.27.0 + eslint-plugin-unicorn: 28.0.2_eslint@7.27.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@pvtnbr/eslint-config-react/0.1.16_eslint@7.27.0+typescript@4.3.2: + resolution: {integrity: sha1-S9DtcJieDz5AHVUdNSWIUZsg9js=} + peerDependencies: + eslint: ^7.15.0 + dependencies: + '@pvtnbr/eslint-config-typescript': 0.1.16_eslint@7.27.0+typescript@4.3.2 + eslint: 7.27.0 + eslint-plugin-react: 7.23.2_eslint@7.27.0 + eslint-plugin-react-hooks: 4.2.0_eslint@7.27.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@pvtnbr/eslint-config-typescript/0.1.16_eslint@7.27.0+typescript@4.3.2: + resolution: {integrity: sha1-JeYVS8xm98Amj22315IMhCN55a0=} + peerDependencies: + eslint: ^7.15.0 + dependencies: + '@pvtnbr/eslint-config-base': 0.1.16_eslint@7.27.0 + '@typescript-eslint/eslint-plugin': 4.25.0_ec7770e83475322b368bff30b543badb + '@typescript-eslint/parser': 4.25.0_eslint@7.27.0+typescript@4.3.2 + eslint: 7.27.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@sinonjs/commons/1.8.3: + resolution: {integrity: sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==} + dependencies: + type-detect: 4.0.8 + dev: true + + /@sinonjs/fake-timers/7.1.2: + resolution: {integrity: sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==} + dependencies: + '@sinonjs/commons': 1.8.3 + dev: true + + /@tootallnate/once/1.1.2: + resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} + engines: {node: '>= 6'} + dev: true + + /@types/babel__core/7.1.14: + resolution: {integrity: sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g==} + dependencies: + '@babel/parser': 7.14.4 + '@babel/types': 7.14.4 + '@types/babel__generator': 7.6.2 + '@types/babel__template': 7.4.0 + '@types/babel__traverse': 7.11.1 + dev: true + + /@types/babel__generator/7.6.2: + resolution: {integrity: sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==} + dependencies: + '@babel/types': 7.14.4 + dev: true + + /@types/babel__template/7.4.0: + resolution: {integrity: sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==} + dependencies: + '@babel/parser': 7.14.4 + '@babel/types': 7.14.4 + dev: true + + /@types/babel__traverse/7.11.1: + resolution: {integrity: sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw==} + dependencies: + '@babel/types': 7.14.4 + dev: true + + /@types/graceful-fs/4.1.5: + resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} + dependencies: + '@types/node': 15.6.1 + dev: true + + /@types/istanbul-lib-coverage/2.0.3: + resolution: {integrity: sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==} + dev: true + + /@types/istanbul-lib-report/3.0.0: + resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==} + dependencies: + '@types/istanbul-lib-coverage': 2.0.3 + dev: true + + /@types/istanbul-reports/3.0.1: + resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==} + dependencies: + '@types/istanbul-lib-report': 3.0.0 + dev: true + + /@types/jest/26.0.23: + resolution: {integrity: sha512-ZHLmWMJ9jJ9PTiT58juykZpL7KjwJywFN3Rr2pTSkyQfydf/rk22yS7W8p5DaVUMQ2BQC7oYiU3FjbTM/mYrOA==} + dependencies: + jest-diff: 26.6.2 + pretty-format: 26.6.2 + dev: true + + /@types/json-schema/7.0.7: + resolution: {integrity: sha1-mKmTUWyFnrDVxMjwmDF6nqaNua0=} + dev: true + + /@types/json5/0.0.29: + resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} + dev: true + + /@types/node/15.6.1: + resolution: {integrity: sha512-7EIraBEyRHEe7CH+Fm1XvgqU6uwZN8Q7jppJGcqjROMT29qhAuuOxYB1uEY5UMYQKEmA5D+5tBnhdaPXSsLONA==} + dev: true + + /@types/normalize-package-data/2.4.0: + resolution: {integrity: sha1-5IbQ2XOW15vu3QpuM/RTT/a0lz4=} + dev: true + + /@types/parse-json/4.0.0: + resolution: {integrity: sha1-L4u0QUNNFjs1+4/9zNcTiSf/uMA=} + dev: true + + /@types/prettier/2.2.3: + resolution: {integrity: sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA==} + dev: true + + /@types/prop-types/15.7.3: + resolution: {integrity: sha1-KrDV2i5YFflLC51LldHl8kOrLKc=} + dev: true + + /@types/react/17.0.8: + resolution: {integrity: sha1-/nbjug+7VgJwQRD9HjA1zzlHeOM=} + dependencies: + '@types/prop-types': 15.7.3 + '@types/scheduler': 0.16.1 + csstype: 3.0.8 + dev: true + + /@types/scheduler/0.16.1: + resolution: {integrity: sha1-GIRSBehv8AOFF6q3oYpiprn3EnU=} + dev: true + + /@types/stack-utils/2.0.0: + resolution: {integrity: sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==} + dev: true + + /@types/yargs-parser/20.2.0: + resolution: {integrity: sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==} + dev: true + + /@types/yargs/15.0.13: + resolution: {integrity: sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==} + dependencies: + '@types/yargs-parser': 20.2.0 + dev: true + + /@types/yargs/16.0.3: + resolution: {integrity: sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==} + dependencies: + '@types/yargs-parser': 20.2.0 + dev: true + + /@types/yoga-layout/1.9.2: + resolution: {integrity: sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==} + + /@typescript-eslint/eslint-plugin/4.25.0_ec7770e83475322b368bff30b543badb: + resolution: {integrity: sha1-2CZXtqtMqkw/iI/5IxdfrcLzHyo=} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + '@typescript-eslint/parser': ^4.0.0 + eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/experimental-utils': 4.25.0_eslint@7.27.0+typescript@4.3.2 + '@typescript-eslint/parser': 4.25.0_eslint@7.27.0+typescript@4.3.2 + '@typescript-eslint/scope-manager': 4.25.0 + debug: 4.3.1 + eslint: 7.27.0 + functional-red-black-tree: 1.0.1 + lodash: 4.17.21 + regexpp: 3.1.0 + semver: 7.3.5 + tsutils: 3.21.0_typescript@4.3.2 + typescript: 4.3.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/experimental-utils/4.25.0_eslint@7.27.0+typescript@4.3.2: + resolution: {integrity: sha1-sv68+nFdLBgG/V8DNRk6bNJw31Q=} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + eslint: '*' + dependencies: + '@types/json-schema': 7.0.7 + '@typescript-eslint/scope-manager': 4.25.0 + '@typescript-eslint/types': 4.25.0 + '@typescript-eslint/typescript-estree': 4.25.0_typescript@4.3.2 + eslint: 7.27.0 + eslint-scope: 5.1.1 + eslint-utils: 2.1.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/parser/4.25.0_eslint@7.27.0+typescript@4.3.2: + resolution: {integrity: sha1-ayy2KFqj1Vv7JjxlBzkJGw8ZrOs=} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 4.25.0 + '@typescript-eslint/types': 4.25.0 + '@typescript-eslint/typescript-estree': 4.25.0_typescript@4.3.2 + debug: 4.3.1 + eslint: 7.27.0 + typescript: 4.3.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager/4.25.0: + resolution: {integrity: sha1-nYalvMRu9ArNA9ha1OkI5aq41Mo=} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + dependencies: + '@typescript-eslint/types': 4.25.0 + '@typescript-eslint/visitor-keys': 4.25.0 + dev: true + + /@typescript-eslint/types/4.25.0: + resolution: {integrity: sha1-DkRKXF48Itf/peFuDmBRCz3lr4c=} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + dev: true + + /@typescript-eslint/typescript-estree/4.25.0_typescript@4.3.2: + resolution: {integrity: sha1-lC5OJYiHNr/1s2DZsLYeAT0M+iU=} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 4.25.0 + '@typescript-eslint/visitor-keys': 4.25.0 + debug: 4.3.1 + globby: 11.0.3 + is-glob: 4.0.1 + semver: 7.3.5 + tsutils: 3.21.0_typescript@4.3.2 + typescript: 4.3.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/visitor-keys/4.25.0: + resolution: {integrity: sha1-hj5+0j2kKHxbRpsTIjJV0P3mqqc=} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + dependencies: + '@typescript-eslint/types': 4.25.0 + eslint-visitor-keys: 2.1.0 + dev: true + + /abab/2.0.5: + resolution: {integrity: sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==} + dev: true + + /acorn-globals/6.0.0: + resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==} + dependencies: + acorn: 7.4.1 + acorn-walk: 7.2.0 + dev: true + + /acorn-jsx/5.3.1_acorn@7.4.1: + resolution: {integrity: sha1-/IZh4Rt6wVOcR9v+oucrOvNNJns=} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 7.4.1 + dev: true + + /acorn-walk/7.2.0: + resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} + engines: {node: '>=0.4.0'} + dev: true + + /acorn/7.4.1: + resolution: {integrity: sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /acorn/8.3.0: + resolution: {integrity: sha512-tqPKHZ5CaBJw0Xmy0ZZvLs1qTV+BNFSyvn77ASXkpBNfIRk8ev26fKrD9iLGwGA9zedPao52GSHzq8lyZG0NUw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /agent-base/6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + dependencies: + debug: 4.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /aggregate-error/3.1.0: + resolution: {integrity: sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo=} + engines: {node: '>=8'} + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + dev: true + + /aggregate-error/4.0.0: + resolution: {integrity: sha512-8DGp7zUt1E9k0NE2q4jlXHk+V3ORErmwolEdRz9iV+LKJ40WhMHh92cxAvhqV2I+zEn/gotIoqoMs0NjF3xofg==} + engines: {node: '>=12'} + dependencies: + clean-stack: 4.1.0 + indent-string: 5.0.0 + dev: true + + /ajv/6.12.6: + resolution: {integrity: sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ajv/8.5.0: + resolution: {integrity: sha1-aVUoJ0vLWvyGVEaqJ1SEBJoYrks=} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + + /ansi-colors/4.1.1: + resolution: {integrity: sha1-y7muJWv3UK8eqzRPIpqif+lLo0g=} + engines: {node: '>=6'} + dev: true + + /ansi-escapes/4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-regex/4.1.0: + resolution: {integrity: sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==} + engines: {node: '>=6'} + dev: true + + /ansi-regex/5.0.0: + resolution: {integrity: sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==} + engines: {node: '>=8'} + dev: true + + /ansi-styles/3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true + + /ansi-styles/4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /ansi-styles/5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true + + /any-promise/1.3.0: + resolution: {integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8=} + dev: true + + /anymatch/3.1.2: + resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.0 + dev: true + + /argparse/1.0.10: + resolution: {integrity: sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=} + dependencies: + sprintf-js: 1.0.3 + dev: true + + /array-includes/3.1.3: + resolution: {integrity: sha1-x/YZs4KtKvr1Mmzd/cCvxhr3aQo=} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.18.3 + get-intrinsic: 1.1.1 + is-string: 1.0.6 + dev: true + + /array-union/2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /array.prototype.flat/1.2.4: + resolution: {integrity: sha1-bvY4tDMSvUAbTGGZ/ex+LcnpoSM=} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.18.3 + dev: true + + /array.prototype.flatmap/1.2.4: + resolution: {integrity: sha1-lM/UfMFVbsB0fZf3x3OMWBIgBMk=} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.18.3 + function-bind: 1.1.1 + dev: true + + /astral-regex/1.0.0: + resolution: {integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==} + engines: {node: '>=4'} + dev: true + + /astral-regex/2.0.0: + resolution: {integrity: sha1-SDFDxWeu7UeFdZwIZXhtx319LjE=} + engines: {node: '>=8'} + dev: true + + /asynckit/0.4.0: + resolution: {integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=} + dev: true + + /auto-bind/4.0.0: + resolution: {integrity: sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==} + engines: {node: '>=8'} + dev: true + + /babel-jest/27.0.2_@babel+core@7.14.3: + resolution: {integrity: sha512-9OThPl3/IQbo4Yul2vMz4FYwILPQak8XelX4YGowygfHaOl5R5gfjm4iVx4d8aUugkW683t8aq0A74E7b5DU1Q==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + dependencies: + '@babel/core': 7.14.3 + '@jest/transform': 27.0.2 + '@jest/types': 27.0.2 + '@types/babel__core': 7.1.14 + babel-plugin-istanbul: 6.0.0 + babel-preset-jest: 27.0.1_@babel+core@7.14.3 + chalk: 4.1.1 + graceful-fs: 4.2.6 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-istanbul/6.0.0: + resolution: {integrity: sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==} + engines: {node: '>=8'} + dependencies: + '@babel/helper-plugin-utils': 7.13.0 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 4.0.3 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-jest-hoist/27.0.1: + resolution: {integrity: sha512-sqBF0owAcCDBVEDtxqfYr2F36eSHdx7lAVGyYuOBRnKdD6gzcy0I0XrAYCZgOA3CRrLhmR+Uae9nogPzmAtOfQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@babel/template': 7.12.13 + '@babel/types': 7.14.4 + '@types/babel__core': 7.1.14 + '@types/babel__traverse': 7.11.1 + dev: true + + /babel-preset-current-node-syntax/1.0.1_@babel+core@7.14.3: + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.14.3 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.14.3 + '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.14.3 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.14.3 + '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.14.3 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.14.3 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.14.3 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.14.3 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.14.3 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.14.3 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.14.3 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.14.3 + '@babel/plugin-syntax-top-level-await': 7.12.13_@babel+core@7.14.3 + dev: true + + /babel-preset-jest/27.0.1_@babel+core@7.14.3: + resolution: {integrity: sha512-nIBIqCEpuiyhvjQs2mVNwTxQQa2xk70p9Dd/0obQGBf8FBzbnI8QhQKzLsWMN2i6q+5B0OcWDtrboBX5gmOLyA==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.14.3 + babel-plugin-jest-hoist: 27.0.1 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.14.3 + dev: true + + /balanced-match/1.0.2: + resolution: {integrity: sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=} + dev: true + + /binary-extensions/2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + + /brace-expansion/1.1.11: + resolution: {integrity: sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /braces/3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /browser-process-hrtime/1.0.0: + resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} + dev: true + + /browserslist/4.16.6: + resolution: {integrity: sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001233 + colorette: 1.2.2 + electron-to-chromium: 1.3.743 + escalade: 3.1.1 + node-releases: 1.1.72 + dev: true + + /bser/2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + dependencies: + node-int64: 0.4.0 + dev: true + + /buffer-from/1.1.1: + resolution: {integrity: sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==} + dev: true + + /cac/6.7.3: + resolution: {integrity: sha512-ECVqVZh74qgSuZG9YOt2OJPI3wGcf+EwwuF/XIOYqZBD0KZYLtgPWqFPxmDPQ6joxI1nOlvVgRV6VT53Ooyocg==} + engines: {node: '>=8'} + dev: true + + /call-bind/1.0.2: + resolution: {integrity: sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.1.1 + dev: true + + /callsites/3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /camelcase/5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true + + /camelcase/6.2.0: + resolution: {integrity: sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==} + engines: {node: '>=10'} + dev: true + + /caniuse-lite/1.0.30001233: + resolution: {integrity: sha512-BmkbxLfStqiPA7IEzQpIk0UFZFf3A4E6fzjPJ6OR+bFC2L8ES9J8zGA/asoi47p8XDVkev+WJo2I2Nc8c/34Yg==} + dev: true + + /chalk/2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /chalk/4.1.1: + resolution: {integrity: sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /char-regex/1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + dev: true + + /chokidar/3.5.1: + resolution: {integrity: sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.2 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.1 + normalize-path: 3.0.0 + readdirp: 3.5.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /ci-info/2.0.0: + resolution: {integrity: sha1-Z6npZL4xpR4V5QENWObxKDQAL0Y=} + dev: true + + /ci-info/3.2.0: + resolution: {integrity: sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==} + dev: true + + /cjs-module-lexer/1.2.1: + resolution: {integrity: sha512-jVamGdJPDeuQilKhvVn1h3knuMOZzr8QDnpk+M9aMlCaMkTDd6fBWPhiDqFvFZ07pL0liqabAiuy8SY4jGHeaw==} + dev: true + + /clean-regexp/1.0.0: + resolution: {integrity: sha1-jffHquUf02h06PjQW5GAvBGj/tc=} + engines: {node: '>=4'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /clean-stack/2.2.0: + resolution: {integrity: sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=} + engines: {node: '>=6'} + dev: true + + /clean-stack/4.1.0: + resolution: {integrity: sha512-dxXQYI7mfQVcaF12s6sjNFoZ6ZPDQuBBLp3QJ5156k9EvUFClUoZ11fo8HnLQO241DDVntHEug8MOuFO5PSfRg==} + engines: {node: '>=12'} + dependencies: + escape-string-regexp: 5.0.0 + dev: true + + /cli-boxes/2.2.1: + resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} + engines: {node: '>=6'} + dev: true + + /cli-cursor/3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cli-spinners/2.6.0: + resolution: {integrity: sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==} + engines: {node: '>=6'} + dev: true + + /cli-truncate/2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.2 + dev: true + + /cliui/7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + dependencies: + string-width: 4.2.2 + strip-ansi: 6.0.0 + wrap-ansi: 7.0.0 + dev: true + + /co/4.6.0: + resolution: {integrity: sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + dev: true + + /code-excerpt/3.0.0: + resolution: {integrity: sha512-VHNTVhd7KsLGOqfX3SyeO8RyYPMp1GJOg194VITk04WMYCv4plV68YWe6TJZxd9MhobjtpMRnVky01gqZsalaw==} + engines: {node: '>=10'} + dependencies: + convert-to-spaces: 1.0.2 + dev: true + + /collect-v8-coverage/1.0.1: + resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} + dev: true + + /color-convert/1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: true + + /color-convert/2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name/1.1.3: + resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} + dev: true + + /color-name/1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /colorette/1.2.2: + resolution: {integrity: sha1-y8x51emcrqLb8Q6zom/Ys+as+pQ=} + dev: true + + /combined-stream/1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: true + + /commander/4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: true + + /commander/6.2.1: + resolution: {integrity: sha1-B5LraC37wyWZm7K4T93duhEKxzw=} + engines: {node: '>= 6'} + dev: true + + /comment-parser/1.1.5: + resolution: {integrity: sha1-RTYn749n287ETnmpvVuqN/C86bI=} + engines: {node: '>= 10.0.0'} + dev: true + + /compare-versions/3.6.0: + resolution: {integrity: sha1-GlaJkTaF5ah2N7jT/8p1UU7EHWI=} + dev: true + + /concat-map/0.0.1: + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + dev: true + + /confusing-browser-globals/1.0.10: + resolution: {integrity: sha1-MNHn89G4grJexJM9HRraw1PSClk=} + dev: true + + /convert-source-map/1.7.0: + resolution: {integrity: sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==} + dependencies: + safe-buffer: 5.1.2 + dev: true + + /convert-to-spaces/1.0.2: + resolution: {integrity: sha1-fj5Iu+bZl7FBfdyihoIEtNPYVxU=} + engines: {node: '>= 4'} + dev: true + + /cosmiconfig/7.0.0: + resolution: {integrity: sha1-75tE13OVnK5j3ezRIt4jhTtg+NM=} + engines: {node: '>=10'} + dependencies: + '@types/parse-json': 4.0.0 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: true + + /cross-spawn/7.0.3: + resolution: {integrity: sha1-9zqFudXUHQRVUcF34ogtSshXKKY=} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /cssom/0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + dev: true + + /cssom/0.4.4: + resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==} + dev: true + + /cssstyle/2.3.0: + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + engines: {node: '>=8'} + dependencies: + cssom: 0.3.8 + dev: true + + /csstype/3.0.8: + resolution: {integrity: sha1-0iZqeScp+yJ80hb7Vy9Dco4a00A=} + dev: true + + /data-urls/2.0.0: + resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} + engines: {node: '>=10'} + dependencies: + abab: 2.0.5 + whatwg-mimetype: 2.3.0 + whatwg-url: 8.5.0 + dev: true + + /debug/2.6.9: + resolution: {integrity: sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=} + dependencies: + ms: 2.0.0 + dev: true + + /debug/3.2.7: + resolution: {integrity: sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=} + dependencies: + ms: 2.1.3 + dev: true + + /debug/4.3.1: + resolution: {integrity: sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /decimal.js/10.2.1: + resolution: {integrity: sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==} + dev: true + + /dedent/0.7.0: + resolution: {integrity: sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=} + dev: true + + /deep-is/0.1.3: + resolution: {integrity: sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=} + dev: true + + /deepmerge/4.2.2: + resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} + engines: {node: '>=0.10.0'} + dev: true + + /define-properties/1.1.3: + resolution: {integrity: sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=} + engines: {node: '>= 0.4'} + dependencies: + object-keys: 1.1.1 + dev: true + + /delayed-stream/1.0.0: + resolution: {integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=} + engines: {node: '>=0.4.0'} + dev: true + + /detect-newline/3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + dev: true + + /diff-sequences/26.6.2: + resolution: {integrity: sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==} + engines: {node: '>= 10.14.2'} + dev: true + + /diff-sequences/27.0.1: + resolution: {integrity: sha512-XPLijkfJUh/PIBnfkcSHgvD6tlYixmcMAn3osTk6jt+H0v/mgURto1XUiD9DKuGX5NDoVS6dSlA23gd9FUaCFg==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dev: true + + /dir-glob/3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /doctrine/2.1.0: + resolution: {integrity: sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine/3.0.0: + resolution: {integrity: sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /domexception/2.0.1: + resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==} + engines: {node: '>=8'} + dependencies: + webidl-conversions: 5.0.0 + dev: true + + /dts/0.1.1: + resolution: {integrity: sha1-IFSAvC+IZhO91bZVQQefqoyD/5Q=} + dev: true + + /electron-to-chromium/1.3.743: + resolution: {integrity: sha512-K2wXfo9iZQzNJNx67+Pld0DRF+9bYinj62gXCdgPhcu1vidwVuLPHQPPFnCdO55njWigXXpfBiT90jGUPbw8Zg==} + dev: true + + /emittery/0.8.1: + resolution: {integrity: sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==} + engines: {node: '>=10'} + dev: true + + /emoji-regex/8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /end-of-stream/1.4.4: + resolution: {integrity: sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=} + dependencies: + once: 1.4.0 + dev: true + + /enquirer/2.3.6: + resolution: {integrity: sha1-Kn/l3WNKHkElqXXsmU/1RW3Dc00=} + engines: {node: '>=8.6'} + dependencies: + ansi-colors: 4.1.1 + dev: true + + /error-ex/1.3.2: + resolution: {integrity: sha1-tKxAZIEH/c3PriQvQovqihTU8b8=} + dependencies: + is-arrayish: 0.2.1 + dev: true + + /es-abstract/1.18.3: + resolution: {integrity: sha1-JcTDOAonqiA8RLK2hbupTaMbY+A=} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + es-to-primitive: 1.2.1 + function-bind: 1.1.1 + get-intrinsic: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.2 + is-callable: 1.2.3 + is-negative-zero: 2.0.1 + is-regex: 1.1.3 + is-string: 1.0.6 + object-inspect: 1.10.3 + object-keys: 1.1.1 + object.assign: 4.1.2 + string.prototype.trimend: 1.0.4 + string.prototype.trimstart: 1.0.4 + unbox-primitive: 1.0.1 + dev: true + + /es-jest/1.2.0: + resolution: {integrity: sha512-6p1ekiZyku8YTulvjC2prPdY64tKlPcn42U9aP8cUj/SUR4D0Wb15GdifvDdrdLhz/QP5hLcJ25yxd2K2mLceA==} + engines: {node: '>=10'} + dependencies: + esbuild: 0.9.7 + dev: true + + /es-to-primitive/1.2.1: + resolution: {integrity: sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.3 + is-date-object: 1.0.4 + is-symbol: 1.0.4 + dev: true + + /esbuild-register/2.5.0: + resolution: {integrity: sha512-5a8W3rH7IQbIPR9pPXJFkC3+CRMtm/OSpBz3hkWUUU63oPZ3NU6dVDGfaIjKnRizCTIRoGjNE6KEDt5p1sLwEw==} + dependencies: + esbuild: 0.11.23 + jsonc-parser: 3.0.0 + dev: true + + /esbuild/0.11.23: + resolution: {integrity: sha512-iaiZZ9vUF5wJV8ob1tl+5aJTrwDczlvGP0JoMmnpC2B0ppiMCu8n8gmy5ZTGl5bcG081XBVn+U+jP+mPFm5T5Q==} + hasBin: true + requiresBuild: true + dev: true + + /esbuild/0.9.7: + resolution: {integrity: sha512-VtUf6aQ89VTmMLKrWHYG50uByMF4JQlVysb8dmg6cOgW8JnFCipmz7p+HNBl+RR3LLCuBxFGVauAe2wfnF9bLg==} + hasBin: true + requiresBuild: true + dev: true + + /escalade/3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: true + + /escape-string-regexp/1.0.5: + resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} + engines: {node: '>=0.8.0'} + dev: true + + /escape-string-regexp/2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + dev: true + + /escape-string-regexp/4.0.0: + resolution: {integrity: sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=} + engines: {node: '>=10'} + dev: true + + /escape-string-regexp/5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: true + + /escodegen/2.0.0: + resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==} + engines: {node: '>=6.0'} + hasBin: true + dependencies: + esprima: 4.0.1 + estraverse: 5.2.0 + esutils: 2.0.3 + optionator: 0.8.3 + optionalDependencies: + source-map: 0.6.1 + dev: true + + /eslint-import-resolver-node/0.3.4: + resolution: {integrity: sha1-hf+oGULCUBLYIxCW3fZ5wDBCxxc=} + dependencies: + debug: 2.6.9 + resolve: 1.20.0 + dev: true + + /eslint-module-utils/2.6.1: + resolution: {integrity: sha1-tRvh5HPdDeHF6mOOIkKcJJDqgjM=} + engines: {node: '>=4'} + dependencies: + debug: 3.2.7 + pkg-dir: 2.0.0 + dev: true + + /eslint-plugin-es/3.0.1_eslint@7.27.0: + resolution: {integrity: sha1-dafN/czdwFiZNK7rOEF18iHFeJM=} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=4.19.1' + dependencies: + eslint: 7.27.0 + eslint-utils: 2.1.0 + regexpp: 3.1.0 + dev: true + + /eslint-plugin-eslint-comments/3.2.0_eslint@7.27.0: + resolution: {integrity: sha1-nhzXtEE1JquzE5MwcderoFyhL/o=} + engines: {node: '>=6.5.0'} + peerDependencies: + eslint: '>=4.19.1' + dependencies: + escape-string-regexp: 1.0.5 + eslint: 7.27.0 + ignore: 5.1.8 + dev: true + + /eslint-plugin-import/2.23.3_eslint@7.27.0: + resolution: {integrity: sha1-ihsHMon/8DxK8PBLbflWt9Rj4ZE=} + engines: {node: '>=4'} + peerDependencies: + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 + dependencies: + array-includes: 3.1.3 + array.prototype.flat: 1.2.4 + debug: 2.6.9 + doctrine: 2.1.0 + eslint: 7.27.0 + eslint-import-resolver-node: 0.3.4 + eslint-module-utils: 2.6.1 + find-up: 2.1.0 + has: 1.0.3 + is-core-module: 2.4.0 + minimatch: 3.0.4 + object.values: 1.1.4 + pkg-up: 2.0.0 + read-pkg-up: 3.0.0 + resolve: 1.20.0 + tsconfig-paths: 3.9.0 + dev: true + + /eslint-plugin-jsonc/1.2.1_eslint@7.27.0: + resolution: {integrity: sha1-l0yNJzd4UiQwju+ISIve0GKLHxQ=} + peerDependencies: + eslint: ^5.0.0 || >=6.0.0 + dependencies: + eslint: 7.27.0 + eslint-utils: 2.1.0 + jsonc-eslint-parser: 1.0.1 + natural-compare: 1.4.0 + dev: true + + /eslint-plugin-no-use-extend-native/0.5.0: + resolution: {integrity: sha1-1oVeOoI6gZtGfPffVq3KV950G/k=} + engines: {node: '>=6.0.0'} + dependencies: + is-get-set-prop: 1.0.0 + is-js-type: 2.0.0 + is-obj-prop: 1.0.0 + is-proto-prop: 2.0.0 + dev: true + + /eslint-plugin-node/11.1.0_eslint@7.27.0: + resolution: {integrity: sha1-yVVEQW7kraJnQKMEdO78VALcZx0=} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=5.16.0' + dependencies: + eslint: 7.27.0 + eslint-plugin-es: 3.0.1_eslint@7.27.0 + eslint-utils: 2.1.0 + ignore: 5.1.8 + minimatch: 3.0.4 + resolve: 1.20.0 + semver: 6.3.0 + dev: true + + /eslint-plugin-promise/4.3.1: + resolution: {integrity: sha1-YUhd8qNZ4DFJ/a/AposOAwrSrEU=} + engines: {node: '>=6'} + dev: true + + /eslint-plugin-react-hooks/4.2.0_eslint@7.27.0: + resolution: {integrity: sha1-jCKcJo1GiVYzTJQ7tF/IYCgPVVY=} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 + dependencies: + eslint: 7.27.0 + dev: true + + /eslint-plugin-react/7.23.2_eslint@7.27.0: + resolution: {integrity: sha1-LSKRsPlcA3KLVYafARAikOeS1JQ=} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 + dependencies: + array-includes: 3.1.3 + array.prototype.flatmap: 1.2.4 + doctrine: 2.1.0 + eslint: 7.27.0 + has: 1.0.3 + jsx-ast-utils: 3.2.0 + minimatch: 3.0.4 + object.entries: 1.1.4 + object.fromentries: 2.0.4 + object.values: 1.1.4 + prop-types: 15.7.2 + resolve: 2.0.0-next.3 + string.prototype.matchall: 4.0.5 + dev: true + + /eslint-plugin-regexp/0.4.3_eslint@7.27.0: + resolution: {integrity: sha1-NWo0BMQX/gJU0EDPJMWSRLanjDk=} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + comment-parser: 1.1.5 + eslint: 7.27.0 + eslint-utils: 2.1.0 + jsdoctypeparser: 9.0.0 + regexpp: 3.1.0 + dev: true + + /eslint-plugin-unicorn/28.0.2_eslint@7.27.0: + resolution: {integrity: sha1-q5iE664EWQ7NnBwpQzDYiadLfDc=} + engines: {node: '>=10'} + peerDependencies: + eslint: '>=7.17.0' + dependencies: + ci-info: 2.0.0 + clean-regexp: 1.0.0 + eslint: 7.27.0 + eslint-template-visitor: 2.3.2_eslint@7.27.0 + eslint-utils: 2.1.0 + eslint-visitor-keys: 2.1.0 + import-modules: 2.1.0 + lodash: 4.17.21 + pluralize: 8.0.0 + read-pkg-up: 7.0.1 + regexp-tree: 0.1.23 + reserved-words: 0.1.2 + safe-regex: 2.1.1 + semver: 7.3.5 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-scope/5.1.1: + resolution: {integrity: sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + + /eslint-template-visitor/2.3.2_eslint@7.27.0: + resolution: {integrity: sha1-tS+W/zEedzo0XXkFPMx4J1u8Rj0=} + peerDependencies: + eslint: '>=7.0.0' + dependencies: + '@babel/core': 7.14.3 + '@babel/eslint-parser': 7.14.3_@babel+core@7.14.3+eslint@7.27.0 + eslint: 7.27.0 + eslint-visitor-keys: 2.1.0 + esquery: 1.4.0 + multimap: 1.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-utils/2.1.0: + resolution: {integrity: sha1-0t5eA0JOcH3BDHQGjd7a5wh0Gyc=} + engines: {node: '>=6'} + dependencies: + eslint-visitor-keys: 1.3.0 + dev: true + + /eslint-visitor-keys/1.3.0: + resolution: {integrity: sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=} + engines: {node: '>=4'} + dev: true + + /eslint-visitor-keys/2.1.0: + resolution: {integrity: sha1-9lMoJZMFknOSyTjtROsKXJsr0wM=} + engines: {node: '>=10'} + dev: true + + /eslint/7.27.0: + resolution: {integrity: sha1-ZloVBtj5VlXJJ02EvXj3FmsH6cc=} + engines: {node: ^10.12.0 || >=12.0.0} + hasBin: true + dependencies: + '@babel/code-frame': 7.12.11 + '@eslint/eslintrc': 0.4.1 + ajv: 6.12.6 + chalk: 4.1.1 + cross-spawn: 7.0.3 + debug: 4.3.1 + doctrine: 3.0.0 + enquirer: 2.3.6 + escape-string-regexp: 4.0.0 + eslint-scope: 5.1.1 + eslint-utils: 2.1.0 + eslint-visitor-keys: 2.1.0 + espree: 7.3.1 + esquery: 1.4.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + functional-red-black-tree: 1.0.1 + glob-parent: 5.1.2 + globals: 13.9.0 + ignore: 4.0.6 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.1 + js-yaml: 3.14.1 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.0.4 + natural-compare: 1.4.0 + optionator: 0.9.1 + progress: 2.0.3 + regexpp: 3.1.0 + semver: 7.3.5 + strip-ansi: 6.0.0 + strip-json-comments: 3.1.1 + table: 6.7.1 + text-table: 0.2.0 + v8-compile-cache: 2.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /esno/0.5.0: + resolution: {integrity: sha512-r0tsflar7RB918JCjTNyU2QWfgyH2jgfAzHK1tABr3A5y84ruS86JanVHc6wove/V5I98soLZbg8Foso1dqCMA==} + hasBin: true + dependencies: + esbuild: 0.9.7 + esbuild-register: 2.5.0 + dev: true + + /espree/7.3.1: + resolution: {integrity: sha1-8t8zC3Usb1UBn4vYm3ZgA5wbu7Y=} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + acorn: 7.4.1 + acorn-jsx: 5.3.1_acorn@7.4.1 + eslint-visitor-keys: 1.3.0 + dev: true + + /esprima/4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /esquery/1.4.0: + resolution: {integrity: sha1-IUj/w4uC6McFff7UhCWz5h8PJKU=} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.2.0 + dev: true + + /esrecurse/4.3.0: + resolution: {integrity: sha1-eteWTWeauyi+5yzsY3WLHF0smSE=} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.2.0 + dev: true + + /estraverse/4.3.0: + resolution: {integrity: sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=} + engines: {node: '>=4.0'} + dev: true + + /estraverse/5.2.0: + resolution: {integrity: sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==} + engines: {node: '>=4.0'} + dev: true + + /esutils/2.0.3: + resolution: {integrity: sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=} + engines: {node: '>=0.10.0'} + dev: true + + /execa/4.1.0: + resolution: {integrity: sha1-TlSRrRVy8vF6d9OIxshXE1sihHo=} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 5.2.0 + human-signals: 1.1.1 + is-stream: 2.0.0 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.3 + strip-final-newline: 2.0.0 + dev: true + + /execa/5.0.1: + resolution: {integrity: sha512-4hFTjFbFzQa3aCLobpbPJR/U+VoL1wdV5ozOWjeet0AWDeYr9UFGM1eUFWHX+VtOWFq4p0xXUXfW1YxUaP4fpw==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.0 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.3 + strip-final-newline: 2.0.0 + dev: true + + /exit/0.1.2: + resolution: {integrity: sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=} + engines: {node: '>= 0.8.0'} + dev: true + + /expect/27.0.2: + resolution: {integrity: sha512-YJFNJe2+P2DqH+ZrXy+ydRQYO87oxRUonZImpDodR1G7qo3NYd3pL+NQ9Keqpez3cehczYwZDBC3A7xk3n7M/w==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/types': 27.0.2 + ansi-styles: 5.2.0 + jest-get-type: 27.0.1 + jest-matcher-utils: 27.0.2 + jest-message-util: 27.0.2 + jest-regex-util: 27.0.1 + dev: true + + /fast-deep-equal/3.1.3: + resolution: {integrity: sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=} + dev: true + + /fast-glob/3.2.5: + resolution: {integrity: sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==} + engines: {node: '>=8'} + dependencies: + '@nodelib/fs.stat': 2.0.4 + '@nodelib/fs.walk': 1.2.6 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.4 + picomatch: 2.3.0 + dev: true + + /fast-json-stable-stringify/2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fast-levenshtein/2.0.6: + resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} + dev: true + + /fastq/1.11.0: + resolution: {integrity: sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==} + dependencies: + reusify: 1.0.4 + dev: true + + /fb-watchman/2.0.1: + resolution: {integrity: sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==} + dependencies: + bser: 2.1.1 + dev: true + + /figures/3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /file-entry-cache/6.0.1: + resolution: {integrity: sha1-IRst2WWcsDlLBz5zI6w8kz1SICc=} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.0.4 + dev: true + + /fill-range/7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /find-up/2.1.0: + resolution: {integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c=} + engines: {node: '>=4'} + dependencies: + locate-path: 2.0.0 + dev: true + + /find-up/4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /find-up/5.0.0: + resolution: {integrity: sha1-TJKBnstwg1YeT0okCoa+UZj1Nvw=} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /find-versions/4.0.0: + resolution: {integrity: sha1-PFflc7+XdpuMuN8Wk0tieRXaSWU=} + engines: {node: '>=10'} + dependencies: + semver-regex: 3.1.2 + dev: true + + /flat-cache/3.0.4: + resolution: {integrity: sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE=} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.1.1 + rimraf: 3.0.2 + dev: true + + /flatted/3.1.1: + resolution: {integrity: sha1-xLSJ6ACW2d8d/JfHmHGup8YXxGk=} + dev: true + + /form-data/3.0.1: + resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.31 + dev: true + + /fs.realpath/1.0.0: + resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} + dev: true + + /fsevents/2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + dev: true + optional: true + + /function-bind/1.1.1: + resolution: {integrity: sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=} + dev: true + + /functional-red-black-tree/1.0.1: + resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=} + dev: true + + /gensync/1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + + /get-caller-file/2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true + + /get-intrinsic/1.1.1: + resolution: {integrity: sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.2 + dev: true + + /get-own-enumerable-property-symbols/3.0.2: + resolution: {integrity: sha1-tf3nfyLL4185C04ImSLFC85u9mQ=} + dev: true + + /get-package-type/0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + dev: true + + /get-set-props/0.1.0: + resolution: {integrity: sha1-mYR1wXhEVobQsyJG2l3428++jqM=} + engines: {node: '>=0.10.0'} + dev: true + + /get-stream/5.2.0: + resolution: {integrity: sha1-SWaheV7lrOZecGxLe+txJX1uItM=} + engines: {node: '>=8'} + dependencies: + pump: 3.0.0 + dev: true + + /get-stream/6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + + /glob-parent/5.1.2: + resolution: {integrity: sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.1 + dev: true + + /glob/7.1.6: + resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.0.4 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /glob/7.1.7: + resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.0.4 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /globals/11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + + /globals/12.4.0: + resolution: {integrity: sha1-oYgTV2pBsAokqX5/gVkYwuGZJfg=} + engines: {node: '>=8'} + dependencies: + type-fest: 0.8.1 + dev: true + + /globals/13.9.0: + resolution: {integrity: sha1-S/K/Y1szShc/sdr3xeayGOzcBss=} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globby/11.0.3: + resolution: {integrity: sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.5 + ignore: 5.1.8 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /graceful-fs/4.2.6: + resolution: {integrity: sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==} + dev: true + + /has-bigints/1.0.1: + resolution: {integrity: sha1-ZP5qywIGc+O3jbA1pa9pqp0HsRM=} + dev: true + + /has-flag/3.0.0: + resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} + engines: {node: '>=4'} + dev: true + + /has-flag/4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-symbols/1.0.2: + resolution: {integrity: sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=} + engines: {node: '>= 0.4'} + dev: true + + /has/1.0.3: + resolution: {integrity: sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + dev: true + + /hosted-git-info/2.8.9: + resolution: {integrity: sha1-3/wL+aIcAiCQkPKqaUKeFBTa8/k=} + dev: true + + /html-encoding-sniffer/2.0.1: + resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==} + engines: {node: '>=10'} + dependencies: + whatwg-encoding: 1.0.5 + dev: true + + /html-escaper/2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true + + /http-proxy-agent/4.0.1: + resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': 1.1.2 + agent-base: 6.0.2 + debug: 4.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /https-proxy-agent/5.0.0: + resolution: {integrity: sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==} + engines: {node: '>= 6'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /human-signals/1.1.1: + resolution: {integrity: sha1-xbHNFPUK6uCatsWf5jujOV/k36M=} + engines: {node: '>=8.12.0'} + dev: true + + /human-signals/2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + + /husky/4.3.8: + resolution: {integrity: sha1-MRRAYL6WP9aFDlzI8Bmh3+GUKW0=} + engines: {node: '>=10'} + hasBin: true + requiresBuild: true + dependencies: + chalk: 4.1.1 + ci-info: 2.0.0 + compare-versions: 3.6.0 + cosmiconfig: 7.0.0 + find-versions: 4.0.0 + opencollective-postinstall: 2.0.3 + pkg-dir: 5.0.0 + please-upgrade-node: 3.2.0 + slash: 3.0.0 + which-pm-runs: 1.0.0 + dev: true + + /iconv-lite/0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /ignore/4.0.6: + resolution: {integrity: sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=} + engines: {node: '>= 4'} + dev: true + + /ignore/5.1.8: + resolution: {integrity: sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==} + engines: {node: '>= 4'} + dev: true + + /import-cwd/3.0.0: + resolution: {integrity: sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==} + engines: {node: '>=8'} + dependencies: + import-from: 3.0.0 + dev: true + + /import-fresh/3.3.0: + resolution: {integrity: sha1-NxYsJfy566oublPVtNiM4X2eDCs=} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /import-from/3.0.0: + resolution: {integrity: sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==} + engines: {node: '>=8'} + dependencies: + resolve-from: 5.0.0 + dev: true + + /import-local/3.0.2: + resolution: {integrity: sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + dev: true + + /import-modules/2.1.0: + resolution: {integrity: sha1-q+ffKXy2wfGbVyRuuLi9lmS22MI=} + engines: {node: '>=8'} + dev: true + + /imurmurhash/0.1.4: + resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} + engines: {node: '>=0.8.19'} + dev: true + + /indent-string/4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true + + /indent-string/5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + dev: true + + /inflight/1.0.6: + resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits/2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /ink-spinner/4.0.2_ink@3.0.8+react@17.0.2: + resolution: {integrity: sha512-vQGmhWUEh3IG1IxK1Hl2w6RfH6aaRIJWw9lrG8CvFFyrQ23UpJ8GClJs5/sFBxkNvsrrK9sKNEGlGnsqTYiUww==} + engines: {node: '>=10'} + peerDependencies: + ink: '>=3.0.5' + react: '>=16.8.2' + dependencies: + cli-spinners: 2.6.0 + ink: 3.0.8_@types+react@17.0.8+react@17.0.2 + react: 17.0.2 + dev: true + + /ink-task-list/1.1.0_ink@3.0.8+react@17.0.2: + resolution: {integrity: sha512-lywEGm1N6lV4r29BlJYdXzlVPXuUGqHmxJyK7OkSrIRS5ChVmiT1Ro8kUyfGSf9rQG0yKCQRhEaoHJDk22f8Nw==} + peerDependencies: + ink: '>=3.0.0' + react: '>=16.8.0' + dependencies: + cli-spinners: 2.6.0 + figures: 3.2.0 + ink: 3.0.8_@types+react@17.0.8+react@17.0.2 + ink-spinner: 4.0.2_ink@3.0.8+react@17.0.2 + prop-types: 15.7.2 + react: 17.0.2 + dev: true + + /ink/3.0.8_@types+react@17.0.8+react@17.0.2: + resolution: {integrity: sha512-ubMFylXYaG4IkXQVhPautbhV/p6Lo0GlvAMI/jh8cGJQ39yeznJbaTTJP2CqZXezA4GOHzalpwCWqux/NEY38w==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '>=16.8.0' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 17.0.8 + ansi-escapes: 4.3.2 + auto-bind: 4.0.0 + chalk: 4.1.1 + cli-boxes: 2.2.1 + cli-cursor: 3.1.0 + cli-truncate: 2.1.0 + code-excerpt: 3.0.0 + indent-string: 4.0.0 + is-ci: 2.0.0 + lodash: 4.17.21 + patch-console: 1.0.0 + react: 17.0.2 + react-devtools-core: 4.13.4 + react-reconciler: 0.24.0_react@17.0.2 + scheduler: 0.18.0 + signal-exit: 3.0.3 + slice-ansi: 3.0.0 + stack-utils: 2.0.3 + string-length: 3.1.0 + type-fest: 0.12.0 + widest-line: 3.1.0 + wrap-ansi: 6.2.0 + ws: 7.4.5 + yoga-layout-prebuilt: 1.10.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: true + + /internal-slot/1.0.3: + resolution: {integrity: sha1-c0fjB97uovqsKsYgXUvH00ln9Zw=} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.1.1 + has: 1.0.3 + side-channel: 1.0.4 + dev: true + + /is-arrayish/0.2.1: + resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} + dev: true + + /is-bigint/1.0.2: + resolution: {integrity: sha1-/7OBRCUDI1rSReqJ5Fs9v/BA7lo=} + dev: true + + /is-binary-path/2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-boolean-object/1.1.1: + resolution: {integrity: sha1-PAh48DXLghIo01DS4eNnGXFqPeg=} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-callable/1.2.3: + resolution: {integrity: sha1-ix4FALc6HXbHBIdjbzaOUZ3o244=} + engines: {node: '>= 0.4'} + dev: true + + /is-ci/2.0.0: + resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} + hasBin: true + dependencies: + ci-info: 2.0.0 + dev: true + + /is-ci/3.0.0: + resolution: {integrity: sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==} + hasBin: true + dependencies: + ci-info: 3.2.0 + dev: true + + /is-core-module/2.4.0: + resolution: {integrity: sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==} + dependencies: + has: 1.0.3 + dev: true + + /is-date-object/1.0.4: + resolution: {integrity: sha1-VQz8wDr62gXuo90wmBx7CVUfc+U=} + engines: {node: '>= 0.4'} + dev: true + + /is-extglob/2.1.1: + resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} + engines: {node: '>=0.10.0'} + dev: true + + /is-fullwidth-code-point/3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-generator-fn/2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + dev: true + + /is-get-set-prop/1.0.0: + resolution: {integrity: sha1-JzGHfk14pqae3M5rudaLB3nnYxI=} + dependencies: + get-set-props: 0.1.0 + lowercase-keys: 1.0.1 + dev: true + + /is-glob/4.0.1: + resolution: {integrity: sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-js-type/2.0.0: + resolution: {integrity: sha1-c2FwBtZZtOtHKbunR9KHgt8PfiI=} + dependencies: + js-types: 1.0.0 + dev: true + + /is-negative-zero/2.0.1: + resolution: {integrity: sha1-PedGwY3aIxkkGlNnWQjY92bxHCQ=} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object/1.0.5: + resolution: {integrity: sha1-bt+u7XlQz/Ga/tzp+/yp7m3Sies=} + engines: {node: '>= 0.4'} + dev: true + + /is-number/7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-obj-prop/1.0.0: + resolution: {integrity: sha1-s03nnEULjXxzqyzfZ9yHWtuF+A4=} + dependencies: + lowercase-keys: 1.0.1 + obj-props: 1.3.0 + dev: true + + /is-obj/1.0.1: + resolution: {integrity: sha1-PkcprB9f3gJc19g6iW2rn09n2w8=} + engines: {node: '>=0.10.0'} + dev: true + + /is-potential-custom-element-name/1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + dev: true + + /is-proto-prop/2.0.0: + resolution: {integrity: sha1-masoY0YuRAkP0IPv0ZKQWPnZNeE=} + dependencies: + lowercase-keys: 1.0.1 + proto-props: 2.0.0 + dev: true + + /is-regex/1.1.3: + resolution: {integrity: sha1-0Cn5r/ZEi5Prvj8z2scVEf3L758=} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-symbols: 1.0.2 + dev: true + + /is-regexp/1.0.0: + resolution: {integrity: sha1-/S2INUXEa6xaYz57mgnof6LLUGk=} + engines: {node: '>=0.10.0'} + dev: true + + /is-stream/2.0.0: + resolution: {integrity: sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==} + engines: {node: '>=8'} + dev: true + + /is-string/1.0.6: + resolution: {integrity: sha1-P+XVmS+w2TQE8yWE1LAXmnG1Sl8=} + engines: {node: '>= 0.4'} + dev: true + + /is-symbol/1.0.4: + resolution: {integrity: sha1-ptrJO2NbBjymhyI23oiRClevE5w=} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.2 + dev: true + + /is-typedarray/1.0.0: + resolution: {integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=} + dev: true + + /is-unicode-supported/0.1.0: + resolution: {integrity: sha1-PybHaoCVk7Ur+i7LVxDtJ3m1Iqc=} + engines: {node: '>=10'} + dev: true + + /isexe/2.0.0: + resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} + dev: true + + /istanbul-lib-coverage/3.0.0: + resolution: {integrity: sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==} + engines: {node: '>=8'} + dev: true + + /istanbul-lib-instrument/4.0.3: + resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} + engines: {node: '>=8'} + dependencies: + '@babel/core': 7.14.3 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.0.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-lib-report/3.0.0: + resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} + engines: {node: '>=8'} + dependencies: + istanbul-lib-coverage: 3.0.0 + make-dir: 3.1.0 + supports-color: 7.2.0 + dev: true + + /istanbul-lib-source-maps/4.0.0: + resolution: {integrity: sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==} + engines: {node: '>=8'} + dependencies: + debug: 4.3.1 + istanbul-lib-coverage: 3.0.0 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-reports/3.0.2: + resolution: {integrity: sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==} + engines: {node: '>=8'} + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.0 + dev: true + + /jest-changed-files/27.0.2: + resolution: {integrity: sha512-eMeb1Pn7w7x3wue5/vF73LPCJ7DKQuC9wQUR5ebP9hDPpk5hzcT/3Hmz3Q5BOFpR3tgbmaWhJcMTVgC8Z1NuMw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/types': 27.0.2 + execa: 5.0.1 + throat: 6.0.1 + dev: true + + /jest-circus/27.0.3: + resolution: {integrity: sha512-tdMfzs7SgD5l7jRcI1iB3vtQi5fHwCgo4RlO8bzZnYc05PZ+tlAOMZeS8eGYkZ2tPaRY/aRLMFWQp/8zXBrolQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/environment': 27.0.3 + '@jest/test-result': 27.0.2 + '@jest/types': 27.0.2 + '@types/node': 15.6.1 + chalk: 4.1.1 + co: 4.6.0 + dedent: 0.7.0 + expect: 27.0.2 + is-generator-fn: 2.1.0 + jest-each: 27.0.2 + jest-matcher-utils: 27.0.2 + jest-message-util: 27.0.2 + jest-runtime: 27.0.3 + jest-snapshot: 27.0.2 + jest-util: 27.0.2 + pretty-format: 27.0.2 + slash: 3.0.0 + stack-utils: 2.0.3 + throat: 6.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-cli/27.0.3: + resolution: {integrity: sha512-7bt9Sgv4nWH5pUnyJfdLf8CHWfo4+7lSPxeBwQx4r0vBj9jweJam/piE2U91SXtQI+ckm+TIN97OVnqIYpVhSg==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 27.0.3 + '@jest/test-result': 27.0.2 + '@jest/types': 27.0.2 + chalk: 4.1.1 + exit: 0.1.2 + graceful-fs: 4.2.6 + import-local: 3.0.2 + jest-config: 27.0.3 + jest-util: 27.0.2 + jest-validate: 27.0.2 + prompts: 2.4.1 + yargs: 16.2.0 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + dev: true + + /jest-config/27.0.3: + resolution: {integrity: sha512-zgtI2YQo+ekKsmYNyDlXFY/7w7WWBSJFoj/WRe173WB88CDUrEYWr0sLdbLOQe+sRu6l1Y2S0MCS6BOJm5jkoA==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + peerDependencies: + ts-node: '>=9.0.0' + peerDependenciesMeta: + ts-node: + optional: true + dependencies: + '@babel/core': 7.14.3 + '@jest/test-sequencer': 27.0.3 + '@jest/types': 27.0.2 + babel-jest: 27.0.2_@babel+core@7.14.3 + chalk: 4.1.1 + deepmerge: 4.2.2 + glob: 7.1.7 + graceful-fs: 4.2.6 + is-ci: 3.0.0 + jest-circus: 27.0.3 + jest-environment-jsdom: 27.0.3 + jest-environment-node: 27.0.3 + jest-get-type: 27.0.1 + jest-jasmine2: 27.0.3 + jest-regex-util: 27.0.1 + jest-resolve: 27.0.2 + jest-runner: 27.0.3 + jest-util: 27.0.2 + jest-validate: 27.0.2 + micromatch: 4.0.4 + pretty-format: 27.0.2 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + dev: true + + /jest-diff/26.6.2: + resolution: {integrity: sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==} + engines: {node: '>= 10.14.2'} + dependencies: + chalk: 4.1.1 + diff-sequences: 26.6.2 + jest-get-type: 26.3.0 + pretty-format: 26.6.2 + dev: true + + /jest-diff/27.0.2: + resolution: {integrity: sha512-BFIdRb0LqfV1hBt8crQmw6gGQHVDhM87SpMIZ45FPYKReZYG5er1+5pIn2zKqvrJp6WNox0ylR8571Iwk2Dmgw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + chalk: 4.1.1 + diff-sequences: 27.0.1 + jest-get-type: 27.0.1 + pretty-format: 27.0.2 + dev: true + + /jest-docblock/27.0.1: + resolution: {integrity: sha512-TA4+21s3oebURc7VgFV4r7ltdIJ5rtBH1E3Tbovcg7AV+oLfD5DcJ2V2vJ5zFA9sL5CFd/d2D6IpsAeSheEdrA==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + detect-newline: 3.1.0 + dev: true + + /jest-each/27.0.2: + resolution: {integrity: sha512-OLMBZBZ6JkoXgUenDtseFRWA43wVl2BwmZYIWQws7eS7pqsIvePqj/jJmEnfq91ALk3LNphgwNK/PRFBYi7ITQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/types': 27.0.2 + chalk: 4.1.1 + jest-get-type: 27.0.1 + jest-util: 27.0.2 + pretty-format: 27.0.2 + dev: true + + /jest-environment-jsdom/27.0.3: + resolution: {integrity: sha512-5KLmgv1bhiimpSA8oGTnZYk6g4fsNyZiA/6gI2tAZUgrufd7heRUSVh4gRokzZVEj8zlwAQYT0Zs6tuJSW/ECA==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/environment': 27.0.3 + '@jest/fake-timers': 27.0.3 + '@jest/types': 27.0.2 + '@types/node': 15.6.1 + jest-mock: 27.0.3 + jest-util: 27.0.2 + jsdom: 16.6.0 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + dev: true + + /jest-environment-node/27.0.3: + resolution: {integrity: sha512-co2/IVnIFL3cItpFULCvXFg9us4gvWXgs7mutAMPCbFhcqh56QAOdKhNzC2+RycsC/k4mbMj1VF+9F/NzA0ROg==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/environment': 27.0.3 + '@jest/fake-timers': 27.0.3 + '@jest/types': 27.0.2 + '@types/node': 15.6.1 + jest-mock: 27.0.3 + jest-util: 27.0.2 + dev: true + + /jest-get-type/26.3.0: + resolution: {integrity: sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==} + engines: {node: '>= 10.14.2'} + dev: true + + /jest-get-type/27.0.1: + resolution: {integrity: sha512-9Tggo9zZbu0sHKebiAijyt1NM77Z0uO4tuWOxUCujAiSeXv30Vb5D4xVF4UR4YWNapcftj+PbByU54lKD7/xMg==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dev: true + + /jest-haste-map/27.0.2: + resolution: {integrity: sha512-37gYfrYjjhEfk37C4bCMWAC0oPBxDpG0qpl8lYg8BT//wf353YT/fzgA7+Dq0EtM7rPFS3JEcMsxdtDwNMi2cA==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/types': 27.0.2 + '@types/graceful-fs': 4.1.5 + '@types/node': 15.6.1 + anymatch: 3.1.2 + fb-watchman: 2.0.1 + graceful-fs: 4.2.6 + jest-regex-util: 27.0.1 + jest-serializer: 27.0.1 + jest-util: 27.0.2 + jest-worker: 27.0.2 + micromatch: 4.0.4 + walker: 1.0.7 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /jest-jasmine2/27.0.3: + resolution: {integrity: sha512-odJ2ia8P5c+IsqOcWJPmku4AqbXIfTVLRjYTKHri3TEvbmTdLw0ghy13OAPIl/0v7cVH0TURK7+xFOHKDLvKIA==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@babel/traverse': 7.14.2 + '@jest/environment': 27.0.3 + '@jest/source-map': 27.0.1 + '@jest/test-result': 27.0.2 + '@jest/types': 27.0.2 + '@types/node': 15.6.1 + chalk: 4.1.1 + co: 4.6.0 + expect: 27.0.2 + is-generator-fn: 2.1.0 + jest-each: 27.0.2 + jest-matcher-utils: 27.0.2 + jest-message-util: 27.0.2 + jest-runtime: 27.0.3 + jest-snapshot: 27.0.2 + jest-util: 27.0.2 + pretty-format: 27.0.2 + throat: 6.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-leak-detector/27.0.2: + resolution: {integrity: sha512-TZA3DmCOfe8YZFIMD1GxFqXUkQnIoOGQyy4hFCA2mlHtnAaf+FeOMxi0fZmfB41ZL+QbFG6BVaZF5IeFIVy53Q==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + jest-get-type: 27.0.1 + pretty-format: 27.0.2 + dev: true + + /jest-matcher-utils/27.0.2: + resolution: {integrity: sha512-Qczi5xnTNjkhcIB0Yy75Txt+Ez51xdhOxsukN7awzq2auZQGPHcQrJ623PZj0ECDEMOk2soxWx05EXdXGd1CbA==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + chalk: 4.1.1 + jest-diff: 27.0.2 + jest-get-type: 27.0.1 + pretty-format: 27.0.2 + dev: true + + /jest-message-util/27.0.2: + resolution: {integrity: sha512-rTqWUX42ec2LdMkoUPOzrEd1Tcm+R1KfLOmFK+OVNo4MnLsEaxO5zPDb2BbdSmthdM/IfXxOZU60P/WbWF8BTw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@babel/code-frame': 7.12.13 + '@jest/types': 27.0.2 + '@types/stack-utils': 2.0.0 + chalk: 4.1.1 + graceful-fs: 4.2.6 + micromatch: 4.0.4 + pretty-format: 27.0.2 + slash: 3.0.0 + stack-utils: 2.0.3 + dev: true + + /jest-mock/27.0.3: + resolution: {integrity: sha512-O5FZn5XDzEp+Xg28mUz4ovVcdwBBPfAhW9+zJLO0Efn2qNbYcDaJvSlRiQ6BCZUCVOJjALicuJQI9mRFjv1o9Q==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/types': 27.0.2 + '@types/node': 15.6.1 + dev: true + + /jest-pnp-resolver/1.2.2_jest-resolve@27.0.2: + resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + dependencies: + jest-resolve: 27.0.2 + dev: true + + /jest-regex-util/27.0.1: + resolution: {integrity: sha512-6nY6QVcpTgEKQy1L41P4pr3aOddneK17kn3HJw6SdwGiKfgCGTvH02hVXL0GU8GEKtPH83eD2DIDgxHXOxVohQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dev: true + + /jest-resolve-dependencies/27.0.3: + resolution: {integrity: sha512-HdjWOvFAgT5CYChF2eiBN2rRKicjaTCCtA3EtH47REIdGzEHGUhYrWYgLahXsiOovvWN6edhcHL5WCa3gbc04A==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/types': 27.0.2 + jest-regex-util: 27.0.1 + jest-snapshot: 27.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-resolve/27.0.2: + resolution: {integrity: sha512-rmfLGyZhwAUR5z3EwPAW7LQTorWAuCYCcsQJoQxT2it+BOgX3zKxa67r1pfpK3ihy2k9TjYD3/lMp5rPm/CL1Q==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/types': 27.0.2 + chalk: 4.1.1 + escalade: 3.1.1 + graceful-fs: 4.2.6 + jest-pnp-resolver: 1.2.2_jest-resolve@27.0.2 + jest-util: 27.0.2 + jest-validate: 27.0.2 + resolve: 1.20.0 + slash: 3.0.0 + dev: true + + /jest-runner/27.0.3: + resolution: {integrity: sha512-zH23uIIh1ro1JCD7XX1bQ0bQwXEsBzLX2UJVE/AVLsk4YJRmTfyXIzzRzBWRdnMHHg1NWkJ4fGs7eFP15IqZpQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/console': 27.0.2 + '@jest/environment': 27.0.3 + '@jest/test-result': 27.0.2 + '@jest/transform': 27.0.2 + '@jest/types': 27.0.2 + '@types/node': 15.6.1 + chalk: 4.1.1 + emittery: 0.8.1 + exit: 0.1.2 + graceful-fs: 4.2.6 + jest-docblock: 27.0.1 + jest-haste-map: 27.0.2 + jest-leak-detector: 27.0.2 + jest-message-util: 27.0.2 + jest-resolve: 27.0.2 + jest-runtime: 27.0.3 + jest-util: 27.0.2 + jest-worker: 27.0.2 + source-map-support: 0.5.19 + throat: 6.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-runtime/27.0.3: + resolution: {integrity: sha512-k1Hl2pWWHBkSXdCggX2lyLRuDnnnmMlnJd+DPLb8LmmAeHW87WgGC6TplD377VxY3KQu73sklkhGUIdwFgsRVQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/console': 27.0.2 + '@jest/environment': 27.0.3 + '@jest/fake-timers': 27.0.3 + '@jest/globals': 27.0.3 + '@jest/source-map': 27.0.1 + '@jest/test-result': 27.0.2 + '@jest/transform': 27.0.2 + '@jest/types': 27.0.2 + '@types/yargs': 16.0.3 + chalk: 4.1.1 + cjs-module-lexer: 1.2.1 + collect-v8-coverage: 1.0.1 + exit: 0.1.2 + glob: 7.1.7 + graceful-fs: 4.2.6 + jest-haste-map: 27.0.2 + jest-message-util: 27.0.2 + jest-mock: 27.0.3 + jest-regex-util: 27.0.1 + jest-resolve: 27.0.2 + jest-snapshot: 27.0.2 + jest-util: 27.0.2 + jest-validate: 27.0.2 + slash: 3.0.0 + strip-bom: 4.0.0 + yargs: 16.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-serializer/27.0.1: + resolution: {integrity: sha512-svy//5IH6bfQvAbkAEg1s7xhhgHTtXu0li0I2fdKHDsLP2P2MOiscPQIENQep8oU2g2B3jqLyxKKzotZOz4CwQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@types/node': 15.6.1 + graceful-fs: 4.2.6 + dev: true + + /jest-snapshot/27.0.2: + resolution: {integrity: sha512-4RcgvZbPrrbEE/hT6XQ4hr+NVVLNrmsgUnYSnZRT6UAvW9Q2yzGMS+tfJh+xlQJAapnnkNJzsMn6vUa+yfiVHA==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@babel/core': 7.14.3 + '@babel/generator': 7.14.3 + '@babel/parser': 7.14.4 + '@babel/plugin-syntax-typescript': 7.12.13_@babel+core@7.14.3 + '@babel/traverse': 7.14.2 + '@babel/types': 7.14.4 + '@jest/transform': 27.0.2 + '@jest/types': 27.0.2 + '@types/babel__traverse': 7.11.1 + '@types/prettier': 2.2.3 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.14.3 + chalk: 4.1.1 + expect: 27.0.2 + graceful-fs: 4.2.6 + jest-diff: 27.0.2 + jest-get-type: 27.0.1 + jest-haste-map: 27.0.2 + jest-matcher-utils: 27.0.2 + jest-message-util: 27.0.2 + jest-resolve: 27.0.2 + jest-util: 27.0.2 + natural-compare: 1.4.0 + pretty-format: 27.0.2 + semver: 7.3.5 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-util/27.0.2: + resolution: {integrity: sha512-1d9uH3a00OFGGWSibpNYr+jojZ6AckOMCXV2Z4K3YXDnzpkAaXQyIpY14FOJPiUmil7CD+A6Qs+lnnh6ctRbIA==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/types': 27.0.2 + '@types/node': 15.6.1 + chalk: 4.1.1 + graceful-fs: 4.2.6 + is-ci: 3.0.0 + picomatch: 2.3.0 + dev: true + + /jest-validate/27.0.2: + resolution: {integrity: sha512-UgBF6/oVu1ofd1XbaSotXKihi8nZhg0Prm8twQ9uCuAfo59vlxCXMPI/RKmrZEVgi3Nd9dS0I8A0wzWU48pOvg==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/types': 27.0.2 + camelcase: 6.2.0 + chalk: 4.1.1 + jest-get-type: 27.0.1 + leven: 3.1.0 + pretty-format: 27.0.2 + dev: true + + /jest-watcher/27.0.2: + resolution: {integrity: sha512-8nuf0PGuTxWj/Ytfw5fyvNn/R80iXY8QhIT0ofyImUvdnoaBdT6kob0GmhXR+wO+ALYVnh8bQxN4Tjfez0JgkA==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/test-result': 27.0.2 + '@jest/types': 27.0.2 + '@types/node': 15.6.1 + ansi-escapes: 4.3.2 + chalk: 4.1.1 + jest-util: 27.0.2 + string-length: 4.0.2 + dev: true + + /jest-worker/27.0.2: + resolution: {integrity: sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': 15.6.1 + merge-stream: 2.0.0 + supports-color: 8.1.1 + dev: true + + /jest/27.0.3: + resolution: {integrity: sha512-0G9+QqXFIZWgf5rs3yllpaA+13ZawVHfyuhuCV1EnoFbX++rVMRrYWCAnk+dfhwyv9/VTQvn+XG969u8aPRsBg==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 27.0.3 + import-local: 3.0.2 + jest-cli: 27.0.3 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + dev: true + + /joycon/3.0.1: + resolution: {integrity: sha512-SJcJNBg32dGgxhPtM0wQqxqV0ax9k/9TaUskGDSJkSFSQOEWWvQ3zzWdGQRIUry2j1zA5+ReH13t0Mf3StuVZA==} + engines: {node: '>=10'} + dev: true + + /js-tokens/4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true + + /js-types/1.0.0: + resolution: {integrity: sha1-0kLmSU7Vcq08koCfyL7X92h8vwM=} + engines: {node: '>=0.10.0'} + dev: true + + /js-yaml/3.14.1: + resolution: {integrity: sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + + /jsdoctypeparser/9.0.0: + resolution: {integrity: sha1-jJfi+2kxXrJ0sPATd+qlyUC9eyY=} + engines: {node: '>=10'} + hasBin: true + dev: true + + /jsdom/16.6.0: + resolution: {integrity: sha512-Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg==} + engines: {node: '>=10'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + abab: 2.0.5 + acorn: 8.3.0 + acorn-globals: 6.0.0 + cssom: 0.4.4 + cssstyle: 2.3.0 + data-urls: 2.0.0 + decimal.js: 10.2.1 + domexception: 2.0.1 + escodegen: 2.0.0 + form-data: 3.0.1 + html-encoding-sniffer: 2.0.1 + http-proxy-agent: 4.0.1 + https-proxy-agent: 5.0.0 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.0 + parse5: 6.0.1 + saxes: 5.0.1 + symbol-tree: 3.2.4 + tough-cookie: 4.0.0 + w3c-hr-time: 1.0.2 + w3c-xmlserializer: 2.0.0 + webidl-conversions: 6.1.0 + whatwg-encoding: 1.0.5 + whatwg-mimetype: 2.3.0 + whatwg-url: 8.5.0 + ws: 7.4.6 + xml-name-validator: 3.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /jsesc/2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /json-parse-better-errors/1.0.2: + resolution: {integrity: sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=} + dev: true + + /json-parse-even-better-errors/2.3.1: + resolution: {integrity: sha1-fEeAWpQxmSjgV3dAXcEuH3pO4C0=} + dev: true + + /json-schema-traverse/0.4.1: + resolution: {integrity: sha1-afaofZUTq4u4/mO9sJecRI5oRmA=} + dev: true + + /json-schema-traverse/1.0.0: + resolution: {integrity: sha1-rnvLNlard6c7pcSb9lTzjmtoYOI=} + dev: true + + /json-stable-stringify-without-jsonify/1.0.1: + resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=} + dev: true + + /json5/1.0.1: + resolution: {integrity: sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=} + hasBin: true + dependencies: + minimist: 1.2.5 + dev: true + + /json5/2.2.0: + resolution: {integrity: sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==} + engines: {node: '>=6'} + hasBin: true + dependencies: + minimist: 1.2.5 + dev: true + + /jsonc-eslint-parser/1.0.1: + resolution: {integrity: sha1-+77a0IdceeHhXQ7Wh36+Q/GKUuM=} + dependencies: + eslint-utils: 2.1.0 + eslint-visitor-keys: 2.1.0 + espree: 7.3.1 + dev: true + + /jsonc-parser/3.0.0: + resolution: {integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==} + dev: true + + /jsx-ast-utils/3.2.0: + resolution: {integrity: sha1-QRCNLOxAjDRTwbvopKrp4eK9j4I=} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.3 + object.assign: 4.1.2 + dev: true + + /kleur/3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + dev: true + + /leven/3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + dev: true + + /levn/0.3.0: + resolution: {integrity: sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.1.2 + type-check: 0.3.2 + dev: true + + /levn/0.4.1: + resolution: {integrity: sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /lines-and-columns/1.1.6: + resolution: {integrity: sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=} + dev: true + + /lint-staged/10.5.4: + resolution: {integrity: sha1-zRU7XwmH0jcfwdKEekCaL+cFtmU=} + hasBin: true + dependencies: + chalk: 4.1.1 + cli-truncate: 2.1.0 + commander: 6.2.1 + cosmiconfig: 7.0.0 + debug: 4.3.1 + dedent: 0.7.0 + enquirer: 2.3.6 + execa: 4.1.0 + listr2: 3.9.0_enquirer@2.3.6 + log-symbols: 4.1.0 + micromatch: 4.0.4 + normalize-path: 3.0.0 + please-upgrade-node: 3.2.0 + string-argv: 0.3.1 + stringify-object: 3.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /listr2/3.9.0_enquirer@2.3.6: + resolution: {integrity: sha1-J/I8kbpP31E7BoK/YEvGsKs2tsE=} + engines: {node: '>=10.0.0'} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + dependencies: + cli-truncate: 2.1.0 + colorette: 1.2.2 + enquirer: 2.3.6 + log-update: 4.0.0 + p-map: 4.0.0 + rxjs: 6.6.7 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + + /load-json-file/4.0.0: + resolution: {integrity: sha1-L19Fq5HjMhYjT9U62rZo607AmTs=} + engines: {node: '>=4'} + dependencies: + graceful-fs: 4.2.6 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + dev: true + + /locate-path/2.0.0: + resolution: {integrity: sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=} + engines: {node: '>=4'} + dependencies: + p-locate: 2.0.0 + path-exists: 3.0.0 + dev: true + + /locate-path/5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + + /locate-path/6.0.0: + resolution: {integrity: sha1-VTIeswn+u8WcSAHZMackUqaB0oY=} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash.clonedeep/4.5.0: + resolution: {integrity: sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=} + dev: true + + /lodash.merge/4.6.2: + resolution: {integrity: sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=} + dev: true + + /lodash.truncate/4.4.2: + resolution: {integrity: sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=} + dev: true + + /lodash/4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true + + /log-symbols/4.1.0: + resolution: {integrity: sha1-P727lbRoOsn8eFER55LlWNSr1QM=} + engines: {node: '>=10'} + dependencies: + chalk: 4.1.1 + is-unicode-supported: 0.1.0 + dev: true + + /log-update/4.0.0: + resolution: {integrity: sha1-WJ7NNSRx8qHAxXAodUOmTf0g4KE=} + engines: {node: '>=10'} + dependencies: + ansi-escapes: 4.3.2 + cli-cursor: 3.1.0 + slice-ansi: 4.0.0 + wrap-ansi: 6.2.0 + dev: true + + /loose-envify/1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + dev: true + + /lowercase-keys/1.0.1: + resolution: {integrity: sha1-b54wtHCE2XGnyCD/FabFFnt0wm8=} + engines: {node: '>=0.10.0'} + dev: true + + /lru-cache/6.0.0: + resolution: {integrity: sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /make-dir/3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + dependencies: + semver: 6.3.0 + dev: true + + /makeerror/1.0.11: + resolution: {integrity: sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=} + dependencies: + tmpl: 1.0.4 + dev: true + + /merge-stream/2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /merge2/1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromatch/4.0.4: + resolution: {integrity: sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k=} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.0 + dev: true + + /mime-db/1.48.0: + resolution: {integrity: sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==} + engines: {node: '>= 0.6'} + dev: true + + /mime-types/2.1.31: + resolution: {integrity: sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.48.0 + dev: true + + /mimic-fn/2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /minimatch/3.0.4: + resolution: {integrity: sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimist/1.2.5: + resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} + dev: true + + /ms/2.0.0: + resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} + dev: true + + /ms/2.1.2: + resolution: {integrity: sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=} + dev: true + + /ms/2.1.3: + resolution: {integrity: sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=} + dev: true + + /multimap/1.1.0: + resolution: {integrity: sha1-UmP+vAhaF5HDO1m7OvxqdqKhDKg=} + dev: true + + /mz/2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: true + + /natural-compare/1.4.0: + resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} + dev: true + + /node-int64/0.4.0: + resolution: {integrity: sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=} + dev: true + + /node-modules-regexp/1.0.0: + resolution: {integrity: sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=} + engines: {node: '>=0.10.0'} + dev: true + + /node-releases/1.1.72: + resolution: {integrity: sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==} + dev: true + + /normalize-package-data/2.5.0: + resolution: {integrity: sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.20.0 + semver: 5.7.1 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-path/3.0.0: + resolution: {integrity: sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=} + engines: {node: '>=0.10.0'} + dev: true + + /npm-run-path/4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + + /nwsapi/2.2.0: + resolution: {integrity: sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==} + dev: true + + /obj-props/1.3.0: + resolution: {integrity: sha1-iISrIcjYSWxKf2lseL+CKJxRaAs=} + engines: {node: '>=0.10.0'} + dev: true + + /object-assign/4.1.1: + resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} + engines: {node: '>=0.10.0'} + dev: true + + /object-inspect/1.10.3: + resolution: {integrity: sha1-wqp9LQn1DJk3VwT3oK3yTFeC02k=} + dev: true + + /object-keys/1.1.1: + resolution: {integrity: sha1-HEfyct8nfzsdrwYWd9nILiMixg4=} + engines: {node: '>= 0.4'} + dev: true + + /object.assign/4.1.2: + resolution: {integrity: sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA=} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + has-symbols: 1.0.2 + object-keys: 1.1.1 + dev: true + + /object.entries/1.1.4: + resolution: {integrity: sha1-Q8z5pQvF/VtknUWrGlefJOCIyv0=} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.18.3 + dev: true + + /object.fromentries/2.0.4: + resolution: {integrity: sha1-JuG6XEVxxcbwiQzvRHMGZFahILg=} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.18.3 + has: 1.0.3 + dev: true + + /object.values/1.1.4: + resolution: {integrity: sha1-DSc3YoM+gWtpOmN9MAc+cFFTWzA=} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.18.3 + dev: true + + /once/1.4.0: + resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} + dependencies: + wrappy: 1.0.2 + dev: true + + /onetime/5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /opencollective-postinstall/2.0.3: + resolution: {integrity: sha1-eg//l49tv6TQBiOPusmO1BmMMlk=} + hasBin: true + dev: true + + /optionator/0.8.3: + resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.3 + fast-levenshtein: 2.0.6 + levn: 0.3.0 + prelude-ls: 1.1.2 + type-check: 0.3.2 + word-wrap: 1.2.3 + dev: true + + /optionator/0.9.1: + resolution: {integrity: sha1-TyNqY3Pa4FZqbUPhMmZ09QwpFJk=} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.3 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.3 + dev: true + + /p-each-series/2.2.0: + resolution: {integrity: sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==} + engines: {node: '>=8'} + dev: true + + /p-limit/1.3.0: + resolution: {integrity: sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=} + engines: {node: '>=4'} + dependencies: + p-try: 1.0.0 + dev: true + + /p-limit/2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: true + + /p-limit/3.1.0: + resolution: {integrity: sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-locate/2.0.0: + resolution: {integrity: sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=} + engines: {node: '>=4'} + dependencies: + p-limit: 1.3.0 + dev: true + + /p-locate/4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-locate/5.0.0: + resolution: {integrity: sha1-g8gxXGeFAF470CGDlBHJ4RDm2DQ=} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /p-map/4.0.0: + resolution: {integrity: sha1-uy+Vpe2i7BaOySdOBqdHw+KQTSs=} + engines: {node: '>=10'} + dependencies: + aggregate-error: 3.1.0 + dev: true + + /p-map/5.0.0: + resolution: {integrity: sha512-FeQNuFp/ecZidgaTXc65qXdTGD7mniwgzZNq5czwcJSy6ClETr2v3y4ZQESGe8C1038XhO/fjfKOyiTNH3d0/g==} + engines: {node: '>=12'} + dependencies: + aggregate-error: 4.0.0 + dev: true + + /p-try/1.0.0: + resolution: {integrity: sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=} + engines: {node: '>=4'} + dev: true + + /p-try/2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true + + /parent-module/1.0.1: + resolution: {integrity: sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /parse-json/4.0.0: + resolution: {integrity: sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=} + engines: {node: '>=4'} + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 + dev: true + + /parse-json/5.2.0: + resolution: {integrity: sha1-x2/Gbe5UIxyWKyK8yKcs8vmXU80=} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.12.13 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.1.6 + dev: true + + /parse5/6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + dev: true + + /patch-console/1.0.0: + resolution: {integrity: sha512-nxl9nrnLQmh64iTzMfyylSlRozL7kAXIaxw1fVcLYdyhNkJCRUzirRZTikXGJsg+hc4fqpneTK6iU2H1Q8THSA==} + engines: {node: '>=10'} + dev: true + + /path-exists/3.0.0: + resolution: {integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=} + engines: {node: '>=4'} + dev: true + + /path-exists/4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute/1.0.1: + resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} + engines: {node: '>=0.10.0'} + dev: true + + /path-key/3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-parse/1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /path-type/3.0.0: + resolution: {integrity: sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=} + engines: {node: '>=4'} + dependencies: + pify: 3.0.0 + dev: true + + /path-type/4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /picomatch/2.3.0: + resolution: {integrity: sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==} + engines: {node: '>=8.6'} + dev: true + + /pify/3.0.0: + resolution: {integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=} + engines: {node: '>=4'} + dev: true + + /pirates/4.0.1: + resolution: {integrity: sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==} + engines: {node: '>= 6'} + dependencies: + node-modules-regexp: 1.0.0 + dev: true + + /pkg-dir/2.0.0: + resolution: {integrity: sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=} + engines: {node: '>=4'} + dependencies: + find-up: 2.1.0 + dev: true + + /pkg-dir/4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + dev: true + + /pkg-dir/5.0.0: + resolution: {integrity: sha1-oC1q6+a6EzqSj3Suwguv3+a452A=} + engines: {node: '>=10'} + dependencies: + find-up: 5.0.0 + dev: true + + /pkg-up/2.0.0: + resolution: {integrity: sha1-yBmscoBZpGHKscOImivjxJoATX8=} + engines: {node: '>=4'} + dependencies: + find-up: 2.1.0 + dev: true + + /please-upgrade-node/3.2.0: + resolution: {integrity: sha1-rt3T+ZTJM+StmLmdmlVu+g4v6UI=} + dependencies: + semver-compare: 1.0.0 + dev: true + + /pluralize/8.0.0: + resolution: {integrity: sha1-Gm+hajjRKhkB4DIPoBcFHFOc47E=} + engines: {node: '>=4'} + dev: true + + /postcss-load-config/3.0.1: + resolution: {integrity: sha512-/pDHe30UYZUD11IeG8GWx9lNtu1ToyTsZHnyy45B4Mrwr/Kb6NgYl7k753+05CJNKnjbwh4975amoPJ+TEjHNQ==} + engines: {node: '>= 10'} + dependencies: + cosmiconfig: 7.0.0 + import-cwd: 3.0.0 + dev: true + + /prelude-ls/1.1.2: + resolution: {integrity: sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=} + engines: {node: '>= 0.8.0'} + dev: true + + /prelude-ls/1.2.1: + resolution: {integrity: sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=} + engines: {node: '>= 0.8.0'} + dev: true + + /pretty-format/26.6.2: + resolution: {integrity: sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==} + engines: {node: '>= 10'} + dependencies: + '@jest/types': 26.6.2 + ansi-regex: 5.0.0 + ansi-styles: 4.3.0 + react-is: 17.0.2 + dev: true + + /pretty-format/27.0.2: + resolution: {integrity: sha512-mXKbbBPnYTG7Yra9qFBtqj+IXcsvxsvOBco3QHxtxTl+hHKq6QdzMZ+q0CtL4ORHZgwGImRr2XZUX2EWzORxig==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/types': 27.0.2 + ansi-regex: 5.0.0 + ansi-styles: 5.2.0 + react-is: 17.0.2 + dev: true + + /progress/2.0.3: + resolution: {integrity: sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=} + engines: {node: '>=0.4.0'} + dev: true + + /prompts/2.4.1: + resolution: {integrity: sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==} + engines: {node: '>= 6'} + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + dev: true + + /prop-types/15.7.2: + resolution: {integrity: sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: true + + /proto-props/2.0.0: + resolution: {integrity: sha1-isbm3sZYVFgVxiOjvIFYDe2poYE=} + engines: {node: '>=4'} + dev: true + + /proxy-compare/2.0.0: + resolution: {integrity: sha512-xhJF1+vPCnu93QYva3Weii5ho1AeX5dsR/P5O7pzy9QLxeOgMSQNC8zDo0bGg9vtn61Pu5Qn+5w/Y8OSU5k+8g==} + dev: true + + /psl/1.8.0: + resolution: {integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==} + dev: true + + /pump/3.0.0: + resolution: {integrity: sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + + /punycode/2.1.1: + resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} + engines: {node: '>=6'} + dev: true + + /queue-microtask/1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /react-devtools-core/4.13.4: + resolution: {integrity: sha512-su/lI4LdiK5P1YgZpbm8K1iNQX6s0Lq5fJLa1ZcnpewvrqP5V14svHrbPmrU5ptMUSiwjZ3/CBmc/JCZOuuiHQ==} + dependencies: + shell-quote: 1.7.2 + ws: 7.4.5 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: true + + /react-is/16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: true + + /react-is/17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + dev: true + + /react-reconciler/0.24.0_react@17.0.2: + resolution: {integrity: sha512-gAGnwWkf+NOTig9oOowqid9O0HjTDC+XVGBCAmJYYJ2A2cN/O4gDdIuuUQjv8A4v6GDwVfJkagpBBLW5OW9HSw==} + engines: {node: '>=0.10.0'} + peerDependencies: + react: ^16.0.0 + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + prop-types: 15.7.2 + react: 17.0.2 + scheduler: 0.18.0 + dev: true + + /react/17.0.2: + resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + dev: true + + /read-pkg-up/3.0.0: + resolution: {integrity: sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=} + engines: {node: '>=4'} + dependencies: + find-up: 2.1.0 + read-pkg: 3.0.0 + dev: true + + /read-pkg-up/7.0.1: + resolution: {integrity: sha1-86YTV1hFlzOuK5VjgFbhhU5+9Qc=} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + dev: true + + /read-pkg/3.0.0: + resolution: {integrity: sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=} + engines: {node: '>=4'} + dependencies: + load-json-file: 4.0.0 + normalize-package-data: 2.5.0 + path-type: 3.0.0 + dev: true + + /read-pkg/5.2.0: + resolution: {integrity: sha1-e/KVQ4yloz5WzTDgU7NO5yUMk8w=} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.0 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + dev: true + + /readdirp/3.5.0: + resolution: {integrity: sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.0 + dev: true + + /regexp-tree/0.1.23: + resolution: {integrity: sha1-iozhzF6XGs72IhOn7Nsfbhih8bI=} + hasBin: true + dev: true + + /regexp.prototype.flags/1.3.1: + resolution: {integrity: sha1-fvNSro0VnnWMDq3Kb4/LTu8HviY=} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + dev: true + + /regexpp/3.1.0: + resolution: {integrity: sha1-IG0K0KVkjP+9uK5GQ489xRyfeOI=} + engines: {node: '>=8'} + dev: true + + /require-directory/2.1.1: + resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} + engines: {node: '>=0.10.0'} + dev: true + + /require-from-string/2.0.2: + resolution: {integrity: sha1-iaf92TgmEmcxjq/hT5wy5ZjDaQk=} + engines: {node: '>=0.10.0'} + dev: true + + /reserved-words/0.1.2: + resolution: {integrity: sha1-AKCUD5jNUBrqqsMWQR2a3FKzGrE=} + dev: true + + /resolve-cwd/3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + dependencies: + resolve-from: 5.0.0 + dev: true + + /resolve-from/4.0.0: + resolution: {integrity: sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=} + engines: {node: '>=4'} + dev: true + + /resolve-from/5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + + /resolve/1.20.0: + resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==} + dependencies: + is-core-module: 2.4.0 + path-parse: 1.0.7 + dev: true + + /resolve/2.0.0-next.3: + resolution: {integrity: sha1-1BAWKT1KhYajnKXZtfFcvqH1XkY=} + dependencies: + is-core-module: 2.4.0 + path-parse: 1.0.7 + dev: true + + /restore-cursor/3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.3 + dev: true + + /reusify/1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rimraf/3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.1.7 + dev: true + + /rollup/2.50.5: + resolution: {integrity: sha512-Ztz4NurU2LbS3Jn5rlhnYv35z6pkjBUmYKr94fOBIKINKRO6kug9NTFHArT7jqwMP2kqEZ39jJuEtkk91NBltQ==} + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /run-parallel/1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /rxjs/6.6.7: + resolution: {integrity: sha1-kKwBisq/SRv2UEQjXVhjxNq4BMk=} + engines: {npm: '>=2.0.0'} + dependencies: + tslib: 1.14.1 + dev: true + + /safe-buffer/5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + dev: true + + /safe-regex/2.1.1: + resolution: {integrity: sha1-9xKPANBW4v5cEegaEyTdl0qtztI=} + dependencies: + regexp-tree: 0.1.23 + dev: true + + /safer-buffer/2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true + + /saxes/5.0.1: + resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} + engines: {node: '>=10'} + dependencies: + xmlchars: 2.2.0 + dev: true + + /scheduler/0.18.0: + resolution: {integrity: sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + dev: true + + /semver-compare/1.0.0: + resolution: {integrity: sha1-De4hahyUGrN+nvsXiPavxf9VN/w=} + dev: true + + /semver-regex/3.1.2: + resolution: {integrity: sha1-NLTA02Hu8mLgcZnb7zFtDyqxGAc=} + engines: {node: '>=8'} + dev: true + + /semver/5.7.1: + resolution: {integrity: sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=} + hasBin: true + dev: true + + /semver/6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + hasBin: true + dev: true + + /semver/7.3.5: + resolution: {integrity: sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /shebang-command/2.0.0: + resolution: {integrity: sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex/3.0.0: + resolution: {integrity: sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=} + engines: {node: '>=8'} + dev: true + + /shell-quote/1.7.2: + resolution: {integrity: sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==} + dev: true + + /side-channel/1.0.4: + resolution: {integrity: sha1-785cj9wQTudRslxY1CkAEfpeos8=} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.1 + object-inspect: 1.10.3 + dev: true + + /signal-exit/3.0.3: + resolution: {integrity: sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==} + dev: true + + /sisteransi/1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + dev: true + + /slash/3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /slice-ansi/3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi/4.0.0: + resolution: {integrity: sha1-UA6N0P1VsFgVCGJVsxla3ypF/ms=} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /source-map-support/0.5.19: + resolution: {integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==} + dependencies: + buffer-from: 1.1.1 + source-map: 0.6.1 + dev: true + + /source-map/0.5.7: + resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=} + engines: {node: '>=0.10.0'} + dev: true + + /source-map/0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map/0.7.3: + resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} + engines: {node: '>= 8'} + dev: true + + /spdx-correct/3.1.1: + resolution: {integrity: sha1-3s6BrJweZxPl99G28X1Gj6U9iak=} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.9 + dev: true + + /spdx-exceptions/2.3.0: + resolution: {integrity: sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0=} + dev: true + + /spdx-expression-parse/3.0.1: + resolution: {integrity: sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.9 + dev: true + + /spdx-license-ids/3.0.9: + resolution: {integrity: sha1-illRNd75WSvaaXCUdPHL7qfCRn8=} + dev: true + + /sprintf-js/1.0.3: + resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} + dev: true + + /stack-utils/2.0.3: + resolution: {integrity: sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==} + engines: {node: '>=10'} + dependencies: + escape-string-regexp: 2.0.0 + dev: true + + /string-argv/0.3.1: + resolution: {integrity: sha1-leL77AQnrhkYSTX4FtdKqkxcGdo=} + engines: {node: '>=0.6.19'} + dev: true + + /string-length/3.1.0: + resolution: {integrity: sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==} + engines: {node: '>=8'} + dependencies: + astral-regex: 1.0.0 + strip-ansi: 5.2.0 + dev: true + + /string-length/4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} + dependencies: + char-regex: 1.0.2 + strip-ansi: 6.0.0 + dev: true + + /string-width/4.2.2: + resolution: {integrity: sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.0 + dev: true + + /string.prototype.matchall/4.0.5: + resolution: {integrity: sha1-WTcGROHbfkwMBFJ3aQz3sBIDxNo=} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.18.3 + get-intrinsic: 1.1.1 + has-symbols: 1.0.2 + internal-slot: 1.0.3 + regexp.prototype.flags: 1.3.1 + side-channel: 1.0.4 + dev: true + + /string.prototype.trimend/1.0.4: + resolution: {integrity: sha1-51rpDClCxjUEaGwYsoe0oLGkX4A=} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + dev: true + + /string.prototype.trimstart/1.0.4: + resolution: {integrity: sha1-s2OZr0qymZtMnGSL16P7K7Jv7u0=} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + dev: true + + /stringify-object/3.3.0: + resolution: {integrity: sha1-cDBlrvyhkwDTzoivT1s5VtdVZik=} + engines: {node: '>=4'} + dependencies: + get-own-enumerable-property-symbols: 3.0.2 + is-obj: 1.0.1 + is-regexp: 1.0.0 + dev: true + + /strip-ansi/5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} + engines: {node: '>=6'} + dependencies: + ansi-regex: 4.1.0 + dev: true + + /strip-ansi/6.0.0: + resolution: {integrity: sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.0 + dev: true + + /strip-bom/3.0.0: + resolution: {integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=} + engines: {node: '>=4'} + dev: true + + /strip-bom/4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + dev: true + + /strip-final-newline/2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + + /strip-json-comments/3.1.1: + resolution: {integrity: sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=} + engines: {node: '>=8'} + dev: true + + /sucrase/3.18.1: + resolution: {integrity: sha512-TRyO38wwOPhLLlM8QLOG3TgMj0FKk+arlTrS9pRAanF8cAcHvgRPKIYWGO25mPSp/Rj87zMMTjFfkqIZGI6ZdA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + commander: 4.1.1 + glob: 7.1.6 + lines-and-columns: 1.1.6 + mz: 2.7.0 + pirates: 4.0.1 + ts-interface-checker: 0.1.13 + dev: true + + /supports-color/5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color/7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-color/8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-hyperlinks/2.2.0: + resolution: {integrity: sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + dev: true + + /symbol-tree/3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + dev: true + + /table/6.7.1: + resolution: {integrity: sha1-7gVZK3FDgxqMlPPO5qrkwczvM+I=} + engines: {node: '>=10.0.0'} + dependencies: + ajv: 8.5.0 + lodash.clonedeep: 4.5.0 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.2 + strip-ansi: 6.0.0 + dev: true + + /terminal-link/2.1.1: + resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} + engines: {node: '>=8'} + dependencies: + ansi-escapes: 4.3.2 + supports-hyperlinks: 2.2.0 + dev: true + + /test-exclude/6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.1.7 + minimatch: 3.0.4 + dev: true + + /text-table/0.2.0: + resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=} + dev: true + + /thenify-all/1.6.0: + resolution: {integrity: sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: true + + /thenify/3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: true + + /throat/6.0.1: + resolution: {integrity: sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==} + dev: true + + /through/2.3.8: + resolution: {integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=} + dev: true + + /tmpl/1.0.4: + resolution: {integrity: sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=} + dev: true + + /to-fast-properties/2.0.0: + resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=} + engines: {node: '>=4'} + dev: true + + /to-regex-range/5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /tough-cookie/4.0.0: + resolution: {integrity: sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==} + engines: {node: '>=6'} + dependencies: + psl: 1.8.0 + punycode: 2.1.1 + universalify: 0.1.2 + dev: true + + /tr46/2.1.0: + resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==} + engines: {node: '>=8'} + dependencies: + punycode: 2.1.1 + dev: true + + /tree-kill/1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + dev: true + + /ts-interface-checker/0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + dev: true + + /tsconfig-paths/3.9.0: + resolution: {integrity: sha1-CYVHpsREiAfo/Ljq4IEGTumjyQs=} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.1 + minimist: 1.2.5 + strip-bom: 3.0.0 + dev: true + + /tslib/1.14.1: + resolution: {integrity: sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=} + dev: true + + /tsup/4.11.1_typescript@4.3.2: + resolution: {integrity: sha512-/AU2QhhOFjXEPkmIEljLAtPcEyL6KQLFDlM6gWxDZiaZdQAfW9Tyk1/WqV+tf6eoBYjXW6KMnQX7vwMczL06kA==} + hasBin: true + peerDependencies: + typescript: ^4.2.3 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + cac: 6.7.3 + chalk: 4.1.1 + chokidar: 3.5.1 + debug: 4.3.1 + esbuild: 0.11.23 + execa: 5.0.1 + globby: 11.0.3 + joycon: 3.0.1 + postcss-load-config: 3.0.1 + resolve-from: 5.0.0 + rollup: 2.50.5 + sucrase: 3.18.1 + tree-kill: 1.2.2 + typescript: 4.3.2 + transitivePeerDependencies: + - supports-color + dev: true + + /tsutils/3.21.0_typescript@4.3.2: + resolution: {integrity: sha1-tIcX05TOpsHglpg+7Vjp1hcVtiM=} + engines: {node: '>= 6'} + peerDependencies: + 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' + dependencies: + tslib: 1.14.1 + typescript: 4.3.2 + dev: true + + /type-check/0.3.2: + resolution: {integrity: sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.1.2 + dev: true + + /type-check/0.4.0: + resolution: {integrity: sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-detect/4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true + + /type-fest/0.12.0: + resolution: {integrity: sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==} + engines: {node: '>=10'} + dev: true + + /type-fest/0.20.2: + resolution: {integrity: sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=} + engines: {node: '>=10'} + dev: true + + /type-fest/0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true + + /type-fest/0.6.0: + resolution: {integrity: sha1-jSojcNPfiG61yQraHFv2GIrPg4s=} + engines: {node: '>=8'} + dev: true + + /type-fest/0.8.1: + resolution: {integrity: sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=} + engines: {node: '>=8'} + dev: true + + /typedarray-to-buffer/3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + dependencies: + is-typedarray: 1.0.0 + dev: true + + /typescript/4.3.2: + resolution: {integrity: sha1-OZqxiqxFgC1vJJjeUFT8u+cWqAU=} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + + /unbox-primitive/1.0.1: + resolution: {integrity: sha1-CF4hViXsMWJXTciFmr7nilmxRHE=} + dependencies: + function-bind: 1.1.1 + has-bigints: 1.0.1 + has-symbols: 1.0.2 + which-boxed-primitive: 1.0.2 + dev: true + + /universalify/0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + dev: true + + /uri-js/4.4.1: + resolution: {integrity: sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=} + dependencies: + punycode: 2.1.1 + dev: true + + /v8-compile-cache/2.3.0: + resolution: {integrity: sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4=} + dev: true + + /v8-to-istanbul/7.1.2: + resolution: {integrity: sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==} + engines: {node: '>=10.10.0'} + dependencies: + '@types/istanbul-lib-coverage': 2.0.3 + convert-source-map: 1.7.0 + source-map: 0.7.3 + dev: true + + /validate-npm-package-license/3.0.4: + resolution: {integrity: sha1-/JH2uce6FchX9MssXe/uw51PQQo=} + dependencies: + spdx-correct: 3.1.1 + spdx-expression-parse: 3.0.1 + dev: true + + /valtio/1.0.5_react@17.0.2: + resolution: {integrity: sha512-SysrWAVeV0OZCVQwBsOil5/kvACY4HshFMw9hT+TzGtGP3WEbMpFqAlagZ0ikv4E0rPHcBKCcvDTj5VBeyquaw==} + peerDependencies: + '@babel/helper-module-imports': '>=7.12' + '@babel/types': '>=7.13' + babel-plugin-macros: '>=3.0' + react: '>=16.8' + peerDependenciesMeta: + '@babel/helper-module-imports': + optional: true + '@babel/types': + optional: true + babel-plugin-macros: + optional: true + react: + optional: true + dependencies: + proxy-compare: 2.0.0 + react: 17.0.2 + dev: true + + /w3c-hr-time/1.0.2: + resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} + dependencies: + browser-process-hrtime: 1.0.0 + dev: true + + /w3c-xmlserializer/2.0.0: + resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==} + engines: {node: '>=10'} + dependencies: + xml-name-validator: 3.0.0 + dev: true + + /walker/1.0.7: + resolution: {integrity: sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=} + dependencies: + makeerror: 1.0.11 + dev: true + + /webidl-conversions/5.0.0: + resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} + engines: {node: '>=8'} + dev: true + + /webidl-conversions/6.1.0: + resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==} + engines: {node: '>=10.4'} + dev: true + + /whatwg-encoding/1.0.5: + resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} + dependencies: + iconv-lite: 0.4.24 + dev: true + + /whatwg-mimetype/2.3.0: + resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} + dev: true + + /whatwg-url/8.5.0: + resolution: {integrity: sha512-fy+R77xWv0AiqfLl4nuGUlQ3/6b5uNfQ4WAbGQVMYshCTCCPK9psC1nWh3XHuxGVCtlcDDQPQW1csmmIQo+fwg==} + engines: {node: '>=10'} + dependencies: + lodash: 4.17.21 + tr46: 2.1.0 + webidl-conversions: 6.1.0 + dev: true + + /which-boxed-primitive/1.0.2: + resolution: {integrity: sha1-E3V7yJsgmwSf5dhkMOIc9AqJqOY=} + dependencies: + is-bigint: 1.0.2 + is-boolean-object: 1.1.1 + is-number-object: 1.0.5 + is-string: 1.0.6 + is-symbol: 1.0.4 + dev: true + + /which-pm-runs/1.0.0: + resolution: {integrity: sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=} + dev: true + + /which/2.0.2: + resolution: {integrity: sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /widest-line/3.1.0: + resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} + engines: {node: '>=8'} + dependencies: + string-width: 4.2.2 + dev: true + + /word-wrap/1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + engines: {node: '>=0.10.0'} + dev: true + + /wrap-ansi/6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.2 + strip-ansi: 6.0.0 + dev: true + + /wrap-ansi/7.0.0: + resolution: {integrity: sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.2 + strip-ansi: 6.0.0 + dev: true + + /wrappy/1.0.2: + resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} + dev: true + + /write-file-atomic/3.0.3: + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + dependencies: + imurmurhash: 0.1.4 + is-typedarray: 1.0.0 + signal-exit: 3.0.3 + typedarray-to-buffer: 3.1.5 + dev: true + + /ws/7.4.5: + resolution: {integrity: sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + + /ws/7.4.6: + resolution: {integrity: sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + + /xml-name-validator/3.0.0: + resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==} + dev: true + + /xmlchars/2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + dev: true + + /y18n/5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true + + /yallist/4.0.0: + resolution: {integrity: sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=} + dev: true + + /yaml/1.10.2: + resolution: {integrity: sha1-IwHF/78StGfejaIzOkWeKeeSDks=} + engines: {node: '>= 6'} + dev: true + + /yargs-parser/20.2.7: + resolution: {integrity: sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==} + engines: {node: '>=10'} + dev: true + + /yargs/16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.2 + y18n: 5.0.8 + yargs-parser: 20.2.7 + dev: true + + /yocto-queue/0.1.0: + resolution: {integrity: sha1-ApTrPe4FAo0x7hpfosVWpqrxChs=} + engines: {node: '>=10'} + dev: true + + /yoga-layout-prebuilt/1.10.0: + resolution: {integrity: sha512-YnOmtSbv4MTf7RGJMK0FvZ+KD8OEe/J5BNnR0GHhD8J/XcG/Qvxgszm0Un6FTHWW4uHlTgP0IztiXQnGyIR45g==} + engines: {node: '>=8'} + dependencies: + '@types/yoga-layout': 1.9.2 diff --git a/src/components/CreateApp.tsx b/src/components/CreateApp.tsx new file mode 100644 index 0000000..2bb270e --- /dev/null +++ b/src/components/CreateApp.tsx @@ -0,0 +1,17 @@ +import { render } from 'ink'; +import React from 'react'; +import { TaskList } from '../types'; +import TaskListApp from './TaskListApp'; + +export function createApp(taskList: TaskList) { + const inkApp = render(); + + return { + remove() { + inkApp.rerender(null); + inkApp.unmount(); + inkApp.clear(); + inkApp.cleanup(); + }, + }; +} diff --git a/src/components/TaskListApp.tsx b/src/components/TaskListApp.tsx new file mode 100644 index 0000000..db8d6b1 --- /dev/null +++ b/src/components/TaskListApp.tsx @@ -0,0 +1,28 @@ +import React, { FC } from 'react'; +import { TaskList } from 'ink-task-list'; +import { useSnapshot } from 'valtio'; +import type { TaskObject } from '../types'; +import TaskListItem from './TaskListItem'; + +const TaskListApp: FC<{ + taskList: TaskObject[]; +}> = ({ + taskList, +}) => { + const state = useSnapshot(taskList); + + return ( + + { + state.map((task, index) => ( + + )) + } + + ); +}; + +export default TaskListApp; diff --git a/src/components/TaskListItem.tsx b/src/components/TaskListItem.tsx new file mode 100644 index 0000000..d3fe8a1 --- /dev/null +++ b/src/components/TaskListItem.tsx @@ -0,0 +1,34 @@ +import React, { FC } from 'react'; +import { Task } from 'ink-task-list'; +import type { TaskObject } from '../types'; + +const TaskListItem: FC<{ + task: TaskObject; +}> = ({ + task, +}) => { + const childTasks = ( + task.children.length > 0 + ? task.children.map((childTask, index) => ( + + )) + : undefined + ); + + return ( + 0} + > + {childTasks} + + ); +}; + +export default TaskListItem; diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..648ed0f --- /dev/null +++ b/src/index.ts @@ -0,0 +1,163 @@ +import { proxy } from 'valtio'; +import pMap, { Options } from 'p-map'; +import { arrayAdd, arrayRemove } from './utils'; +import { TaskList, TaskObject, Awaited } from './types'; +import { createApp } from './components/CreateApp'; + +const createTaskInnerApi = (taskState: TaskObject) => { + const api = { + task: createTaskFunction(taskState.children), + setTitle(title: string) { + taskState.title = title; + }, + setStatus(status: string) { + taskState.status = status; + }, + setOutput(output: string | { message: string }) { + taskState.output = ( + typeof output === 'string' + ? output + : ( + 'message' in output + ? output.message + : '' + ) + ); + }, + setWarning(warning: Error | string) { + taskState.state = 'warning'; + api.setOutput(warning); + }, + setError(error: Error | string) { + taskState.state = 'error'; + api.setOutput(error); + }, + }; + return api; +}; + +type TaskFunction = (taskHelpers: ReturnType) => Promise; + +type TaskAPI = { + run: () => Promise>>; + clear: () => void; +}; +type TaskResults< + T extends TaskFunction, + Tasks extends TaskAPI[] +> = { + [key in keyof Tasks]: ( + Tasks[key] extends TaskAPI + ? Awaited> + : Tasks[key] + ); +}; + +let app: ReturnType; + +function registerTask( + taskList: TaskList, + taskTitle: string, + taskFunction: T, +): TaskAPI { + if (!app) { + app = createApp(taskList); + taskList.isRoot = true; + } + + const taskState = arrayAdd(taskList, { + title: taskTitle, + state: 'pending', + children: [], + }); + + return { + async run() { + const api = createTaskInnerApi(taskState); + + taskState.state = 'loading'; + + let taskResult; + try { + taskResult = await taskFunction(api); + } catch (error) { + api.setError(error); + throw error; + } + + if (taskState.state === 'loading') { + taskState.state = 'success'; + } + + return taskResult; + }, + clear() { + arrayRemove(taskList, taskState); + + if (taskList.isRoot && taskList.length === 0) { + app.remove(); + app = null; + } + }, + }; +} + +function createTaskFunction( + taskList: TaskList, +) { + async function task( + title: string, + taskFunction: T, + ) { + const taskState = registerTask(taskList, title, taskFunction); + const result = await taskState.run(); + + return Object.assign( + taskState, + { result }, + ); + } + + const createTask = ( + title: string, + taskFunction: T, + ) => registerTask( + taskList, + title, + taskFunction, + ); + + task.group = async < + T extends TaskFunction, + Tasks extends TaskAPI[] + >( + createTasks: (taskCreator: typeof createTask) => readonly [...Tasks], + options?: Options, + ) => { + const tasksQueue = createTasks(createTask); + const results = (await pMap( + tasksQueue, + async taskApi => await taskApi.run(), + { + concurrency: 1, + ...options, + }, + )) as unknown as TaskResults; + + return { + results, + clear() { + for (const taskApi of tasksQueue) { + taskApi.clear(); + } + }, + }; + }; + + return task; +} + +const rootTaskList = proxy([]); +const task = createTaskFunction(rootTaskList); + +export = task; diff --git a/src/types.ts b/src/types.ts new file mode 100644 index 0000000..6a7b8e7 --- /dev/null +++ b/src/types.ts @@ -0,0 +1,22 @@ +export type TaskObject = { + title: string; + state: 'pending' | 'loading' | 'error' | 'warning' | 'success'; + children: TaskObject[]; + status?: string; + output?: string; +} + +export type TaskList = TaskObject[] & { + isRoot?: boolean; +} + +// From: https://github.com/microsoft/TypeScript/blob/4f5b3299fee9a54b692aba9df7a9e894bd86e81d/src/lib/es2015.promise.d.ts#L1 +export type Awaited = ( + T extends undefined + ? T + : ( + T extends PromiseLike + ? U + : T + ) +); diff --git a/src/utils.ts b/src/utils.ts new file mode 100644 index 0000000..39285fd --- /dev/null +++ b/src/utils.ts @@ -0,0 +1,17 @@ +export function arrayAdd( + array: T[], + element: T, +) { + const index = array.push(element) - 1; + return array[index]; +} + +export function arrayRemove( + array: T[], + element: T, +) { + const index = array.indexOf(element); + if (index > -1) { + array.splice(index, 1); + } +} diff --git a/tests/tasuku.spec.ts b/tests/tasuku.spec.ts new file mode 100644 index 0000000..b00cbb2 --- /dev/null +++ b/tests/tasuku.spec.ts @@ -0,0 +1,107 @@ +import task from '../src/index'; + +const expectType = (value: T) => {}; // eslint-disable-line @typescript-eslint/no-empty-function +const sleep = (ms: number): Promise => new Promise((resolve) => { + setTimeout(resolve, ms); +}); + +test('task - return number', async () => { + const { result } = await task('Some task', async () => 1 + 1); + expectType(result); + expect(result).toBe(2); +}); + +test('task - return string', async () => { + const { result } = await task('Some task', async () => 'some string'); + expectType(result); + expect(result).toBe('some string'); +}); + +test('task return Promise', async () => { + const { result } = await task( + 'Some task', + async () => await new Promise((resolve) => { + resolve(123); + }), + ); + expectType(result); + expect(result).toBe(123); +}); + +test('nested tasks', async () => { + const someTask = await task('Some task', async ({ task }) => { + const nestedTask = await task('nested task', async () => 'nested works'); + expectType(nestedTask.result); + expect(nestedTask.result).toBe('nested works'); + + return 1; + }); + + expectType(someTask.result); + expect(someTask.result).toBe(1); +}); + +test('group tasks', async () => { + const groupTasks = await task.group(task => [ + task('number', async () => 123), + task('string', async () => 'hello'), + task('boolean', async () => false), + ]); + + expectType<[ + number, + string, + boolean, + ]>(groupTasks.results); + expect(groupTasks.results).toEqual([ + 123, + 'hello', + false, + ]); +}); + +test('group tasks - concurrency - series', async () => { + const startTime = Date.now(); + const groupTasks = await task.group(task => [ + task('one', async () => { + await sleep(100); + return 1; + }), + task('two', async () => { + await sleep(100); + return 2; + }), + task('three', async () => { + await sleep(100); + return 3; + }), + ]); + + const elapsed = Date.now() - startTime; + + expect(elapsed > 300 && elapsed < 400).toBe(true); + expect(groupTasks.results).toEqual([1, 2, 3]); +}); + +test('group tasks - concurrency - parallel', async () => { + const startTime = Date.now(); + const groupTasks = await task.group(task => [ + task('one', async () => { + await sleep(100); + return 1; + }), + task('two', async () => { + await sleep(100); + return 2; + }), + task('three', async () => { + await sleep(100); + return 3; + }), + ], { concurrency: Number.POSITIVE_INFINITY }); + + const elapsed = Date.now() - startTime; + + expect(elapsed > 100 && elapsed < 200).toBe(true); + expect(groupTasks.results).toEqual([1, 2, 3]); +}); diff --git a/tests/tsconfig.json b/tests/tsconfig.json new file mode 100644 index 0000000..6244508 --- /dev/null +++ b/tests/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "..", + "include": ["."] +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..e048322 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,17 @@ +{ + "compilerOptions": { + "moduleResolution": "node", + "isolatedModules": true, + "esModuleInterop": true, + "jsx": "react", + "declaration": true, + "outDir": "dist", + + // Node 12 + "module": "commonjs", + "target": "ES2019" + }, + "include": [ + "src" + ] +} \ No newline at end of file