├── .npmrc
├── extension
└── assets
│ ├── icon-512.png
│ └── icon.svg
├── .gitignore
├── views
├── options
│ ├── main.tsx
│ └── index.html
├── new-tab
│ ├── index.html
│ └── main.tsx
└── popup
│ ├── index.html
│ └── main.tsx
├── src
├── content
│ └── index.ts
├── background
│ └── index.ts
└── manifest.ts
├── shim.d.ts
├── scripts
├── utils.ts
└── prepare.ts
├── tsconfig.json
├── LICENSE
├── package.json
├── vite.config.ts
├── README.md
└── pnpm-lock.yaml
/.npmrc:
--------------------------------------------------------------------------------
1 | shamefully-hoist=true
2 |
--------------------------------------------------------------------------------
/extension/assets/icon-512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PiyushSuthar/preact-webext/HEAD/extension/assets/icon-512.png
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | .vite-ssg-dist
3 | .vite-ssg-temp
4 | *.local
5 | dist
6 | dist-ssr
7 | node_modules
8 | components.d.ts
9 | .idea/
10 | *.log
11 | extension/manifest.json
12 |
--------------------------------------------------------------------------------
/views/options/main.tsx:
--------------------------------------------------------------------------------
1 | import { render } from "preact";
2 |
3 | const Option = () => (
4 |
5 |
Hello Preact World
6 |
Welcome to the Option Page
7 |
8 | );
9 |
10 | render(, document.getElementById("root")!);
11 |
--------------------------------------------------------------------------------
/views/new-tab/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | New Tab
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/views/new-tab/main.tsx:
--------------------------------------------------------------------------------
1 | import { render } from "preact";
2 |
3 | const NewTab = () => (
4 |
5 |
Hello Preact World
6 |
Welcome to the Preact New Tab!
7 |
8 | );
9 |
10 | render(, document.getElementById("root")!);
11 |
--------------------------------------------------------------------------------
/views/options/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Options
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/views/popup/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Popup
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/content/index.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable no-console */
2 | import { onMessage } from 'webext-bridge'
3 |
4 | console.info('[vitesse-webext] Hello world from content script')
5 |
6 | // communication example: send previous tab title from background page
7 | onMessage('tab-prev', ({ data }) => {
8 | console.log(`[vitesse-webext] Navigate from page "${data.title}"`)
9 | })
10 |
--------------------------------------------------------------------------------
/extension/assets/icon.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/shim.d.ts:
--------------------------------------------------------------------------------
1 | import { ProtocolWithReturn } from 'webext-bridge'
2 |
3 | declare module 'webext-bridge' {
4 | export interface ProtocolMap {
5 | // define message protocol types
6 | // see https://github.com/antfu/webext-bridge#type-safe-protocols
7 | 'tab-prev': { title: string | undefined }
8 | 'get-current-tab': ProtocolWithReturn<{ tabId: number }, { title: string }>
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/scripts/utils.ts:
--------------------------------------------------------------------------------
1 | import { resolve } from 'path'
2 | import { bgCyan, black } from 'kolorist'
3 |
4 | export const port = parseInt(process.env.PORT || '') || 3303
5 | export const r = (...args: string[]) => resolve(__dirname, '..', ...args)
6 | export const isDev = process.argv[2] === 'dev'
7 |
8 | export function log(name: string, message: string) {
9 | // eslint-disable-next-line no-console
10 | console.log(black(bgCyan(` ${name} `)), message)
11 | }
12 |
--------------------------------------------------------------------------------
/views/popup/main.tsx:
--------------------------------------------------------------------------------
1 | import { render } from "preact";
2 | import { browser } from "webextension-polyfill-ts";
3 |
4 | const NewTab = () => {
5 | const openOptionPage = () => {
6 | browser.runtime.openOptionsPage();
7 | };
8 | return (
9 |
10 |
Hello Preact World
11 |
Welcome to popup
12 |
13 |
14 | );
15 | };
16 |
17 | render(, document.getElementById("root")!);
18 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "baseUrl": ".",
4 | "module": "ESNext",
5 | "target": "es2016",
6 | "lib": [
7 | "DOM",
8 | "ESNext",
9 | "DOM.Iterable",
10 | ],
11 | "strict": true,
12 | "esModuleInterop": true,
13 | "incremental": false,
14 | "skipLibCheck": true,
15 | "moduleResolution": "node",
16 | "resolveJsonModule": true,
17 | "noUnusedLocals": true,
18 | "strictNullChecks": true,
19 | "forceConsistentCasingInFileNames": true,
20 | "types": [
21 | "vite/client"
22 | ],
23 | "paths": {
24 | "~/*": [
25 | "views/*"
26 | ]
27 | },
28 | "noEmit": true,
29 | "jsx": "preserve",
30 | "jsxFactory": "h",
31 | "jsxFragmentFactory": "Fragment",
32 | "jsxImportSource": "preact"
33 | },
34 | "exclude": [
35 | "dist",
36 | "node_modules"
37 | ]
38 | }
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 Anthony Fu & Piyush Suthar
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 |
--------------------------------------------------------------------------------
/src/background/index.ts:
--------------------------------------------------------------------------------
1 | import { sendMessage, onMessage } from 'webext-bridge'
2 | import { browser } from 'webextension-polyfill-ts'
3 |
4 | browser.runtime.onInstalled.addListener((): void => {
5 | // eslint-disable-next-line no-console
6 | console.log('Extension installed')
7 | })
8 |
9 | let previousTabId = 0
10 |
11 | // communication example: send previous tab title from background page
12 | // see shim.d.ts for type decleration
13 | browser.tabs.onActivated.addListener(async({ tabId }) => {
14 | if (!previousTabId) {
15 | previousTabId = tabId
16 | return
17 | }
18 | const tab = await browser.tabs.get(previousTabId)
19 | previousTabId = tabId
20 | if (!tab)
21 | return
22 |
23 | // eslint-disable-next-line no-console
24 | console.log('previous tab', tab)
25 | sendMessage('tab-prev', { title: tab.title }, { context: 'content-script', tabId })
26 | })
27 |
28 | onMessage('get-current-tab', async() => {
29 | try {
30 | const tab = await browser.tabs.get(previousTabId)
31 | return {
32 | title: tab?.id,
33 | }
34 | }
35 | catch {
36 | return {
37 | title: undefined,
38 | }
39 | }
40 | })
41 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vitesse-webext",
3 | "displayName": "Vitesse WebExt",
4 | "description": "[description]",
5 | "version": "0.0.1",
6 | "private": true,
7 | "scripts": {
8 | "dev": "run-p dev:*",
9 | "dev:prepare": "esno scripts/prepare.ts dev",
10 | "dev:web": "vite",
11 | "dev:js": "npm run build:js -- --watch src",
12 | "build": "run-s clear build:web build:prepare build:js",
13 | "build:prepare": "esno scripts/prepare.ts build",
14 | "build:web": "vite build",
15 | "build:js": "tsup src/background src/content --format iife --out-dir extension/dist --no-splitting",
16 | "clear": "rimraf extension/dist"
17 | },
18 | "devDependencies": {
19 | "@preact/preset-vite": "^2.1.0",
20 | "@types/fs-extra": "^9.0.12",
21 | "@types/node": "^16.4.1",
22 | "chokidar": "^3.5.2",
23 | "cross-env": "^7.0.3",
24 | "esno": "^0.8.0",
25 | "fs-extra": "^10.0.0",
26 | "kolorist": "^1.5.0",
27 | "npm-run-all": "^4.1.5",
28 | "preact": "^10.5.14",
29 | "rimraf": "^3.0.2",
30 | "tsup": "^4.12.5",
31 | "typescript": "^4.3.5",
32 | "vite": "^2.4.3",
33 | "webext-bridge": "^4.0.0",
34 | "webextension-polyfill-ts": "^0.26.0"
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { resolve } from 'path'
2 | import { defineConfig } from 'vite'
3 | import preact from '@preact/preset-vite'
4 |
5 | const port = parseInt(process.env.PORT || '') || 3303
6 | const r = (...args: string[]) => resolve(__dirname, ...args)
7 |
8 | export default defineConfig(({ command }) => {
9 | return {
10 | root: r('views'),
11 | base: command === 'serve' ? `http://localhost:${port}/` : undefined,
12 | resolve: {
13 | alias: {
14 | '~/': `${r('views')}/`,
15 | },
16 | },
17 | server: {
18 | port,
19 | hmr: {
20 | host: 'localhost',
21 | },
22 | },
23 | build: {
24 | outDir: r('extension/dist'),
25 | emptyOutDir: false,
26 | rollupOptions: {
27 | input: {
28 | popup: r('views/popup/index.html'),
29 | options: r('views/options/index.html'),
30 | newTab: r('views/new-tab/index.html')
31 | },
32 | },
33 | },
34 | plugins: [
35 | preact(),
36 | // rewrite assets to use relative path
37 | {
38 | name: 'assets-rewrite',
39 | enforce: 'post',
40 | apply: 'build',
41 | transformIndexHtml(html) {
42 | return html.replace(/"\/assets\//g, '"../assets/')
43 | },
44 | },
45 | ],
46 |
47 | optimizeDeps: {
48 | include: [
49 | 'preact',
50 | ],
51 | },
52 | }
53 | })
54 |
--------------------------------------------------------------------------------
/scripts/prepare.ts:
--------------------------------------------------------------------------------
1 | // generate stub index.html files for dev entry
2 | import fs from 'fs-extra'
3 | import chokidar from 'chokidar'
4 | import { getManifest } from '../src/manifest'
5 | import { r, port, isDev, log } from './utils'
6 |
7 | /**
8 | * Stub index.html to use Vite in development
9 | */
10 | async function stubIndexHtml() {
11 | const views = [
12 | 'options',
13 | 'popup',
14 | 'new-tab'
15 | ]
16 |
17 | for (const view of views) {
18 | await fs.ensureDir(r(`extension/dist/${view}`))
19 | let data = await fs.readFile(r(`views/${view}/index.html`), 'utf-8')
20 | data = data
21 | .replace('"./main.tsx"', `"http://localhost:${port}/${view}/main.tsx"`)
22 | // .replace('', 'Vite server did not start
')
23 | await fs.writeFile(r(`extension/dist/${view}/index.html`), data, 'utf-8')
24 | log('PRE', `stub ${view}`)
25 | }
26 | }
27 |
28 | export async function writeManifest() {
29 | await fs.writeJSON(r('extension/manifest.json'), await getManifest(), { spaces: 2 })
30 | log('PRE', 'write manifest.json')
31 | }
32 |
33 | writeManifest()
34 |
35 | if (isDev) {
36 | stubIndexHtml()
37 | chokidar.watch(r('views/**/*.html'))
38 | .on('change', () => {
39 | stubIndexHtml()
40 | })
41 | chokidar.watch([r('src/manifest.ts'), r('package.json')])
42 | .on('change', () => {
43 | writeManifest()
44 | })
45 | }
46 |
--------------------------------------------------------------------------------
/src/manifest.ts:
--------------------------------------------------------------------------------
1 | import type { Manifest } from 'webextension-polyfill-ts'
2 | import pkg from '../package.json'
3 | import { isDev, port } from '../scripts/utils'
4 |
5 | export async function getManifest(): Promise {
6 | // update this file to update this manifest.json
7 | // can also be conditional based on your need
8 | return {
9 | manifest_version: 2,
10 | name: pkg.displayName || pkg.name,
11 | version: pkg.version,
12 | description: pkg.description,
13 | chrome_url_overrides: {
14 | newtab: './dist/new-tab/index.html',
15 | },
16 | browser_action: {
17 | default_icon: './assets/icon-512.png',
18 | default_popup: './dist/popup/index.html',
19 | },
20 | options_ui: {
21 | page: './dist/options/index.html',
22 | open_in_tab: true,
23 | chrome_style: false,
24 | },
25 | background: {
26 | scripts: ['./dist/background/index.global.js'],
27 | persistent: false,
28 | },
29 | content_scripts: [
30 | {
31 | matches: ['http://*/*', 'https://*/*'],
32 | js: ['./dist/content/index.global.js'],
33 | },
34 | ],
35 | icons: {
36 | 16: './assets/icon-512.png',
37 | 48: './assets/icon-512.png',
38 | 128: './assets/icon-512.png',
39 | },
40 | permissions: [
41 | 'tabs',
42 | 'storage',
43 | 'activeTab',
44 | 'http://*/',
45 | 'https://*/',
46 | ],
47 | // this is required on dev for Vite script to load
48 | content_security_policy: isDev
49 | ? `script-src \'self\' http://localhost:${port}; object-src \'self\'`
50 | : undefined,
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Preact Webext
2 |
3 | A [Vite](https://vitejs.dev/) powered WebExtension ([Chrome](https://developer.chrome.com/docs/extensions/reference/), [FireFox](https://addons.mozilla.org/en-US/developers/), etc.) starter template with Preact.
4 |
5 | ## Credits
6 |
7 | This boilerplate is a shameless fork of [antfu/vitesse-webext](https://github.com/antfu/vitesse-webext). You can say that I have just forked, edited a few lines and pushed.
8 |
9 | oops, I haven't even changed the Readme :p
10 |
11 | ## Features
12 |
13 | - ⚡️ **Instant HMR** - use **Vite** on dev (no more refresh!)
14 | - ⚛ Preact - For my comfort!
15 | - 💬 Effortless communications - powered by [`webext-bridge`](https://github.com/antfu/webext-bridge)
16 | - 🦾 [TypeScript](https://www.typescriptlang.org/) - type safe
17 | - 🌍 WebExtension - isomorphic extension for Chrome, Firefox, and others
18 | - 📃 Dynamic `manifest.json` with full type support
19 |
20 | ## Pre-packed
21 |
22 | ### WebExtension Libraries
23 |
24 | - [`webextension-polyfill-ts`](https://github.com/Lusito/webextension-polyfill-ts) - WebExtension browser API Polyfill with types
25 | - [`webext-bridge`](https://github.com/antfu/webext-bridge) - effortlessly communication between contexts
26 |
27 | ### Dev tools
28 |
29 | - [TypeScript](https://www.typescriptlang.org/)
30 | - [pnpm](https://pnpm.js.org/) - fast, disk space efficient package manager
31 | - [tsup](https://github.com/egoist/tsup) - Zero config TypeScript bundler powered by esbuild
32 | - [esno](https://github.com/antfu/esno) - TypeScript / ESNext node runtime powered by esbuild
33 | - [npm-run-all](https://github.com/mysticatea/npm-run-all) - Run multiple npm-scripts in parallel or sequential
34 |
35 | ## Use the Template
36 |
37 | ### GitHub Template
38 |
39 | [Create a repo from this template on GitHub](https://github.com/PiyushSuthar/preact-webext/generate).
40 |
41 | ### Clone to local
42 |
43 | If you prefer to do it manually with the cleaner git history
44 |
45 | > If you don't have pnpm installed, run: npm install -g pnpm
46 |
47 | ```bash
48 | npx degit piyushsuthar/preact-webext my-webext
49 | cd my-webext
50 | pnpm i
51 | ```
52 |
53 | ## Usage
54 |
55 | ### Folders
56 |
57 | - `views` - frontend for the extension (popup, options and new-tab).
58 | - `src` - background scripts and content scripts.
59 | - `manifest.ts` - manifest for the extension.
60 | - `extension` - extension package root, also holds assets.
61 | - `scripts` - development helper scripts.
62 |
63 | ### Development
64 |
65 | ```bash
66 | pnpm dev
67 | ```
68 |
69 | Then **load extension in browser with the `extension/` folder**,
70 |
71 | ### Build
72 |
73 | To build the extension, run
74 |
75 | ```bash
76 | pnpm build
77 | ```
78 |
79 | And then pack files under `extension`.
80 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: 5.3
2 |
3 | specifiers:
4 | '@preact/preset-vite': ^2.1.0
5 | '@types/fs-extra': ^9.0.12
6 | '@types/node': ^16.4.1
7 | chokidar: ^3.5.2
8 | cross-env: ^7.0.3
9 | esno: ^0.8.0
10 | fs-extra: ^10.0.0
11 | kolorist: ^1.5.0
12 | npm-run-all: ^4.1.5
13 | preact: ^10.5.14
14 | rimraf: ^3.0.2
15 | tsup: ^4.12.5
16 | typescript: ^4.3.5
17 | vite: ^2.4.3
18 | webext-bridge: ^4.0.0
19 | webextension-polyfill-ts: ^0.26.0
20 |
21 | devDependencies:
22 | '@preact/preset-vite': 2.1.0_preact@10.5.14+vite@2.4.3
23 | '@types/fs-extra': 9.0.12
24 | '@types/node': 16.4.1
25 | chokidar: 3.5.2
26 | cross-env: 7.0.3
27 | esno: 0.8.0
28 | fs-extra: 10.0.0
29 | kolorist: 1.5.0
30 | npm-run-all: 4.1.5
31 | preact: 10.5.14
32 | rimraf: 3.0.2
33 | tsup: 4.12.5_typescript@4.3.5
34 | typescript: 4.3.5
35 | vite: 2.4.3
36 | webext-bridge: 4.0.0
37 | webextension-polyfill-ts: 0.26.0
38 |
39 | packages:
40 |
41 | /@babel/code-frame/7.14.5:
42 | resolution: {integrity: sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==}
43 | engines: {node: '>=6.9.0'}
44 | dependencies:
45 | '@babel/highlight': 7.14.5
46 | dev: true
47 |
48 | /@babel/compat-data/7.14.7:
49 | resolution: {integrity: sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==}
50 | engines: {node: '>=6.9.0'}
51 | dev: true
52 |
53 | /@babel/core/7.14.8:
54 | resolution: {integrity: sha512-/AtaeEhT6ErpDhInbXmjHcUQXH0L0TEgscfcxk1qbOvLuKCa5aZT0SOOtDKFY96/CLROwbLSKyFor6idgNaU4Q==}
55 | engines: {node: '>=6.9.0'}
56 | dependencies:
57 | '@babel/code-frame': 7.14.5
58 | '@babel/generator': 7.14.8
59 | '@babel/helper-compilation-targets': 7.14.5_@babel+core@7.14.8
60 | '@babel/helper-module-transforms': 7.14.8
61 | '@babel/helpers': 7.14.8
62 | '@babel/parser': 7.14.8
63 | '@babel/template': 7.14.5
64 | '@babel/traverse': 7.14.8
65 | '@babel/types': 7.14.8
66 | convert-source-map: 1.8.0
67 | debug: 4.3.2
68 | gensync: 1.0.0-beta.2
69 | json5: 2.2.0
70 | semver: 6.3.0
71 | source-map: 0.5.7
72 | transitivePeerDependencies:
73 | - supports-color
74 | dev: true
75 |
76 | /@babel/generator/7.14.8:
77 | resolution: {integrity: sha512-cYDUpvIzhBVnMzRoY1fkSEhK/HmwEVwlyULYgn/tMQYd6Obag3ylCjONle3gdErfXBW61SVTlR9QR7uWlgeIkg==}
78 | engines: {node: '>=6.9.0'}
79 | dependencies:
80 | '@babel/types': 7.14.8
81 | jsesc: 2.5.2
82 | source-map: 0.5.7
83 | dev: true
84 |
85 | /@babel/helper-compilation-targets/7.14.5_@babel+core@7.14.8:
86 | resolution: {integrity: sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==}
87 | engines: {node: '>=6.9.0'}
88 | peerDependencies:
89 | '@babel/core': ^7.0.0
90 | dependencies:
91 | '@babel/compat-data': 7.14.7
92 | '@babel/core': 7.14.8
93 | '@babel/helper-validator-option': 7.14.5
94 | browserslist: 4.16.6
95 | semver: 6.3.0
96 | dev: true
97 |
98 | /@babel/helper-function-name/7.14.5:
99 | resolution: {integrity: sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==}
100 | engines: {node: '>=6.9.0'}
101 | dependencies:
102 | '@babel/helper-get-function-arity': 7.14.5
103 | '@babel/template': 7.14.5
104 | '@babel/types': 7.14.8
105 | dev: true
106 |
107 | /@babel/helper-get-function-arity/7.14.5:
108 | resolution: {integrity: sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==}
109 | engines: {node: '>=6.9.0'}
110 | dependencies:
111 | '@babel/types': 7.14.8
112 | dev: true
113 |
114 | /@babel/helper-hoist-variables/7.14.5:
115 | resolution: {integrity: sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==}
116 | engines: {node: '>=6.9.0'}
117 | dependencies:
118 | '@babel/types': 7.14.8
119 | dev: true
120 |
121 | /@babel/helper-member-expression-to-functions/7.14.7:
122 | resolution: {integrity: sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==}
123 | engines: {node: '>=6.9.0'}
124 | dependencies:
125 | '@babel/types': 7.14.8
126 | dev: true
127 |
128 | /@babel/helper-module-imports/7.14.5:
129 | resolution: {integrity: sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==}
130 | engines: {node: '>=6.9.0'}
131 | dependencies:
132 | '@babel/types': 7.14.8
133 | dev: true
134 |
135 | /@babel/helper-module-transforms/7.14.8:
136 | resolution: {integrity: sha512-RyE+NFOjXn5A9YU1dkpeBaduagTlZ0+fccnIcAGbv1KGUlReBj7utF7oEth8IdIBQPcux0DDgW5MFBH2xu9KcA==}
137 | engines: {node: '>=6.9.0'}
138 | dependencies:
139 | '@babel/helper-module-imports': 7.14.5
140 | '@babel/helper-replace-supers': 7.14.5
141 | '@babel/helper-simple-access': 7.14.8
142 | '@babel/helper-split-export-declaration': 7.14.5
143 | '@babel/helper-validator-identifier': 7.14.8
144 | '@babel/template': 7.14.5
145 | '@babel/traverse': 7.14.8
146 | '@babel/types': 7.14.8
147 | transitivePeerDependencies:
148 | - supports-color
149 | dev: true
150 |
151 | /@babel/helper-optimise-call-expression/7.14.5:
152 | resolution: {integrity: sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==}
153 | engines: {node: '>=6.9.0'}
154 | dependencies:
155 | '@babel/types': 7.14.8
156 | dev: true
157 |
158 | /@babel/helper-replace-supers/7.14.5:
159 | resolution: {integrity: sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==}
160 | engines: {node: '>=6.9.0'}
161 | dependencies:
162 | '@babel/helper-member-expression-to-functions': 7.14.7
163 | '@babel/helper-optimise-call-expression': 7.14.5
164 | '@babel/traverse': 7.14.8
165 | '@babel/types': 7.14.8
166 | transitivePeerDependencies:
167 | - supports-color
168 | dev: true
169 |
170 | /@babel/helper-simple-access/7.14.8:
171 | resolution: {integrity: sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==}
172 | engines: {node: '>=6.9.0'}
173 | dependencies:
174 | '@babel/types': 7.14.8
175 | dev: true
176 |
177 | /@babel/helper-split-export-declaration/7.14.5:
178 | resolution: {integrity: sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==}
179 | engines: {node: '>=6.9.0'}
180 | dependencies:
181 | '@babel/types': 7.14.8
182 | dev: true
183 |
184 | /@babel/helper-validator-identifier/7.14.8:
185 | resolution: {integrity: sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==}
186 | engines: {node: '>=6.9.0'}
187 | dev: true
188 |
189 | /@babel/helper-validator-option/7.14.5:
190 | resolution: {integrity: sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==}
191 | engines: {node: '>=6.9.0'}
192 | dev: true
193 |
194 | /@babel/helpers/7.14.8:
195 | resolution: {integrity: sha512-ZRDmI56pnV+p1dH6d+UN6GINGz7Krps3+270qqI9UJ4wxYThfAIcI5i7j5vXC4FJ3Wap+S9qcebxeYiqn87DZw==}
196 | engines: {node: '>=6.9.0'}
197 | dependencies:
198 | '@babel/template': 7.14.5
199 | '@babel/traverse': 7.14.8
200 | '@babel/types': 7.14.8
201 | transitivePeerDependencies:
202 | - supports-color
203 | dev: true
204 |
205 | /@babel/highlight/7.14.5:
206 | resolution: {integrity: sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==}
207 | engines: {node: '>=6.9.0'}
208 | dependencies:
209 | '@babel/helper-validator-identifier': 7.14.8
210 | chalk: 2.4.2
211 | js-tokens: 4.0.0
212 | dev: true
213 |
214 | /@babel/parser/7.14.8:
215 | resolution: {integrity: sha512-syoCQFOoo/fzkWDeM0dLEZi5xqurb5vuyzwIMNZRNun+N/9A4cUZeQaE7dTrB8jGaKuJRBtEOajtnmw0I5hvvA==}
216 | engines: {node: '>=6.0.0'}
217 | hasBin: true
218 | dev: true
219 |
220 | /@babel/template/7.14.5:
221 | resolution: {integrity: sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==}
222 | engines: {node: '>=6.9.0'}
223 | dependencies:
224 | '@babel/code-frame': 7.14.5
225 | '@babel/parser': 7.14.8
226 | '@babel/types': 7.14.8
227 | dev: true
228 |
229 | /@babel/traverse/7.14.8:
230 | resolution: {integrity: sha512-kexHhzCljJcFNn1KYAQ6A5wxMRzq9ebYpEDV4+WdNyr3i7O44tanbDOR/xjiG2F3sllan+LgwK+7OMk0EmydHg==}
231 | engines: {node: '>=6.9.0'}
232 | dependencies:
233 | '@babel/code-frame': 7.14.5
234 | '@babel/generator': 7.14.8
235 | '@babel/helper-function-name': 7.14.5
236 | '@babel/helper-hoist-variables': 7.14.5
237 | '@babel/helper-split-export-declaration': 7.14.5
238 | '@babel/parser': 7.14.8
239 | '@babel/types': 7.14.8
240 | debug: 4.3.2
241 | globals: 11.12.0
242 | transitivePeerDependencies:
243 | - supports-color
244 | dev: true
245 |
246 | /@babel/types/7.14.8:
247 | resolution: {integrity: sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==}
248 | engines: {node: '>=6.9.0'}
249 | dependencies:
250 | '@babel/helper-validator-identifier': 7.14.8
251 | to-fast-properties: 2.0.0
252 | dev: true
253 |
254 | /@nodelib/fs.scandir/2.1.5:
255 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
256 | engines: {node: '>= 8'}
257 | dependencies:
258 | '@nodelib/fs.stat': 2.0.5
259 | run-parallel: 1.2.0
260 | dev: true
261 |
262 | /@nodelib/fs.stat/2.0.5:
263 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
264 | engines: {node: '>= 8'}
265 | dev: true
266 |
267 | /@nodelib/fs.walk/1.2.8:
268 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
269 | engines: {node: '>= 8'}
270 | dependencies:
271 | '@nodelib/fs.scandir': 2.1.5
272 | fastq: 1.11.1
273 | dev: true
274 |
275 | /@preact/preset-vite/2.1.0_preact@10.5.14+vite@2.4.3:
276 | resolution: {integrity: sha512-4kJgbitw/ESjO21QwJNN8/DQ40cq4t8hsADKqAEUIXXVsvGecz0JRaMwrA+yy4S0AcUQz7rJvquEFTmsvotSGg==}
277 | peerDependencies:
278 | '@babel/core': 7.x
279 | vite: 2.x
280 | dependencies:
281 | '@prefresh/vite': 2.2.3_preact@10.5.14+vite@2.4.3
282 | babel-plugin-transform-hook-names: 1.0.2
283 | debug: 4.3.2
284 | kolorist: 1.5.0
285 | vite: 2.4.3
286 | transitivePeerDependencies:
287 | - preact
288 | - supports-color
289 | dev: true
290 |
291 | /@prefresh/babel-plugin/0.4.1:
292 | resolution: {integrity: sha512-gj3ekiYtHlZNz0zFI1z6a9mcYX80Qacw84+2++7V1skvO7kQoV2ux56r8bJkTBbKMVxwAgaYrxxIdUCYlclE7Q==}
293 | dev: true
294 |
295 | /@prefresh/core/1.3.2_preact@10.5.14:
296 | resolution: {integrity: sha512-Iv+uI698KDgWsrKpLvOgN3hmAMyvhVgn09mcnhZ98BUNdg/qrxE7tcUf5yFCImkgqED5/Dcn8G5hFy4IikEDvg==}
297 | peerDependencies:
298 | preact: ^10.0.0
299 | dependencies:
300 | preact: 10.5.14
301 | dev: true
302 |
303 | /@prefresh/utils/1.1.1:
304 | resolution: {integrity: sha512-MUhT5m2XNN5NsZl4GnpuvlzLo6VSTa/+wBfBd3fiWUvHGhv0GF9hnA1pd//v0uJaKwUnVRQ1hYElxCV7DtYsCQ==}
305 | dev: true
306 |
307 | /@prefresh/vite/2.2.3_preact@10.5.14+vite@2.4.3:
308 | resolution: {integrity: sha512-TlAzVRKAZ3kiUryLzCd3AoqZDK6K7qZDc7C3QPI7hNwDGyZmJaHY+SXNMCCDaBW5xn9YlYqz/5bl3P4tptAcOg==}
309 | peerDependencies:
310 | preact: ^10.4.0
311 | vite: '>=2.0.0-beta.3'
312 | dependencies:
313 | '@babel/core': 7.14.8
314 | '@prefresh/babel-plugin': 0.4.1
315 | '@prefresh/core': 1.3.2_preact@10.5.14
316 | '@prefresh/utils': 1.1.1
317 | '@rollup/pluginutils': 4.1.1
318 | preact: 10.5.14
319 | vite: 2.4.3
320 | transitivePeerDependencies:
321 | - supports-color
322 | dev: true
323 |
324 | /@rollup/pluginutils/4.1.1:
325 | resolution: {integrity: sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ==}
326 | engines: {node: '>= 8.0.0'}
327 | dependencies:
328 | estree-walker: 2.0.2
329 | picomatch: 2.3.0
330 | dev: true
331 |
332 | /@types/fs-extra/9.0.12:
333 | resolution: {integrity: sha512-I+bsBr67CurCGnSenZZ7v94gd3tc3+Aj2taxMT4yu4ABLuOgOjeFxX3dokG24ztSRg5tnT00sL8BszO7gSMoIw==}
334 | dependencies:
335 | '@types/node': 16.4.1
336 | dev: true
337 |
338 | /@types/node/16.4.1:
339 | resolution: {integrity: sha512-UW7cbLqf/Wu5XH2RKKY1cHwUNLicIDRLMraYKz+HHAerJ0ZffUEk+fMnd8qU2JaS6cAy0r8tsaf7yqHASf/Y0Q==}
340 | dev: true
341 |
342 | /ansi-styles/3.2.1:
343 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
344 | engines: {node: '>=4'}
345 | dependencies:
346 | color-convert: 1.9.3
347 | dev: true
348 |
349 | /ansi-styles/4.3.0:
350 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
351 | engines: {node: '>=8'}
352 | dependencies:
353 | color-convert: 2.0.1
354 | dev: true
355 |
356 | /any-promise/1.3.0:
357 | resolution: {integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8=}
358 | dev: true
359 |
360 | /anymatch/3.1.2:
361 | resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==}
362 | engines: {node: '>= 8'}
363 | dependencies:
364 | normalize-path: 3.0.0
365 | picomatch: 2.3.0
366 | dev: true
367 |
368 | /array-union/2.1.0:
369 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
370 | engines: {node: '>=8'}
371 | dev: true
372 |
373 | /babel-plugin-transform-hook-names/1.0.2:
374 | resolution: {integrity: sha512-5gafyjyyBTTdX/tQQ0hRgu4AhNHG/hqWi0ZZmg2xvs2FgRkJXzDNKBZCyoYqgFkovfDrgM8OoKg8karoUvWeCw==}
375 | peerDependencies:
376 | '@babel/core': ^7.12.10
377 | dev: true
378 |
379 | /balanced-match/1.0.2:
380 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
381 | dev: true
382 |
383 | /binary-extensions/2.2.0:
384 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
385 | engines: {node: '>=8'}
386 | dev: true
387 |
388 | /brace-expansion/1.1.11:
389 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
390 | dependencies:
391 | balanced-match: 1.0.2
392 | concat-map: 0.0.1
393 | dev: true
394 |
395 | /braces/3.0.2:
396 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
397 | engines: {node: '>=8'}
398 | dependencies:
399 | fill-range: 7.0.1
400 | dev: true
401 |
402 | /browserslist/4.16.6:
403 | resolution: {integrity: sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==}
404 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
405 | hasBin: true
406 | dependencies:
407 | caniuse-lite: 1.0.30001246
408 | colorette: 1.2.2
409 | electron-to-chromium: 1.3.785
410 | escalade: 3.1.1
411 | node-releases: 1.1.73
412 | dev: true
413 |
414 | /cac/6.7.3:
415 | resolution: {integrity: sha512-ECVqVZh74qgSuZG9YOt2OJPI3wGcf+EwwuF/XIOYqZBD0KZYLtgPWqFPxmDPQ6joxI1nOlvVgRV6VT53Ooyocg==}
416 | engines: {node: '>=8'}
417 | dev: true
418 |
419 | /call-bind/1.0.2:
420 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
421 | dependencies:
422 | function-bind: 1.1.1
423 | get-intrinsic: 1.1.1
424 | dev: true
425 |
426 | /caniuse-lite/1.0.30001246:
427 | resolution: {integrity: sha512-Tc+ff0Co/nFNbLOrziBXmMVtpt9S2c2Y+Z9Nk9Khj09J+0zR9ejvIW5qkZAErCbOrVODCx/MN+GpB5FNBs5GFA==}
428 | dev: true
429 |
430 | /chalk/2.4.2:
431 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
432 | engines: {node: '>=4'}
433 | dependencies:
434 | ansi-styles: 3.2.1
435 | escape-string-regexp: 1.0.5
436 | supports-color: 5.5.0
437 | dev: true
438 |
439 | /chalk/4.1.1:
440 | resolution: {integrity: sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==}
441 | engines: {node: '>=10'}
442 | dependencies:
443 | ansi-styles: 4.3.0
444 | supports-color: 7.2.0
445 | dev: true
446 |
447 | /chokidar/3.5.2:
448 | resolution: {integrity: sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==}
449 | engines: {node: '>= 8.10.0'}
450 | dependencies:
451 | anymatch: 3.1.2
452 | braces: 3.0.2
453 | glob-parent: 5.1.2
454 | is-binary-path: 2.1.0
455 | is-glob: 4.0.1
456 | normalize-path: 3.0.0
457 | readdirp: 3.6.0
458 | optionalDependencies:
459 | fsevents: 2.3.2
460 | dev: true
461 |
462 | /color-convert/1.9.3:
463 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
464 | dependencies:
465 | color-name: 1.1.3
466 | dev: true
467 |
468 | /color-convert/2.0.1:
469 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
470 | engines: {node: '>=7.0.0'}
471 | dependencies:
472 | color-name: 1.1.4
473 | dev: true
474 |
475 | /color-name/1.1.3:
476 | resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=}
477 | dev: true
478 |
479 | /color-name/1.1.4:
480 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
481 | dev: true
482 |
483 | /colorette/1.2.2:
484 | resolution: {integrity: sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==}
485 | dev: true
486 |
487 | /commander/4.1.1:
488 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
489 | engines: {node: '>= 6'}
490 | dev: true
491 |
492 | /concat-map/0.0.1:
493 | resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
494 | dev: true
495 |
496 | /convert-source-map/1.8.0:
497 | resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==}
498 | dependencies:
499 | safe-buffer: 5.1.2
500 | dev: true
501 |
502 | /cross-env/7.0.3:
503 | resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==}
504 | engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'}
505 | hasBin: true
506 | dependencies:
507 | cross-spawn: 7.0.3
508 | dev: true
509 |
510 | /cross-spawn/6.0.5:
511 | resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==}
512 | engines: {node: '>=4.8'}
513 | dependencies:
514 | nice-try: 1.0.5
515 | path-key: 2.0.1
516 | semver: 5.7.1
517 | shebang-command: 1.2.0
518 | which: 1.3.1
519 | dev: true
520 |
521 | /cross-spawn/7.0.3:
522 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
523 | engines: {node: '>= 8'}
524 | dependencies:
525 | path-key: 3.1.1
526 | shebang-command: 2.0.0
527 | which: 2.0.2
528 | dev: true
529 |
530 | /debug/4.3.2:
531 | resolution: {integrity: sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==}
532 | engines: {node: '>=6.0'}
533 | peerDependencies:
534 | supports-color: '*'
535 | peerDependenciesMeta:
536 | supports-color:
537 | optional: true
538 | dependencies:
539 | ms: 2.1.2
540 | dev: true
541 |
542 | /define-properties/1.1.3:
543 | resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==}
544 | engines: {node: '>= 0.4'}
545 | dependencies:
546 | object-keys: 1.1.1
547 | dev: true
548 |
549 | /dir-glob/3.0.1:
550 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
551 | engines: {node: '>=8'}
552 | dependencies:
553 | path-type: 4.0.0
554 | dev: true
555 |
556 | /electron-to-chromium/1.3.785:
557 | resolution: {integrity: sha512-WmCgAeURsMFiyoJ646eUaJQ7GNfvMRLXo+GamUyKVNEM4MqTAsXyC0f38JEB4N3BtbD0tlAKozGP5E2T9K3YGg==}
558 | dev: true
559 |
560 | /error-ex/1.3.2:
561 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
562 | dependencies:
563 | is-arrayish: 0.2.1
564 | dev: true
565 |
566 | /es-abstract/1.18.3:
567 | resolution: {integrity: sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==}
568 | engines: {node: '>= 0.4'}
569 | dependencies:
570 | call-bind: 1.0.2
571 | es-to-primitive: 1.2.1
572 | function-bind: 1.1.1
573 | get-intrinsic: 1.1.1
574 | has: 1.0.3
575 | has-symbols: 1.0.2
576 | is-callable: 1.2.3
577 | is-negative-zero: 2.0.1
578 | is-regex: 1.1.3
579 | is-string: 1.0.6
580 | object-inspect: 1.11.0
581 | object-keys: 1.1.1
582 | object.assign: 4.1.2
583 | string.prototype.trimend: 1.0.4
584 | string.prototype.trimstart: 1.0.4
585 | unbox-primitive: 1.0.1
586 | dev: true
587 |
588 | /es-to-primitive/1.2.1:
589 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
590 | engines: {node: '>= 0.4'}
591 | dependencies:
592 | is-callable: 1.2.3
593 | is-date-object: 1.0.4
594 | is-symbol: 1.0.4
595 | dev: true
596 |
597 | /esbuild-node-loader/0.1.1:
598 | resolution: {integrity: sha512-n24xYzMfKmPupUZgs0QYBr52HUSh1M1vDtBfkEVa6pdENqo5+U5WP+zaj4Iw2MinuYk1axLW8+NVutrBCkrdmA==}
599 | dependencies:
600 | esbuild: 0.12.15
601 | dev: true
602 |
603 | /esbuild-register/2.6.0:
604 | resolution: {integrity: sha512-2u4AtnCXP5nivtIxZryiZOUcEQkOzFS7UhAqibUEmaTAThJ48gDLYTBF/Fsz+5r0hbV1jrFE6PQvPDUrKZNt/Q==}
605 | dependencies:
606 | esbuild: 0.12.15
607 | jsonc-parser: 3.0.0
608 | dev: true
609 |
610 | /esbuild/0.12.15:
611 | resolution: {integrity: sha512-72V4JNd2+48eOVCXx49xoSWHgC3/cCy96e7mbXKY+WOWghN00cCmlGnwVLRhRHorvv0dgCyuMYBZlM2xDM5OQw==}
612 | hasBin: true
613 | requiresBuild: true
614 | dev: true
615 |
616 | /escalade/3.1.1:
617 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
618 | engines: {node: '>=6'}
619 | dev: true
620 |
621 | /escape-string-regexp/1.0.5:
622 | resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=}
623 | engines: {node: '>=0.8.0'}
624 | dev: true
625 |
626 | /esno/0.8.0:
627 | resolution: {integrity: sha512-zbvu/Kmv+/MznS1J3/U9fXBpnpl7N2dVkwihq1YzR4JzYfJMuwFxDQ0WcTSUX+rBXmKxbYlgj9dwbog+mJXo1Q==}
628 | hasBin: true
629 | dependencies:
630 | cross-spawn: 7.0.3
631 | esbuild: 0.12.15
632 | esbuild-node-loader: 0.1.1
633 | esbuild-register: 2.6.0
634 | dev: true
635 |
636 | /estree-walker/2.0.2:
637 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
638 | dev: true
639 |
640 | /execa/5.1.1:
641 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
642 | engines: {node: '>=10'}
643 | dependencies:
644 | cross-spawn: 7.0.3
645 | get-stream: 6.0.1
646 | human-signals: 2.1.0
647 | is-stream: 2.0.0
648 | merge-stream: 2.0.0
649 | npm-run-path: 4.0.1
650 | onetime: 5.1.2
651 | signal-exit: 3.0.3
652 | strip-final-newline: 2.0.0
653 | dev: true
654 |
655 | /fast-glob/3.2.7:
656 | resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==}
657 | engines: {node: '>=8'}
658 | dependencies:
659 | '@nodelib/fs.stat': 2.0.5
660 | '@nodelib/fs.walk': 1.2.8
661 | glob-parent: 5.1.2
662 | merge2: 1.4.1
663 | micromatch: 4.0.4
664 | dev: true
665 |
666 | /fastq/1.11.1:
667 | resolution: {integrity: sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw==}
668 | dependencies:
669 | reusify: 1.0.4
670 | dev: true
671 |
672 | /fill-range/7.0.1:
673 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
674 | engines: {node: '>=8'}
675 | dependencies:
676 | to-regex-range: 5.0.1
677 | dev: true
678 |
679 | /fs-extra/10.0.0:
680 | resolution: {integrity: sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==}
681 | engines: {node: '>=12'}
682 | dependencies:
683 | graceful-fs: 4.2.6
684 | jsonfile: 6.1.0
685 | universalify: 2.0.0
686 | dev: true
687 |
688 | /fs.realpath/1.0.0:
689 | resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=}
690 | dev: true
691 |
692 | /fsevents/2.3.2:
693 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
694 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
695 | os: [darwin]
696 | dev: true
697 | optional: true
698 |
699 | /function-bind/1.1.1:
700 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
701 | dev: true
702 |
703 | /gensync/1.0.0-beta.2:
704 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
705 | engines: {node: '>=6.9.0'}
706 | dev: true
707 |
708 | /get-intrinsic/1.1.1:
709 | resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==}
710 | dependencies:
711 | function-bind: 1.1.1
712 | has: 1.0.3
713 | has-symbols: 1.0.2
714 | dev: true
715 |
716 | /get-stream/6.0.1:
717 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
718 | engines: {node: '>=10'}
719 | dev: true
720 |
721 | /glob-parent/5.1.2:
722 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
723 | engines: {node: '>= 6'}
724 | dependencies:
725 | is-glob: 4.0.1
726 | dev: true
727 |
728 | /glob/7.1.6:
729 | resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==}
730 | dependencies:
731 | fs.realpath: 1.0.0
732 | inflight: 1.0.6
733 | inherits: 2.0.4
734 | minimatch: 3.0.4
735 | once: 1.4.0
736 | path-is-absolute: 1.0.1
737 | dev: true
738 |
739 | /glob/7.1.7:
740 | resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==}
741 | dependencies:
742 | fs.realpath: 1.0.0
743 | inflight: 1.0.6
744 | inherits: 2.0.4
745 | minimatch: 3.0.4
746 | once: 1.4.0
747 | path-is-absolute: 1.0.1
748 | dev: true
749 |
750 | /globals/11.12.0:
751 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
752 | engines: {node: '>=4'}
753 | dev: true
754 |
755 | /globby/11.0.4:
756 | resolution: {integrity: sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==}
757 | engines: {node: '>=10'}
758 | dependencies:
759 | array-union: 2.1.0
760 | dir-glob: 3.0.1
761 | fast-glob: 3.2.7
762 | ignore: 5.1.8
763 | merge2: 1.4.1
764 | slash: 3.0.0
765 | dev: true
766 |
767 | /graceful-fs/4.2.6:
768 | resolution: {integrity: sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==}
769 | dev: true
770 |
771 | /has-bigints/1.0.1:
772 | resolution: {integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==}
773 | dev: true
774 |
775 | /has-flag/3.0.0:
776 | resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=}
777 | engines: {node: '>=4'}
778 | dev: true
779 |
780 | /has-flag/4.0.0:
781 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
782 | engines: {node: '>=8'}
783 | dev: true
784 |
785 | /has-symbols/1.0.2:
786 | resolution: {integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==}
787 | engines: {node: '>= 0.4'}
788 | dev: true
789 |
790 | /has/1.0.3:
791 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
792 | engines: {node: '>= 0.4.0'}
793 | dependencies:
794 | function-bind: 1.1.1
795 | dev: true
796 |
797 | /hosted-git-info/2.8.9:
798 | resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
799 | dev: true
800 |
801 | /human-signals/2.1.0:
802 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
803 | engines: {node: '>=10.17.0'}
804 | dev: true
805 |
806 | /ignore/5.1.8:
807 | resolution: {integrity: sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==}
808 | engines: {node: '>= 4'}
809 | dev: true
810 |
811 | /import-cwd/3.0.0:
812 | resolution: {integrity: sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==}
813 | engines: {node: '>=8'}
814 | dependencies:
815 | import-from: 3.0.0
816 | dev: true
817 |
818 | /import-from/3.0.0:
819 | resolution: {integrity: sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==}
820 | engines: {node: '>=8'}
821 | dependencies:
822 | resolve-from: 5.0.0
823 | dev: true
824 |
825 | /inflight/1.0.6:
826 | resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=}
827 | dependencies:
828 | once: 1.4.0
829 | wrappy: 1.0.2
830 | dev: true
831 |
832 | /inherits/2.0.4:
833 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
834 | dev: true
835 |
836 | /is-arrayish/0.2.1:
837 | resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=}
838 | dev: true
839 |
840 | /is-bigint/1.0.2:
841 | resolution: {integrity: sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==}
842 | dev: true
843 |
844 | /is-binary-path/2.1.0:
845 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
846 | engines: {node: '>=8'}
847 | dependencies:
848 | binary-extensions: 2.2.0
849 | dev: true
850 |
851 | /is-boolean-object/1.1.1:
852 | resolution: {integrity: sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==}
853 | engines: {node: '>= 0.4'}
854 | dependencies:
855 | call-bind: 1.0.2
856 | dev: true
857 |
858 | /is-callable/1.2.3:
859 | resolution: {integrity: sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==}
860 | engines: {node: '>= 0.4'}
861 | dev: true
862 |
863 | /is-core-module/2.5.0:
864 | resolution: {integrity: sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==}
865 | dependencies:
866 | has: 1.0.3
867 | dev: true
868 |
869 | /is-date-object/1.0.4:
870 | resolution: {integrity: sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==}
871 | engines: {node: '>= 0.4'}
872 | dev: true
873 |
874 | /is-extglob/2.1.1:
875 | resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=}
876 | engines: {node: '>=0.10.0'}
877 | dev: true
878 |
879 | /is-glob/4.0.1:
880 | resolution: {integrity: sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==}
881 | engines: {node: '>=0.10.0'}
882 | dependencies:
883 | is-extglob: 2.1.1
884 | dev: true
885 |
886 | /is-negative-zero/2.0.1:
887 | resolution: {integrity: sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==}
888 | engines: {node: '>= 0.4'}
889 | dev: true
890 |
891 | /is-number-object/1.0.5:
892 | resolution: {integrity: sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==}
893 | engines: {node: '>= 0.4'}
894 | dev: true
895 |
896 | /is-number/7.0.0:
897 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
898 | engines: {node: '>=0.12.0'}
899 | dev: true
900 |
901 | /is-regex/1.1.3:
902 | resolution: {integrity: sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==}
903 | engines: {node: '>= 0.4'}
904 | dependencies:
905 | call-bind: 1.0.2
906 | has-symbols: 1.0.2
907 | dev: true
908 |
909 | /is-stream/2.0.0:
910 | resolution: {integrity: sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==}
911 | engines: {node: '>=8'}
912 | dev: true
913 |
914 | /is-string/1.0.6:
915 | resolution: {integrity: sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==}
916 | engines: {node: '>= 0.4'}
917 | dev: true
918 |
919 | /is-symbol/1.0.4:
920 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
921 | engines: {node: '>= 0.4'}
922 | dependencies:
923 | has-symbols: 1.0.2
924 | dev: true
925 |
926 | /isexe/2.0.0:
927 | resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=}
928 | dev: true
929 |
930 | /joycon/3.0.1:
931 | resolution: {integrity: sha512-SJcJNBg32dGgxhPtM0wQqxqV0ax9k/9TaUskGDSJkSFSQOEWWvQ3zzWdGQRIUry2j1zA5+ReH13t0Mf3StuVZA==}
932 | engines: {node: '>=10'}
933 | dev: true
934 |
935 | /js-tokens/4.0.0:
936 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
937 | dev: true
938 |
939 | /jsesc/2.5.2:
940 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
941 | engines: {node: '>=4'}
942 | hasBin: true
943 | dev: true
944 |
945 | /json-parse-better-errors/1.0.2:
946 | resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==}
947 | dev: true
948 |
949 | /json5/2.2.0:
950 | resolution: {integrity: sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==}
951 | engines: {node: '>=6'}
952 | hasBin: true
953 | dependencies:
954 | minimist: 1.2.5
955 | dev: true
956 |
957 | /jsonc-parser/3.0.0:
958 | resolution: {integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==}
959 | dev: true
960 |
961 | /jsonfile/6.1.0:
962 | resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
963 | dependencies:
964 | universalify: 2.0.0
965 | optionalDependencies:
966 | graceful-fs: 4.2.6
967 | dev: true
968 |
969 | /kolorist/1.5.0:
970 | resolution: {integrity: sha512-pPobydIHK884YBtkS/tWSZXpSAEpcMbilyun3KL37ot935qL2HNKm/tI45i/Rd+MxdIWEhm7/LmUQzWZYK+Qhg==}
971 | dev: true
972 |
973 | /lilconfig/2.0.3:
974 | resolution: {integrity: sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==}
975 | engines: {node: '>=10'}
976 | dev: true
977 |
978 | /lines-and-columns/1.1.6:
979 | resolution: {integrity: sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=}
980 | dev: true
981 |
982 | /load-json-file/4.0.0:
983 | resolution: {integrity: sha1-L19Fq5HjMhYjT9U62rZo607AmTs=}
984 | engines: {node: '>=4'}
985 | dependencies:
986 | graceful-fs: 4.2.6
987 | parse-json: 4.0.0
988 | pify: 3.0.0
989 | strip-bom: 3.0.0
990 | dev: true
991 |
992 | /memorystream/0.3.1:
993 | resolution: {integrity: sha1-htcJCzDORV1j+64S3aUaR93K+bI=}
994 | engines: {node: '>= 0.10.0'}
995 | dev: true
996 |
997 | /merge-stream/2.0.0:
998 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
999 | dev: true
1000 |
1001 | /merge2/1.4.1:
1002 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
1003 | engines: {node: '>= 8'}
1004 | dev: true
1005 |
1006 | /micromatch/4.0.4:
1007 | resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==}
1008 | engines: {node: '>=8.6'}
1009 | dependencies:
1010 | braces: 3.0.2
1011 | picomatch: 2.3.0
1012 | dev: true
1013 |
1014 | /mimic-fn/2.1.0:
1015 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
1016 | engines: {node: '>=6'}
1017 | dev: true
1018 |
1019 | /minimatch/3.0.4:
1020 | resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==}
1021 | dependencies:
1022 | brace-expansion: 1.1.11
1023 | dev: true
1024 |
1025 | /minimist/1.2.5:
1026 | resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==}
1027 | dev: true
1028 |
1029 | /ms/2.1.2:
1030 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
1031 | dev: true
1032 |
1033 | /mz/2.7.0:
1034 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
1035 | dependencies:
1036 | any-promise: 1.3.0
1037 | object-assign: 4.1.1
1038 | thenify-all: 1.6.0
1039 | dev: true
1040 |
1041 | /nanoevents/6.0.0:
1042 | resolution: {integrity: sha512-0ASElaiZR21yBjhmBiRboCXeNirfIVuiKIxikn6a3H/9zUL+q2HBq+4B3Cb2UdCctoGx5YSwxTXypslD/olJKA==}
1043 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
1044 | dev: true
1045 |
1046 | /nanoid/3.1.23:
1047 | resolution: {integrity: sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==}
1048 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
1049 | hasBin: true
1050 | dev: true
1051 |
1052 | /nice-try/1.0.5:
1053 | resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==}
1054 | dev: true
1055 |
1056 | /node-modules-regexp/1.0.0:
1057 | resolution: {integrity: sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=}
1058 | engines: {node: '>=0.10.0'}
1059 | dev: true
1060 |
1061 | /node-releases/1.1.73:
1062 | resolution: {integrity: sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==}
1063 | dev: true
1064 |
1065 | /normalize-package-data/2.5.0:
1066 | resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
1067 | dependencies:
1068 | hosted-git-info: 2.8.9
1069 | resolve: 1.20.0
1070 | semver: 5.7.1
1071 | validate-npm-package-license: 3.0.4
1072 | dev: true
1073 |
1074 | /normalize-path/3.0.0:
1075 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
1076 | engines: {node: '>=0.10.0'}
1077 | dev: true
1078 |
1079 | /npm-run-all/4.1.5:
1080 | resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==}
1081 | engines: {node: '>= 4'}
1082 | hasBin: true
1083 | dependencies:
1084 | ansi-styles: 3.2.1
1085 | chalk: 2.4.2
1086 | cross-spawn: 6.0.5
1087 | memorystream: 0.3.1
1088 | minimatch: 3.0.4
1089 | pidtree: 0.3.1
1090 | read-pkg: 3.0.0
1091 | shell-quote: 1.7.2
1092 | string.prototype.padend: 3.1.2
1093 | dev: true
1094 |
1095 | /npm-run-path/4.0.1:
1096 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
1097 | engines: {node: '>=8'}
1098 | dependencies:
1099 | path-key: 3.1.1
1100 | dev: true
1101 |
1102 | /object-assign/4.1.1:
1103 | resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=}
1104 | engines: {node: '>=0.10.0'}
1105 | dev: true
1106 |
1107 | /object-inspect/1.11.0:
1108 | resolution: {integrity: sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==}
1109 | dev: true
1110 |
1111 | /object-keys/1.1.1:
1112 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
1113 | engines: {node: '>= 0.4'}
1114 | dev: true
1115 |
1116 | /object.assign/4.1.2:
1117 | resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==}
1118 | engines: {node: '>= 0.4'}
1119 | dependencies:
1120 | call-bind: 1.0.2
1121 | define-properties: 1.1.3
1122 | has-symbols: 1.0.2
1123 | object-keys: 1.1.1
1124 | dev: true
1125 |
1126 | /once/1.4.0:
1127 | resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=}
1128 | dependencies:
1129 | wrappy: 1.0.2
1130 | dev: true
1131 |
1132 | /onetime/5.1.2:
1133 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
1134 | engines: {node: '>=6'}
1135 | dependencies:
1136 | mimic-fn: 2.1.0
1137 | dev: true
1138 |
1139 | /parse-json/4.0.0:
1140 | resolution: {integrity: sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=}
1141 | engines: {node: '>=4'}
1142 | dependencies:
1143 | error-ex: 1.3.2
1144 | json-parse-better-errors: 1.0.2
1145 | dev: true
1146 |
1147 | /path-is-absolute/1.0.1:
1148 | resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=}
1149 | engines: {node: '>=0.10.0'}
1150 | dev: true
1151 |
1152 | /path-key/2.0.1:
1153 | resolution: {integrity: sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=}
1154 | engines: {node: '>=4'}
1155 | dev: true
1156 |
1157 | /path-key/3.1.1:
1158 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
1159 | engines: {node: '>=8'}
1160 | dev: true
1161 |
1162 | /path-parse/1.0.7:
1163 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
1164 | dev: true
1165 |
1166 | /path-type/3.0.0:
1167 | resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==}
1168 | engines: {node: '>=4'}
1169 | dependencies:
1170 | pify: 3.0.0
1171 | dev: true
1172 |
1173 | /path-type/4.0.0:
1174 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
1175 | engines: {node: '>=8'}
1176 | dev: true
1177 |
1178 | /picomatch/2.3.0:
1179 | resolution: {integrity: sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==}
1180 | engines: {node: '>=8.6'}
1181 | dev: true
1182 |
1183 | /pidtree/0.3.1:
1184 | resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==}
1185 | engines: {node: '>=0.10'}
1186 | hasBin: true
1187 | dev: true
1188 |
1189 | /pify/3.0.0:
1190 | resolution: {integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=}
1191 | engines: {node: '>=4'}
1192 | dev: true
1193 |
1194 | /pirates/4.0.1:
1195 | resolution: {integrity: sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==}
1196 | engines: {node: '>= 6'}
1197 | dependencies:
1198 | node-modules-regexp: 1.0.0
1199 | dev: true
1200 |
1201 | /postcss-load-config/3.1.0:
1202 | resolution: {integrity: sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==}
1203 | engines: {node: '>= 10'}
1204 | peerDependencies:
1205 | ts-node: '>=9.0.0'
1206 | peerDependenciesMeta:
1207 | ts-node:
1208 | optional: true
1209 | dependencies:
1210 | import-cwd: 3.0.0
1211 | lilconfig: 2.0.3
1212 | yaml: 1.10.2
1213 | dev: true
1214 |
1215 | /postcss/8.3.6:
1216 | resolution: {integrity: sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==}
1217 | engines: {node: ^10 || ^12 || >=14}
1218 | dependencies:
1219 | colorette: 1.2.2
1220 | nanoid: 3.1.23
1221 | source-map-js: 0.6.2
1222 | dev: true
1223 |
1224 | /preact/10.5.14:
1225 | resolution: {integrity: sha512-KojoltCrshZ099ksUZ2OQKfbH66uquFoxHSbnwKbTJHeQNvx42EmC7wQVWNuDt6vC5s3nudRHFtKbpY4ijKlaQ==}
1226 | dev: true
1227 |
1228 | /queue-microtask/1.2.3:
1229 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1230 | dev: true
1231 |
1232 | /read-pkg/3.0.0:
1233 | resolution: {integrity: sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=}
1234 | engines: {node: '>=4'}
1235 | dependencies:
1236 | load-json-file: 4.0.0
1237 | normalize-package-data: 2.5.0
1238 | path-type: 3.0.0
1239 | dev: true
1240 |
1241 | /readdirp/3.6.0:
1242 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
1243 | engines: {node: '>=8.10.0'}
1244 | dependencies:
1245 | picomatch: 2.3.0
1246 | dev: true
1247 |
1248 | /resolve-from/5.0.0:
1249 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
1250 | engines: {node: '>=8'}
1251 | dev: true
1252 |
1253 | /resolve/1.20.0:
1254 | resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==}
1255 | dependencies:
1256 | is-core-module: 2.5.0
1257 | path-parse: 1.0.7
1258 | dev: true
1259 |
1260 | /reusify/1.0.4:
1261 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
1262 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
1263 | dev: true
1264 |
1265 | /rimraf/3.0.2:
1266 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
1267 | hasBin: true
1268 | dependencies:
1269 | glob: 7.1.7
1270 | dev: true
1271 |
1272 | /rollup/2.53.3:
1273 | resolution: {integrity: sha512-79QIGP5DXz5ZHYnCPi3tLz+elOQi6gudp9YINdaJdjG0Yddubo6JRFUM//qCZ0Bap/GJrsUoEBVdSOc4AkMlRA==}
1274 | engines: {node: '>=10.0.0'}
1275 | hasBin: true
1276 | optionalDependencies:
1277 | fsevents: 2.3.2
1278 | dev: true
1279 |
1280 | /run-parallel/1.2.0:
1281 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1282 | dependencies:
1283 | queue-microtask: 1.2.3
1284 | dev: true
1285 |
1286 | /safe-buffer/5.1.2:
1287 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
1288 | dev: true
1289 |
1290 | /semver/5.7.1:
1291 | resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
1292 | hasBin: true
1293 | dev: true
1294 |
1295 | /semver/6.3.0:
1296 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
1297 | hasBin: true
1298 | dev: true
1299 |
1300 | /serialize-error/8.1.0:
1301 | resolution: {integrity: sha512-3NnuWfM6vBYoy5gZFvHiYsVbafvI9vZv/+jlIigFn4oP4zjNPK3LhcY0xSCgeb1a5L8jO71Mit9LlNoi2UfDDQ==}
1302 | engines: {node: '>=10'}
1303 | dependencies:
1304 | type-fest: 0.20.2
1305 | dev: true
1306 |
1307 | /shebang-command/1.2.0:
1308 | resolution: {integrity: sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=}
1309 | engines: {node: '>=0.10.0'}
1310 | dependencies:
1311 | shebang-regex: 1.0.0
1312 | dev: true
1313 |
1314 | /shebang-command/2.0.0:
1315 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
1316 | engines: {node: '>=8'}
1317 | dependencies:
1318 | shebang-regex: 3.0.0
1319 | dev: true
1320 |
1321 | /shebang-regex/1.0.0:
1322 | resolution: {integrity: sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=}
1323 | engines: {node: '>=0.10.0'}
1324 | dev: true
1325 |
1326 | /shebang-regex/3.0.0:
1327 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
1328 | engines: {node: '>=8'}
1329 | dev: true
1330 |
1331 | /shell-quote/1.7.2:
1332 | resolution: {integrity: sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==}
1333 | dev: true
1334 |
1335 | /signal-exit/3.0.3:
1336 | resolution: {integrity: sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==}
1337 | dev: true
1338 |
1339 | /slash/3.0.0:
1340 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
1341 | engines: {node: '>=8'}
1342 | dev: true
1343 |
1344 | /source-map-js/0.6.2:
1345 | resolution: {integrity: sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==}
1346 | engines: {node: '>=0.10.0'}
1347 | dev: true
1348 |
1349 | /source-map/0.5.7:
1350 | resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=}
1351 | engines: {node: '>=0.10.0'}
1352 | dev: true
1353 |
1354 | /spdx-correct/3.1.1:
1355 | resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==}
1356 | dependencies:
1357 | spdx-expression-parse: 3.0.1
1358 | spdx-license-ids: 3.0.9
1359 | dev: true
1360 |
1361 | /spdx-exceptions/2.3.0:
1362 | resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==}
1363 | dev: true
1364 |
1365 | /spdx-expression-parse/3.0.1:
1366 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
1367 | dependencies:
1368 | spdx-exceptions: 2.3.0
1369 | spdx-license-ids: 3.0.9
1370 | dev: true
1371 |
1372 | /spdx-license-ids/3.0.9:
1373 | resolution: {integrity: sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==}
1374 | dev: true
1375 |
1376 | /string.prototype.padend/3.1.2:
1377 | resolution: {integrity: sha512-/AQFLdYvePENU3W5rgurfWSMU6n+Ww8n/3cUt7E+vPBB/D7YDG8x+qjoFs4M/alR2bW7Qg6xMjVwWUOvuQ0XpQ==}
1378 | engines: {node: '>= 0.4'}
1379 | dependencies:
1380 | call-bind: 1.0.2
1381 | define-properties: 1.1.3
1382 | es-abstract: 1.18.3
1383 | dev: true
1384 |
1385 | /string.prototype.trimend/1.0.4:
1386 | resolution: {integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==}
1387 | dependencies:
1388 | call-bind: 1.0.2
1389 | define-properties: 1.1.3
1390 | dev: true
1391 |
1392 | /string.prototype.trimstart/1.0.4:
1393 | resolution: {integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==}
1394 | dependencies:
1395 | call-bind: 1.0.2
1396 | define-properties: 1.1.3
1397 | dev: true
1398 |
1399 | /strip-bom/3.0.0:
1400 | resolution: {integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=}
1401 | engines: {node: '>=4'}
1402 | dev: true
1403 |
1404 | /strip-final-newline/2.0.0:
1405 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
1406 | engines: {node: '>=6'}
1407 | dev: true
1408 |
1409 | /sucrase/3.20.0:
1410 | resolution: {integrity: sha512-Rsp+BX7DRuCleJvBAHN7gQ3ddk7U0rJev19XlIBF6dAq9vX4Tr5mHk4E7+ig/I7BM3DLYotCmm20lfBElT2XtQ==}
1411 | engines: {node: '>=8'}
1412 | hasBin: true
1413 | dependencies:
1414 | commander: 4.1.1
1415 | glob: 7.1.6
1416 | lines-and-columns: 1.1.6
1417 | mz: 2.7.0
1418 | pirates: 4.0.1
1419 | ts-interface-checker: 0.1.13
1420 | dev: true
1421 |
1422 | /supports-color/5.5.0:
1423 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
1424 | engines: {node: '>=4'}
1425 | dependencies:
1426 | has-flag: 3.0.0
1427 | dev: true
1428 |
1429 | /supports-color/7.2.0:
1430 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
1431 | engines: {node: '>=8'}
1432 | dependencies:
1433 | has-flag: 4.0.0
1434 | dev: true
1435 |
1436 | /thenify-all/1.6.0:
1437 | resolution: {integrity: sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=}
1438 | engines: {node: '>=0.8'}
1439 | dependencies:
1440 | thenify: 3.3.1
1441 | dev: true
1442 |
1443 | /thenify/3.3.1:
1444 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
1445 | dependencies:
1446 | any-promise: 1.3.0
1447 | dev: true
1448 |
1449 | /tiny-uid/1.1.1:
1450 | resolution: {integrity: sha512-YRtEXpxokCLMMR46Ml/gen6jDFjZpyo9BMlEGmEpElA+zbCKtoTTikvvDTKR4Gro6tNij3ZA+60i9UiCYKKVyw==}
1451 | dev: true
1452 |
1453 | /to-fast-properties/2.0.0:
1454 | resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=}
1455 | engines: {node: '>=4'}
1456 | dev: true
1457 |
1458 | /to-regex-range/5.0.1:
1459 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1460 | engines: {node: '>=8.0'}
1461 | dependencies:
1462 | is-number: 7.0.0
1463 | dev: true
1464 |
1465 | /tree-kill/1.2.2:
1466 | resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
1467 | hasBin: true
1468 | dev: true
1469 |
1470 | /ts-interface-checker/0.1.13:
1471 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
1472 | dev: true
1473 |
1474 | /tsup/4.12.5_typescript@4.3.5:
1475 | resolution: {integrity: sha512-3f0StcX+trOZvgaY/iU11U8HvvQ4v/LLgoP9OmxtOQVXP8e/Q8FSk69d0bXFb2pHB77CmVxvqiWdwybELQfx1A==}
1476 | hasBin: true
1477 | peerDependencies:
1478 | typescript: ^4.2.3
1479 | peerDependenciesMeta:
1480 | typescript:
1481 | optional: true
1482 | dependencies:
1483 | cac: 6.7.3
1484 | chalk: 4.1.1
1485 | chokidar: 3.5.2
1486 | debug: 4.3.2
1487 | esbuild: 0.12.15
1488 | execa: 5.1.1
1489 | globby: 11.0.4
1490 | joycon: 3.0.1
1491 | postcss-load-config: 3.1.0
1492 | resolve-from: 5.0.0
1493 | rollup: 2.53.3
1494 | sucrase: 3.20.0
1495 | tree-kill: 1.2.2
1496 | typescript: 4.3.5
1497 | transitivePeerDependencies:
1498 | - supports-color
1499 | - ts-node
1500 | dev: true
1501 |
1502 | /type-fest/0.20.2:
1503 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
1504 | engines: {node: '>=10'}
1505 | dev: true
1506 |
1507 | /typescript/4.3.5:
1508 | resolution: {integrity: sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==}
1509 | engines: {node: '>=4.2.0'}
1510 | hasBin: true
1511 | dev: true
1512 |
1513 | /unbox-primitive/1.0.1:
1514 | resolution: {integrity: sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==}
1515 | dependencies:
1516 | function-bind: 1.1.1
1517 | has-bigints: 1.0.1
1518 | has-symbols: 1.0.2
1519 | which-boxed-primitive: 1.0.2
1520 | dev: true
1521 |
1522 | /universalify/2.0.0:
1523 | resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==}
1524 | engines: {node: '>= 10.0.0'}
1525 | dev: true
1526 |
1527 | /validate-npm-package-license/3.0.4:
1528 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
1529 | dependencies:
1530 | spdx-correct: 3.1.1
1531 | spdx-expression-parse: 3.0.1
1532 | dev: true
1533 |
1534 | /vite/2.4.3:
1535 | resolution: {integrity: sha512-iT6NPeiUUZ2FkzC3eazytOEMRaM4J+xgRQcNcpRcbmfYjakCFP4WKPJpeEz1U5JEKHAtwv3ZBQketQUFhFU3ng==}
1536 | engines: {node: '>=12.0.0'}
1537 | hasBin: true
1538 | dependencies:
1539 | esbuild: 0.12.15
1540 | postcss: 8.3.6
1541 | resolve: 1.20.0
1542 | rollup: 2.53.3
1543 | optionalDependencies:
1544 | fsevents: 2.3.2
1545 | dev: true
1546 |
1547 | /webext-bridge/4.0.0:
1548 | resolution: {integrity: sha512-RO3sT0tZXjM93rweVkoBTO0p24Gk5ocuFMWgKd5BV5U0McgjrYLa+fck7tm887dm1FzwNHn1OoJoa8FGxFo+Rw==}
1549 | dependencies:
1550 | nanoevents: 6.0.0
1551 | serialize-error: 8.1.0
1552 | tiny-uid: 1.1.1
1553 | webextension-polyfill-ts: 0.26.0
1554 | dev: true
1555 |
1556 | /webextension-polyfill-ts/0.26.0:
1557 | resolution: {integrity: sha512-XEFL+aYVEsm/d4RajVwP75g56c/w2aSHnPwgtUv8/nCzbLNSzRQIix6aj1xqFkA5yr7OIDkk3OD/QTnPp8ThYA==}
1558 | dependencies:
1559 | webextension-polyfill: 0.8.0
1560 | dev: true
1561 |
1562 | /webextension-polyfill/0.8.0:
1563 | resolution: {integrity: sha512-a19+DzlT6Kp9/UI+mF9XQopeZ+n2ussjhxHJ4/pmIGge9ijCDz7Gn93mNnjpZAk95T4Tae8iHZ6sSf869txqiQ==}
1564 | dev: true
1565 |
1566 | /which-boxed-primitive/1.0.2:
1567 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
1568 | dependencies:
1569 | is-bigint: 1.0.2
1570 | is-boolean-object: 1.1.1
1571 | is-number-object: 1.0.5
1572 | is-string: 1.0.6
1573 | is-symbol: 1.0.4
1574 | dev: true
1575 |
1576 | /which/1.3.1:
1577 | resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
1578 | hasBin: true
1579 | dependencies:
1580 | isexe: 2.0.0
1581 | dev: true
1582 |
1583 | /which/2.0.2:
1584 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
1585 | engines: {node: '>= 8'}
1586 | hasBin: true
1587 | dependencies:
1588 | isexe: 2.0.0
1589 | dev: true
1590 |
1591 | /wrappy/1.0.2:
1592 | resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=}
1593 | dev: true
1594 |
1595 | /yaml/1.10.2:
1596 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
1597 | engines: {node: '>= 6'}
1598 | dev: true
1599 |
--------------------------------------------------------------------------------