├── .prettierrc ├── .gitignore ├── .vscode └── settings.json ├── renovate.json ├── example ├── worker.ts ├── iframe.html ├── index.html └── main.ts ├── playwright.config.ts ├── tsconfig.json ├── test └── index.test.ts ├── package.json ├── LICENSE ├── README.md ├── .github └── workflows │ └── ci.yml ├── src └── index.ts └── pnpm-lock.yaml /.prettierrc: -------------------------------------------------------------------------------- 1 | "@egoist/prettier-config" 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | *.log -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.formatOnSave": true 3 | } 4 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "config:base" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /example/worker.ts: -------------------------------------------------------------------------------- 1 | import { handleActions } from "../src" 2 | 3 | export const actions = { 4 | sum(a: number, b: number) { 5 | return a + b 6 | }, 7 | async errorFunction() { 8 | throw new Error("something is wrong") 9 | }, 10 | } 11 | 12 | export type Actions = typeof actions 13 | 14 | handleActions(actions) 15 | -------------------------------------------------------------------------------- /example/iframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /playwright.config.ts: -------------------------------------------------------------------------------- 1 | import type { PlaywrightTestConfig } from "@playwright/test" 2 | const config: PlaywrightTestConfig = { 3 | webServer: { 4 | command: "npm run example", 5 | port: 3001, 6 | timeout: 120 * 1000, 7 | reuseExistingServer: !process.env.CI, 8 | }, 9 | use: { 10 | baseURL: "http://localhost:3001/", 11 | headless: true, 12 | }, 13 | } 14 | export default config 15 | -------------------------------------------------------------------------------- /example/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2020", 4 | "module": "esnext", 5 | "strict": true, 6 | "lib": ["WebWorker", "ES2021", "DOM"], 7 | "esModuleInterop": true, 8 | "moduleResolution": "node", 9 | "skipLibCheck": true, 10 | "noUnusedLocals": true, 11 | "noImplicitAny": true, 12 | "allowJs": true, 13 | "noEmit": true, 14 | "outDir": "dist", 15 | "resolveJsonModule": true 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /test/index.test.ts: -------------------------------------------------------------------------------- 1 | import { expect, test } from "@playwright/test" 2 | 3 | test("worker", async ({ page }) => { 4 | await page.goto("http://localhost:3001") 5 | await Promise.all([ 6 | page.waitForSelector("#iframe-result"), 7 | page.waitForSelector("#worker-result"), 8 | ]) 9 | const workerResult = await page.$("#worker-result") 10 | const iframeResult = await page.$("#iframe-result") 11 | const errorResult = await page.$("#error-result") 12 | expect(await workerResult?.textContent()).toBe("3") 13 | expect(await iframeResult?.textContent()).toBe("5") 14 | expect(await errorResult?.textContent()).toBe("something is wrong") 15 | }) 16 | -------------------------------------------------------------------------------- /example/main.ts: -------------------------------------------------------------------------------- 1 | import { createWorker } from "../src/index" 2 | import { Actions } from "./worker" 3 | 4 | const worker = createWorker( 5 | () => 6 | new Worker(new URL("worker.ts", import.meta.url), { 7 | type: "module", 8 | }), 9 | ) 10 | 11 | worker.run("sum", 1, 2).then((result) => { 12 | const div = document.createElement("div") 13 | div.id = "worker-result" 14 | div.textContent = `${result}` 15 | document.body.append(div) 16 | }) 17 | 18 | const iframe = createWorker(() => { 19 | return document.querySelector("iframe")! 20 | }) 21 | 22 | iframe.run("sum", 2, 3).then((result) => { 23 | const div = document.createElement("div") 24 | div.id = "iframe-result" 25 | div.textContent = `${result}` 26 | document.body.append(div) 27 | }) 28 | 29 | worker.run("errorFunction").catch((error) => { 30 | console.error(error) 31 | const div = document.createElement("div") 32 | div.id = "error-result" 33 | div.textContent = `${error.message}` 34 | document.body.append(div) 35 | }) 36 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "typed-worker", 3 | "version": "0.0.0", 4 | "description": "Type-safe and Promisified API for Web Worker & Iframe", 5 | "publishConfig": { 6 | "access": "public" 7 | }, 8 | "files": [ 9 | "dist" 10 | ], 11 | "main": "./dist/index.js", 12 | "module": "./dist/index.mjs", 13 | "exports": { 14 | "require": "./dist/index.js", 15 | "import": "./dist/index.mjs" 16 | }, 17 | "types": "./dist/index.d.ts", 18 | "scripts": { 19 | "build-fast": "tsup src/index.ts --format cjs,esm", 20 | "build": "pnpm run build-fast --dts-resolve", 21 | "test": "playwright test", 22 | "prepublishOnly": "pnpm run build", 23 | "example": "vite example --port 3001", 24 | "playwright-install": "playwright install chromium --with-deps" 25 | }, 26 | "license": "MIT", 27 | "devDependencies": { 28 | "@egoist/prettier-config": "1.0.0", 29 | "@playwright/test": "^1.25.0", 30 | "@types/node": "^18.7.21", 31 | "prettier": "2.5.1", 32 | "tsup": "6.2.2", 33 | "typescript": "4.7.4", 34 | "vite": "^3.0.7" 35 | }, 36 | "dependencies": { 37 | "mitt": "^3.0.0" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright © 2021 EGOIST (https://github.com/sponsors/egoist) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | **💛 You can help the author become a full-time open-source maintainer by [sponsoring him on GitHub](https://github.com/sponsors/egoist).** 2 | 3 | --- 4 | 5 | # typed-worker 6 | 7 | [![npm version](https://badgen.net/npm/v/typed-worker)](https://npm.im/typed-worker) [![npm downloads](https://badgen.net/npm/dm/typed-worker)](https://npm.im/typed-worker) [![paka type docs](https://badgen.net/badge/typedoc/typed-worker/pink)](https://paka.dev/npm/typed-worker) 8 | 9 | ## Install 10 | 11 | ```bash 12 | npm i typed-worker 13 | ``` 14 | 15 | ## Usage 16 | 17 | Create a `worker.ts`: 18 | 19 | ```ts 20 | import { handleActions } from "typed-worker" 21 | 22 | export const actions = { 23 | async sum(a: number, b: number) { 24 | await someHeavyOperation() 25 | return a + b 26 | }, 27 | } 28 | 29 | export type Actions = typeof actions 30 | 31 | handleActions(actions) 32 | ``` 33 | 34 | In your `app.ts` where you want to use the worker: 35 | 36 | ```ts 37 | import { createWorker } from "typed-worker" 38 | import { type Actions } from "./worker" 39 | 40 | const worker = createWorker( 41 | // Require a bundler like Vite, webpack etc 42 | () => 43 | new Worker(new URL("./worker.ts", import.meta.url), { 44 | type: "module", 45 | }), 46 | ) 47 | 48 | const result = await worker.run("sum", 1, 2) 49 | 50 | expect(result).toBe(3) 51 | ``` 52 | 53 | To use the `worker.ts` in an iframe instead of a web worker, you only need to return the `iframe` element in `createWorker` instead: 54 | 55 | ```ts 56 | const iframe = createWorker( 57 | () => document.querySelector("#your-iframe-element")!, 58 | ) 59 | 60 | const result = await iframe.run("sum", 1, 2) 61 | ``` 62 | 63 | ### Error handling 64 | 65 | Errors thrown in the worker will be re-thrown when you call the `.run` method: 66 | 67 | ```ts 68 | worker.run("some-problematic-action").catch((err) => { 69 | // err is the error thrown in the worker 70 | }) 71 | ``` 72 | 73 | ## Sponsors 74 | 75 | [![sponsors](https://sponsors-images.egoist.dev/sponsors.svg)](https://github.com/sponsors/egoist) 76 | 77 | ## License 78 | 79 | MIT © [EGOIST](https://github.com/sponsors/egoist) 80 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | push: 5 | branches: [main] 6 | pull_request: 7 | branches: [main] 8 | 9 | jobs: 10 | test: 11 | if: "!contains(github.event.head_commit.message, 'ci skip')" 12 | 13 | strategy: 14 | matrix: 15 | os: [ubuntu-latest] 16 | node-version: [16.x] 17 | 18 | runs-on: ${{ matrix.os }} 19 | 20 | # Steps represent a sequence of tasks that will be executed as part of the job 21 | steps: 22 | # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it 23 | - uses: actions/checkout@v3 24 | 25 | - uses: actions/setup-node@v3 26 | with: 27 | node-version: ${{ matrix.node-version }} 28 | 29 | - name: Cache ~/.pnpm-store 30 | uses: actions/cache@v2 31 | env: 32 | cache-name: cache-pnpm-store 33 | with: 34 | path: ~/.pnpm-store 35 | key: ${{ runner.os }}-${{ matrix.node-version }}-test-${{ env.cache-name }}-${{ hashFiles('**/pnpm-lock.yaml') }} 36 | restore-keys: | 37 | ${{ runner.os }}-${{ matrix.node-version }}-test-${{ env.cache-name }}- 38 | ${{ runner.os }}-${{ matrix.node-version }}-test- 39 | ${{ runner.os }}- 40 | 41 | - name: Install pnpm 42 | run: npm i -g pnpm 43 | 44 | - name: Install deps 45 | run: pnpm i 46 | 47 | - name: Playwright deps 48 | run: pnpm playwright-install 49 | 50 | # Runs a set of commands using the runners shell 51 | - name: Build and Test 52 | run: pnpm test 53 | 54 | release: 55 | runs-on: ubuntu-latest 56 | needs: ['test'] 57 | if: "!contains(github.event.head_commit.message, 'skip-release') && !contains(github.event.head_commit.message, 'skip-ci') && github.event_name != 'pull_request'" 58 | steps: 59 | - uses: actions/checkout@v3 60 | - uses: actions/setup-node@v3 61 | with: 62 | node-version: 16.x 63 | - name: Cache ~/.pnpm-store 64 | uses: actions/cache@v2 65 | env: 66 | cache-name: cache-pnpm-store 67 | with: 68 | path: ~/.pnpm-store 69 | key: ${{ runner.os }}-${{ matrix.node-version }}-release-${{ env.cache-name }}-${{ hashFiles('**/pnpm-lock.yaml') }} 70 | restore-keys: | 71 | ${{ runner.os }}-${{ matrix.node-version }}-release-${{ env.cache-name }}- 72 | ${{ runner.os }}-${{ matrix.node-version }}-release- 73 | ${{ runner.os }}- 74 | - run: npm i -g pnpm 75 | - run: pnpm i 76 | - run: pnpx semantic-release --branches main 77 | env: 78 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 79 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 80 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import mitt from "mitt" 2 | 3 | const uuid = () => globalThis.crypto.randomUUID() 4 | 5 | const WORKER_READY_MESSAGE_ID = "typed-worker-ready" 6 | const IFRAME_ID_ATTR = "data-typed-worker" 7 | 8 | type ActionsType = Record any> 9 | 10 | export const createWorker = ( 11 | create: () => Worker | HTMLIFrameElement, 12 | options: { 13 | /** 14 | * For cross origin iframes, you need to pass a `readyMessageId` manually 15 | * so we can tell when it's ready, this needs to a unique id 16 | */ 17 | readyMessageId?: string 18 | } = {}, 19 | ) => { 20 | const emitter = mitt>() 21 | 22 | let resolveReady: () => void 23 | 24 | const ready = new Promise((resolve) => (resolveReady = resolve)) 25 | 26 | let worker: Worker | HTMLIFrameElement | undefined 27 | if (typeof document !== "undefined") { 28 | worker = create() 29 | 30 | const readyMessageId = 31 | worker instanceof Worker 32 | ? WORKER_READY_MESSAGE_ID 33 | : options.readyMessageId || uuid() 34 | 35 | const handleMessage = (e: any) => { 36 | const data = (e as MessageEvent).data 37 | 38 | if (!data || typeof data !== "object") return 39 | 40 | const { id, result, error } = data 41 | if (id === readyMessageId) { 42 | resolveReady() 43 | return 44 | } 45 | if (error) { 46 | emitter.emit(id, { error }) 47 | } else { 48 | emitter.emit(id, { result }) 49 | } 50 | } 51 | 52 | if (worker instanceof Worker) { 53 | worker.addEventListener("message", handleMessage) 54 | } else { 55 | worker.setAttribute(IFRAME_ID_ATTR, readyMessageId) 56 | window.addEventListener("message", handleMessage) 57 | } 58 | } 59 | 60 | const run = async < 61 | TType extends keyof TActions, 62 | TAction extends TActions[TType], 63 | >( 64 | type: TType, 65 | ...args: Parameters 66 | ): Promise> => { 67 | const id = uuid() 68 | await ready 69 | 70 | const result = new Promise>((resolve, reject) => { 71 | emitter.on(id, ({ error, result }) => { 72 | emitter.off(id) 73 | if (result) { 74 | resolve(result) 75 | } else if (error) { 76 | reject(error) 77 | } 78 | }) 79 | const message = { id, type, args } 80 | if (worker instanceof Worker) { 81 | worker?.postMessage(message) 82 | } else if (worker) { 83 | worker?.contentWindow?.postMessage(message, "*") 84 | } 85 | }) 86 | 87 | return result 88 | } 89 | 90 | const destroy = () => { 91 | if (worker && worker instanceof Worker) { 92 | worker.terminate() 93 | } 94 | worker = undefined 95 | } 96 | 97 | return { run, destroy } 98 | } 99 | 100 | declare const WorkerGlobalScope: any 101 | 102 | export const handleActions = ( 103 | actions: ActionsType, 104 | options: { readyMessageId?: string } = {}, 105 | ) => { 106 | const inWorker = 107 | typeof WorkerGlobalScope !== "undefined" && 108 | self instanceof WorkerGlobalScope 109 | 110 | const postMessage = (message: any) => { 111 | if (inWorker) { 112 | globalThis.postMessage(message) 113 | } else { 114 | window.parent.postMessage(message, "*") 115 | } 116 | } 117 | 118 | // Notify the main thread that the worker is ready 119 | const id = inWorker 120 | ? WORKER_READY_MESSAGE_ID 121 | : options.readyMessageId || 122 | window.frameElement?.getAttribute(IFRAME_ID_ATTR) 123 | if (id) { 124 | postMessage({ id }) 125 | } 126 | 127 | onmessage = async (e: any) => { 128 | const { id, type, args } = e.data 129 | 130 | const action = actions[type] 131 | if (action) { 132 | try { 133 | const result = await action(...args) 134 | postMessage({ id, result }) 135 | } catch (error) { 136 | postMessage({ id, error }) 137 | } 138 | } 139 | } 140 | } 141 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | '@egoist/prettier-config': 1.0.0 5 | '@playwright/test': ^1.25.0 6 | '@types/node': ^18.7.21 7 | mitt: ^3.0.0 8 | prettier: 2.5.1 9 | tsup: 6.2.2 10 | typescript: 4.7.4 11 | vite: ^3.0.7 12 | 13 | dependencies: 14 | mitt: 3.0.0 15 | 16 | devDependencies: 17 | '@egoist/prettier-config': 1.0.0 18 | '@playwright/test': 1.25.0 19 | '@types/node': 18.7.21 20 | prettier: 2.5.1 21 | tsup: 6.2.2_typescript@4.7.4 22 | typescript: 4.7.4 23 | vite: 3.0.7 24 | 25 | packages: 26 | 27 | /@babel/code-frame/7.12.13: 28 | resolution: {integrity: sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==} 29 | dependencies: 30 | '@babel/highlight': 7.13.10 31 | dev: true 32 | 33 | /@babel/helper-validator-identifier/7.12.11: 34 | resolution: {integrity: sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==} 35 | dev: true 36 | 37 | /@babel/highlight/7.13.10: 38 | resolution: {integrity: sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==} 39 | dependencies: 40 | '@babel/helper-validator-identifier': 7.12.11 41 | chalk: 2.4.2 42 | js-tokens: 4.0.0 43 | dev: true 44 | 45 | /@egoist/prettier-config/1.0.0: 46 | resolution: {integrity: sha512-D1Tp9Jv4aVoEo3cOAO966gFCI0wx/1lZ6sEHX8uMAfyVxuxD2+knGxhfGlb/FNLxWV3ifSI5hOmB/zFfsi7Rzw==} 47 | dev: true 48 | 49 | /@esbuild/linux-loong64/0.14.54: 50 | resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} 51 | engines: {node: '>=12'} 52 | cpu: [loong64] 53 | os: [linux] 54 | requiresBuild: true 55 | dev: true 56 | optional: true 57 | 58 | /@esbuild/linux-loong64/0.15.2: 59 | resolution: {integrity: sha512-lcfRxKY3CIBFop9slpNu04+fGro1S0QN5n+HrbOwR6eHHdYeidvMtSVK4vbbYmEMwQr3MFAt2yU6bhwl4dqL/A==} 60 | engines: {node: '>=12'} 61 | cpu: [loong64] 62 | os: [linux] 63 | requiresBuild: true 64 | dev: true 65 | optional: true 66 | 67 | /@nodelib/fs.scandir/2.1.4: 68 | resolution: {integrity: sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==} 69 | engines: {node: '>= 8'} 70 | dependencies: 71 | '@nodelib/fs.stat': 2.0.4 72 | run-parallel: 1.2.0 73 | dev: true 74 | 75 | /@nodelib/fs.stat/2.0.4: 76 | resolution: {integrity: sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==} 77 | engines: {node: '>= 8'} 78 | dev: true 79 | 80 | /@nodelib/fs.walk/1.2.6: 81 | resolution: {integrity: sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==} 82 | engines: {node: '>= 8'} 83 | dependencies: 84 | '@nodelib/fs.scandir': 2.1.4 85 | fastq: 1.11.0 86 | dev: true 87 | 88 | /@playwright/test/1.25.0: 89 | resolution: {integrity: sha512-j4EZhTTQI3dBeWblE21EV//swwmBtOpIrLdOIJIRv4uqsLdHgBg1z+JtTg+AeC5o2bAXIE26kDNW5A0TimG8Bg==} 90 | engines: {node: '>=14'} 91 | hasBin: true 92 | dependencies: 93 | '@types/node': 18.7.21 94 | playwright-core: 1.25.0 95 | dev: true 96 | 97 | /@types/node/18.7.21: 98 | resolution: {integrity: sha512-rLFzK5bhM0YPyCoTC8bolBjMk7bwnZ8qeZUBslBfjZQou2ssJdWslx9CZ8DGM+Dx7QXQiiTVZ/6QO6kwtHkZCA==} 99 | dev: true 100 | 101 | /@types/parse-json/4.0.0: 102 | resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} 103 | dev: true 104 | 105 | /ansi-styles/3.2.1: 106 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 107 | engines: {node: '>=4'} 108 | dependencies: 109 | color-convert: 1.9.3 110 | dev: true 111 | 112 | /any-promise/1.3.0: 113 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 114 | dev: true 115 | 116 | /anymatch/3.1.1: 117 | resolution: {integrity: sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==} 118 | engines: {node: '>= 8'} 119 | dependencies: 120 | normalize-path: 3.0.0 121 | picomatch: 2.3.0 122 | dev: true 123 | 124 | /array-union/2.1.0: 125 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 126 | engines: {node: '>=8'} 127 | dev: true 128 | 129 | /balanced-match/1.0.0: 130 | resolution: {integrity: sha512-9Y0g0Q8rmSt+H33DfKv7FOc3v+iRI+o1lbzt8jGcIosYW37IIW/2XVYq5NPdmaD5NQ59Nk26Kl/vZbwW9Fr8vg==} 131 | dev: true 132 | 133 | /binary-extensions/2.2.0: 134 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 135 | engines: {node: '>=8'} 136 | dev: true 137 | 138 | /brace-expansion/1.1.11: 139 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 140 | dependencies: 141 | balanced-match: 1.0.0 142 | concat-map: 0.0.1 143 | dev: true 144 | 145 | /braces/3.0.2: 146 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 147 | engines: {node: '>=8'} 148 | dependencies: 149 | fill-range: 7.0.1 150 | dev: true 151 | 152 | /bundle-require/3.0.4_esbuild@0.15.2: 153 | resolution: {integrity: sha512-VXG6epB1yrLAvWVQpl92qF347/UXmncQj7J3U8kZEbdVZ1ZkQyr4hYeL/9RvcE8vVVdp53dY78Fd/3pqfRqI1A==} 154 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 155 | peerDependencies: 156 | esbuild: '>=0.13' 157 | dependencies: 158 | esbuild: 0.15.2 159 | load-tsconfig: 0.2.3 160 | dev: true 161 | 162 | /cac/6.7.12: 163 | resolution: {integrity: sha512-rM7E2ygtMkJqD9c7WnFU6fruFcN3xe4FM5yUmgxhZzIKJk4uHl9U/fhwdajGFQbQuv43FAUo1Fe8gX/oIKDeSA==} 164 | engines: {node: '>=8'} 165 | dev: true 166 | 167 | /callsites/3.1.0: 168 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 169 | engines: {node: '>=6'} 170 | dev: true 171 | 172 | /chalk/2.4.2: 173 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 174 | engines: {node: '>=4'} 175 | dependencies: 176 | ansi-styles: 3.2.1 177 | escape-string-regexp: 1.0.5 178 | supports-color: 5.5.0 179 | dev: true 180 | 181 | /chokidar/3.5.1: 182 | resolution: {integrity: sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==} 183 | engines: {node: '>= 8.10.0'} 184 | dependencies: 185 | anymatch: 3.1.1 186 | braces: 3.0.2 187 | glob-parent: 5.1.2 188 | is-binary-path: 2.1.0 189 | is-glob: 4.0.1 190 | normalize-path: 3.0.0 191 | readdirp: 3.5.0 192 | optionalDependencies: 193 | fsevents: 2.3.2 194 | dev: true 195 | 196 | /color-convert/1.9.3: 197 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 198 | dependencies: 199 | color-name: 1.1.3 200 | dev: true 201 | 202 | /color-name/1.1.3: 203 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 204 | dev: true 205 | 206 | /commander/4.1.1: 207 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 208 | engines: {node: '>= 6'} 209 | dev: true 210 | 211 | /concat-map/0.0.1: 212 | resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} 213 | dev: true 214 | 215 | /cosmiconfig/7.0.0: 216 | resolution: {integrity: sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==} 217 | engines: {node: '>=10'} 218 | dependencies: 219 | '@types/parse-json': 4.0.0 220 | import-fresh: 3.3.0 221 | parse-json: 5.2.0 222 | path-type: 4.0.0 223 | yaml: 1.10.2 224 | dev: true 225 | 226 | /cross-spawn/7.0.3: 227 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 228 | engines: {node: '>= 8'} 229 | dependencies: 230 | path-key: 3.1.1 231 | shebang-command: 2.0.0 232 | which: 2.0.2 233 | dev: true 234 | 235 | /debug/4.3.1: 236 | resolution: {integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==} 237 | engines: {node: '>=6.0'} 238 | peerDependencies: 239 | supports-color: '*' 240 | peerDependenciesMeta: 241 | supports-color: 242 | optional: true 243 | dependencies: 244 | ms: 2.1.2 245 | dev: true 246 | 247 | /dir-glob/3.0.1: 248 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 249 | engines: {node: '>=8'} 250 | dependencies: 251 | path-type: 4.0.0 252 | dev: true 253 | 254 | /error-ex/1.3.2: 255 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 256 | dependencies: 257 | is-arrayish: 0.2.1 258 | dev: true 259 | 260 | /esbuild-android-64/0.14.54: 261 | resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==} 262 | engines: {node: '>=12'} 263 | cpu: [x64] 264 | os: [android] 265 | requiresBuild: true 266 | dev: true 267 | optional: true 268 | 269 | /esbuild-android-64/0.15.2: 270 | resolution: {integrity: sha512-lEyRmwmdkkKBpIOi0wKGheuCPECgl5/GCOQkhVpDFEj1lec3cinEk37EbD3f4PUvix1eAHtTa0UI1ga0Bznntg==} 271 | engines: {node: '>=12'} 272 | cpu: [x64] 273 | os: [android] 274 | requiresBuild: true 275 | dev: true 276 | optional: true 277 | 278 | /esbuild-android-arm64/0.14.54: 279 | resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==} 280 | engines: {node: '>=12'} 281 | cpu: [arm64] 282 | os: [android] 283 | requiresBuild: true 284 | dev: true 285 | optional: true 286 | 287 | /esbuild-android-arm64/0.15.2: 288 | resolution: {integrity: sha512-znXfd7QBNrpAVnB8ZP5Zj4a3ah5dPBPZwbn6v0f4Lub4iwwZJ1h34VWMuo2f7KZdIbl2axrei6FxlQncS8zzEw==} 289 | engines: {node: '>=12'} 290 | cpu: [arm64] 291 | os: [android] 292 | requiresBuild: true 293 | dev: true 294 | optional: true 295 | 296 | /esbuild-darwin-64/0.14.54: 297 | resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==} 298 | engines: {node: '>=12'} 299 | cpu: [x64] 300 | os: [darwin] 301 | requiresBuild: true 302 | dev: true 303 | optional: true 304 | 305 | /esbuild-darwin-64/0.15.2: 306 | resolution: {integrity: sha512-keNq6K+qhEJ5kZ6L1UJGYjAnv6Kkpf2KjOjC6r0JMsX6ZAaXnA3OqqXJttEYzBKpZ+W6/T+paS4Slzk3N2bSvQ==} 307 | engines: {node: '>=12'} 308 | cpu: [x64] 309 | os: [darwin] 310 | requiresBuild: true 311 | dev: true 312 | optional: true 313 | 314 | /esbuild-darwin-arm64/0.14.54: 315 | resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==} 316 | engines: {node: '>=12'} 317 | cpu: [arm64] 318 | os: [darwin] 319 | requiresBuild: true 320 | dev: true 321 | optional: true 322 | 323 | /esbuild-darwin-arm64/0.15.2: 324 | resolution: {integrity: sha512-H/0vtLB/dY+TVGsAskmyuaQ7qegNVi+A4N5a+vpPHPFutzoGjcj4tf/77jZ3UsMTlN1dq+Ldala1P1pf486L8Q==} 325 | engines: {node: '>=12'} 326 | cpu: [arm64] 327 | os: [darwin] 328 | requiresBuild: true 329 | dev: true 330 | optional: true 331 | 332 | /esbuild-freebsd-64/0.14.54: 333 | resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==} 334 | engines: {node: '>=12'} 335 | cpu: [x64] 336 | os: [freebsd] 337 | requiresBuild: true 338 | dev: true 339 | optional: true 340 | 341 | /esbuild-freebsd-64/0.15.2: 342 | resolution: {integrity: sha512-KMskcfVTisa2h/xaOwmoWEBm6CVWbKbrnEAv3sEfOF0wodjQfcPvW7HAxatMGL7AW9PIUP6UXLCCCUUnxL2yLQ==} 343 | engines: {node: '>=12'} 344 | cpu: [x64] 345 | os: [freebsd] 346 | requiresBuild: true 347 | dev: true 348 | optional: true 349 | 350 | /esbuild-freebsd-arm64/0.14.54: 351 | resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==} 352 | engines: {node: '>=12'} 353 | cpu: [arm64] 354 | os: [freebsd] 355 | requiresBuild: true 356 | dev: true 357 | optional: true 358 | 359 | /esbuild-freebsd-arm64/0.15.2: 360 | resolution: {integrity: sha512-RJJ3c4L6XGfZeiFqphK58KL+3LfrmebMLgB9QJ0Gygmjx1F6tnLUrLwNBNXrpMT7X4bEtCvP9Gvhkt5HVTdt7g==} 361 | engines: {node: '>=12'} 362 | cpu: [arm64] 363 | os: [freebsd] 364 | requiresBuild: true 365 | dev: true 366 | optional: true 367 | 368 | /esbuild-linux-32/0.14.54: 369 | resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==} 370 | engines: {node: '>=12'} 371 | cpu: [ia32] 372 | os: [linux] 373 | requiresBuild: true 374 | dev: true 375 | optional: true 376 | 377 | /esbuild-linux-32/0.15.2: 378 | resolution: {integrity: sha512-GfCEEs+D+vBrluCUBFr3MP8/PH/fNc5xl2JbsHkwivBXlbORXf5m4Ts8vII9qPxEkLAUsoYx4Bjp+Ca0WqQ9tA==} 379 | engines: {node: '>=12'} 380 | cpu: [ia32] 381 | os: [linux] 382 | requiresBuild: true 383 | dev: true 384 | optional: true 385 | 386 | /esbuild-linux-64/0.14.54: 387 | resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==} 388 | engines: {node: '>=12'} 389 | cpu: [x64] 390 | os: [linux] 391 | requiresBuild: true 392 | dev: true 393 | optional: true 394 | 395 | /esbuild-linux-64/0.15.2: 396 | resolution: {integrity: sha512-F6GfpZrcTisWFrJZdx73NNVjY64iOqhxFsdmnftHZFfeLG4KyJg9hO5kd6E+Rq3udoRk41jPS+fg0+iCyq5Utg==} 397 | engines: {node: '>=12'} 398 | cpu: [x64] 399 | os: [linux] 400 | requiresBuild: true 401 | dev: true 402 | optional: true 403 | 404 | /esbuild-linux-arm/0.14.54: 405 | resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==} 406 | engines: {node: '>=12'} 407 | cpu: [arm] 408 | os: [linux] 409 | requiresBuild: true 410 | dev: true 411 | optional: true 412 | 413 | /esbuild-linux-arm/0.15.2: 414 | resolution: {integrity: sha512-u2YXH9ZCuyN9KwcpKCzhgUckBgy8O07oivv3cV/Z+WnFOjXhKFc+IY0v41nFODPEzEIbozMUx8boVexvHMXHDA==} 415 | engines: {node: '>=12'} 416 | cpu: [arm] 417 | os: [linux] 418 | requiresBuild: true 419 | dev: true 420 | optional: true 421 | 422 | /esbuild-linux-arm64/0.14.54: 423 | resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==} 424 | engines: {node: '>=12'} 425 | cpu: [arm64] 426 | os: [linux] 427 | requiresBuild: true 428 | dev: true 429 | optional: true 430 | 431 | /esbuild-linux-arm64/0.15.2: 432 | resolution: {integrity: sha512-CacsuBpOzU/WVWMS19iGHCrijgheCtmNb9mjlvpoxwLEVjHycc9/X+Pup6vp8dk5jRrhm/7lkY8Fbw9OxM+oug==} 433 | engines: {node: '>=12'} 434 | cpu: [arm64] 435 | os: [linux] 436 | requiresBuild: true 437 | dev: true 438 | optional: true 439 | 440 | /esbuild-linux-mips64le/0.14.54: 441 | resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==} 442 | engines: {node: '>=12'} 443 | cpu: [mips64el] 444 | os: [linux] 445 | requiresBuild: true 446 | dev: true 447 | optional: true 448 | 449 | /esbuild-linux-mips64le/0.15.2: 450 | resolution: {integrity: sha512-VY8pEtXAEyPfVCP/SKPGxaiNF7b259Le0wvEPQTYMeJycAVfahBhpg/9qk2Ufd7mMVGT7G2izr86jJsvuiMVZw==} 451 | engines: {node: '>=12'} 452 | cpu: [mips64el] 453 | os: [linux] 454 | requiresBuild: true 455 | dev: true 456 | optional: true 457 | 458 | /esbuild-linux-ppc64le/0.14.54: 459 | resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==} 460 | engines: {node: '>=12'} 461 | cpu: [ppc64] 462 | os: [linux] 463 | requiresBuild: true 464 | dev: true 465 | optional: true 466 | 467 | /esbuild-linux-ppc64le/0.15.2: 468 | resolution: {integrity: sha512-+Sma8cuiVciTU+xuqErEU4hm8k2bMivqEXPGsXFPKJAV2XrLQlkT5zuPA4FWuKpxwVLUxxuYhkq0nv4j5Dv/3Q==} 469 | engines: {node: '>=12'} 470 | cpu: [ppc64] 471 | os: [linux] 472 | requiresBuild: true 473 | dev: true 474 | optional: true 475 | 476 | /esbuild-linux-riscv64/0.14.54: 477 | resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==} 478 | engines: {node: '>=12'} 479 | cpu: [riscv64] 480 | os: [linux] 481 | requiresBuild: true 482 | dev: true 483 | optional: true 484 | 485 | /esbuild-linux-riscv64/0.15.2: 486 | resolution: {integrity: sha512-HkqtnuEiVq2VvqD6Wb9LEWAedbpxXkq7h3Imop6vaAQUr5z8HROfTyY349QsP9aGY3aF/NiBkX20C6vOqTex8A==} 487 | engines: {node: '>=12'} 488 | cpu: [riscv64] 489 | os: [linux] 490 | requiresBuild: true 491 | dev: true 492 | optional: true 493 | 494 | /esbuild-linux-s390x/0.14.54: 495 | resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==} 496 | engines: {node: '>=12'} 497 | cpu: [s390x] 498 | os: [linux] 499 | requiresBuild: true 500 | dev: true 501 | optional: true 502 | 503 | /esbuild-linux-s390x/0.15.2: 504 | resolution: {integrity: sha512-nIqNFoovQRoz/YBm64xRWXT4yg5BtT2DXA8ogI8lJKy6B+mOKeOVVkvAbFU5YrvUq6AHhMuCsoa3CYFK5a4/vg==} 505 | engines: {node: '>=12'} 506 | cpu: [s390x] 507 | os: [linux] 508 | requiresBuild: true 509 | dev: true 510 | optional: true 511 | 512 | /esbuild-netbsd-64/0.14.54: 513 | resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==} 514 | engines: {node: '>=12'} 515 | cpu: [x64] 516 | os: [netbsd] 517 | requiresBuild: true 518 | dev: true 519 | optional: true 520 | 521 | /esbuild-netbsd-64/0.15.2: 522 | resolution: {integrity: sha512-CY5kHo3C3+aY1VBv76lDTe/D/+4nkhA6cE8ENRezeEvWmu8pPqnIVk1cy/jLNNPBYkbZiR30z/QeZy5yWsW1kg==} 523 | engines: {node: '>=12'} 524 | cpu: [x64] 525 | os: [netbsd] 526 | requiresBuild: true 527 | dev: true 528 | optional: true 529 | 530 | /esbuild-openbsd-64/0.14.54: 531 | resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==} 532 | engines: {node: '>=12'} 533 | cpu: [x64] 534 | os: [openbsd] 535 | requiresBuild: true 536 | dev: true 537 | optional: true 538 | 539 | /esbuild-openbsd-64/0.15.2: 540 | resolution: {integrity: sha512-fXpQW8I6Lm9gJubvW/QjR1OwQQ4tMriVhxznJJmbaX7EYHtcog6Fy+xqbl+YUBZ3dxmEBkBXd6LZaXkn10yavQ==} 541 | engines: {node: '>=12'} 542 | cpu: [x64] 543 | os: [openbsd] 544 | requiresBuild: true 545 | dev: true 546 | optional: true 547 | 548 | /esbuild-sunos-64/0.14.54: 549 | resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==} 550 | engines: {node: '>=12'} 551 | cpu: [x64] 552 | os: [sunos] 553 | requiresBuild: true 554 | dev: true 555 | optional: true 556 | 557 | /esbuild-sunos-64/0.15.2: 558 | resolution: {integrity: sha512-8xaprqT/rxfbxljQrd2A4iASOnw46eiieghh6JgzjlrXP/6kbhN3fe8IgQclcdu6SjDPmQvNSURQ5xCeVATpbQ==} 559 | engines: {node: '>=12'} 560 | cpu: [x64] 561 | os: [sunos] 562 | requiresBuild: true 563 | dev: true 564 | optional: true 565 | 566 | /esbuild-windows-32/0.14.54: 567 | resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==} 568 | engines: {node: '>=12'} 569 | cpu: [ia32] 570 | os: [win32] 571 | requiresBuild: true 572 | dev: true 573 | optional: true 574 | 575 | /esbuild-windows-32/0.15.2: 576 | resolution: {integrity: sha512-lGLNGBmDQ0gZphbUfxT7n6OO1l6iOQM2xnYN90+etzTWZeI76CYLbVPCZR+kp3vzyIRAbcsS6NtM4SknHAwEww==} 577 | engines: {node: '>=12'} 578 | cpu: [ia32] 579 | os: [win32] 580 | requiresBuild: true 581 | dev: true 582 | optional: true 583 | 584 | /esbuild-windows-64/0.14.54: 585 | resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==} 586 | engines: {node: '>=12'} 587 | cpu: [x64] 588 | os: [win32] 589 | requiresBuild: true 590 | dev: true 591 | optional: true 592 | 593 | /esbuild-windows-64/0.15.2: 594 | resolution: {integrity: sha512-Rc6cUwOiQiGgpAxlCl8Lj3o2Ds4n3OU8UyoWpOBXmms+gXdwlKBzxjwj5FxrZJ6EveYpFqzDP07tbzOa9YpTKw==} 595 | engines: {node: '>=12'} 596 | cpu: [x64] 597 | os: [win32] 598 | requiresBuild: true 599 | dev: true 600 | optional: true 601 | 602 | /esbuild-windows-arm64/0.14.54: 603 | resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==} 604 | engines: {node: '>=12'} 605 | cpu: [arm64] 606 | os: [win32] 607 | requiresBuild: true 608 | dev: true 609 | optional: true 610 | 611 | /esbuild-windows-arm64/0.15.2: 612 | resolution: {integrity: sha512-0bpQcIvd6TBIThA+nr9QsTfaU23Co5IPMlXmuNja6buDEu92b9im9ZMGV/BLF+jwKwG8/f1L/0Yfl9QzNuH4Eg==} 613 | engines: {node: '>=12'} 614 | cpu: [arm64] 615 | os: [win32] 616 | requiresBuild: true 617 | dev: true 618 | optional: true 619 | 620 | /esbuild/0.14.54: 621 | resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} 622 | engines: {node: '>=12'} 623 | hasBin: true 624 | requiresBuild: true 625 | optionalDependencies: 626 | '@esbuild/linux-loong64': 0.14.54 627 | esbuild-android-64: 0.14.54 628 | esbuild-android-arm64: 0.14.54 629 | esbuild-darwin-64: 0.14.54 630 | esbuild-darwin-arm64: 0.14.54 631 | esbuild-freebsd-64: 0.14.54 632 | esbuild-freebsd-arm64: 0.14.54 633 | esbuild-linux-32: 0.14.54 634 | esbuild-linux-64: 0.14.54 635 | esbuild-linux-arm: 0.14.54 636 | esbuild-linux-arm64: 0.14.54 637 | esbuild-linux-mips64le: 0.14.54 638 | esbuild-linux-ppc64le: 0.14.54 639 | esbuild-linux-riscv64: 0.14.54 640 | esbuild-linux-s390x: 0.14.54 641 | esbuild-netbsd-64: 0.14.54 642 | esbuild-openbsd-64: 0.14.54 643 | esbuild-sunos-64: 0.14.54 644 | esbuild-windows-32: 0.14.54 645 | esbuild-windows-64: 0.14.54 646 | esbuild-windows-arm64: 0.14.54 647 | dev: true 648 | 649 | /esbuild/0.15.2: 650 | resolution: {integrity: sha512-iKfJsm2u5ATPI3x3sq/WrxISWhAZB/VpvygGG8Pr3q+xQhkIhyI737t+xUa71f50g0ioihQSGaHiQO5hbVDoSQ==} 651 | engines: {node: '>=12'} 652 | hasBin: true 653 | requiresBuild: true 654 | optionalDependencies: 655 | '@esbuild/linux-loong64': 0.15.2 656 | esbuild-android-64: 0.15.2 657 | esbuild-android-arm64: 0.15.2 658 | esbuild-darwin-64: 0.15.2 659 | esbuild-darwin-arm64: 0.15.2 660 | esbuild-freebsd-64: 0.15.2 661 | esbuild-freebsd-arm64: 0.15.2 662 | esbuild-linux-32: 0.15.2 663 | esbuild-linux-64: 0.15.2 664 | esbuild-linux-arm: 0.15.2 665 | esbuild-linux-arm64: 0.15.2 666 | esbuild-linux-mips64le: 0.15.2 667 | esbuild-linux-ppc64le: 0.15.2 668 | esbuild-linux-riscv64: 0.15.2 669 | esbuild-linux-s390x: 0.15.2 670 | esbuild-netbsd-64: 0.15.2 671 | esbuild-openbsd-64: 0.15.2 672 | esbuild-sunos-64: 0.15.2 673 | esbuild-windows-32: 0.15.2 674 | esbuild-windows-64: 0.15.2 675 | esbuild-windows-arm64: 0.15.2 676 | dev: true 677 | 678 | /escape-string-regexp/1.0.5: 679 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 680 | engines: {node: '>=0.8.0'} 681 | dev: true 682 | 683 | /execa/5.0.0: 684 | resolution: {integrity: sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==} 685 | engines: {node: '>=10'} 686 | dependencies: 687 | cross-spawn: 7.0.3 688 | get-stream: 6.0.0 689 | human-signals: 2.1.0 690 | is-stream: 2.0.0 691 | merge-stream: 2.0.0 692 | npm-run-path: 4.0.1 693 | onetime: 5.1.2 694 | signal-exit: 3.0.3 695 | strip-final-newline: 2.0.0 696 | dev: true 697 | 698 | /fast-glob/3.2.5: 699 | resolution: {integrity: sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==} 700 | engines: {node: '>=8'} 701 | dependencies: 702 | '@nodelib/fs.stat': 2.0.4 703 | '@nodelib/fs.walk': 1.2.6 704 | glob-parent: 5.1.2 705 | merge2: 1.4.1 706 | micromatch: 4.0.4 707 | picomatch: 2.3.0 708 | dev: true 709 | 710 | /fastq/1.11.0: 711 | resolution: {integrity: sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==} 712 | dependencies: 713 | reusify: 1.0.4 714 | dev: true 715 | 716 | /fill-range/7.0.1: 717 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 718 | engines: {node: '>=8'} 719 | dependencies: 720 | to-regex-range: 5.0.1 721 | dev: true 722 | 723 | /fs.realpath/1.0.0: 724 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 725 | dev: true 726 | 727 | /fsevents/2.3.2: 728 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 729 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 730 | os: [darwin] 731 | requiresBuild: true 732 | dev: true 733 | optional: true 734 | 735 | /function-bind/1.1.1: 736 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 737 | dev: true 738 | 739 | /get-stream/6.0.0: 740 | resolution: {integrity: sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==} 741 | engines: {node: '>=10'} 742 | dev: true 743 | 744 | /glob-parent/5.1.2: 745 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 746 | engines: {node: '>= 6'} 747 | dependencies: 748 | is-glob: 4.0.1 749 | dev: true 750 | 751 | /glob/7.1.6: 752 | resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} 753 | dependencies: 754 | fs.realpath: 1.0.0 755 | inflight: 1.0.6 756 | inherits: 2.0.4 757 | minimatch: 3.0.4 758 | once: 1.4.0 759 | path-is-absolute: 1.0.1 760 | dev: true 761 | 762 | /globby/11.0.4: 763 | resolution: {integrity: sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==} 764 | engines: {node: '>=10'} 765 | dependencies: 766 | array-union: 2.1.0 767 | dir-glob: 3.0.1 768 | fast-glob: 3.2.5 769 | ignore: 5.1.8 770 | merge2: 1.4.1 771 | slash: 3.0.0 772 | dev: true 773 | 774 | /has-flag/3.0.0: 775 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 776 | engines: {node: '>=4'} 777 | dev: true 778 | 779 | /has/1.0.3: 780 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 781 | engines: {node: '>= 0.4.0'} 782 | dependencies: 783 | function-bind: 1.1.1 784 | dev: true 785 | 786 | /human-signals/2.1.0: 787 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 788 | engines: {node: '>=10.17.0'} 789 | dev: true 790 | 791 | /ignore/5.1.8: 792 | resolution: {integrity: sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==} 793 | engines: {node: '>= 4'} 794 | dev: true 795 | 796 | /import-cwd/3.0.0: 797 | resolution: {integrity: sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==} 798 | engines: {node: '>=8'} 799 | dependencies: 800 | import-from: 3.0.0 801 | dev: true 802 | 803 | /import-fresh/3.3.0: 804 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 805 | engines: {node: '>=6'} 806 | dependencies: 807 | parent-module: 1.0.1 808 | resolve-from: 4.0.0 809 | dev: true 810 | 811 | /import-from/3.0.0: 812 | resolution: {integrity: sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==} 813 | engines: {node: '>=8'} 814 | dependencies: 815 | resolve-from: 5.0.0 816 | dev: true 817 | 818 | /inflight/1.0.6: 819 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 820 | dependencies: 821 | once: 1.4.0 822 | wrappy: 1.0.2 823 | dev: true 824 | 825 | /inherits/2.0.4: 826 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 827 | dev: true 828 | 829 | /is-arrayish/0.2.1: 830 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} 831 | dev: true 832 | 833 | /is-binary-path/2.1.0: 834 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 835 | engines: {node: '>=8'} 836 | dependencies: 837 | binary-extensions: 2.2.0 838 | dev: true 839 | 840 | /is-core-module/2.9.0: 841 | resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==} 842 | dependencies: 843 | has: 1.0.3 844 | dev: true 845 | 846 | /is-extglob/2.1.1: 847 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 848 | engines: {node: '>=0.10.0'} 849 | dev: true 850 | 851 | /is-glob/4.0.1: 852 | resolution: {integrity: sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==} 853 | engines: {node: '>=0.10.0'} 854 | dependencies: 855 | is-extglob: 2.1.1 856 | dev: true 857 | 858 | /is-number/7.0.0: 859 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 860 | engines: {node: '>=0.12.0'} 861 | dev: true 862 | 863 | /is-stream/2.0.0: 864 | resolution: {integrity: sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==} 865 | engines: {node: '>=8'} 866 | dev: true 867 | 868 | /isexe/2.0.0: 869 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 870 | dev: true 871 | 872 | /joycon/3.0.1: 873 | resolution: {integrity: sha512-SJcJNBg32dGgxhPtM0wQqxqV0ax9k/9TaUskGDSJkSFSQOEWWvQ3zzWdGQRIUry2j1zA5+ReH13t0Mf3StuVZA==} 874 | engines: {node: '>=10'} 875 | dev: true 876 | 877 | /js-tokens/4.0.0: 878 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 879 | dev: true 880 | 881 | /json-parse-even-better-errors/2.3.1: 882 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 883 | dev: true 884 | 885 | /lines-and-columns/1.1.6: 886 | resolution: {integrity: sha512-8ZmlJFVK9iCmtLz19HpSsR8HaAMWBT284VMNednLwlIMDP2hJDCIhUp0IZ2xUcZ+Ob6BM0VvCSJwzASDM45NLQ==} 887 | dev: true 888 | 889 | /load-tsconfig/0.2.3: 890 | resolution: {integrity: sha512-iyT2MXws+dc2Wi6o3grCFtGXpeMvHmJqS27sMPGtV2eUu4PeFnG+33I8BlFK1t1NWMjOpcx9bridn5yxLDX2gQ==} 891 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 892 | dev: true 893 | 894 | /lodash.sortby/4.7.0: 895 | resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} 896 | dev: true 897 | 898 | /merge-stream/2.0.0: 899 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 900 | dev: true 901 | 902 | /merge2/1.4.1: 903 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 904 | engines: {node: '>= 8'} 905 | dev: true 906 | 907 | /micromatch/4.0.4: 908 | resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==} 909 | engines: {node: '>=8.6'} 910 | dependencies: 911 | braces: 3.0.2 912 | picomatch: 2.3.0 913 | dev: true 914 | 915 | /mimic-fn/2.1.0: 916 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 917 | engines: {node: '>=6'} 918 | dev: true 919 | 920 | /minimatch/3.0.4: 921 | resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} 922 | dependencies: 923 | brace-expansion: 1.1.11 924 | dev: true 925 | 926 | /mitt/3.0.0: 927 | resolution: {integrity: sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==} 928 | dev: false 929 | 930 | /ms/2.1.2: 931 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 932 | dev: true 933 | 934 | /mz/2.7.0: 935 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 936 | dependencies: 937 | any-promise: 1.3.0 938 | object-assign: 4.1.1 939 | thenify-all: 1.6.0 940 | dev: true 941 | 942 | /nanoid/3.3.4: 943 | resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} 944 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 945 | hasBin: true 946 | dev: true 947 | 948 | /node-modules-regexp/1.0.0: 949 | resolution: {integrity: sha512-JMaRS9L4wSRIR+6PTVEikTrq/lMGEZR43a48ETeilY0Q0iMwVnccMFrUM1k+tNzmYuIU0Vh710bCUqHX+/+ctQ==} 950 | engines: {node: '>=0.10.0'} 951 | dev: true 952 | 953 | /normalize-path/3.0.0: 954 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 955 | engines: {node: '>=0.10.0'} 956 | dev: true 957 | 958 | /npm-run-path/4.0.1: 959 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 960 | engines: {node: '>=8'} 961 | dependencies: 962 | path-key: 3.1.1 963 | dev: true 964 | 965 | /object-assign/4.1.1: 966 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 967 | engines: {node: '>=0.10.0'} 968 | dev: true 969 | 970 | /once/1.4.0: 971 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 972 | dependencies: 973 | wrappy: 1.0.2 974 | dev: true 975 | 976 | /onetime/5.1.2: 977 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 978 | engines: {node: '>=6'} 979 | dependencies: 980 | mimic-fn: 2.1.0 981 | dev: true 982 | 983 | /parent-module/1.0.1: 984 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 985 | engines: {node: '>=6'} 986 | dependencies: 987 | callsites: 3.1.0 988 | dev: true 989 | 990 | /parse-json/5.2.0: 991 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 992 | engines: {node: '>=8'} 993 | dependencies: 994 | '@babel/code-frame': 7.12.13 995 | error-ex: 1.3.2 996 | json-parse-even-better-errors: 2.3.1 997 | lines-and-columns: 1.1.6 998 | dev: true 999 | 1000 | /path-is-absolute/1.0.1: 1001 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1002 | engines: {node: '>=0.10.0'} 1003 | dev: true 1004 | 1005 | /path-key/3.1.1: 1006 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1007 | engines: {node: '>=8'} 1008 | dev: true 1009 | 1010 | /path-parse/1.0.7: 1011 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1012 | dev: true 1013 | 1014 | /path-type/4.0.0: 1015 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1016 | engines: {node: '>=8'} 1017 | dev: true 1018 | 1019 | /picocolors/1.0.0: 1020 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 1021 | dev: true 1022 | 1023 | /picomatch/2.3.0: 1024 | resolution: {integrity: sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==} 1025 | engines: {node: '>=8.6'} 1026 | dev: true 1027 | 1028 | /pirates/4.0.1: 1029 | resolution: {integrity: sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==} 1030 | engines: {node: '>= 6'} 1031 | dependencies: 1032 | node-modules-regexp: 1.0.0 1033 | dev: true 1034 | 1035 | /playwright-core/1.25.0: 1036 | resolution: {integrity: sha512-kZ3Jwaf3wlu0GgU0nB8UMQ+mXFTqBIFz9h1svTlNduNKjnbPXFxw7mJanLVjqxHJRn62uBfmgBj93YHidk2N5Q==} 1037 | engines: {node: '>=14'} 1038 | hasBin: true 1039 | dev: true 1040 | 1041 | /postcss-load-config/3.0.1: 1042 | resolution: {integrity: sha512-/pDHe30UYZUD11IeG8GWx9lNtu1ToyTsZHnyy45B4Mrwr/Kb6NgYl7k753+05CJNKnjbwh4975amoPJ+TEjHNQ==} 1043 | engines: {node: '>= 10'} 1044 | dependencies: 1045 | cosmiconfig: 7.0.0 1046 | import-cwd: 3.0.0 1047 | dev: true 1048 | 1049 | /postcss/8.4.16: 1050 | resolution: {integrity: sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==} 1051 | engines: {node: ^10 || ^12 || >=14} 1052 | dependencies: 1053 | nanoid: 3.3.4 1054 | picocolors: 1.0.0 1055 | source-map-js: 1.0.2 1056 | dev: true 1057 | 1058 | /prettier/2.5.1: 1059 | resolution: {integrity: sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==} 1060 | engines: {node: '>=10.13.0'} 1061 | hasBin: true 1062 | dev: true 1063 | 1064 | /punycode/2.1.1: 1065 | resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} 1066 | engines: {node: '>=6'} 1067 | dev: true 1068 | 1069 | /queue-microtask/1.2.2: 1070 | resolution: {integrity: sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg==} 1071 | dev: true 1072 | 1073 | /readdirp/3.5.0: 1074 | resolution: {integrity: sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==} 1075 | engines: {node: '>=8.10.0'} 1076 | dependencies: 1077 | picomatch: 2.3.0 1078 | dev: true 1079 | 1080 | /resolve-from/4.0.0: 1081 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1082 | engines: {node: '>=4'} 1083 | dev: true 1084 | 1085 | /resolve-from/5.0.0: 1086 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 1087 | engines: {node: '>=8'} 1088 | dev: true 1089 | 1090 | /resolve/1.22.1: 1091 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} 1092 | hasBin: true 1093 | dependencies: 1094 | is-core-module: 2.9.0 1095 | path-parse: 1.0.7 1096 | supports-preserve-symlinks-flag: 1.0.0 1097 | dev: true 1098 | 1099 | /reusify/1.0.4: 1100 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1101 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1102 | dev: true 1103 | 1104 | /rollup/2.77.3: 1105 | resolution: {integrity: sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==} 1106 | engines: {node: '>=10.0.0'} 1107 | hasBin: true 1108 | optionalDependencies: 1109 | fsevents: 2.3.2 1110 | dev: true 1111 | 1112 | /run-parallel/1.2.0: 1113 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1114 | dependencies: 1115 | queue-microtask: 1.2.2 1116 | dev: true 1117 | 1118 | /shebang-command/2.0.0: 1119 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1120 | engines: {node: '>=8'} 1121 | dependencies: 1122 | shebang-regex: 3.0.0 1123 | dev: true 1124 | 1125 | /shebang-regex/3.0.0: 1126 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1127 | engines: {node: '>=8'} 1128 | dev: true 1129 | 1130 | /signal-exit/3.0.3: 1131 | resolution: {integrity: sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==} 1132 | dev: true 1133 | 1134 | /slash/3.0.0: 1135 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1136 | engines: {node: '>=8'} 1137 | dev: true 1138 | 1139 | /source-map-js/1.0.2: 1140 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 1141 | engines: {node: '>=0.10.0'} 1142 | dev: true 1143 | 1144 | /source-map/0.8.0-beta.0: 1145 | resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} 1146 | engines: {node: '>= 8'} 1147 | dependencies: 1148 | whatwg-url: 7.1.0 1149 | dev: true 1150 | 1151 | /strip-final-newline/2.0.0: 1152 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 1153 | engines: {node: '>=6'} 1154 | dev: true 1155 | 1156 | /sucrase/3.20.3: 1157 | resolution: {integrity: sha512-azqwq0/Bs6RzLAdb4dXxsCgMtAaD2hzmUr4UhSfsxO46JFPAwMnnb441B/qsudZiS6Ylea3JXZe3Q497lsgXzQ==} 1158 | engines: {node: '>=8'} 1159 | hasBin: true 1160 | dependencies: 1161 | commander: 4.1.1 1162 | glob: 7.1.6 1163 | lines-and-columns: 1.1.6 1164 | mz: 2.7.0 1165 | pirates: 4.0.1 1166 | ts-interface-checker: 0.1.13 1167 | dev: true 1168 | 1169 | /supports-color/5.5.0: 1170 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 1171 | engines: {node: '>=4'} 1172 | dependencies: 1173 | has-flag: 3.0.0 1174 | dev: true 1175 | 1176 | /supports-preserve-symlinks-flag/1.0.0: 1177 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1178 | engines: {node: '>= 0.4'} 1179 | dev: true 1180 | 1181 | /thenify-all/1.6.0: 1182 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 1183 | engines: {node: '>=0.8'} 1184 | dependencies: 1185 | thenify: 3.3.1 1186 | dev: true 1187 | 1188 | /thenify/3.3.1: 1189 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 1190 | dependencies: 1191 | any-promise: 1.3.0 1192 | dev: true 1193 | 1194 | /to-regex-range/5.0.1: 1195 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1196 | engines: {node: '>=8.0'} 1197 | dependencies: 1198 | is-number: 7.0.0 1199 | dev: true 1200 | 1201 | /tr46/1.0.1: 1202 | resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} 1203 | dependencies: 1204 | punycode: 2.1.1 1205 | dev: true 1206 | 1207 | /tree-kill/1.2.2: 1208 | resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} 1209 | hasBin: true 1210 | dev: true 1211 | 1212 | /ts-interface-checker/0.1.13: 1213 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 1214 | dev: true 1215 | 1216 | /tsup/6.2.2_typescript@4.7.4: 1217 | resolution: {integrity: sha512-vJ9IAdif4GKAz2XMZzjX1hNqhBezJWXjm0qeQEoI7y//a64cxgCF8178eTMV4jBu7YNKnfAPpPSuyXW4mN+9rA==} 1218 | engines: {node: '>=14'} 1219 | hasBin: true 1220 | peerDependencies: 1221 | '@swc/core': ^1 1222 | postcss: ^8.4.12 1223 | typescript: ^4.1.0 1224 | peerDependenciesMeta: 1225 | '@swc/core': 1226 | optional: true 1227 | postcss: 1228 | optional: true 1229 | typescript: 1230 | optional: true 1231 | dependencies: 1232 | bundle-require: 3.0.4_esbuild@0.15.2 1233 | cac: 6.7.12 1234 | chokidar: 3.5.1 1235 | debug: 4.3.1 1236 | esbuild: 0.15.2 1237 | execa: 5.0.0 1238 | globby: 11.0.4 1239 | joycon: 3.0.1 1240 | postcss-load-config: 3.0.1 1241 | resolve-from: 5.0.0 1242 | rollup: 2.77.3 1243 | source-map: 0.8.0-beta.0 1244 | sucrase: 3.20.3 1245 | tree-kill: 1.2.2 1246 | typescript: 4.7.4 1247 | transitivePeerDependencies: 1248 | - supports-color 1249 | dev: true 1250 | 1251 | /typescript/4.7.4: 1252 | resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==} 1253 | engines: {node: '>=4.2.0'} 1254 | hasBin: true 1255 | dev: true 1256 | 1257 | /vite/3.0.7: 1258 | resolution: {integrity: sha512-dILhvKba1mbP1wCezVQx/qhEK7/+jVn9ciadEcyKMMhZpsuAi/eWZfJRMkmYlkSFG7Qq9NvJbgFq4XOBxugJsA==} 1259 | engines: {node: ^14.18.0 || >=16.0.0} 1260 | hasBin: true 1261 | peerDependencies: 1262 | less: '*' 1263 | sass: '*' 1264 | stylus: '*' 1265 | terser: ^5.4.0 1266 | peerDependenciesMeta: 1267 | less: 1268 | optional: true 1269 | sass: 1270 | optional: true 1271 | stylus: 1272 | optional: true 1273 | terser: 1274 | optional: true 1275 | dependencies: 1276 | esbuild: 0.14.54 1277 | postcss: 8.4.16 1278 | resolve: 1.22.1 1279 | rollup: 2.77.3 1280 | optionalDependencies: 1281 | fsevents: 2.3.2 1282 | dev: true 1283 | 1284 | /webidl-conversions/4.0.2: 1285 | resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} 1286 | dev: true 1287 | 1288 | /whatwg-url/7.1.0: 1289 | resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} 1290 | dependencies: 1291 | lodash.sortby: 4.7.0 1292 | tr46: 1.0.1 1293 | webidl-conversions: 4.0.2 1294 | dev: true 1295 | 1296 | /which/2.0.2: 1297 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1298 | engines: {node: '>= 8'} 1299 | hasBin: true 1300 | dependencies: 1301 | isexe: 2.0.0 1302 | dev: true 1303 | 1304 | /wrappy/1.0.2: 1305 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1306 | dev: true 1307 | 1308 | /yaml/1.10.2: 1309 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 1310 | engines: {node: '>= 6'} 1311 | dev: true 1312 | --------------------------------------------------------------------------------