├── .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 | [](https://npm.im/typed-worker) [](https://npm.im/typed-worker) [](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 | [](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 |
--------------------------------------------------------------------------------