diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..4c911c4
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,232 @@
+# File created using '.gitignore Generator' for Visual Studio Code: https://bit.ly/vscode-gig
+
+# Created by https://www.toptal.com/developers/gitignore/api/windows,visualstudiocode,macos,node
+# Edit at https://www.toptal.com/developers/gitignore?templates=windows,visualstudiocode,macos,node
+
+### macOS ###
+# General
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+# Thumbnails
+._*
+
+# Files that might appear in the root of a volume
+.DocumentRevisions-V100
+.fseventsd
+.Spotlight-V100
+.TemporaryItems
+.Trashes
+.VolumeIcon.icns
+.com.apple.timemachine.donotpresent
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+### macOS Patch ###
+# iCloud generated files
+*.icloud
+
+### Node ###
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+lerna-debug.log*
+.pnpm-debug.log*
+
+# Diagnostic reports (https://nodejs.org/api/report.html)
+report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
+
+# Runtime data
+pids
+*.pid
+*.seed
+*.pid.lock
+
+# Directory for instrumented libs generated by jscoverage/JSCover
+lib-cov
+
+# Coverage directory used by tools like istanbul
+coverage
+*.lcov
+
+# nyc test coverage
+.nyc_output
+
+# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
+.grunt
+
+# Bower dependency directory (https://bower.io/)
+bower_components
+
+# node-waf configuration
+.lock-wscript
+
+# Compiled binary addons (https://nodejs.org/api/addons.html)
+build/Release
+
+# Dependency directories
+node_modules/
+jspm_packages/
+
+# Snowpack dependency directory (https://snowpack.dev/)
+web_modules/
+
+# TypeScript cache
+*.tsbuildinfo
+
+# Optional npm cache directory
+.npm
+
+# Optional eslint cache
+.eslintcache
+
+# Optional stylelint cache
+.stylelintcache
+
+# Microbundle cache
+.rpt2_cache/
+.rts2_cache_cjs/
+.rts2_cache_es/
+.rts2_cache_umd/
+
+# Optional REPL history
+.node_repl_history
+
+# Output of 'npm pack'
+*.tgz
+
+# Yarn Integrity file
+.yarn-integrity
+
+# dotenv environment variable files
+.env
+.env.development.local
+.env.test.local
+.env.production.local
+.env.local
+
+# parcel-bundler cache (https://parceljs.org/)
+.cache
+.parcel-cache
+
+# Next.js build output
+.next
+out
+
+# Nuxt.js build / generate output
+.nuxt
+dist
+
+# Gatsby files
+.cache/
+# Comment in the public line in if your project uses Gatsby and not Next.js
+# https://nextjs.org/blog/next-9-1#public-directory-support
+# public
+
+# vuepress build output
+.vuepress/dist
+
+# vuepress v2.x temp and cache directory
+.temp
+
+# Docusaurus cache and generated files
+.docusaurus
+
+# Serverless directories
+.serverless/
+
+# FuseBox cache
+.fusebox/
+
+# DynamoDB Local files
+.dynamodb/
+
+# TernJS port file
+.tern-port
+
+# Stores VSCode versions used for testing VSCode extensions
+.vscode-test
+
+# yarn v2
+.yarn/cache
+.yarn/unplugged
+.yarn/build-state.yml
+.yarn/install-state.gz
+.pnp.*
+
+### Node Patch ###
+# Serverless Webpack directories
+.webpack/
+
+# Optional stylelint cache
+
+# SvelteKit build / generate output
+.svelte-kit
+
+### VisualStudioCode ###
+.vscode/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
+!.vscode/*.code-snippets
+
+# Local History for Visual Studio Code
+.history/
+
+# Built Visual Studio Code Extensions
+*.vsix
+
+### VisualStudioCode Patch ###
+# Ignore all local history of files
+.history
+.ionide
+
+# Support for Project snippet scope
+.vscode/*.code-snippets
+
+# Ignore code-workspaces
+*.code-workspace
+
+### Windows ###
+# Windows thumbnail cache files
+Thumbs.db
+Thumbs.db:encryptable
+ehthumbs.db
+ehthumbs_vista.db
+
+# Dump file
+*.stackdump
+
+# Folder config file
+[Dd]esktop.ini
+
+# Recycle Bin used on file shares
+$RECYCLE.BIN/
+
+# Windows Installer files
+*.cab
+*.msi
+*.msix
+*.msm
+*.msp
+
+# Windows shortcuts
+*.lnk
+
+# End of https://www.toptal.com/developers/gitignore/api/windows,visualstudiocode,macos,node
+
+# Custom rules (everything added below won't be overriden by 'Generate .gitignore File' if you use 'Update' option)
+
diff --git a/.parcelrc b/.parcelrc
new file mode 100644
index 0000000..65a11f3
--- /dev/null
+++ b/.parcelrc
@@ -0,0 +1,3 @@
+{
+ "extends": "@parcel/config-webextension"
+}
diff --git a/.prettierrc.json b/.prettierrc.json
new file mode 100644
index 0000000..d68aa73
--- /dev/null
+++ b/.prettierrc.json
@@ -0,0 +1,3 @@
+{
+ "arrowParens": "avoid"
+}
diff --git a/README.md b/README.md
index 3f77347..7945658 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,59 @@
-# TTV.LOL browser extensions
+
+
+
+ TTV LOL
+
+
-This respository contains the browser extensions for [TTV.LOL](https://ttv.lol).
+
-# Chrome webstore
+
-The extension can be installed via the chrome webstore [here](https://chrome.google.com/webstore/detail/ttv-lol/ofbbahodfeppoklmgjiokgfdgcndngjm).
+```text
+This is a fork of the original project at https://github.com/TTV-LOL/extensions
+```
-# Firefox Addon
+>
-The extension can be installed via the Firefox addons store [here](https://addons.mozilla.org/en-US/firefox/addon/ttv-lol/).
+[TTV LOL](https://ttv.lol/) removes livestream ads from [Twitch](https://www.twitch.tv/).
+This fork:
+
+- disables TTV LOL for channels you are subscribed to.
+
+## Installation
+
+### Chrome
+
+1. Download the latest version of this extension in the "Releases" section (ZIP file)
+1. Unzip the ZIP file you just downloaded
+1. Go to `chrome://extensions`
+1. Turn on `Developer mode`
+1. Click on `Load unpacked`
+1. Select the unzipped folder you just created
+
+### Firefox
+
+1. Download the latest version of this extension in the "Releases" section (ZIP file)
+1. Go to `about:addons`
+1. Click on the gear icon then select "Install Add-on From Fileā¦"
+1. Select the ZIP file you just downloaded
diff --git a/chrome/common/css/styles.css b/chrome/common/css/styles.css
deleted file mode 100644
index d3c6b4f..0000000
--- a/chrome/common/css/styles.css
+++ /dev/null
@@ -1,68 +0,0 @@
-html {
- width: 300px;
- height: 100px;
- background: #151619;
- color: #c9cbcd;
- font-family: Open Sans,Segoe UI,sans-serif;
- -webkit-font-smoothing: antialiased;
- text-rendering: optimizeLegibility;
-}
-
-
-.container {
- text-align: center;
- padding-bottom: 10px;
- }
-
- .button-group {
- display: flex;
- justify-content: center;
- }
-
- .button {
- border-radius: 6px;
- color: #c3c4ca;
- font-weight: bold;
- padding: 10px 20px;
- text-decoration: none;
- transition: all 150ms ease-in-out;
- }
- .button:hover {
- background-color: #1d1f23;
- }
- .button:not(:first-of-type) {
- margin-left: 15px;
- }
- .discord {
- overflow: visible;
- margin-right: 3px;
- display: inline-block;
- }
- .button-arrow .arrow-icon {
- overflow: visible;
- margin-left: 3px;
- margin-bottom: -2px;
- width: 8px;
- }
- .icon {
- margin-bottom: -3px;
- }
- .buton-text{
- margin-bottom: 10px;
- }
- .button-arrow .arrow-head {
- transform: translateX(0);
- transition: transform 150ms ease-in-out;
- }
- .button-arrow .arrow-body {
- opacity: 0;
- transform: scaleX(1);
- transition: transform 150ms ease-in-out, opacity 150ms ease-in-out;
- }
- .button-arrow:hover .arrow-head {
- transform: translateX(3px);
- }
- .button-arrow:hover .arrow-body {
- opacity: 1;
- transform: scaleX(2);
- }
\ No newline at end of file
diff --git a/chrome/common/html/popup.html b/chrome/common/html/popup.html
deleted file mode 100644
index 398e59c..0000000
--- a/chrome/common/html/popup.html
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-
-
-
-
-
-
-

-
-
-
-
-
-
diff --git a/chrome/js/background.js b/chrome/js/background.js
deleted file mode 100644
index 116a739..0000000
--- a/chrome/js/background.js
+++ /dev/null
@@ -1,57 +0,0 @@
-function stripUnusedParams(str, params) {
- if (!params) {
- params = [ 'token', 'sig' ];
- }
- var tempUrl = new URL('https://localhost/' + str);
- for (var i = 0; i < params.length; i++) {
- tempUrl.searchParams.delete(params[i]);
- }
- return tempUrl.pathname.substring(1) + tempUrl.search;
-}
-
-function onPlaylistBeforeRequest(details) {
-
- details.url = stripUnusedParams(details.url, null);
-
- // (hls\/|vod\/)(.+?)$
- const match = /(hls|vod)\/(.+?)$/gim.exec(details.url);
-
- if (match !== null && match.length > 1) {
- var playlistType = match[1] == "vod" ? "vod" : "playlist";
-
- var req = new XMLHttpRequest();
- req.open("GET", `https://api.ttv.lol/ping`, false);
- req.send();
-
- // validate that our API is online, if not fallback to standard stream with ads
- if (req.status != 200) {
- return {
- redirectUrl: details.url
- };
- } else {
- return {
- redirectUrl: `https://api.ttv.lol/${playlistType}/${encodeURIComponent(match[2])}`,
- };
- }
-
- }
-}
-
-chrome.webRequest.onBeforeRequest.addListener(
- onPlaylistBeforeRequest,
- { urls: ["https://usher.ttvnw.net/api/channel/hls/*", "https://usher.ttvnw.net/vod/*"] },
- ["blocking", "extraHeaders"]
-);
-
-function onBeforeSendHeaders(req) {
- req.requestHeaders.push({ name: 'X-Donate-To', value: "https://ttv.lol/donate" })
- return {
- requestHeaders: req.requestHeaders
- }
-}
-
-chrome.webRequest.onBeforeSendHeaders.addListener(
- onBeforeSendHeaders,
- { urls: ["https://api.ttv.lol/playlist/*", "https://api.ttv.lol/vod/*"] },
- ["blocking", "requestHeaders"]
-);
diff --git a/chrome/manifest.json b/chrome/manifest.json
deleted file mode 100644
index dca347b..0000000
--- a/chrome/manifest.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "background": {
- "persistent": true,
- "scripts": [
- "js/background.js"
- ]
- },
- "browser_action": {
- "default_icon": {
- "128": "images/icon.png"
- },
- "default_popup": "common/html/popup.html",
- "default_title": "TTV LOL"
- },
- "description": "TTV LOL",
- "icons": {
- "128": "images/icon.png"
- },
- "manifest_version": 2,
- "name": "TTV LOL",
- "permissions": [
- "webRequest",
- "webRequestBlocking",
- "https://*.twitch.tv/*",
- "https://usher.ttvnw.net/*",
- "https://api.ttv.lol/*"
- ],
- "version": "0.0.0.4"
-}
\ No newline at end of file
diff --git a/firefox/common/css/styles.css b/firefox/common/css/styles.css
deleted file mode 100644
index 2010f0b..0000000
--- a/firefox/common/css/styles.css
+++ /dev/null
@@ -1,71 +0,0 @@
-html, body {
- width: 300px;
-}
-
-
-html {
- background: #151619;
- color: #c9cbcd;
- font-family: Open Sans,Segoe UI,sans-serif;
- -webkit-font-smoothing: antialiased;
- text-rendering: optimizeLegibility;
-}
-
-
-.container {
- text-align: center;
- padding-bottom: 10px;
- }
-
- .button-group {
- display: flex;
- justify-content: center;
- }
-
- .button {
- border-radius: 6px;
- color: #c3c4ca;
- font-weight: bold;
- padding: 10px 20px;
- text-decoration: none;
- transition: all 150ms ease-in-out;
- }
- .button:hover {
- background-color: #1d1f23;
- }
- .button:not(:first-of-type) {
- margin-left: 15px;
- }
- .discord {
- overflow: visible;
- margin-right: 3px;
- display: inline-block;
- }
- .button-arrow .arrow-icon {
- overflow: visible;
- margin-left: 3px;
- margin-bottom: -2px;
- width: 8px;
- }
- .icon {
- margin-bottom: -3px;
- }
- .buton-text{
- margin-bottom: 10px;
- }
- .button-arrow .arrow-head {
- transform: translateX(0);
- transition: transform 150ms ease-in-out;
- }
- .button-arrow .arrow-body {
- opacity: 0;
- transform: scaleX(1);
- transition: transform 150ms ease-in-out, opacity 150ms ease-in-out;
- }
- .button-arrow:hover .arrow-head {
- transform: translateX(3px);
- }
- .button-arrow:hover .arrow-body {
- opacity: 1;
- transform: scaleX(2);
- }
\ No newline at end of file
diff --git a/firefox/common/img/logo.png b/firefox/common/img/logo.png
deleted file mode 100644
index dff2826..0000000
Binary files a/firefox/common/img/logo.png and /dev/null differ
diff --git a/firefox/common/img/ttvlol.png b/firefox/common/img/ttvlol.png
deleted file mode 100644
index 8ca2117..0000000
Binary files a/firefox/common/img/ttvlol.png and /dev/null differ
diff --git a/firefox/images/icon.png b/firefox/images/icon.png
deleted file mode 100644
index 08d1644..0000000
Binary files a/firefox/images/icon.png and /dev/null differ
diff --git a/firefox/js/background.js b/firefox/js/background.js
deleted file mode 100644
index 49ef427..0000000
--- a/firefox/js/background.js
+++ /dev/null
@@ -1,58 +0,0 @@
-function stripUnusedParams(str, params) {
- if (!params) {
- params = [ 'token', 'sig' ];
- }
- var tempUrl = new URL('https://localhost/' + str);
- for (var i = 0; i < params.length; i++) {
- tempUrl.searchParams.delete(params[i]);
- }
- return tempUrl.pathname.substring(1) + tempUrl.search;
-}
-
-function onPlaylistBeforeRequest(details) {
-
- details.url = stripUnusedParams(details.url, null);
-
- // (hls\/|vod\/)(.+?)$
- const match = /(hls|vod)\/(.+?)$/gim.exec(details.url);
-
- if (match !== null && match.length > 1) {
- var playlistType = match[1] == "vod" ? "vod" : "playlist";
-
- return new Promise(resolve => {
- fetch(
- 'https://api.ttv.lol/ping',
- {
- method: 'GET',
- }).then(r => {
- if (r.status == 200) {
- resolve({ redirectUrl: `https://api.ttv.lol/${playlistType}/${encodeURIComponent(match[2])}` });
- } else {
- resolve({});
- }
- }).catch((error) => {
- resolve({});
- });
- });
-
- }
-}
-
- browser.webRequest.onBeforeRequest.addListener(
- onPlaylistBeforeRequest,
- { urls: ["https://usher.ttvnw.net/api/channel/hls/*", "https://usher.ttvnw.net/vod/*"] },
- ["blocking"]
- );
-
- function onBeforeSendHeaders(req) {
- req.requestHeaders.push({ name: 'X-Donate-To', value: "https://ttv.lol/donate" })
- return {
- requestHeaders: req.requestHeaders
- }
- }
-
- browser.webRequest.onBeforeSendHeaders.addListener(
- onBeforeSendHeaders,
- { urls: ["https://api.ttv.lol/playlist/*", "https://api.ttv.lol/vod/*"] },
- ["blocking", "requestHeaders"]
- );
diff --git a/firefox/manifest.json b/firefox/manifest.json
deleted file mode 100644
index dca347b..0000000
--- a/firefox/manifest.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "background": {
- "persistent": true,
- "scripts": [
- "js/background.js"
- ]
- },
- "browser_action": {
- "default_icon": {
- "128": "images/icon.png"
- },
- "default_popup": "common/html/popup.html",
- "default_title": "TTV LOL"
- },
- "description": "TTV LOL",
- "icons": {
- "128": "images/icon.png"
- },
- "manifest_version": 2,
- "name": "TTV LOL",
- "permissions": [
- "webRequest",
- "webRequestBlocking",
- "https://*.twitch.tv/*",
- "https://usher.ttvnw.net/*",
- "https://api.ttv.lol/*"
- ],
- "version": "0.0.0.4"
-}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..a4fb440
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,4364 @@
+{
+ "name": "ttv-lol",
+ "version": "1.0.0-younesaassila",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "ttv-lol",
+ "version": "1.0.0-younesaassila",
+ "license": "UNLICENSED",
+ "devDependencies": {
+ "@parcel/config-webextension": "^2.5.0",
+ "@types/webextension-polyfill": "^0.8.3",
+ "parcel": "^2.5.0",
+ "prettier": "^2.6.2",
+ "typescript": "^4.6.4",
+ "webextension-polyfill": "^0.9.0"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz",
+ "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/highlight": "^7.16.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz",
+ "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight": {
+ "version": "7.17.9",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz",
+ "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.16.7",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "node_modules/@babel/highlight/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@lezer/common": {
+ "version": "0.15.12",
+ "resolved": "https://registry.npmjs.org/@lezer/common/-/common-0.15.12.tgz",
+ "integrity": "sha512-edfwCxNLnzq5pBA/yaIhwJ3U3Kz8VAUOTRg0hhxaizaI1N+qxV7EXDv/kLCkLeq2RzSFvxexlaj5Mzfn2kY0Ig==",
+ "dev": true
+ },
+ "node_modules/@lezer/lr": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-0.15.8.tgz",
+ "integrity": "sha512-bM6oE6VQZ6hIFxDNKk8bKPa14hqFrV07J/vHGOeiAbJReIaQXmkVb6xQu4MR+JBTLa5arGRyAAjJe1qaQt3Uvg==",
+ "dev": true,
+ "dependencies": {
+ "@lezer/common": "^0.15.0"
+ }
+ },
+ "node_modules/@mischnic/json-sourcemap": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.0.tgz",
+ "integrity": "sha512-dQb3QnfNqmQNYA4nFSN/uLaByIic58gOXq4Y4XqLOWmOrw73KmJPt/HLyG0wvn1bnR6mBKs/Uwvkh+Hns1T0XA==",
+ "dev": true,
+ "dependencies": {
+ "@lezer/common": "^0.15.7",
+ "@lezer/lr": "^0.15.4",
+ "json5": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/@parcel/bundler-default": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.5.0.tgz",
+ "integrity": "sha512-7CJzE17SirCXjcRgBcnqWO/5EOA1raq/3OIKtT4cxbjpDQGHZpjpEEZiMNRpEpdNMxDSlsG8mAkXTYGL2VVWRw==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/hash": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/cache": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.5.0.tgz",
+ "integrity": "sha512-3kOO3cZQv0FAKhrMHGLdb4Qtzpmy78Q6jPN3u8eCY4yqeDTnyQBZvWNHoyCm5WlmL8y6Q6REYMbETLxSH1ggAQ==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/fs": "2.5.0",
+ "@parcel/logger": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "lmdb": "2.2.4"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "peerDependencies": {
+ "@parcel/core": "^2.5.0"
+ }
+ },
+ "node_modules/@parcel/codeframe": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.5.0.tgz",
+ "integrity": "sha512-qafqL8Vu2kr932cCWESoDEEoAeKVi7/xdzTBuhzEJng1AfmRT0rCbt/P4ao3RjiDyozPSjXsHOqM6GDZcto4eQ==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.1.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/compressor-raw": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.5.0.tgz",
+ "integrity": "sha512-I5Zs+2f1ue4sTPdfT8BNsLfTZl48sMWLk2Io3elUJjH/SS9kO7ut5ChkuJtt77ZS35m0OF+ZCt3ICTJdnDG8eA==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/plugin": "2.5.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/config-default": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.5.0.tgz",
+ "integrity": "sha512-r30V61958SONvP9I8KV8s44ZOFq0H219VyFjPysraSabHjZ+KMaCTQOuqaDtUMa272sHUQkBcZxKYj5jYPJlZg==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/bundler-default": "2.5.0",
+ "@parcel/compressor-raw": "2.5.0",
+ "@parcel/namer-default": "2.5.0",
+ "@parcel/optimizer-css": "2.5.0",
+ "@parcel/optimizer-htmlnano": "2.5.0",
+ "@parcel/optimizer-image": "2.5.0",
+ "@parcel/optimizer-svgo": "2.5.0",
+ "@parcel/optimizer-terser": "2.5.0",
+ "@parcel/packager-css": "2.5.0",
+ "@parcel/packager-html": "2.5.0",
+ "@parcel/packager-js": "2.5.0",
+ "@parcel/packager-raw": "2.5.0",
+ "@parcel/packager-svg": "2.5.0",
+ "@parcel/reporter-dev-server": "2.5.0",
+ "@parcel/resolver-default": "2.5.0",
+ "@parcel/runtime-browser-hmr": "2.5.0",
+ "@parcel/runtime-js": "2.5.0",
+ "@parcel/runtime-react-refresh": "2.5.0",
+ "@parcel/runtime-service-worker": "2.5.0",
+ "@parcel/transformer-babel": "2.5.0",
+ "@parcel/transformer-css": "2.5.0",
+ "@parcel/transformer-html": "2.5.0",
+ "@parcel/transformer-image": "2.5.0",
+ "@parcel/transformer-js": "2.5.0",
+ "@parcel/transformer-json": "2.5.0",
+ "@parcel/transformer-postcss": "2.5.0",
+ "@parcel/transformer-posthtml": "2.5.0",
+ "@parcel/transformer-raw": "2.5.0",
+ "@parcel/transformer-react-refresh-wrap": "2.5.0",
+ "@parcel/transformer-svg": "2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "peerDependencies": {
+ "@parcel/core": "^2.5.0"
+ }
+ },
+ "node_modules/@parcel/config-webextension": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/config-webextension/-/config-webextension-2.5.0.tgz",
+ "integrity": "sha512-q68VTZXeoDjF0zAw6iDSf4vC5vC2leeBctSSy/VXLn/1xiV51UWdU5t4E6zu0EAWVaHoRwo2kPvbr6fsISZnmg==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/config-default": "2.5.0",
+ "@parcel/packager-webextension": "2.5.0",
+ "@parcel/runtime-webextension": "2.5.0",
+ "@parcel/transformer-raw": "2.5.0",
+ "@parcel/transformer-webextension": "2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "peerDependencies": {
+ "@parcel/core": "^2.5.0"
+ }
+ },
+ "node_modules/@parcel/core": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.5.0.tgz",
+ "integrity": "sha512-dygDmPsfAYJKTnUftcbEzjCik7AAaPbFvJW8ETYz8diyjkAG9y6hvCAZIrJE5pNOjFzg32en4v4UWv8Sqlzl9g==",
+ "dev": true,
+ "dependencies": {
+ "@mischnic/json-sourcemap": "^0.1.0",
+ "@parcel/cache": "2.5.0",
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/events": "2.5.0",
+ "@parcel/fs": "2.5.0",
+ "@parcel/graph": "2.5.0",
+ "@parcel/hash": "2.5.0",
+ "@parcel/logger": "2.5.0",
+ "@parcel/package-manager": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "@parcel/source-map": "^2.0.0",
+ "@parcel/types": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "@parcel/workers": "2.5.0",
+ "abortcontroller-polyfill": "^1.1.9",
+ "base-x": "^3.0.8",
+ "browserslist": "^4.6.6",
+ "clone": "^2.1.1",
+ "dotenv": "^7.0.0",
+ "dotenv-expand": "^5.1.0",
+ "json5": "^2.2.0",
+ "msgpackr": "^1.5.4",
+ "nullthrows": "^1.1.1",
+ "semver": "^5.7.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/css": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@parcel/css/-/css-1.8.3.tgz",
+ "integrity": "sha512-6qUN4iicr8f9Q6UUZttwwHMzrb65BRX46PHWq0icA4KEmvmfR9cSYlp/hJH8F4stg3Wncx12Bnw+EuPf5OAEPQ==",
+ "dev": true,
+ "dependencies": {
+ "detect-libc": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "@parcel/css-darwin-arm64": "1.8.3",
+ "@parcel/css-darwin-x64": "1.8.3",
+ "@parcel/css-linux-arm-gnueabihf": "1.8.3",
+ "@parcel/css-linux-arm64-gnu": "1.8.3",
+ "@parcel/css-linux-arm64-musl": "1.8.3",
+ "@parcel/css-linux-x64-gnu": "1.8.3",
+ "@parcel/css-linux-x64-musl": "1.8.3",
+ "@parcel/css-win32-x64-msvc": "1.8.3"
+ }
+ },
+ "node_modules/@parcel/css-darwin-arm64": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@parcel/css-darwin-arm64/-/css-darwin-arm64-1.8.3.tgz",
+ "integrity": "sha512-qh/Ig6GfVjGoiGSWjIYDo6Ghwmyy/9BXvYS1l3R+Bp50F300cq84Czfl6wxaL+aFmghdHzhjJuGfWmZlcYliPA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/css-darwin-x64": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@parcel/css-darwin-x64/-/css-darwin-x64-1.8.3.tgz",
+ "integrity": "sha512-gTUIoRgwyYr4UuH7sSn3gOuMlIshJBOJLmjL+E/mR5lqdYabguiKiRORvkrnb/gHBmOUF9re0RcTaFmJ2VOAlg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/css-linux-arm-gnueabihf": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@parcel/css-linux-arm-gnueabihf/-/css-linux-arm-gnueabihf-1.8.3.tgz",
+ "integrity": "sha512-4P1r0BvL9dPz70py2xLg/jEvWJmKNyokPgafyrDP+GbpPTfH5NYJJkVRGo/TkKsp3Rv8SJhV9fdlpFKC6BI92A==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/css-linux-arm64-gnu": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@parcel/css-linux-arm64-gnu/-/css-linux-arm64-gnu-1.8.3.tgz",
+ "integrity": "sha512-1fUy94eaqdzum+C7bsYVF2AgxjLGR/qppArn/4HTQyydHR5QeV+Uoyqo5vdnO5Vclj8eQwlgR9OyAOlmzXxFDA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/css-linux-arm64-musl": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@parcel/css-linux-arm64-musl/-/css-linux-arm64-musl-1.8.3.tgz",
+ "integrity": "sha512-ct1QRK5gAP8sO22NZ7RULZQB7dbHpou+WMa4z0LJb+Fho13a1JNw931vNHbeI5cRr1fCTDq76pz/+Valgetzcw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/css-linux-x64-gnu": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@parcel/css-linux-x64-gnu/-/css-linux-x64-gnu-1.8.3.tgz",
+ "integrity": "sha512-pg/mahoogzjbaZcW76rrTZ64tEu8Wok4Gm0sW/dXHJEJD2QVJ6GxLP4UVNBuhaV0GrNFHggp9pcdhTtLGkKl/g==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/css-linux-x64-musl": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@parcel/css-linux-x64-musl/-/css-linux-x64-musl-1.8.3.tgz",
+ "integrity": "sha512-4Iwawy28HQ2yAgbuyR60bgO+8oE+OiWpE02eNjbgqnDpTsfmXFMt4l5OYgZwJJ7DlaZqm+/yO8RPMd+EzwtNzg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/css-win32-x64-msvc": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@parcel/css-win32-x64-msvc/-/css-win32-x64-msvc-1.8.3.tgz",
+ "integrity": "sha512-vnHUdzIVjqONa5ALFzMJ3ZHt6NiaYTHW/lqzP+AR4l+bq+UTXD2Q75/RgirY5NYwdfy1VPy/jI82jAtLOCymkw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/diagnostic": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.5.0.tgz",
+ "integrity": "sha512-KiMGGRpEV7wl5gjcxBKcgX84a+cG+IEn94gwy5LK3lENR09nuKShqqgKGAmj/17CobJgw1QNP94/H4Md+oxIWg==",
+ "dev": true,
+ "dependencies": {
+ "@mischnic/json-sourcemap": "^0.1.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/events": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.5.0.tgz",
+ "integrity": "sha512-Gc2LPwL1H34Ony5MENbKZg7wvCscZ4x9y7Fu92sfbdWpLo3K13hVtsX3TMIIgYt3B7R7OmO8yR880U2T+JfVkQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/fs": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.5.0.tgz",
+ "integrity": "sha512-YYr14BWtx/bJ+hu6PPQQ6G/3omOTWgVqEw+UFI3iQH3P6+e0LRXW/Ja1yAcJeepGcTwIP0opnXZBQOm8PBQ2SA==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/fs-search": "2.5.0",
+ "@parcel/types": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "@parcel/watcher": "^2.0.0",
+ "@parcel/workers": "2.5.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "peerDependencies": {
+ "@parcel/core": "^2.5.0"
+ }
+ },
+ "node_modules/@parcel/fs-search": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/fs-search/-/fs-search-2.5.0.tgz",
+ "integrity": "sha512-uBONkz9ZCNSOqbPGWJY3MNl+pqBTfvzHH9+4UhzHEHPArvK2oD0+syYPVE60+zGrxybXTESYMCJp4bHvH6Z2hA==",
+ "dev": true,
+ "dependencies": {
+ "detect-libc": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/graph": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-2.5.0.tgz",
+ "integrity": "sha512-qa2VtG08dJyTaWrxYAkMIlkoDRSPoiqLDNxxHKplkcxAjXBUw0/AkWaz82VO5r1G6jfOj+nM30ajH9uygZYwbw==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/utils": "2.5.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/hash": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/hash/-/hash-2.5.0.tgz",
+ "integrity": "sha512-47JL0XpB7UvIW6Ijf8vv+yVMt9dLvB/lRlBHFmAkmovisueVMVbYD7smxVZnCSehD8UH8BcymKbMzyL5dimgoQ==",
+ "dev": true,
+ "dependencies": {
+ "detect-libc": "^1.0.3",
+ "xxhash-wasm": "^0.4.2"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/logger": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.5.0.tgz",
+ "integrity": "sha512-pT1L3ceH6trL1N3I3r2HawPjz/PCubOo/Kazu7IeXsMsKVjj1a6AeieZHzkNZIbhiGPtm/cHbBNLz2zTWDLeOA==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/events": "2.5.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/markdown-ansi": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.5.0.tgz",
+ "integrity": "sha512-ixkNF3KWIqxMlfxTe9Gb2cp/uNmklQev8VEUxujMVxmUfGyQs4859zdJIQlIinabWYhArhsXATkVf3MzCUN6TQ==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.1.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/namer-default": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.5.0.tgz",
+ "integrity": "sha512-ahGQqHJzsWE5Qux8zXMAU+lyNBOl+ZpcOFzRGE2DWOsmAlytsHl7DBVCQvzUyNBFg1/HmIj+7D4efv2kjR7rTg==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/node-resolver-core": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-2.5.0.tgz",
+ "integrity": "sha512-XQvpguiIwQcu75cscLDFOVhjsjuPzXbuMaaZ7XxxUEl0PscIgu/GfKYxTfTruN3cRl+CaQH6qBAMfjLaFng6lQ==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/optimizer-css": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.5.0.tgz",
+ "integrity": "sha512-J00bLF+4SsnKc+YbYrNuBr44/zz3cg++CoXteXhH27PxP1rScGQx36Rui8WORgil5mlX2VYN79DuqJC7V3Ynbg==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/css": "^1.8.1",
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "@parcel/source-map": "^2.0.0",
+ "@parcel/utils": "2.5.0",
+ "browserslist": "^4.6.6",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/optimizer-htmlnano": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.5.0.tgz",
+ "integrity": "sha512-Fr0zPqgxoNaOVdROAjNGDWCts3+wByNQ82Mxhu8Tzc25A2cPjcr1H2sa/TE3hf79c92DxdKf2FaC1ZOgR5YPdg==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/plugin": "2.5.0",
+ "htmlnano": "^2.0.0",
+ "nullthrows": "^1.1.1",
+ "posthtml": "^0.16.5",
+ "svgo": "^2.4.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/optimizer-image": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.5.0.tgz",
+ "integrity": "sha512-nbo2pdnAt21WLGjzTpsE8ZEL0xNoP7c3wBj9y70Pysmasg1SrRVCbfE8jTy+lHBQwq2yjC6lV/Usv+9lfA7S/w==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "@parcel/workers": "2.5.0",
+ "detect-libc": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/optimizer-svgo": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.5.0.tgz",
+ "integrity": "sha512-pgZqwU0RLc/wr4WcQY/W1GJmddnEANDEpz1mdppUOqBz1EfTQ7zh5NgUA3hV1i05Hbecp3mHSvXJPV0mhNOl5Q==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "svgo": "^2.4.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/optimizer-terser": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/optimizer-terser/-/optimizer-terser-2.5.0.tgz",
+ "integrity": "sha512-PZ3UHBGfjE49/Jloopsd38Hxg4qzsrdepWP53mCuVP7Aw605Y4QtYuB1ho3VV0oXfKQVq+uI7lVIBsuW4K6vqA==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "@parcel/source-map": "^2.0.0",
+ "@parcel/utils": "2.5.0",
+ "nullthrows": "^1.1.1",
+ "terser": "^5.2.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/package-manager": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.5.0.tgz",
+ "integrity": "sha512-zTuF55/lITUjw9dUU/X0HiF++589xbPXw/zUiG9T6s8BQThLvrxAhYP89S719pw7cTqDimGkTxnIuK+a0djEkg==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/fs": "2.5.0",
+ "@parcel/logger": "2.5.0",
+ "@parcel/types": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "@parcel/workers": "2.5.0",
+ "semver": "^5.7.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "peerDependencies": {
+ "@parcel/core": "^2.5.0"
+ }
+ },
+ "node_modules/@parcel/packager-css": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.5.0.tgz",
+ "integrity": "sha512-c0mGBFdVSPhAxaX3+zN8KEIqOOUhkIPKbZex1pnGYfy03Qe2/Mb4nyt5DAGlw9gjka1UCHIN/wszLmKC8YyUeg==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/source-map": "^2.0.0",
+ "@parcel/utils": "2.5.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/packager-html": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.5.0.tgz",
+ "integrity": "sha512-ZFGUPRMWKrm8kQHdkEJ5S22C05qpSymx+o+57EfuNjCrGyj3M59WyGYYXYJ175bFYZ/jp5yy+VxMh6fZefe+Pw==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/types": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "nullthrows": "^1.1.1",
+ "posthtml": "^0.16.5"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/packager-js": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.5.0.tgz",
+ "integrity": "sha512-aJAKOTgXdxO3V9O7+2DCVOtne128WwXmUAOVThnMRo7f3zMVSAR7Mxc9pEsuTzPfj8UBXgFBRfdJUSCgsMxiSw==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/hash": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "@parcel/source-map": "^2.0.0",
+ "@parcel/utils": "2.5.0",
+ "globals": "^13.2.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/packager-raw": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.5.0.tgz",
+ "integrity": "sha512-aHV0oogeiqxhxS1lsttw15EvG3DDWK3FV7+F+7hoaAy+xg89K56NTp6j43Jtw9iyU1/HnZRGBE2hF3C7N73oKw==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/plugin": "2.5.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/packager-svg": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.5.0.tgz",
+ "integrity": "sha512-XSMFn30K/kpjcPpQqt88GmPJsNUSVL3RNeigXkIAcLpfO6Tb2eV4iOt4yVCagaDrRJ19alXut0TxjMm5bm41/g==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/types": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "posthtml": "^0.16.4"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/packager-webextension": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/packager-webextension/-/packager-webextension-2.5.0.tgz",
+ "integrity": "sha512-70ofhs83a/iZ3bq1T4qQiVoZEbR4aQmc/svAinNEJ5GHdur9/rCTDM6pPG8xwrQx6I2b8y8knRe3uC1B6BH6nQ==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/plugin": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.5.0.tgz",
+ "integrity": "sha512-obtb6/Gql6YFQ86bdv75A2Noabx8679reFZeyfKKf0L7Lppx4DFQetXwM9XVy7Gx6hJ1Ekm3UMuuIyVJk33YHQ==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/types": "2.5.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/reporter-cli": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.5.0.tgz",
+ "integrity": "sha512-miJt2YbRJBmYSVeoUWUj8YL85Pwj1CmGQB0/btqhulGLH/Fvkbv6T4sJ4gl4l5xIt9mJQsZ70pOWwa8BId3rWw==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/types": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "chalk": "^4.1.0",
+ "term-size": "^2.2.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/reporter-dev-server": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.5.0.tgz",
+ "integrity": "sha512-wvxAiW42AxJ3B8jtvowJcP4/cTV8zY48SfKg61YKYu1yUO+TtyJIjHQzDW2XuT34cIGFY97Gr0i+AVu44RyUuQ==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/resolver-default": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.5.0.tgz",
+ "integrity": "sha512-39PkZpVr/+iYS11u+lA84vIsKm/yisltTVmUjlYsDnExiuV1c8OSbSdYZ3JMx+7CYPE0bWbosX2AGilIwIMWpQ==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/node-resolver-core": "2.5.0",
+ "@parcel/plugin": "2.5.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/runtime-browser-hmr": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.5.0.tgz",
+ "integrity": "sha512-oPAo8Zf06gXCpt41nyvK7kv2HH1RrHAGgOqttyjStwAFlm5MZKs7BgtJzO58LfJN8g3sMY0cNdG17fB/4f8q6Q==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/runtime-js": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.5.0.tgz",
+ "integrity": "sha512-gPC2PbNAiooULP71wF5twe4raekuXsR1Hw/ahITDoqsZdXHzG3CkoCjYL3CkmBGiKQgMMocCyN1E2oBzAH8Kyw==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/runtime-react-refresh": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.5.0.tgz",
+ "integrity": "sha512-+8RuDKFdFYIQTrXG4MRhG9XqkkYEHn0zxKyOJ/IkDDfSEhY0na+EyhrneFUwIvDX63gLPkxceXAg0gwBqXPK/Q==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "react-refresh": "^0.9.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/runtime-service-worker": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.5.0.tgz",
+ "integrity": "sha512-STuDlU0fPXeWpAmbayY7o04F0eHy6FTOFeT5KQ0PTxtdEa3Ey8QInP/NVE52Yv0aVQtesWukGrNEFCERlkbFRw==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/runtime-webextension": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/runtime-webextension/-/runtime-webextension-2.5.0.tgz",
+ "integrity": "sha512-WaLxOccP+Q8YQnhaFt4T1iFQkUHvNfi3phrDikURsWXusfq/l7+Cmb4JSmGX4Hcm51827zO4YAf7k3geuKvKrA==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/source-map": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.0.2.tgz",
+ "integrity": "sha512-NnUrPYLpYB6qyx2v6bcRPn/gVigmGG6M6xL8wIg/i0dP1GLkuY1nf+Hqdf63FzPTqqT7K3k6eE5yHPQVMO5jcA==",
+ "dev": true,
+ "dependencies": {
+ "detect-libc": "^1.0.3"
+ },
+ "engines": {
+ "node": "^12.18.3 || >=14"
+ }
+ },
+ "node_modules/@parcel/transformer-babel": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.5.0.tgz",
+ "integrity": "sha512-EFb866C9jCoBHIcebWF7goAcYj1wkObx0GDxshlazFtvym1RM27xSWWjRYyqb5+HNOxB3voaNvQOVjcD+DXjCA==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "@parcel/source-map": "^2.0.0",
+ "@parcel/utils": "2.5.0",
+ "browserslist": "^4.6.6",
+ "json5": "^2.2.0",
+ "nullthrows": "^1.1.1",
+ "semver": "^5.7.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/transformer-css": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.5.0.tgz",
+ "integrity": "sha512-p8FOvKWWSbS6H8PbD9a0KZqyaKNpSD2BUTzSRYnNj3TBUv7/ZXaP6Om295XTQ/MPht1o7XTQzvfpF/7yEhr02Q==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/css": "^1.8.1",
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "@parcel/source-map": "^2.0.0",
+ "@parcel/utils": "2.5.0",
+ "browserslist": "^4.6.6",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/transformer-html": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.5.0.tgz",
+ "integrity": "sha512-iEjNyAF0wQmY3DMw7FS+UzoOMng76UsSngh+WWA1E5lv5XyqrP8Mk2QLTJp1nWetUhSLhZr58LGmPYBTB4l9ZQ==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/hash": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "nullthrows": "^1.1.1",
+ "posthtml": "^0.16.5",
+ "posthtml-parser": "^0.10.1",
+ "posthtml-render": "^3.0.0",
+ "semver": "^5.7.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/transformer-image": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.5.0.tgz",
+ "integrity": "sha512-vVEXTHZl8m/9yopgK0dWHLOQX2zOnghq6pZnWdWVG6fsvXZln7kP1YN5iwWDoADQYkiKzP+Ymn6UwP9pZpHFzA==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/workers": "2.5.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "peerDependencies": {
+ "@parcel/core": "^2.5.0"
+ }
+ },
+ "node_modules/@parcel/transformer-js": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.5.0.tgz",
+ "integrity": "sha512-Cp8Ic+Au3OcskCRZszmo47z3bqcZ7rfPv2xZYXpXY2TzEc3IV0bKje57bZektoY8LW9LkYM9iBO/WhkVoT6LIg==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "@parcel/source-map": "^2.0.0",
+ "@parcel/utils": "2.5.0",
+ "@parcel/workers": "2.5.0",
+ "@swc/helpers": "^0.3.6",
+ "browserslist": "^4.6.6",
+ "detect-libc": "^1.0.3",
+ "nullthrows": "^1.1.1",
+ "regenerator-runtime": "^0.13.7",
+ "semver": "^5.7.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "peerDependencies": {
+ "@parcel/core": "^2.5.0"
+ }
+ },
+ "node_modules/@parcel/transformer-json": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.5.0.tgz",
+ "integrity": "sha512-661sByA7TkR6Lmxt+hqV4h2SAt+7lgc58DzmUYArpEl1fQnMuQuaB0kQeHzi6fDD2+2G6o7EC+DuwBZKa479TA==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/plugin": "2.5.0",
+ "json5": "^2.2.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/transformer-postcss": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.5.0.tgz",
+ "integrity": "sha512-IPNlWElekdQHMTBqhdwJNBCQomuYyo7xgNBdnTrt9VJ+R5ihy6n7ZJSWIAJXAH9VZxETTtunfrzRtgkmtjTeZQ==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/hash": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "clone": "^2.1.1",
+ "nullthrows": "^1.1.1",
+ "postcss-value-parser": "^4.2.0",
+ "semver": "^5.7.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/transformer-posthtml": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.5.0.tgz",
+ "integrity": "sha512-AZxg1XD8OXOS4bEGEmBBR+X9T9qoFdVsbVUg498zzejYSka1ZQHF7TgLI/+pUnE+ZVYNIp7/G0xXqsRVKMKmdQ==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "nullthrows": "^1.1.1",
+ "posthtml": "^0.16.5",
+ "posthtml-parser": "^0.10.1",
+ "posthtml-render": "^3.0.0",
+ "semver": "^5.7.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/transformer-raw": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.5.0.tgz",
+ "integrity": "sha512-I3zjE1u9+Wj90Qqs1V2FTm6iC6SAyOVUthwVZkZey+qbQG/ok682Ez2XjLu7MyQCo9BJNwF/nfOa1hHr3MaJEQ==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/plugin": "2.5.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/transformer-react-refresh-wrap": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.5.0.tgz",
+ "integrity": "sha512-VPqVBxhTN4OQwcjsdyxrv+smjAm4s6dbSWAplgPwdOITMv+a0tjhhJU37WnRC+xxTrbEqRcOt96JvGOkPb8i7g==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "react-refresh": "^0.9.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/transformer-svg": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.5.0.tgz",
+ "integrity": "sha512-zCGJcrCpICFe0Q/dgjQZfW7sYFkbJEC7NGT4zEJnMo8Cm/kq8Qh6+2ApX6c+vv5Q0WZn5Ic+N0OvxIMkvgdC/w==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/hash": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "nullthrows": "^1.1.1",
+ "posthtml": "^0.16.5",
+ "posthtml-parser": "^0.10.1",
+ "posthtml-render": "^3.0.0",
+ "semver": "^5.7.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/transformer-webextension": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-webextension/-/transformer-webextension-2.5.0.tgz",
+ "integrity": "sha512-rS469xp7iigGDd69JTO+NECyv0sMXwoTmkiGNgtfn3ffSrMu/pqa4koGkYV0uflaa61BRpBXjWI2LhRrZ/IwGA==",
+ "dev": true,
+ "dependencies": {
+ "@mischnic/json-sourcemap": "^0.1.0",
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "content-security-policy-parser": "^0.3.0"
+ },
+ "engines": {
+ "parcel": "^2.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/types": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.5.0.tgz",
+ "integrity": "sha512-bA0fhG6aXSGYEVo5Dt96x6lseUQHeVZVzgmiRdZsvb614Gvx22ItfaKhPmAVbM9vzbObZDHl9l9G2Ovw8Xve4g==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/cache": "2.5.0",
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/fs": "2.5.0",
+ "@parcel/package-manager": "2.5.0",
+ "@parcel/source-map": "^2.0.0",
+ "@parcel/workers": "2.5.0",
+ "utility-types": "^3.10.0"
+ }
+ },
+ "node_modules/@parcel/utils": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.5.0.tgz",
+ "integrity": "sha512-kaLGXtQuOOH55KZqXdYDvczhh3mk2eeTVqrrXuuihGjbLKYFlUW2tFDm+5r2s9nCPwTQxOO43ZEOCKSnia+e4w==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/codeframe": "2.5.0",
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/hash": "2.5.0",
+ "@parcel/logger": "2.5.0",
+ "@parcel/markdown-ansi": "2.5.0",
+ "@parcel/source-map": "^2.0.0",
+ "chalk": "^4.1.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.5.tgz",
+ "integrity": "sha512-x0hUbjv891omnkcHD7ZOhiyyUqUUR6MNjq89JhEI3BxppeKWAm6NPQsqqRrAkCJBogdT/o/My21sXtTI9rJIsw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "dependencies": {
+ "node-addon-api": "^3.2.1",
+ "node-gyp-build": "^4.3.0"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/workers": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.5.0.tgz",
+ "integrity": "sha512-/Ow5OKJWs+9OzV3Jy4J++VnbNx0j3ls/M1CGVBLiBWyCada9DMtquYoBQ4Sk6Uam50BKkIFYetGOeXPNQyyMjg==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/logger": "2.5.0",
+ "@parcel/types": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "chrome-trace-event": "^1.0.2",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "peerDependencies": {
+ "@parcel/core": "^2.5.0"
+ }
+ },
+ "node_modules/@swc/helpers": {
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.3.13.tgz",
+ "integrity": "sha512-A1wswJhnqaLRn8uYVQ8YiNTtY5i/JIPmV08EXXjjTresIkUVUEUaFv/wXVhGXfRNYMvHPkuoMR1Nb6NgpxGjNg==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@trysound/sax": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz",
+ "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/@types/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
+ "dev": true
+ },
+ "node_modules/@types/webextension-polyfill": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/@types/webextension-polyfill/-/webextension-polyfill-0.8.3.tgz",
+ "integrity": "sha512-GN+Hjzy9mXjWoXKmaicTegv3FJ0WFZ3aYz77Wk8TMp1IY3vEzvzj1vnsa0ggV7vMI1i+PUxe4qqnIJKCzf9aTg==",
+ "dev": true
+ },
+ "node_modules/abortcontroller-polyfill": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.3.tgz",
+ "integrity": "sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q==",
+ "dev": true
+ },
+ "node_modules/acorn": {
+ "version": "8.7.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz",
+ "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==",
+ "dev": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/base-x": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
+ "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
+ "dev": true,
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
+ "dev": true
+ },
+ "node_modules/browserslist": {
+ "version": "4.20.3",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz",
+ "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ }
+ ],
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001332",
+ "electron-to-chromium": "^1.4.118",
+ "escalade": "^3.1.1",
+ "node-releases": "^2.0.3",
+ "picocolors": "^1.0.0"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "dev": true
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001341",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001341.tgz",
+ "integrity": "sha512-2SodVrFFtvGENGCv0ChVJIDQ0KPaS1cg7/qtfMaICgeMolDdo/Z2OD32F0Aq9yl6F4YFwGPBS5AaPqNYiW4PoA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ }
+ ]
+ },
+ "node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/chrome-trace-event": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
+ "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
+ "node_modules/clone": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/content-security-policy-parser": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/content-security-policy-parser/-/content-security-policy-parser-0.3.0.tgz",
+ "integrity": "sha512-ub90B4t9EfDPv3DCH7vEwGe4tVMkSm4Ow1HsmvmEQwinDfpTEDmkuJVa5WpzHDTt2bUirNRZuzL6S0msASlJhg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/cosmiconfig": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz",
+ "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.2.1",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.10.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/css-select": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
+ "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
+ "dev": true,
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.0.1",
+ "domhandler": "^4.3.1",
+ "domutils": "^2.8.0",
+ "nth-check": "^2.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/css-tree": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz",
+ "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
+ "dev": true,
+ "dependencies": {
+ "mdn-data": "2.0.14",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/css-what": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/csso": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz",
+ "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==",
+ "dev": true,
+ "dependencies": {
+ "css-tree": "^1.1.2"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
+ "dev": true,
+ "bin": {
+ "detect-libc": "bin/detect-libc.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/dom-serializer": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+ "dev": true,
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.0",
+ "entities": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+ }
+ },
+ "node_modules/dom-serializer/node_modules/entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ]
+ },
+ "node_modules/domhandler": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+ "dev": true,
+ "dependencies": {
+ "domelementtype": "^2.2.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domhandler?sponsor=1"
+ }
+ },
+ "node_modules/domutils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+ "dev": true,
+ "dependencies": {
+ "dom-serializer": "^1.0.1",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domutils?sponsor=1"
+ }
+ },
+ "node_modules/dotenv": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-7.0.0.tgz",
+ "integrity": "sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/dotenv-expand": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz",
+ "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==",
+ "dev": true
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.4.137",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz",
+ "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==",
+ "dev": true
+ },
+ "node_modules/entities": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
+ "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/get-port": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz",
+ "integrity": "sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/globals": {
+ "version": "13.15.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz",
+ "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/htmlnano": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/htmlnano/-/htmlnano-2.0.2.tgz",
+ "integrity": "sha512-+ZrQFS4Ub+zd+/fWwfvoYCEGNEa0/zrpys6CyXxvZDwtL7Pl+pOtRkiujyvBQ7Lmfp7/iEPxtOFgxWA16Gkj3w==",
+ "dev": true,
+ "dependencies": {
+ "cosmiconfig": "^7.0.1",
+ "posthtml": "^0.16.5",
+ "timsort": "^0.3.0"
+ },
+ "peerDependencies": {
+ "cssnano": "^5.0.11",
+ "postcss": "^8.3.11",
+ "purgecss": "^4.0.3",
+ "relateurl": "^0.2.7",
+ "srcset": "^5.0.0",
+ "svgo": "^2.8.0",
+ "terser": "^5.10.0",
+ "uncss": "^0.17.3"
+ },
+ "peerDependenciesMeta": {
+ "cssnano": {
+ "optional": true
+ },
+ "postcss": {
+ "optional": true
+ },
+ "purgecss": {
+ "optional": true
+ },
+ "relateurl": {
+ "optional": true
+ },
+ "srcset": {
+ "optional": true
+ },
+ "svgo": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ },
+ "uncss": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/htmlparser2": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz",
+ "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==",
+ "dev": true,
+ "funding": [
+ "https://github.com/fb55/htmlparser2?sponsor=1",
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.2",
+ "domutils": "^2.8.0",
+ "entities": "^3.0.1"
+ }
+ },
+ "node_modules/import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dev": true,
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "node_modules/is-json": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz",
+ "integrity": "sha1-a+Fm0USCihMdaGiRuYPfYsOUkf8=",
+ "dev": true
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
+ },
+ "node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true
+ },
+ "node_modules/json5": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
+ "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
+ "dev": true,
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true
+ },
+ "node_modules/lmdb": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.2.4.tgz",
+ "integrity": "sha512-gto+BB2uEob8qRiTlOq+R3uX0YNHsX9mjxj9Sbdue/LIKqu6IlZjrsjKeGyOMquc/474GEqFyX2pdytpydp0rQ==",
+ "dev": true,
+ "hasInstallScript": true,
+ "dependencies": {
+ "msgpackr": "^1.5.4",
+ "nan": "^2.14.2",
+ "node-gyp-build": "^4.2.3",
+ "ordered-binary": "^1.2.4",
+ "weak-lru-cache": "^1.2.2"
+ }
+ },
+ "node_modules/lodash.sortby": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
+ "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
+ "dev": true
+ },
+ "node_modules/mdn-data": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
+ "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==",
+ "dev": true
+ },
+ "node_modules/msgpackr": {
+ "version": "1.5.7",
+ "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.5.7.tgz",
+ "integrity": "sha512-Hsa80i8W4BiObSMHslfnwC+CC1CYHZzoXJZn0+3EvoCEOgt3c5QlXhdcjgFk2aZxMgpV8aUFZqJyQUCIp4UrzA==",
+ "dev": true,
+ "optionalDependencies": {
+ "msgpackr-extract": "^1.1.4"
+ }
+ },
+ "node_modules/msgpackr-extract": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-1.1.4.tgz",
+ "integrity": "sha512-WQbHvsThprXh+EqZYy+SQFEs7z6bNM7a0vgirwUfwUcphWGT2mdPcpyLCNiRsN6w5q5VKJUMblHY+tNEyceb9Q==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "dependencies": {
+ "node-gyp-build-optional-packages": "^4.3.2"
+ },
+ "optionalDependencies": {
+ "msgpackr-extract-darwin-arm64": "1.1.0",
+ "msgpackr-extract-darwin-x64": "1.1.0",
+ "msgpackr-extract-linux-arm": "1.1.0",
+ "msgpackr-extract-linux-arm64": "1.1.0",
+ "msgpackr-extract-linux-x64": "1.1.0",
+ "msgpackr-extract-win32-x64": "1.1.0"
+ }
+ },
+ "node_modules/msgpackr-extract-darwin-arm64": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-1.1.0.tgz",
+ "integrity": "sha512-s1kHoT12tS2cCQOv+Wl3I+/cYNJXBPtwQqGA+dPYoXmchhXiE0Nso+BIfvQ5PxbmAyjj54Q5o7PnLTqVquNfZA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/msgpackr-extract-darwin-x64": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-1.1.0.tgz",
+ "integrity": "sha512-yx/H/i12IKg4eWGu/eKdKzJD4jaYvvujQSaVmeOMCesbSQnWo5X6YR9TFjoiNoU9Aexk1KufzL9gW+1DozG1yw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/msgpackr-extract-linux-arm": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-1.1.0.tgz",
+ "integrity": "sha512-0VvSCqi12xpavxl14gMrauwIzHqHbmSChUijy/uo3mpjB1Pk4vlisKpZsaOZvNJyNKj0ACi5jYtbWnnOd7hYGw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/msgpackr-extract-linux-arm64": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-1.1.0.tgz",
+ "integrity": "sha512-AxFle3fHNwz2V4CYDIGFxI6o/ZuI0lBKg0uHI8EcCMUmDE5mVAUWYge5WXmORVvb8sVWyVgFlmi3MTu4Ve6tNQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/msgpackr-extract-linux-x64": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-1.1.0.tgz",
+ "integrity": "sha512-O+XoyNFWpdB8oQL6O/YyzffPpmG5rTNrr1nKLW70HD2ENJUhcITzbV7eZimHPzkn8LAGls1tBaMTHQezTBpFOw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/msgpackr-extract-win32-x64": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-1.1.0.tgz",
+ "integrity": "sha512-6AJdM5rNsL4yrskRfhujVSPEd6IBpgvsnIT/TPowKNLQ62iIdryizPY2PJNFiW3AJcY249AHEiDBXS1cTDPxzA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/nan": {
+ "version": "2.15.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz",
+ "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==",
+ "dev": true
+ },
+ "node_modules/node-addon-api": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz",
+ "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==",
+ "dev": true
+ },
+ "node_modules/node-gyp-build": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz",
+ "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==",
+ "dev": true,
+ "bin": {
+ "node-gyp-build": "bin.js",
+ "node-gyp-build-optional": "optional.js",
+ "node-gyp-build-test": "build-test.js"
+ }
+ },
+ "node_modules/node-gyp-build-optional-packages": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-4.3.2.tgz",
+ "integrity": "sha512-P5Ep3ISdmwcCkZIaBaQamQtWAG0facC89phWZgi5Z3hBU//J6S48OIvyZWSPPf6yQMklLZiqoosWAZUj7N+esA==",
+ "dev": true,
+ "optional": true,
+ "bin": {
+ "node-gyp-build-optional": "optional.js",
+ "node-gyp-build-optional-packages": "bin.js",
+ "node-gyp-build-test": "build-test.js"
+ }
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz",
+ "integrity": "sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==",
+ "dev": true
+ },
+ "node_modules/nth-check": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz",
+ "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==",
+ "dev": true,
+ "dependencies": {
+ "boolbase": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/nth-check?sponsor=1"
+ }
+ },
+ "node_modules/nullthrows": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz",
+ "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==",
+ "dev": true
+ },
+ "node_modules/ordered-binary": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.2.5.tgz",
+ "integrity": "sha512-djRmZoEpOGvIRW7ufsCDHtvcUa18UC9TxnPbHhSVFZHsoyg0dtut1bWtBZ/fmxdPN62oWXrV6adM7NoWU+CneA==",
+ "dev": true
+ },
+ "node_modules/parcel": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/parcel/-/parcel-2.5.0.tgz",
+ "integrity": "sha512-er0mj/BaMjWyzQ/jedLUi/LNAuQcFT8lCvoNqANF+jTaX9rohaBwxIvKVJVAZgyCnmyfbbldp496wPMW0R0+CA==",
+ "dev": true,
+ "dependencies": {
+ "@parcel/config-default": "2.5.0",
+ "@parcel/core": "2.5.0",
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/events": "2.5.0",
+ "@parcel/fs": "2.5.0",
+ "@parcel/logger": "2.5.0",
+ "@parcel/package-manager": "2.5.0",
+ "@parcel/reporter-cli": "2.5.0",
+ "@parcel/reporter-dev-server": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "chalk": "^4.1.0",
+ "commander": "^7.0.0",
+ "get-port": "^4.2.0",
+ "v8-compile-cache": "^2.0.0"
+ },
+ "bin": {
+ "parcel": "lib/bin.js"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "dev": true
+ },
+ "node_modules/postcss-value-parser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+ "dev": true
+ },
+ "node_modules/posthtml": {
+ "version": "0.16.6",
+ "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz",
+ "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==",
+ "dev": true,
+ "dependencies": {
+ "posthtml-parser": "^0.11.0",
+ "posthtml-render": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/posthtml-parser": {
+ "version": "0.10.2",
+ "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.10.2.tgz",
+ "integrity": "sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==",
+ "dev": true,
+ "dependencies": {
+ "htmlparser2": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/posthtml-render": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz",
+ "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==",
+ "dev": true,
+ "dependencies": {
+ "is-json": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/posthtml/node_modules/posthtml-parser": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz",
+ "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==",
+ "dev": true,
+ "dependencies": {
+ "htmlparser2": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/prettier": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz",
+ "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==",
+ "dev": true,
+ "bin": {
+ "prettier": "bin-prettier.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/react-refresh": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.9.0.tgz",
+ "integrity": "sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/regenerator-runtime": {
+ "version": "0.13.9",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
+ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
+ "dev": true
+ },
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-support": {
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+ "dev": true,
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/stable": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz",
+ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==",
+ "dev": true
+ },
+ "node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/svgo": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz",
+ "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==",
+ "dev": true,
+ "dependencies": {
+ "@trysound/sax": "0.2.0",
+ "commander": "^7.2.0",
+ "css-select": "^4.1.3",
+ "css-tree": "^1.1.3",
+ "csso": "^4.2.0",
+ "picocolors": "^1.0.0",
+ "stable": "^0.1.8"
+ },
+ "bin": {
+ "svgo": "bin/svgo"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/term-size": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz",
+ "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/terser": {
+ "version": "5.13.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.13.1.tgz",
+ "integrity": "sha512-hn4WKOfwnwbYfe48NgrQjqNOH9jzLqRcIfbYytOXCOv46LBfWr9bDS17MQqOi+BWGD0sJK3Sj5NC/gJjiojaoA==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^8.5.0",
+ "commander": "^2.20.0",
+ "source-map": "~0.8.0-beta.0",
+ "source-map-support": "~0.5.20"
+ },
+ "bin": {
+ "terser": "bin/terser"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/terser/node_modules/commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true
+ },
+ "node_modules/terser/node_modules/source-map": {
+ "version": "0.8.0-beta.0",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz",
+ "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==",
+ "dev": true,
+ "dependencies": {
+ "whatwg-url": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/timsort": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz",
+ "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
+ "dev": true
+ },
+ "node_modules/tr46": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
+ "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=",
+ "dev": true,
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
+ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==",
+ "dev": true
+ },
+ "node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/typescript": {
+ "version": "4.6.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz",
+ "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==",
+ "dev": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=4.2.0"
+ }
+ },
+ "node_modules/utility-types": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz",
+ "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/v8-compile-cache": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
+ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
+ "dev": true
+ },
+ "node_modules/weak-lru-cache": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz",
+ "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==",
+ "dev": true
+ },
+ "node_modules/webextension-polyfill": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/webextension-polyfill/-/webextension-polyfill-0.9.0.tgz",
+ "integrity": "sha512-LTtHb0yR49xa9irkstDxba4GATDAcDw3ncnFH9RImoFwDlW47U95ME5sn5IiQX2ghfaECaf6xyXM8yvClIBkkw==",
+ "dev": true
+ },
+ "node_modules/webidl-conversions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
+ "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
+ "dev": true
+ },
+ "node_modules/whatwg-url": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
+ "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
+ "dev": true,
+ "dependencies": {
+ "lodash.sortby": "^4.7.0",
+ "tr46": "^1.0.1",
+ "webidl-conversions": "^4.0.2"
+ }
+ },
+ "node_modules/xxhash-wasm": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-0.4.2.tgz",
+ "integrity": "sha512-/eyHVRJQCirEkSZ1agRSCwriMhwlyUcFkXD5TPVSLP+IPzjsqMVzZwdoczLp1SoQU0R3dxz1RpIK+4YNQbCVOA==",
+ "dev": true
+ },
+ "node_modules/yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ }
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz",
+ "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.16.7"
+ }
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz",
+ "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==",
+ "dev": true
+ },
+ "@babel/highlight": {
+ "version": "7.17.9",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz",
+ "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.16.7",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "@lezer/common": {
+ "version": "0.15.12",
+ "resolved": "https://registry.npmjs.org/@lezer/common/-/common-0.15.12.tgz",
+ "integrity": "sha512-edfwCxNLnzq5pBA/yaIhwJ3U3Kz8VAUOTRg0hhxaizaI1N+qxV7EXDv/kLCkLeq2RzSFvxexlaj5Mzfn2kY0Ig==",
+ "dev": true
+ },
+ "@lezer/lr": {
+ "version": "0.15.8",
+ "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-0.15.8.tgz",
+ "integrity": "sha512-bM6oE6VQZ6hIFxDNKk8bKPa14hqFrV07J/vHGOeiAbJReIaQXmkVb6xQu4MR+JBTLa5arGRyAAjJe1qaQt3Uvg==",
+ "dev": true,
+ "requires": {
+ "@lezer/common": "^0.15.0"
+ }
+ },
+ "@mischnic/json-sourcemap": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.0.tgz",
+ "integrity": "sha512-dQb3QnfNqmQNYA4nFSN/uLaByIic58gOXq4Y4XqLOWmOrw73KmJPt/HLyG0wvn1bnR6mBKs/Uwvkh+Hns1T0XA==",
+ "dev": true,
+ "requires": {
+ "@lezer/common": "^0.15.7",
+ "@lezer/lr": "^0.15.4",
+ "json5": "^2.2.1"
+ }
+ },
+ "@parcel/bundler-default": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.5.0.tgz",
+ "integrity": "sha512-7CJzE17SirCXjcRgBcnqWO/5EOA1raq/3OIKtT4cxbjpDQGHZpjpEEZiMNRpEpdNMxDSlsG8mAkXTYGL2VVWRw==",
+ "dev": true,
+ "requires": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/hash": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "@parcel/cache": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.5.0.tgz",
+ "integrity": "sha512-3kOO3cZQv0FAKhrMHGLdb4Qtzpmy78Q6jPN3u8eCY4yqeDTnyQBZvWNHoyCm5WlmL8y6Q6REYMbETLxSH1ggAQ==",
+ "dev": true,
+ "requires": {
+ "@parcel/fs": "2.5.0",
+ "@parcel/logger": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "lmdb": "2.2.4"
+ }
+ },
+ "@parcel/codeframe": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.5.0.tgz",
+ "integrity": "sha512-qafqL8Vu2kr932cCWESoDEEoAeKVi7/xdzTBuhzEJng1AfmRT0rCbt/P4ao3RjiDyozPSjXsHOqM6GDZcto4eQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.1.0"
+ }
+ },
+ "@parcel/compressor-raw": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.5.0.tgz",
+ "integrity": "sha512-I5Zs+2f1ue4sTPdfT8BNsLfTZl48sMWLk2Io3elUJjH/SS9kO7ut5ChkuJtt77ZS35m0OF+ZCt3ICTJdnDG8eA==",
+ "dev": true,
+ "requires": {
+ "@parcel/plugin": "2.5.0"
+ }
+ },
+ "@parcel/config-default": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.5.0.tgz",
+ "integrity": "sha512-r30V61958SONvP9I8KV8s44ZOFq0H219VyFjPysraSabHjZ+KMaCTQOuqaDtUMa272sHUQkBcZxKYj5jYPJlZg==",
+ "dev": true,
+ "requires": {
+ "@parcel/bundler-default": "2.5.0",
+ "@parcel/compressor-raw": "2.5.0",
+ "@parcel/namer-default": "2.5.0",
+ "@parcel/optimizer-css": "2.5.0",
+ "@parcel/optimizer-htmlnano": "2.5.0",
+ "@parcel/optimizer-image": "2.5.0",
+ "@parcel/optimizer-svgo": "2.5.0",
+ "@parcel/optimizer-terser": "2.5.0",
+ "@parcel/packager-css": "2.5.0",
+ "@parcel/packager-html": "2.5.0",
+ "@parcel/packager-js": "2.5.0",
+ "@parcel/packager-raw": "2.5.0",
+ "@parcel/packager-svg": "2.5.0",
+ "@parcel/reporter-dev-server": "2.5.0",
+ "@parcel/resolver-default": "2.5.0",
+ "@parcel/runtime-browser-hmr": "2.5.0",
+ "@parcel/runtime-js": "2.5.0",
+ "@parcel/runtime-react-refresh": "2.5.0",
+ "@parcel/runtime-service-worker": "2.5.0",
+ "@parcel/transformer-babel": "2.5.0",
+ "@parcel/transformer-css": "2.5.0",
+ "@parcel/transformer-html": "2.5.0",
+ "@parcel/transformer-image": "2.5.0",
+ "@parcel/transformer-js": "2.5.0",
+ "@parcel/transformer-json": "2.5.0",
+ "@parcel/transformer-postcss": "2.5.0",
+ "@parcel/transformer-posthtml": "2.5.0",
+ "@parcel/transformer-raw": "2.5.0",
+ "@parcel/transformer-react-refresh-wrap": "2.5.0",
+ "@parcel/transformer-svg": "2.5.0"
+ }
+ },
+ "@parcel/config-webextension": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/config-webextension/-/config-webextension-2.5.0.tgz",
+ "integrity": "sha512-q68VTZXeoDjF0zAw6iDSf4vC5vC2leeBctSSy/VXLn/1xiV51UWdU5t4E6zu0EAWVaHoRwo2kPvbr6fsISZnmg==",
+ "dev": true,
+ "requires": {
+ "@parcel/config-default": "2.5.0",
+ "@parcel/packager-webextension": "2.5.0",
+ "@parcel/runtime-webextension": "2.5.0",
+ "@parcel/transformer-raw": "2.5.0",
+ "@parcel/transformer-webextension": "2.5.0"
+ }
+ },
+ "@parcel/core": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.5.0.tgz",
+ "integrity": "sha512-dygDmPsfAYJKTnUftcbEzjCik7AAaPbFvJW8ETYz8diyjkAG9y6hvCAZIrJE5pNOjFzg32en4v4UWv8Sqlzl9g==",
+ "dev": true,
+ "requires": {
+ "@mischnic/json-sourcemap": "^0.1.0",
+ "@parcel/cache": "2.5.0",
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/events": "2.5.0",
+ "@parcel/fs": "2.5.0",
+ "@parcel/graph": "2.5.0",
+ "@parcel/hash": "2.5.0",
+ "@parcel/logger": "2.5.0",
+ "@parcel/package-manager": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "@parcel/source-map": "^2.0.0",
+ "@parcel/types": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "@parcel/workers": "2.5.0",
+ "abortcontroller-polyfill": "^1.1.9",
+ "base-x": "^3.0.8",
+ "browserslist": "^4.6.6",
+ "clone": "^2.1.1",
+ "dotenv": "^7.0.0",
+ "dotenv-expand": "^5.1.0",
+ "json5": "^2.2.0",
+ "msgpackr": "^1.5.4",
+ "nullthrows": "^1.1.1",
+ "semver": "^5.7.1"
+ }
+ },
+ "@parcel/css": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@parcel/css/-/css-1.8.3.tgz",
+ "integrity": "sha512-6qUN4iicr8f9Q6UUZttwwHMzrb65BRX46PHWq0icA4KEmvmfR9cSYlp/hJH8F4stg3Wncx12Bnw+EuPf5OAEPQ==",
+ "dev": true,
+ "requires": {
+ "@parcel/css-darwin-arm64": "1.8.3",
+ "@parcel/css-darwin-x64": "1.8.3",
+ "@parcel/css-linux-arm-gnueabihf": "1.8.3",
+ "@parcel/css-linux-arm64-gnu": "1.8.3",
+ "@parcel/css-linux-arm64-musl": "1.8.3",
+ "@parcel/css-linux-x64-gnu": "1.8.3",
+ "@parcel/css-linux-x64-musl": "1.8.3",
+ "@parcel/css-win32-x64-msvc": "1.8.3",
+ "detect-libc": "^1.0.3"
+ }
+ },
+ "@parcel/css-darwin-arm64": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@parcel/css-darwin-arm64/-/css-darwin-arm64-1.8.3.tgz",
+ "integrity": "sha512-qh/Ig6GfVjGoiGSWjIYDo6Ghwmyy/9BXvYS1l3R+Bp50F300cq84Czfl6wxaL+aFmghdHzhjJuGfWmZlcYliPA==",
+ "dev": true,
+ "optional": true
+ },
+ "@parcel/css-darwin-x64": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@parcel/css-darwin-x64/-/css-darwin-x64-1.8.3.tgz",
+ "integrity": "sha512-gTUIoRgwyYr4UuH7sSn3gOuMlIshJBOJLmjL+E/mR5lqdYabguiKiRORvkrnb/gHBmOUF9re0RcTaFmJ2VOAlg==",
+ "dev": true,
+ "optional": true
+ },
+ "@parcel/css-linux-arm-gnueabihf": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@parcel/css-linux-arm-gnueabihf/-/css-linux-arm-gnueabihf-1.8.3.tgz",
+ "integrity": "sha512-4P1r0BvL9dPz70py2xLg/jEvWJmKNyokPgafyrDP+GbpPTfH5NYJJkVRGo/TkKsp3Rv8SJhV9fdlpFKC6BI92A==",
+ "dev": true,
+ "optional": true
+ },
+ "@parcel/css-linux-arm64-gnu": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@parcel/css-linux-arm64-gnu/-/css-linux-arm64-gnu-1.8.3.tgz",
+ "integrity": "sha512-1fUy94eaqdzum+C7bsYVF2AgxjLGR/qppArn/4HTQyydHR5QeV+Uoyqo5vdnO5Vclj8eQwlgR9OyAOlmzXxFDA==",
+ "dev": true,
+ "optional": true
+ },
+ "@parcel/css-linux-arm64-musl": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@parcel/css-linux-arm64-musl/-/css-linux-arm64-musl-1.8.3.tgz",
+ "integrity": "sha512-ct1QRK5gAP8sO22NZ7RULZQB7dbHpou+WMa4z0LJb+Fho13a1JNw931vNHbeI5cRr1fCTDq76pz/+Valgetzcw==",
+ "dev": true,
+ "optional": true
+ },
+ "@parcel/css-linux-x64-gnu": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@parcel/css-linux-x64-gnu/-/css-linux-x64-gnu-1.8.3.tgz",
+ "integrity": "sha512-pg/mahoogzjbaZcW76rrTZ64tEu8Wok4Gm0sW/dXHJEJD2QVJ6GxLP4UVNBuhaV0GrNFHggp9pcdhTtLGkKl/g==",
+ "dev": true,
+ "optional": true
+ },
+ "@parcel/css-linux-x64-musl": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@parcel/css-linux-x64-musl/-/css-linux-x64-musl-1.8.3.tgz",
+ "integrity": "sha512-4Iwawy28HQ2yAgbuyR60bgO+8oE+OiWpE02eNjbgqnDpTsfmXFMt4l5OYgZwJJ7DlaZqm+/yO8RPMd+EzwtNzg==",
+ "dev": true,
+ "optional": true
+ },
+ "@parcel/css-win32-x64-msvc": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@parcel/css-win32-x64-msvc/-/css-win32-x64-msvc-1.8.3.tgz",
+ "integrity": "sha512-vnHUdzIVjqONa5ALFzMJ3ZHt6NiaYTHW/lqzP+AR4l+bq+UTXD2Q75/RgirY5NYwdfy1VPy/jI82jAtLOCymkw==",
+ "dev": true,
+ "optional": true
+ },
+ "@parcel/diagnostic": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.5.0.tgz",
+ "integrity": "sha512-KiMGGRpEV7wl5gjcxBKcgX84a+cG+IEn94gwy5LK3lENR09nuKShqqgKGAmj/17CobJgw1QNP94/H4Md+oxIWg==",
+ "dev": true,
+ "requires": {
+ "@mischnic/json-sourcemap": "^0.1.0",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "@parcel/events": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.5.0.tgz",
+ "integrity": "sha512-Gc2LPwL1H34Ony5MENbKZg7wvCscZ4x9y7Fu92sfbdWpLo3K13hVtsX3TMIIgYt3B7R7OmO8yR880U2T+JfVkQ==",
+ "dev": true
+ },
+ "@parcel/fs": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.5.0.tgz",
+ "integrity": "sha512-YYr14BWtx/bJ+hu6PPQQ6G/3omOTWgVqEw+UFI3iQH3P6+e0LRXW/Ja1yAcJeepGcTwIP0opnXZBQOm8PBQ2SA==",
+ "dev": true,
+ "requires": {
+ "@parcel/fs-search": "2.5.0",
+ "@parcel/types": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "@parcel/watcher": "^2.0.0",
+ "@parcel/workers": "2.5.0"
+ }
+ },
+ "@parcel/fs-search": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/fs-search/-/fs-search-2.5.0.tgz",
+ "integrity": "sha512-uBONkz9ZCNSOqbPGWJY3MNl+pqBTfvzHH9+4UhzHEHPArvK2oD0+syYPVE60+zGrxybXTESYMCJp4bHvH6Z2hA==",
+ "dev": true,
+ "requires": {
+ "detect-libc": "^1.0.3"
+ }
+ },
+ "@parcel/graph": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-2.5.0.tgz",
+ "integrity": "sha512-qa2VtG08dJyTaWrxYAkMIlkoDRSPoiqLDNxxHKplkcxAjXBUw0/AkWaz82VO5r1G6jfOj+nM30ajH9uygZYwbw==",
+ "dev": true,
+ "requires": {
+ "@parcel/utils": "2.5.0",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "@parcel/hash": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/hash/-/hash-2.5.0.tgz",
+ "integrity": "sha512-47JL0XpB7UvIW6Ijf8vv+yVMt9dLvB/lRlBHFmAkmovisueVMVbYD7smxVZnCSehD8UH8BcymKbMzyL5dimgoQ==",
+ "dev": true,
+ "requires": {
+ "detect-libc": "^1.0.3",
+ "xxhash-wasm": "^0.4.2"
+ }
+ },
+ "@parcel/logger": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.5.0.tgz",
+ "integrity": "sha512-pT1L3ceH6trL1N3I3r2HawPjz/PCubOo/Kazu7IeXsMsKVjj1a6AeieZHzkNZIbhiGPtm/cHbBNLz2zTWDLeOA==",
+ "dev": true,
+ "requires": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/events": "2.5.0"
+ }
+ },
+ "@parcel/markdown-ansi": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.5.0.tgz",
+ "integrity": "sha512-ixkNF3KWIqxMlfxTe9Gb2cp/uNmklQev8VEUxujMVxmUfGyQs4859zdJIQlIinabWYhArhsXATkVf3MzCUN6TQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.1.0"
+ }
+ },
+ "@parcel/namer-default": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.5.0.tgz",
+ "integrity": "sha512-ahGQqHJzsWE5Qux8zXMAU+lyNBOl+ZpcOFzRGE2DWOsmAlytsHl7DBVCQvzUyNBFg1/HmIj+7D4efv2kjR7rTg==",
+ "dev": true,
+ "requires": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "@parcel/node-resolver-core": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-2.5.0.tgz",
+ "integrity": "sha512-XQvpguiIwQcu75cscLDFOVhjsjuPzXbuMaaZ7XxxUEl0PscIgu/GfKYxTfTruN3cRl+CaQH6qBAMfjLaFng6lQ==",
+ "dev": true,
+ "requires": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "@parcel/optimizer-css": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.5.0.tgz",
+ "integrity": "sha512-J00bLF+4SsnKc+YbYrNuBr44/zz3cg++CoXteXhH27PxP1rScGQx36Rui8WORgil5mlX2VYN79DuqJC7V3Ynbg==",
+ "dev": true,
+ "requires": {
+ "@parcel/css": "^1.8.1",
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "@parcel/source-map": "^2.0.0",
+ "@parcel/utils": "2.5.0",
+ "browserslist": "^4.6.6",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "@parcel/optimizer-htmlnano": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.5.0.tgz",
+ "integrity": "sha512-Fr0zPqgxoNaOVdROAjNGDWCts3+wByNQ82Mxhu8Tzc25A2cPjcr1H2sa/TE3hf79c92DxdKf2FaC1ZOgR5YPdg==",
+ "dev": true,
+ "requires": {
+ "@parcel/plugin": "2.5.0",
+ "htmlnano": "^2.0.0",
+ "nullthrows": "^1.1.1",
+ "posthtml": "^0.16.5",
+ "svgo": "^2.4.0"
+ }
+ },
+ "@parcel/optimizer-image": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.5.0.tgz",
+ "integrity": "sha512-nbo2pdnAt21WLGjzTpsE8ZEL0xNoP7c3wBj9y70Pysmasg1SrRVCbfE8jTy+lHBQwq2yjC6lV/Usv+9lfA7S/w==",
+ "dev": true,
+ "requires": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "@parcel/workers": "2.5.0",
+ "detect-libc": "^1.0.3"
+ }
+ },
+ "@parcel/optimizer-svgo": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.5.0.tgz",
+ "integrity": "sha512-pgZqwU0RLc/wr4WcQY/W1GJmddnEANDEpz1mdppUOqBz1EfTQ7zh5NgUA3hV1i05Hbecp3mHSvXJPV0mhNOl5Q==",
+ "dev": true,
+ "requires": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "svgo": "^2.4.0"
+ }
+ },
+ "@parcel/optimizer-terser": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/optimizer-terser/-/optimizer-terser-2.5.0.tgz",
+ "integrity": "sha512-PZ3UHBGfjE49/Jloopsd38Hxg4qzsrdepWP53mCuVP7Aw605Y4QtYuB1ho3VV0oXfKQVq+uI7lVIBsuW4K6vqA==",
+ "dev": true,
+ "requires": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "@parcel/source-map": "^2.0.0",
+ "@parcel/utils": "2.5.0",
+ "nullthrows": "^1.1.1",
+ "terser": "^5.2.0"
+ }
+ },
+ "@parcel/package-manager": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.5.0.tgz",
+ "integrity": "sha512-zTuF55/lITUjw9dUU/X0HiF++589xbPXw/zUiG9T6s8BQThLvrxAhYP89S719pw7cTqDimGkTxnIuK+a0djEkg==",
+ "dev": true,
+ "requires": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/fs": "2.5.0",
+ "@parcel/logger": "2.5.0",
+ "@parcel/types": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "@parcel/workers": "2.5.0",
+ "semver": "^5.7.1"
+ }
+ },
+ "@parcel/packager-css": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.5.0.tgz",
+ "integrity": "sha512-c0mGBFdVSPhAxaX3+zN8KEIqOOUhkIPKbZex1pnGYfy03Qe2/Mb4nyt5DAGlw9gjka1UCHIN/wszLmKC8YyUeg==",
+ "dev": true,
+ "requires": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/source-map": "^2.0.0",
+ "@parcel/utils": "2.5.0",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "@parcel/packager-html": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.5.0.tgz",
+ "integrity": "sha512-ZFGUPRMWKrm8kQHdkEJ5S22C05qpSymx+o+57EfuNjCrGyj3M59WyGYYXYJ175bFYZ/jp5yy+VxMh6fZefe+Pw==",
+ "dev": true,
+ "requires": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/types": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "nullthrows": "^1.1.1",
+ "posthtml": "^0.16.5"
+ }
+ },
+ "@parcel/packager-js": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.5.0.tgz",
+ "integrity": "sha512-aJAKOTgXdxO3V9O7+2DCVOtne128WwXmUAOVThnMRo7f3zMVSAR7Mxc9pEsuTzPfj8UBXgFBRfdJUSCgsMxiSw==",
+ "dev": true,
+ "requires": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/hash": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "@parcel/source-map": "^2.0.0",
+ "@parcel/utils": "2.5.0",
+ "globals": "^13.2.0",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "@parcel/packager-raw": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.5.0.tgz",
+ "integrity": "sha512-aHV0oogeiqxhxS1lsttw15EvG3DDWK3FV7+F+7hoaAy+xg89K56NTp6j43Jtw9iyU1/HnZRGBE2hF3C7N73oKw==",
+ "dev": true,
+ "requires": {
+ "@parcel/plugin": "2.5.0"
+ }
+ },
+ "@parcel/packager-svg": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.5.0.tgz",
+ "integrity": "sha512-XSMFn30K/kpjcPpQqt88GmPJsNUSVL3RNeigXkIAcLpfO6Tb2eV4iOt4yVCagaDrRJ19alXut0TxjMm5bm41/g==",
+ "dev": true,
+ "requires": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/types": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "posthtml": "^0.16.4"
+ }
+ },
+ "@parcel/packager-webextension": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/packager-webextension/-/packager-webextension-2.5.0.tgz",
+ "integrity": "sha512-70ofhs83a/iZ3bq1T4qQiVoZEbR4aQmc/svAinNEJ5GHdur9/rCTDM6pPG8xwrQx6I2b8y8knRe3uC1B6BH6nQ==",
+ "dev": true,
+ "requires": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "@parcel/plugin": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.5.0.tgz",
+ "integrity": "sha512-obtb6/Gql6YFQ86bdv75A2Noabx8679reFZeyfKKf0L7Lppx4DFQetXwM9XVy7Gx6hJ1Ekm3UMuuIyVJk33YHQ==",
+ "dev": true,
+ "requires": {
+ "@parcel/types": "2.5.0"
+ }
+ },
+ "@parcel/reporter-cli": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.5.0.tgz",
+ "integrity": "sha512-miJt2YbRJBmYSVeoUWUj8YL85Pwj1CmGQB0/btqhulGLH/Fvkbv6T4sJ4gl4l5xIt9mJQsZ70pOWwa8BId3rWw==",
+ "dev": true,
+ "requires": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/types": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "chalk": "^4.1.0",
+ "term-size": "^2.2.1"
+ }
+ },
+ "@parcel/reporter-dev-server": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.5.0.tgz",
+ "integrity": "sha512-wvxAiW42AxJ3B8jtvowJcP4/cTV8zY48SfKg61YKYu1yUO+TtyJIjHQzDW2XuT34cIGFY97Gr0i+AVu44RyUuQ==",
+ "dev": true,
+ "requires": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0"
+ }
+ },
+ "@parcel/resolver-default": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.5.0.tgz",
+ "integrity": "sha512-39PkZpVr/+iYS11u+lA84vIsKm/yisltTVmUjlYsDnExiuV1c8OSbSdYZ3JMx+7CYPE0bWbosX2AGilIwIMWpQ==",
+ "dev": true,
+ "requires": {
+ "@parcel/node-resolver-core": "2.5.0",
+ "@parcel/plugin": "2.5.0"
+ }
+ },
+ "@parcel/runtime-browser-hmr": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.5.0.tgz",
+ "integrity": "sha512-oPAo8Zf06gXCpt41nyvK7kv2HH1RrHAGgOqttyjStwAFlm5MZKs7BgtJzO58LfJN8g3sMY0cNdG17fB/4f8q6Q==",
+ "dev": true,
+ "requires": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0"
+ }
+ },
+ "@parcel/runtime-js": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.5.0.tgz",
+ "integrity": "sha512-gPC2PbNAiooULP71wF5twe4raekuXsR1Hw/ahITDoqsZdXHzG3CkoCjYL3CkmBGiKQgMMocCyN1E2oBzAH8Kyw==",
+ "dev": true,
+ "requires": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "@parcel/runtime-react-refresh": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.5.0.tgz",
+ "integrity": "sha512-+8RuDKFdFYIQTrXG4MRhG9XqkkYEHn0zxKyOJ/IkDDfSEhY0na+EyhrneFUwIvDX63gLPkxceXAg0gwBqXPK/Q==",
+ "dev": true,
+ "requires": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "react-refresh": "^0.9.0"
+ }
+ },
+ "@parcel/runtime-service-worker": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.5.0.tgz",
+ "integrity": "sha512-STuDlU0fPXeWpAmbayY7o04F0eHy6FTOFeT5KQ0PTxtdEa3Ey8QInP/NVE52Yv0aVQtesWukGrNEFCERlkbFRw==",
+ "dev": true,
+ "requires": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "@parcel/runtime-webextension": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/runtime-webextension/-/runtime-webextension-2.5.0.tgz",
+ "integrity": "sha512-WaLxOccP+Q8YQnhaFt4T1iFQkUHvNfi3phrDikURsWXusfq/l7+Cmb4JSmGX4Hcm51827zO4YAf7k3geuKvKrA==",
+ "dev": true,
+ "requires": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "@parcel/source-map": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.0.2.tgz",
+ "integrity": "sha512-NnUrPYLpYB6qyx2v6bcRPn/gVigmGG6M6xL8wIg/i0dP1GLkuY1nf+Hqdf63FzPTqqT7K3k6eE5yHPQVMO5jcA==",
+ "dev": true,
+ "requires": {
+ "detect-libc": "^1.0.3"
+ }
+ },
+ "@parcel/transformer-babel": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.5.0.tgz",
+ "integrity": "sha512-EFb866C9jCoBHIcebWF7goAcYj1wkObx0GDxshlazFtvym1RM27xSWWjRYyqb5+HNOxB3voaNvQOVjcD+DXjCA==",
+ "dev": true,
+ "requires": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "@parcel/source-map": "^2.0.0",
+ "@parcel/utils": "2.5.0",
+ "browserslist": "^4.6.6",
+ "json5": "^2.2.0",
+ "nullthrows": "^1.1.1",
+ "semver": "^5.7.0"
+ }
+ },
+ "@parcel/transformer-css": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.5.0.tgz",
+ "integrity": "sha512-p8FOvKWWSbS6H8PbD9a0KZqyaKNpSD2BUTzSRYnNj3TBUv7/ZXaP6Om295XTQ/MPht1o7XTQzvfpF/7yEhr02Q==",
+ "dev": true,
+ "requires": {
+ "@parcel/css": "^1.8.1",
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "@parcel/source-map": "^2.0.0",
+ "@parcel/utils": "2.5.0",
+ "browserslist": "^4.6.6",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "@parcel/transformer-html": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.5.0.tgz",
+ "integrity": "sha512-iEjNyAF0wQmY3DMw7FS+UzoOMng76UsSngh+WWA1E5lv5XyqrP8Mk2QLTJp1nWetUhSLhZr58LGmPYBTB4l9ZQ==",
+ "dev": true,
+ "requires": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/hash": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "nullthrows": "^1.1.1",
+ "posthtml": "^0.16.5",
+ "posthtml-parser": "^0.10.1",
+ "posthtml-render": "^3.0.0",
+ "semver": "^5.7.1"
+ }
+ },
+ "@parcel/transformer-image": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.5.0.tgz",
+ "integrity": "sha512-vVEXTHZl8m/9yopgK0dWHLOQX2zOnghq6pZnWdWVG6fsvXZln7kP1YN5iwWDoADQYkiKzP+Ymn6UwP9pZpHFzA==",
+ "dev": true,
+ "requires": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/workers": "2.5.0",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "@parcel/transformer-js": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.5.0.tgz",
+ "integrity": "sha512-Cp8Ic+Au3OcskCRZszmo47z3bqcZ7rfPv2xZYXpXY2TzEc3IV0bKje57bZektoY8LW9LkYM9iBO/WhkVoT6LIg==",
+ "dev": true,
+ "requires": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "@parcel/source-map": "^2.0.0",
+ "@parcel/utils": "2.5.0",
+ "@parcel/workers": "2.5.0",
+ "@swc/helpers": "^0.3.6",
+ "browserslist": "^4.6.6",
+ "detect-libc": "^1.0.3",
+ "nullthrows": "^1.1.1",
+ "regenerator-runtime": "^0.13.7",
+ "semver": "^5.7.1"
+ }
+ },
+ "@parcel/transformer-json": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.5.0.tgz",
+ "integrity": "sha512-661sByA7TkR6Lmxt+hqV4h2SAt+7lgc58DzmUYArpEl1fQnMuQuaB0kQeHzi6fDD2+2G6o7EC+DuwBZKa479TA==",
+ "dev": true,
+ "requires": {
+ "@parcel/plugin": "2.5.0",
+ "json5": "^2.2.0"
+ }
+ },
+ "@parcel/transformer-postcss": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.5.0.tgz",
+ "integrity": "sha512-IPNlWElekdQHMTBqhdwJNBCQomuYyo7xgNBdnTrt9VJ+R5ihy6n7ZJSWIAJXAH9VZxETTtunfrzRtgkmtjTeZQ==",
+ "dev": true,
+ "requires": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/hash": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "clone": "^2.1.1",
+ "nullthrows": "^1.1.1",
+ "postcss-value-parser": "^4.2.0",
+ "semver": "^5.7.1"
+ }
+ },
+ "@parcel/transformer-posthtml": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.5.0.tgz",
+ "integrity": "sha512-AZxg1XD8OXOS4bEGEmBBR+X9T9qoFdVsbVUg498zzejYSka1ZQHF7TgLI/+pUnE+ZVYNIp7/G0xXqsRVKMKmdQ==",
+ "dev": true,
+ "requires": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "nullthrows": "^1.1.1",
+ "posthtml": "^0.16.5",
+ "posthtml-parser": "^0.10.1",
+ "posthtml-render": "^3.0.0",
+ "semver": "^5.7.1"
+ }
+ },
+ "@parcel/transformer-raw": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.5.0.tgz",
+ "integrity": "sha512-I3zjE1u9+Wj90Qqs1V2FTm6iC6SAyOVUthwVZkZey+qbQG/ok682Ez2XjLu7MyQCo9BJNwF/nfOa1hHr3MaJEQ==",
+ "dev": true,
+ "requires": {
+ "@parcel/plugin": "2.5.0"
+ }
+ },
+ "@parcel/transformer-react-refresh-wrap": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.5.0.tgz",
+ "integrity": "sha512-VPqVBxhTN4OQwcjsdyxrv+smjAm4s6dbSWAplgPwdOITMv+a0tjhhJU37WnRC+xxTrbEqRcOt96JvGOkPb8i7g==",
+ "dev": true,
+ "requires": {
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "react-refresh": "^0.9.0"
+ }
+ },
+ "@parcel/transformer-svg": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.5.0.tgz",
+ "integrity": "sha512-zCGJcrCpICFe0Q/dgjQZfW7sYFkbJEC7NGT4zEJnMo8Cm/kq8Qh6+2ApX6c+vv5Q0WZn5Ic+N0OvxIMkvgdC/w==",
+ "dev": true,
+ "requires": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/hash": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "nullthrows": "^1.1.1",
+ "posthtml": "^0.16.5",
+ "posthtml-parser": "^0.10.1",
+ "posthtml-render": "^3.0.0",
+ "semver": "^5.7.1"
+ }
+ },
+ "@parcel/transformer-webextension": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-webextension/-/transformer-webextension-2.5.0.tgz",
+ "integrity": "sha512-rS469xp7iigGDd69JTO+NECyv0sMXwoTmkiGNgtfn3ffSrMu/pqa4koGkYV0uflaa61BRpBXjWI2LhRrZ/IwGA==",
+ "dev": true,
+ "requires": {
+ "@mischnic/json-sourcemap": "^0.1.0",
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/plugin": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "content-security-policy-parser": "^0.3.0"
+ }
+ },
+ "@parcel/types": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.5.0.tgz",
+ "integrity": "sha512-bA0fhG6aXSGYEVo5Dt96x6lseUQHeVZVzgmiRdZsvb614Gvx22ItfaKhPmAVbM9vzbObZDHl9l9G2Ovw8Xve4g==",
+ "dev": true,
+ "requires": {
+ "@parcel/cache": "2.5.0",
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/fs": "2.5.0",
+ "@parcel/package-manager": "2.5.0",
+ "@parcel/source-map": "^2.0.0",
+ "@parcel/workers": "2.5.0",
+ "utility-types": "^3.10.0"
+ }
+ },
+ "@parcel/utils": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.5.0.tgz",
+ "integrity": "sha512-kaLGXtQuOOH55KZqXdYDvczhh3mk2eeTVqrrXuuihGjbLKYFlUW2tFDm+5r2s9nCPwTQxOO43ZEOCKSnia+e4w==",
+ "dev": true,
+ "requires": {
+ "@parcel/codeframe": "2.5.0",
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/hash": "2.5.0",
+ "@parcel/logger": "2.5.0",
+ "@parcel/markdown-ansi": "2.5.0",
+ "@parcel/source-map": "^2.0.0",
+ "chalk": "^4.1.0"
+ }
+ },
+ "@parcel/watcher": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.5.tgz",
+ "integrity": "sha512-x0hUbjv891omnkcHD7ZOhiyyUqUUR6MNjq89JhEI3BxppeKWAm6NPQsqqRrAkCJBogdT/o/My21sXtTI9rJIsw==",
+ "dev": true,
+ "requires": {
+ "node-addon-api": "^3.2.1",
+ "node-gyp-build": "^4.3.0"
+ }
+ },
+ "@parcel/workers": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.5.0.tgz",
+ "integrity": "sha512-/Ow5OKJWs+9OzV3Jy4J++VnbNx0j3ls/M1CGVBLiBWyCada9DMtquYoBQ4Sk6Uam50BKkIFYetGOeXPNQyyMjg==",
+ "dev": true,
+ "requires": {
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/logger": "2.5.0",
+ "@parcel/types": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "chrome-trace-event": "^1.0.2",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "@swc/helpers": {
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.3.13.tgz",
+ "integrity": "sha512-A1wswJhnqaLRn8uYVQ8YiNTtY5i/JIPmV08EXXjjTresIkUVUEUaFv/wXVhGXfRNYMvHPkuoMR1Nb6NgpxGjNg==",
+ "dev": true,
+ "requires": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "@trysound/sax": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz",
+ "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==",
+ "dev": true
+ },
+ "@types/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
+ "dev": true
+ },
+ "@types/webextension-polyfill": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/@types/webextension-polyfill/-/webextension-polyfill-0.8.3.tgz",
+ "integrity": "sha512-GN+Hjzy9mXjWoXKmaicTegv3FJ0WFZ3aYz77Wk8TMp1IY3vEzvzj1vnsa0ggV7vMI1i+PUxe4qqnIJKCzf9aTg==",
+ "dev": true
+ },
+ "abortcontroller-polyfill": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.3.tgz",
+ "integrity": "sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q==",
+ "dev": true
+ },
+ "acorn": {
+ "version": "8.7.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz",
+ "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "base-x": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
+ "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
+ "dev": true
+ },
+ "browserslist": {
+ "version": "4.20.3",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz",
+ "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30001332",
+ "electron-to-chromium": "^1.4.118",
+ "escalade": "^3.1.1",
+ "node-releases": "^2.0.3",
+ "picocolors": "^1.0.0"
+ }
+ },
+ "buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "dev": true
+ },
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true
+ },
+ "caniuse-lite": {
+ "version": "1.0.30001341",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001341.tgz",
+ "integrity": "sha512-2SodVrFFtvGENGCv0ChVJIDQ0KPaS1cg7/qtfMaICgeMolDdo/Z2OD32F0Aq9yl6F4YFwGPBS5AaPqNYiW4PoA==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "chrome-trace-event": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
+ "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
+ "dev": true
+ },
+ "clone": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
+ "dev": true
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+ "dev": true
+ },
+ "content-security-policy-parser": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/content-security-policy-parser/-/content-security-policy-parser-0.3.0.tgz",
+ "integrity": "sha512-ub90B4t9EfDPv3DCH7vEwGe4tVMkSm4Ow1HsmvmEQwinDfpTEDmkuJVa5WpzHDTt2bUirNRZuzL6S0msASlJhg==",
+ "dev": true
+ },
+ "cosmiconfig": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz",
+ "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==",
+ "dev": true,
+ "requires": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.2.1",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.10.0"
+ }
+ },
+ "css-select": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
+ "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
+ "dev": true,
+ "requires": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.0.1",
+ "domhandler": "^4.3.1",
+ "domutils": "^2.8.0",
+ "nth-check": "^2.0.1"
+ }
+ },
+ "css-tree": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz",
+ "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
+ "dev": true,
+ "requires": {
+ "mdn-data": "2.0.14",
+ "source-map": "^0.6.1"
+ }
+ },
+ "css-what": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
+ "dev": true
+ },
+ "csso": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz",
+ "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==",
+ "dev": true,
+ "requires": {
+ "css-tree": "^1.1.2"
+ }
+ },
+ "detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
+ "dev": true
+ },
+ "dom-serializer": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.0",
+ "entities": "^2.0.0"
+ },
+ "dependencies": {
+ "entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "dev": true
+ }
+ }
+ },
+ "domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "dev": true
+ },
+ "domhandler": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^2.2.0"
+ }
+ },
+ "domutils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+ "dev": true,
+ "requires": {
+ "dom-serializer": "^1.0.1",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.0"
+ }
+ },
+ "dotenv": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-7.0.0.tgz",
+ "integrity": "sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==",
+ "dev": true
+ },
+ "dotenv-expand": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz",
+ "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==",
+ "dev": true
+ },
+ "electron-to-chromium": {
+ "version": "1.4.137",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz",
+ "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==",
+ "dev": true
+ },
+ "entities": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
+ "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
+ "dev": true
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "get-port": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz",
+ "integrity": "sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==",
+ "dev": true
+ },
+ "globals": {
+ "version": "13.15.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz",
+ "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.20.2"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "htmlnano": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/htmlnano/-/htmlnano-2.0.2.tgz",
+ "integrity": "sha512-+ZrQFS4Ub+zd+/fWwfvoYCEGNEa0/zrpys6CyXxvZDwtL7Pl+pOtRkiujyvBQ7Lmfp7/iEPxtOFgxWA16Gkj3w==",
+ "dev": true,
+ "requires": {
+ "cosmiconfig": "^7.0.1",
+ "posthtml": "^0.16.5",
+ "timsort": "^0.3.0"
+ }
+ },
+ "htmlparser2": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz",
+ "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.2",
+ "domutils": "^2.8.0",
+ "entities": "^3.0.1"
+ }
+ },
+ "import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dev": true,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ }
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "is-json": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz",
+ "integrity": "sha1-a+Fm0USCihMdaGiRuYPfYsOUkf8=",
+ "dev": true
+ },
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
+ },
+ "json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true
+ },
+ "json5": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
+ "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
+ "dev": true
+ },
+ "lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true
+ },
+ "lmdb": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.2.4.tgz",
+ "integrity": "sha512-gto+BB2uEob8qRiTlOq+R3uX0YNHsX9mjxj9Sbdue/LIKqu6IlZjrsjKeGyOMquc/474GEqFyX2pdytpydp0rQ==",
+ "dev": true,
+ "requires": {
+ "msgpackr": "^1.5.4",
+ "nan": "^2.14.2",
+ "node-gyp-build": "^4.2.3",
+ "ordered-binary": "^1.2.4",
+ "weak-lru-cache": "^1.2.2"
+ }
+ },
+ "lodash.sortby": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
+ "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
+ "dev": true
+ },
+ "mdn-data": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
+ "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==",
+ "dev": true
+ },
+ "msgpackr": {
+ "version": "1.5.7",
+ "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.5.7.tgz",
+ "integrity": "sha512-Hsa80i8W4BiObSMHslfnwC+CC1CYHZzoXJZn0+3EvoCEOgt3c5QlXhdcjgFk2aZxMgpV8aUFZqJyQUCIp4UrzA==",
+ "dev": true,
+ "requires": {
+ "msgpackr-extract": "^1.1.4"
+ }
+ },
+ "msgpackr-extract": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-1.1.4.tgz",
+ "integrity": "sha512-WQbHvsThprXh+EqZYy+SQFEs7z6bNM7a0vgirwUfwUcphWGT2mdPcpyLCNiRsN6w5q5VKJUMblHY+tNEyceb9Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "msgpackr-extract-darwin-arm64": "1.1.0",
+ "msgpackr-extract-darwin-x64": "1.1.0",
+ "msgpackr-extract-linux-arm": "1.1.0",
+ "msgpackr-extract-linux-arm64": "1.1.0",
+ "msgpackr-extract-linux-x64": "1.1.0",
+ "msgpackr-extract-win32-x64": "1.1.0",
+ "node-gyp-build-optional-packages": "^4.3.2"
+ }
+ },
+ "msgpackr-extract-darwin-arm64": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-1.1.0.tgz",
+ "integrity": "sha512-s1kHoT12tS2cCQOv+Wl3I+/cYNJXBPtwQqGA+dPYoXmchhXiE0Nso+BIfvQ5PxbmAyjj54Q5o7PnLTqVquNfZA==",
+ "dev": true,
+ "optional": true
+ },
+ "msgpackr-extract-darwin-x64": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-1.1.0.tgz",
+ "integrity": "sha512-yx/H/i12IKg4eWGu/eKdKzJD4jaYvvujQSaVmeOMCesbSQnWo5X6YR9TFjoiNoU9Aexk1KufzL9gW+1DozG1yw==",
+ "dev": true,
+ "optional": true
+ },
+ "msgpackr-extract-linux-arm": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-1.1.0.tgz",
+ "integrity": "sha512-0VvSCqi12xpavxl14gMrauwIzHqHbmSChUijy/uo3mpjB1Pk4vlisKpZsaOZvNJyNKj0ACi5jYtbWnnOd7hYGw==",
+ "dev": true,
+ "optional": true
+ },
+ "msgpackr-extract-linux-arm64": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-1.1.0.tgz",
+ "integrity": "sha512-AxFle3fHNwz2V4CYDIGFxI6o/ZuI0lBKg0uHI8EcCMUmDE5mVAUWYge5WXmORVvb8sVWyVgFlmi3MTu4Ve6tNQ==",
+ "dev": true,
+ "optional": true
+ },
+ "msgpackr-extract-linux-x64": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-1.1.0.tgz",
+ "integrity": "sha512-O+XoyNFWpdB8oQL6O/YyzffPpmG5rTNrr1nKLW70HD2ENJUhcITzbV7eZimHPzkn8LAGls1tBaMTHQezTBpFOw==",
+ "dev": true,
+ "optional": true
+ },
+ "msgpackr-extract-win32-x64": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-1.1.0.tgz",
+ "integrity": "sha512-6AJdM5rNsL4yrskRfhujVSPEd6IBpgvsnIT/TPowKNLQ62iIdryizPY2PJNFiW3AJcY249AHEiDBXS1cTDPxzA==",
+ "dev": true,
+ "optional": true
+ },
+ "nan": {
+ "version": "2.15.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz",
+ "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==",
+ "dev": true
+ },
+ "node-addon-api": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz",
+ "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==",
+ "dev": true
+ },
+ "node-gyp-build": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz",
+ "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==",
+ "dev": true
+ },
+ "node-gyp-build-optional-packages": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-4.3.2.tgz",
+ "integrity": "sha512-P5Ep3ISdmwcCkZIaBaQamQtWAG0facC89phWZgi5Z3hBU//J6S48OIvyZWSPPf6yQMklLZiqoosWAZUj7N+esA==",
+ "dev": true,
+ "optional": true
+ },
+ "node-releases": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz",
+ "integrity": "sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==",
+ "dev": true
+ },
+ "nth-check": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz",
+ "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==",
+ "dev": true,
+ "requires": {
+ "boolbase": "^1.0.0"
+ }
+ },
+ "nullthrows": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz",
+ "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==",
+ "dev": true
+ },
+ "ordered-binary": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.2.5.tgz",
+ "integrity": "sha512-djRmZoEpOGvIRW7ufsCDHtvcUa18UC9TxnPbHhSVFZHsoyg0dtut1bWtBZ/fmxdPN62oWXrV6adM7NoWU+CneA==",
+ "dev": true
+ },
+ "parcel": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/parcel/-/parcel-2.5.0.tgz",
+ "integrity": "sha512-er0mj/BaMjWyzQ/jedLUi/LNAuQcFT8lCvoNqANF+jTaX9rohaBwxIvKVJVAZgyCnmyfbbldp496wPMW0R0+CA==",
+ "dev": true,
+ "requires": {
+ "@parcel/config-default": "2.5.0",
+ "@parcel/core": "2.5.0",
+ "@parcel/diagnostic": "2.5.0",
+ "@parcel/events": "2.5.0",
+ "@parcel/fs": "2.5.0",
+ "@parcel/logger": "2.5.0",
+ "@parcel/package-manager": "2.5.0",
+ "@parcel/reporter-cli": "2.5.0",
+ "@parcel/reporter-dev-server": "2.5.0",
+ "@parcel/utils": "2.5.0",
+ "chalk": "^4.1.0",
+ "commander": "^7.0.0",
+ "get-port": "^4.2.0",
+ "v8-compile-cache": "^2.0.0"
+ }
+ },
+ "parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "requires": {
+ "callsites": "^3.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true
+ },
+ "picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "dev": true
+ },
+ "postcss-value-parser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+ "dev": true
+ },
+ "posthtml": {
+ "version": "0.16.6",
+ "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz",
+ "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==",
+ "dev": true,
+ "requires": {
+ "posthtml-parser": "^0.11.0",
+ "posthtml-render": "^3.0.0"
+ },
+ "dependencies": {
+ "posthtml-parser": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz",
+ "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==",
+ "dev": true,
+ "requires": {
+ "htmlparser2": "^7.1.1"
+ }
+ }
+ }
+ },
+ "posthtml-parser": {
+ "version": "0.10.2",
+ "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.10.2.tgz",
+ "integrity": "sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==",
+ "dev": true,
+ "requires": {
+ "htmlparser2": "^7.1.1"
+ }
+ },
+ "posthtml-render": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz",
+ "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==",
+ "dev": true,
+ "requires": {
+ "is-json": "^2.0.1"
+ }
+ },
+ "prettier": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz",
+ "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==",
+ "dev": true
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "dev": true
+ },
+ "react-refresh": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.9.0.tgz",
+ "integrity": "sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==",
+ "dev": true
+ },
+ "regenerator-runtime": {
+ "version": "0.13.9",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
+ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
+ "dev": true
+ },
+ "resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true
+ },
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "source-map-support": {
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "stable": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz",
+ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "svgo": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz",
+ "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==",
+ "dev": true,
+ "requires": {
+ "@trysound/sax": "0.2.0",
+ "commander": "^7.2.0",
+ "css-select": "^4.1.3",
+ "css-tree": "^1.1.3",
+ "csso": "^4.2.0",
+ "picocolors": "^1.0.0",
+ "stable": "^0.1.8"
+ }
+ },
+ "term-size": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz",
+ "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==",
+ "dev": true
+ },
+ "terser": {
+ "version": "5.13.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.13.1.tgz",
+ "integrity": "sha512-hn4WKOfwnwbYfe48NgrQjqNOH9jzLqRcIfbYytOXCOv46LBfWr9bDS17MQqOi+BWGD0sJK3Sj5NC/gJjiojaoA==",
+ "dev": true,
+ "requires": {
+ "acorn": "^8.5.0",
+ "commander": "^2.20.0",
+ "source-map": "~0.8.0-beta.0",
+ "source-map-support": "~0.5.20"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.8.0-beta.0",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz",
+ "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==",
+ "dev": true,
+ "requires": {
+ "whatwg-url": "^7.0.0"
+ }
+ }
+ }
+ },
+ "timsort": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz",
+ "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
+ "dev": true
+ },
+ "tr46": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
+ "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=",
+ "dev": true,
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "tslib": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
+ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==",
+ "dev": true
+ },
+ "type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true
+ },
+ "typescript": {
+ "version": "4.6.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz",
+ "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==",
+ "dev": true
+ },
+ "utility-types": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz",
+ "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==",
+ "dev": true
+ },
+ "v8-compile-cache": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
+ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
+ "dev": true
+ },
+ "weak-lru-cache": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz",
+ "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==",
+ "dev": true
+ },
+ "webextension-polyfill": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/webextension-polyfill/-/webextension-polyfill-0.9.0.tgz",
+ "integrity": "sha512-LTtHb0yR49xa9irkstDxba4GATDAcDw3ncnFH9RImoFwDlW47U95ME5sn5IiQX2ghfaECaf6xyXM8yvClIBkkw==",
+ "dev": true
+ },
+ "webidl-conversions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
+ "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
+ "dev": true
+ },
+ "whatwg-url": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
+ "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
+ "dev": true,
+ "requires": {
+ "lodash.sortby": "^4.7.0",
+ "tr46": "^1.0.1",
+ "webidl-conversions": "^4.0.2"
+ }
+ },
+ "xxhash-wasm": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-0.4.2.tgz",
+ "integrity": "sha512-/eyHVRJQCirEkSZ1agRSCwriMhwlyUcFkXD5TPVSLP+IPzjsqMVzZwdoczLp1SoQU0R3dxz1RpIK+4YNQbCVOA==",
+ "dev": true
+ },
+ "yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "dev": true
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..09d25ec
--- /dev/null
+++ b/package.json
@@ -0,0 +1,38 @@
+{
+ "name": "ttv-lol",
+ "version": "1.0.0-younesaassila",
+ "description": "TTV LOL removes livestream ads from twitch.tv",
+ "targets": {
+ "webext-dev": {
+ "sourceMap": {
+ "inline": true,
+ "inlineSources": true
+ }
+ },
+ "webext-prod": {}
+ },
+ "scripts": {
+ "dev": "parcel src/manifest.json --host localhost --target webext-dev",
+ "lint": "prettier --write ./src",
+ "build": "parcel build src/manifest.json --target webext-prod"
+ },
+ "keywords": [
+ "twitch",
+ "web-extension",
+ "adblocker"
+ ],
+ "author": "TTV-LOL (https://github.com/TTV-LOL)",
+ "contributors": [
+ "Younes Aassila (https://github.com/younesaassila)"
+ ],
+ "license": "UNLICENSED",
+ "devDependencies": {
+ "@parcel/config-webextension": "^2.5.0",
+ "@types/webextension-polyfill": "^0.8.3",
+ "parcel": "^2.5.0",
+ "prettier": "^2.6.2",
+ "typescript": "^4.6.4",
+ "webextension-polyfill": "^0.9.0"
+ },
+ "private": true
+}
diff --git a/src/common/css/styles.css b/src/common/css/styles.css
new file mode 100644
index 0000000..d1a9e0c
--- /dev/null
+++ b/src/common/css/styles.css
@@ -0,0 +1,70 @@
+html,
+body {
+ width: 300px;
+}
+
+html {
+ background: #151619;
+ color: #c9cbcd;
+ font-family: Open Sans, Segoe UI, sans-serif;
+ -webkit-font-smoothing: antialiased;
+ text-rendering: optimizeLegibility;
+}
+
+.container {
+ text-align: center;
+ padding-bottom: 10px;
+}
+
+.button-group {
+ display: flex;
+ justify-content: center;
+}
+
+.button {
+ border-radius: 6px;
+ color: #c3c4ca;
+ font-weight: bold;
+ padding: 10px 20px;
+ text-decoration: none;
+ transition: all 150ms ease-in-out;
+}
+.button:hover {
+ background-color: #1d1f23;
+}
+.button:not(:first-of-type) {
+ margin-left: 15px;
+}
+.discord {
+ overflow: visible;
+ margin-right: 3px;
+ display: inline-block;
+}
+.button-arrow .arrow-icon {
+ overflow: visible;
+ margin-left: 3px;
+ margin-bottom: -2px;
+ width: 8px;
+}
+.icon {
+ margin-bottom: -3px;
+}
+.buton-text {
+ margin-bottom: 10px;
+}
+.button-arrow .arrow-head {
+ transform: translateX(0);
+ transition: transform 150ms ease-in-out;
+}
+.button-arrow .arrow-body {
+ opacity: 0;
+ transform: scaleX(1);
+ transition: transform 150ms ease-in-out, opacity 150ms ease-in-out;
+}
+.button-arrow:hover .arrow-head {
+ transform: translateX(3px);
+}
+.button-arrow:hover .arrow-body {
+ opacity: 1;
+ transform: scaleX(2);
+}
diff --git a/firefox/common/html/popup.html b/src/common/html/popup.html
similarity index 100%
rename from firefox/common/html/popup.html
rename to src/common/html/popup.html
diff --git a/chrome/common/img/logo.png b/src/common/img/logo.png
similarity index 100%
rename from chrome/common/img/logo.png
rename to src/common/img/logo.png
diff --git a/chrome/common/img/ttvlol.png b/src/common/img/ttvlol.png
similarity index 100%
rename from chrome/common/img/ttvlol.png
rename to src/common/img/ttvlol.png
diff --git a/chrome/images/icon.png b/src/images/icon.png
similarity index 100%
rename from chrome/images/icon.png
rename to src/images/icon.png
diff --git a/src/manifest.json b/src/manifest.json
new file mode 100644
index 0000000..72211d3
--- /dev/null
+++ b/src/manifest.json
@@ -0,0 +1,27 @@
+{
+ "manifest_version": 2,
+ "name": "TTV LOL (Younes Aassila's Fork)",
+ "description": "TTV LOL removes livestream ads from twitch.tv",
+ "version": "1.0.0",
+ "background": {
+ "persistent": true,
+ "scripts": ["ts/background.ts"]
+ },
+ "browser_action": {
+ "default_icon": {
+ "128": "images/icon.png"
+ },
+ "default_title": "TTV LOL",
+ "default_popup": "common/html/popup.html"
+ },
+ "icons": {
+ "128": "images/icon.png"
+ },
+ "permissions": [
+ "webRequest",
+ "webRequestBlocking",
+ "https://*.twitch.tv/*",
+ "https://usher.ttvnw.net/*",
+ "https://api.ttv.lol/*"
+ ]
+}
diff --git a/src/ts/background.ts b/src/ts/background.ts
new file mode 100644
index 0000000..0eb777b
--- /dev/null
+++ b/src/ts/background.ts
@@ -0,0 +1,59 @@
+import browser, { WebRequest } from "webextension-polyfill";
+import { PlaylistType } from "../types";
+
+function onBeforeRequest(details: WebRequest.OnBeforeRequestDetailsType) {
+ const match = /(hls|vod)\/(.+?)$/gim.exec(details.url);
+ if (match == null) return {};
+
+ const [_, type, path] = match;
+ if (type == null || path == null) return {};
+
+ const playlistType =
+ type.toLowerCase() === "vod" ? PlaylistType.VOD : PlaylistType.Playlist;
+
+ // Synchronous XMLHttpRequest is required for the plugin to work in Chrome.
+ const request = new XMLHttpRequest();
+ request.open("GET", `https://api.ttv.lol/ping`, false);
+ request.send();
+
+ if (request.status === 200) {
+ console.info("[TTV LOL] Successfully pinged TTV LOL's server.");
+ return {
+ redirectUrl: `https://api.ttv.lol/${playlistType}/${encodeURIComponent(
+ path
+ )}`,
+ };
+ } else {
+ return {};
+ }
+}
+
+browser.webRequest.onBeforeRequest.addListener(
+ onBeforeRequest,
+ {
+ urls: [
+ "https://usher.ttvnw.net/api/channel/hls/*",
+ "https://usher.ttvnw.net/vod/*",
+ ],
+ },
+ ["blocking"]
+);
+
+function onBeforeSendHeaders(
+ details: WebRequest.OnBeforeSendHeadersDetailsType
+) {
+ console.log(`[TTV LOL] ${details.method} ${details.url}`);
+ details.requestHeaders.push({
+ name: "X-Donate-To",
+ value: "https://ttv.lol/donate",
+ });
+ return {
+ requestHeaders: details.requestHeaders,
+ };
+}
+
+browser.webRequest.onBeforeSendHeaders.addListener(
+ onBeforeSendHeaders,
+ { urls: ["https://api.ttv.lol/playlist/*", "https://api.ttv.lol/vod/*"] },
+ ["blocking", "requestHeaders"]
+);
diff --git a/src/types.ts b/src/types.ts
new file mode 100644
index 0000000..b55e7c1
--- /dev/null
+++ b/src/types.ts
@@ -0,0 +1,4 @@
+export enum PlaylistType {
+ Playlist = "playlist",
+ VOD = "vod",
+}