From bf4771e83103feaf87463b3835ecf3b7b7484dbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arnaud=20Barr=C3=A9?= Date: Mon, 24 Oct 2022 03:50:17 +0200 Subject: [PATCH] Initial version [publish] --- .eslintrc.js | 4 + .github/workflows/publish.yml | 19 + .gitignore | 3 + CHANGELOG.md | 5 + LICENSE | 21 + README.md | 23 + bun.lockb | Bin 0 -> 95041 bytes bunfig.toml | 2 + package.json | 28 + playground/.eslintrc.js | 4 + playground/bun.lockb | Bin 0 -> 10410 bytes playground/bunfig.toml | 2 + playground/index.html | 13 + playground/package.json | 15 + playground/public/vite.svg | 1 + playground/src/App.css | 41 + playground/src/App.tsx | 30 + playground/src/index.css | 70 ++ playground/src/index.tsx | 10 + playground/src/react.svg | 1 + playground/tsconfig.json | 26 + playground/vite.config.ts | 9 + playground/yarn.lock | 182 +++ scripts/bundle.ts | 62 + src/client.ts | 151 +++ src/index.ts | 15 + tsconfig.json | 24 + yarn.lock | 2124 +++++++++++++++++++++++++++++++++ 28 files changed, 2885 insertions(+) create mode 100644 .eslintrc.js create mode 100644 .github/workflows/publish.yml create mode 100644 .gitignore create mode 100644 CHANGELOG.md create mode 100644 LICENSE create mode 100644 README.md create mode 100755 bun.lockb create mode 100644 bunfig.toml create mode 100644 package.json create mode 100644 playground/.eslintrc.js create mode 100755 playground/bun.lockb create mode 100644 playground/bunfig.toml create mode 100644 playground/index.html create mode 100644 playground/package.json create mode 100644 playground/public/vite.svg create mode 100644 playground/src/App.css create mode 100644 playground/src/App.tsx create mode 100644 playground/src/index.css create mode 100644 playground/src/index.tsx create mode 100644 playground/src/react.svg create mode 100644 playground/tsconfig.json create mode 100644 playground/vite.config.ts create mode 100755 playground/yarn.lock create mode 100755 scripts/bundle.ts create mode 100644 src/client.ts create mode 100644 src/index.ts create mode 100644 tsconfig.json create mode 100755 yarn.lock diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..26145b2 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: ["@arnaud-barre"], +}; diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..044d913 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,19 @@ +name: Publish to npm +on: + push: + branches: + - main +jobs: + publish: + runs-on: ubuntu-latest + if: ${{ contains(github.event.head_commit.message, '[publish]') }} + steps: + - uses: actions/checkout@v2 + - uses: xhyrom/setup-bun@v0.1.7 + - run: rm -rf ~/.bun/install/cache + - run: bun install + - run: bun ci + - uses: ArnaudBarre/npm-publish@v1.1 + with: + working-directory: dist + npm-token: ${{ secrets.NPM_TOKEN }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57e85a4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.idea/ +node_modules/ +dist/ diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..61d0f40 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,5 @@ +# Changelog + +## 1.0.0 + +Initial release diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..75488f1 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Arnaud Barré (https://github.com/ArnaudBarre) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..1299cbd --- /dev/null +++ b/README.md @@ -0,0 +1,23 @@ +# vite-plugin-react-click-to-component [![npm](https://img.shields.io/npm/v/vite-plugin-react-click-to-component)](https://www.npmjs.com/package/vite-plugin-react-click-to-component) + +Option+Click React components in your browser to open the source in your editor. + +Light version of [ericclemmons/click-to-component](https://github.com/ericclemmons/click-to-component) that uses Vite's launch editor middleware to open the source code in your currently running editor. + +## Installation + +```sh +npm i -D vite-plugin-react-click-to-component +``` + +In your Vite config: + +```ts +import { defineConfig } from "vite"; +import { swcReactRefresh } from "vite-plugin-swc-react-refresh"; // or @vitejs/plugin-react +import { reactClickToComponent } from "vite-plugin-react-click-to-component"; + +export default defineConfig({ + plugins: [swcReactRefresh(), reactClickToComponent()], +}); +``` diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..d497f1bf140aeadce31af8a88b1e8f53a14c7f45 GIT binary patch literal 95041 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", + "vite": "^2 || ^3" + }, + "devDependencies": { + "@arnaud-barre/eslint-config": "^1.0.13", + "@nabla/tnode": "^0.7.0", + "@types/node": "^18.11.4", + "eslint": "^8.26.0", + "prettier": "^2.7.1", + "typescript": "^4.8.4", + "vite": "^3.1.8" + } +} diff --git a/playground/.eslintrc.js b/playground/.eslintrc.js new file mode 100644 index 0000000..26145b2 --- /dev/null +++ b/playground/.eslintrc.js @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: ["@arnaud-barre"], +}; diff --git a/playground/bun.lockb b/playground/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..528872e5459b818a7cdecbef17fcfc689c1d82e6 GIT binary patch literal 10410 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 + + + + + + Vite + React + TS + + +
+ + + diff --git a/playground/package.json b/playground/package.json new file mode 100644 index 0000000..ce2f477 --- /dev/null +++ b/playground/package.json @@ -0,0 +1,15 @@ +{ + "name": "playground", + "private": true, + "scripts": { + "dev": "vite" + }, + "dependencies": { + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react-dom": "^18.0.6", + "vite-plugin-swc-react-refresh": "^2.1.0" + } +} diff --git a/playground/public/vite.svg b/playground/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/playground/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/playground/src/App.css b/playground/src/App.css new file mode 100644 index 0000000..2c5e2ef --- /dev/null +++ b/playground/src/App.css @@ -0,0 +1,41 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@media (prefers-reduced-motion: no-preference) { + a:nth-of-type(2) .logo { + animation: logo-spin infinite 20s linear; + } +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} diff --git a/playground/src/App.tsx b/playground/src/App.tsx new file mode 100644 index 0000000..d9f75a6 --- /dev/null +++ b/playground/src/App.tsx @@ -0,0 +1,30 @@ +import { useState } from "react"; +import reactLogo from "./react.svg"; +import "./App.css"; + +export const App = () => { + const [count, setCount] = useState(0); + + return ( +
+ +

Vite + React

+
+ +

+ Edit src/App.tsx and save to test HMR +

+
+

+ Click on the Vite and React logos to learn more +

+
+ ); +}; diff --git a/playground/src/index.css b/playground/src/index.css new file mode 100644 index 0000000..917888c --- /dev/null +++ b/playground/src/index.css @@ -0,0 +1,70 @@ +:root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/playground/src/index.tsx b/playground/src/index.tsx new file mode 100644 index 0000000..a93d054 --- /dev/null +++ b/playground/src/index.tsx @@ -0,0 +1,10 @@ +import { StrictMode } from "react"; +import { createRoot } from "react-dom/client"; +import { App } from "./App"; +import "./index.css"; + +createRoot(document.getElementById("root")!).render( + + + +); diff --git a/playground/src/react.svg b/playground/src/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/playground/src/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/playground/tsconfig.json b/playground/tsconfig.json new file mode 100644 index 0000000..f2bfa9a --- /dev/null +++ b/playground/tsconfig.json @@ -0,0 +1,26 @@ +{ + "include": ["src", "vite.config.ts"], + "compilerOptions": { + "module": "ESNext", + "lib": ["ESNext", "DOM", "DOM.Iterable"], + "target": "ESNext", + "jsx": "react-jsx", + "types": ["vite/client"], + "noEmit": true, + "isolatedModules": true, + "skipLibCheck": true, + + /* Imports */ + "moduleResolution": "node", // Allow `index` imports + "resolveJsonModule": true, // Allow json import + "forceConsistentCasingInFileNames": true, // Avoid difference in case between file name and import + "esModuleInterop": false, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "useUnknownInCatchVariables": true + } +} diff --git a/playground/vite.config.ts b/playground/vite.config.ts new file mode 100644 index 0000000..b5cc755 --- /dev/null +++ b/playground/vite.config.ts @@ -0,0 +1,9 @@ +import { defineConfig } from "vite"; +import { swcReactRefresh } from "vite-plugin-swc-react-refresh"; +import { reactClickToComponent } from "../dist"; + +// eslint-disable-next-line import/no-default-export +export default defineConfig({ + plugins: [swcReactRefresh(), reactClickToComponent()], + server: { open: true }, +}); diff --git a/playground/yarn.lock b/playground/yarn.lock new file mode 100755 index 0000000..3c0412a --- /dev/null +++ b/playground/yarn.lock @@ -0,0 +1,182 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 +# bun ./bun.lockb --hash: 90D590E1A5BB8A04-9db21b68f1ee355f-AD9EC10C47070D42-492220feaf5267d8 + + +"@swc/core@^1.2.245": + version "1.3.10" + resolved "https://registry.npmjs.org/@swc/core/-/core-1.3.10.tgz" + integrity sha512-A5YjYFa45ThHOwftKqIQKNbukxJGTsdBQAqoTr+QD1/L6jbRg3xxhU5UDyVdUIULz40PH6YQiulyUVbyrjl1Iw== + dependencies: + "@swc/core-win32-x64-msvc" "1.3.10" + "@swc/core-darwin-x64" "1.3.10" + "@swc/core-linux-x64-gnu" "1.3.10" + "@swc/core-linux-x64-musl" "1.3.10" + "@swc/core-freebsd-x64" "1.3.10" + "@swc/core-win32-ia32-msvc" "1.3.10" + "@swc/core-linux-arm64-gnu" "1.3.10" + "@swc/core-linux-arm-gnueabihf" "1.3.10" + "@swc/core-darwin-arm64" "1.3.10" + "@swc/core-android-arm64" "1.3.10" + "@swc/core-linux-arm64-musl" "1.3.10" + "@swc/core-win32-arm64-msvc" "1.3.10" + "@swc/core-android-arm-eabi" "1.3.10" + +"@swc/core-android-arm-eabi@1.3.10": + version "1.3.10" + resolved "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.3.10.tgz" + integrity sha512-yeW0dvv7SSmb0Y1Hhr9+QceoDjn2uulcaY+LUZ9Zt2UBHl/95c7QVgjDaE2B/lSlTV5En/81/q58lXoT/IqjGw== + dependencies: + "@swc/wasm" "1.2.122" + +"@swc/core-android-arm64@1.3.10": + version "1.3.10" + resolved "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.3.10.tgz" + integrity sha512-HXkUXP4Lm3Xc9qfd9J/6/YfxknWk0Esqmu6nFRikXDc691aXHDcDZ2D8SqPlhx2CZT1juuRajphOaUXMTaAP3g== + dependencies: + "@swc/wasm" "1.2.130" + +"@swc/core-darwin-arm64@1.3.10": + version "1.3.10" + resolved "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.10.tgz" + integrity sha512-X1eM5LDk24W/pbGamwpMRGkQW1BC+1xYNzS38hiK5YCS20TDZwI5LIg2pTEecKl/SRt1WFMwAThUwKbp4m1HIA== + +"@swc/core-darwin-x64@1.3.10": + version "1.3.10" + resolved "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.10.tgz" + integrity sha512-wrsv6upfEzwCGHB7y7IsdrppyywNV7C5TZDXVYv3GCUQZAFlRBar+1yHMojuPxPvyjjfHtTEr68MOhUwq9ti3w== + +"@swc/core-freebsd-x64@1.3.10": + version "1.3.10" + resolved "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.3.10.tgz" + integrity sha512-tJ+ncGIZcueU3RVuQtawLvU0zGza4YKH7aD9unaypFE6e0qx34EX7fzObAhTUi881muEFIU/mDKmVpFqdEi7QQ== + dependencies: + "@swc/wasm" "1.2.130" + +"@swc/core-linux-arm-gnueabihf@1.3.10": + version "1.3.10" + resolved "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.10.tgz" + integrity sha512-4IsAIBk1zdzTINZR5+kPE170yyIQMY76R/yKxtHuzMYxhOaErxsObokttyZ9k9ImlZRujTzEn3A5SsZ/EvibUA== + dependencies: + "@swc/wasm" "1.2.130" + +"@swc/core-linux-arm64-gnu@1.3.10": + version "1.3.10" + resolved "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.10.tgz" + integrity sha512-OaOd+wFbcTQwOD9Ce5luUp8qYoEvdX3s00Bby+j7hybu1fVZK4W40cqzVRp/EDElriG0I+tAdFvQW7PCcEzsPQ== + +"@swc/core-linux-arm64-musl@1.3.10": + version "1.3.10" + resolved "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.10.tgz" + integrity sha512-AUzQ/5T2hoNIgZlnbflDufWDEfJbw+w8FwKoCp7kKyLLAXG8RHgTsx0TazzQ8PVcAQk8lWI2EBrObLL82n91kQ== + +"@swc/core-linux-x64-gnu@1.3.10": + version "1.3.10" + resolved "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.10.tgz" + integrity sha512-rjAyQVRkHCWvCA0wyk0nhJdVMfown6wLvDztKZ0wyT6NDDFdvekTMgALQXL5MW4Q0MYBvGMSauoysTZCdZW9aA== + +"@swc/core-linux-x64-musl@1.3.10": + version "1.3.10" + resolved "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.10.tgz" + integrity sha512-X5KFbPTxcXaycGOrKoiPNCBUOjhCf8GpeNFpM7QASEWulWWM7nkMPrNeXKmQgJBlRT2j3iLine4Pkyc2bLPlVg== + +"@swc/core-win32-arm64-msvc@1.3.10": + version "1.3.10" + resolved "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.10.tgz" + integrity sha512-KcQIERfwGyTAcJOnqGsFbRtU6wSm91xwYFVYjeYy2aNU/SKQ5rtwPTW1UAaUDdwDcS1Y49fNWWj+GPtdaZ+WXQ== + dependencies: + "@swc/wasm" "1.2.130" + +"@swc/core-win32-ia32-msvc@1.3.10": + version "1.3.10" + resolved "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.10.tgz" + integrity sha512-bNpFGZX8tNkwWbQyFRSO+wJ9BgE38ItEodTUXmBsC1xhsHPYLYMlP+6lDKvkO7+jzRMLbyWWUyoWXCEfkvdYWw== + dependencies: + "@swc/wasm" "1.2.130" + +"@swc/core-win32-x64-msvc@1.3.10": + version "1.3.10" + resolved "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.10.tgz" + integrity sha512-40yeeov6XcJHm99anMeEn/NwhDcoM2fhBQHWRVZfCa43QC45AUjJ3kWrD76U6MPGnGy7MsCOXdFyu1mJOAHKEw== + +"@swc/wasm@1.2.122": + version "1.2.122" + resolved "https://registry.npmjs.org/@swc/wasm/-/wasm-1.2.122.tgz" + integrity sha512-sM1VCWQxmNhFtdxME+8UXNyPNhxNu7zdb6ikWpz0YKAQQFRGT5ThZgJrubEpah335SUToNg8pkdDF7ibVCjxbQ== + +"@swc/wasm@1.2.130": + version "1.2.130" + resolved "https://registry.npmjs.org/@swc/wasm/-/wasm-1.2.130.tgz" + integrity sha512-rNcJsBxS70+pv8YUWwf5fRlWX6JoY/HJc25HD/F8m6Kv7XhJdqPPMhyX6TKkUBPAG7TWlZYoxa+rHAjPy4Cj3Q== + +"@types/prop-types@*": + version "15.7.5" + resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz" + integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== + +"@types/react@*": + version "18.0.21" + resolved "https://registry.npmjs.org/@types/react/-/react-18.0.21.tgz" + integrity sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/react-dom@^18.0.6": + version "18.0.6" + resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.6.tgz" + integrity sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA== + dependencies: + "@types/react" "*" + +"@types/scheduler@*": + version "0.16.2" + resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz" + integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== + +csstype@^3.0.2: + version "3.1.1" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz" + integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== + +"js-tokens@^3.0.0 || ^4.0.0": + version "4.0.0" + resolved "" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +loose-envify@^1.1.0: + version "1.4.0" + resolved "" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +react@^18.2.0: + version "18.2.0" + resolved "https://registry.npmjs.org/react/-/react-18.2.0.tgz" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== + dependencies: + loose-envify "^1.1.0" + +react-dom@^18.2.0: + version "18.2.0" + resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.0" + +scheduler@^0.23.0: + version "0.23.0" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz" + integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== + dependencies: + loose-envify "^1.1.0" + +vite-plugin-swc-react-refresh@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/vite-plugin-swc-react-refresh/-/vite-plugin-swc-react-refresh-2.1.0.tgz" + integrity sha512-6YWmPG44ghIu75RbXkDg9OKC2F79jQ4wL3siIMQNKkZ05/PMYYp3DVv7qkXcXBCSjYHbG1bIpDvex8kGxDxIfQ== + dependencies: + "@swc/core" "^1.2.245" diff --git a/scripts/bundle.ts b/scripts/bundle.ts new file mode 100755 index 0000000..2ca0bea --- /dev/null +++ b/scripts/bundle.ts @@ -0,0 +1,62 @@ +#!/usr/bin/env tnode +import { rmSync, writeFileSync } from "fs"; +import { execSync } from "child_process"; +import { build } from "esbuild"; + +import * as packageJSON from "../package.json"; + +const dev = process.argv.includes("--dev"); + +rmSync("dist", { force: true, recursive: true }); + +Promise.all([ + build({ + bundle: true, + entryPoints: ["src/index.ts"], + outdir: "dist", + platform: "node", + target: "node14", + legalComments: "inline", + external: Object.keys(packageJSON.peerDependencies), + watch: dev, + }), + build({ + bundle: true, + entryPoints: ["src/client.ts"], + outdir: "dist", + platform: "browser", + format: "esm", + target: "safari13", + legalComments: "inline", + watch: dev, + }), +]).then(() => { + execSync("cp LICENSE README.md dist/"); + + writeFileSync( + "dist/index.d.ts", + `import { PluginOption } from "vite"; +export declare const reactClickToComponent: () => PluginOption; +` + ); + + writeFileSync( + "dist/package.json", + JSON.stringify( + { + name: packageJSON.name, + description: + "Option+Click React components in your browser to open the source in your editor", + version: packageJSON.version, + author: "Arnaud Barré (https://github.com/ArnaudBarre)", + license: packageJSON.license, + repository: "github:ArnaudBarre/vite-plugin-react-click-to-component", + main: "index.js", + keywords: ["vite", "vite-plugin", "react", "click-to-component"], + peerDependencies: packageJSON.peerDependencies, + }, + null, + 2 + ) + ); +}); diff --git a/src/client.ts b/src/client.ts new file mode 100644 index 0000000..a2c4024 --- /dev/null +++ b/src/client.ts @@ -0,0 +1,151 @@ +/** Inspired by https://github.com/ericclemmons/click-to-component */ + +export {}; +const style = document.createElement("style"); +style.setAttribute("type", "text/css"); +style.setAttribute("data-vite-dev-id", "react-click-to-component"); +style.innerHTML = `[data-click-to-component-target] { + outline: auto 1px !important; +} + +#click-to-component-tooltip { + position: fixed !important; + z-index: 1000 !important; + margin-top: 8px !important; + margin-bottom: 8px !important; + background: #222 !important; + color: white !important; + padding: 4px !important; + border-radius: 4px !important; + font-size: 14px !important; + line-height: 1.5 !important; +}`; +document.head.appendChild(style); + +let altKey = false; +let currentTarget: HTMLElement | undefined; +let hasTooltip = false; +const tooltipElement = document.createElement("div"); +tooltipElement.setAttribute("id", "click-to-component-tooltip"); + +window.addEventListener("keydown", (event) => { + if (event.altKey) altKey = true; +}); + +window.addEventListener("keyup", (event) => { + if (altKey && !event.altKey) cleanUp(); +}); + +window.addEventListener("mousemove", (event) => { + if (!altKey) return; + if (!event.altKey) { + cleanUp(); + return; + } + if (!(event.target instanceof HTMLElement)) { + clearTarget(); + removeTooltip(); + return; + } + if (event.target === currentTarget || event.target === tooltipElement) return; + clearTarget(); + currentTarget = event.target; + event.target.dataset.clickToComponentTarget = "true"; + const path = getPathForElement(event.target); + if (!path) { + removeTooltip(); + return; + } + tooltipElement.textContent = path; + const rect = event.target.getBoundingClientRect(); + if (rect.bottom + 40 < window.innerHeight) { + tooltipElement.style.top = `${rect.bottom}px`; + tooltipElement.style.bottom = ""; + } else if (rect.top > 40) { + tooltipElement.style.bottom = `${window.innerHeight - rect.top}px`; + tooltipElement.style.top = ""; + } else { + tooltipElement.style.bottom = `${window.innerHeight / 2 - 22}px`; + tooltipElement.style.top = ""; + } + if (rect.left < window.innerWidth / 2) { + tooltipElement.style.left = `${rect.left}px`; + tooltipElement.style.right = ""; + } else { + tooltipElement.style.right = `${rect.right}px`; + tooltipElement.style.left = ""; + } + if (!hasTooltip) { + document.body.appendChild(tooltipElement); + hasTooltip = true; + } +}); + +const cleanUp = () => { + clearTarget(); + removeTooltip(); + altKey = false; +}; + +const clearTarget = () => { + const current = document.querySelector( + "[data-click-to-component-target]" + ); + if (!current) return; + delete current.dataset.clickToComponentTarget; +}; + +const removeTooltip = () => { + if (!hasTooltip) return; + document.body.removeChild(tooltipElement); + hasTooltip = false; +}; + +window.addEventListener( + "click", + (event) => { + if (event.altKey && event.target instanceof HTMLElement) { + event.preventDefault(); + const path = getPathForElement(event.target); + if (!path) return; + fetch(`/__open-in-editor?file=${encodeURIComponent(path)}`); + } + }, + { capture: true } +); + +const getPathForElement = (element: Element) => { + const instance = getReactInstanceForElement(element); + if (!instance || !instance._debugSource) { + console.warn("Couldn't find a React instance for the element", element); + return; + } + const { columnNumber = 1, fileName, lineNumber = 1 } = instance._debugSource; + // eslint-disable-next-line @typescript-eslint/restrict-template-expressions + return `${fileName}:${lineNumber}:${columnNumber}`; +}; + +const getReactInstanceForElement = (element: Element) => { + // Prefer React DevTools, which has direct access to `react-dom` for mapping `element` <=> Fiber + if ("__REACT_DEVTOOLS_GLOBAL_HOOK__" in window) { + const { renderers } = (window as any).__REACT_DEVTOOLS_GLOBAL_HOOK__; + + for (const renderer of renderers.values()) { + try { + const fiber = renderer.findFiberByHostInstance(element); + if (fiber) return fiber; + } catch { + // If React is mid-render, references to previous nodes may disappear during the click events + // (This is especially true for interactive elements, like menus) + } + } + } + + if ("_reactRootContainer" in element) { + return (element as any)._reactRootContainer._internalRoot.current.child; + } + + for (const key in element) { + if (key.startsWith("__reactFiber")) return (element as any)[key]; + } +}; diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..dc0c100 --- /dev/null +++ b/src/index.ts @@ -0,0 +1,15 @@ +import { readFileSync } from "fs"; +import { join } from "path"; +import { PluginOption } from "vite"; + +export const reactClickToComponent = (): PluginOption => ({ + name: "react-click-to-component", + apply: "serve", + transformIndexHtml: () => [ + { + tag: "script", + attrs: { type: "module" }, + children: readFileSync(join(__dirname, "client.js"), "utf-8"), + }, + ], +}); diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..36cf204 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,24 @@ +{ + "include": ["src", "scripts"], + "compilerOptions": { + /* Target node 14 */ + "module": "CommonJS", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "target": "ES2020", + "noEmit": true, + "isolatedModules": true, + "skipLibCheck": true, + + /* Imports */ + "moduleResolution": "node", // Allow `index` imports + "resolveJsonModule": true, // Allow json import + "forceConsistentCasingInFileNames": true, // Avoid difference in case between file name and import + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "useUnknownInCatchVariables": true + } +} diff --git a/yarn.lock b/yarn.lock new file mode 100755 index 0000000..16b46df --- /dev/null +++ b/yarn.lock @@ -0,0 +1,2124 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 +# bun ./bun.lockb --hash: 9EEAABAA3A0988D2-b3bf44c6f237e503-9CABA540210204E0-547b8c57648c12e1 + + +"@arnaud-barre/eslint-config@^1.0.13": + version "1.0.13" + resolved "https://registry.npmjs.org/@arnaud-barre/eslint-config/-/eslint-config-1.0.13.tgz" + integrity sha512-786hLy/3UVUUI5yUAxAsxKmGCH+yXaDoHzdLgiualr1LGmVo5HEQJ7HANjdW6LeHMiJpQNkWQWUz3acV4SMuJA== + dependencies: + "@arnaud-barre/eslint-plugin-custom" "^1.0.3" + "@arnaud-barre/eslint-plugin-local" "^1.0.2" + "@typescript-eslint/eslint-plugin" "^5.27.1" + "@typescript-eslint/parser" "^5.27.1" + confusing-browser-globals "^1.0.11" + eslint-import-resolver-typescript "^2.7.1" + eslint-plugin-import "^2.26.0" + eslint-plugin-jsx-a11y "^6.5.1" + eslint-plugin-react "^7.30.0" + eslint-plugin-react-hooks "^4.5.0" + eslint-plugin-react-refresh "^0.2.1" + eslint-plugin-unicorn "^42.0.0" + +"@arnaud-barre/eslint-plugin-custom@^1.0.3": + version "1.0.3" + resolved "" + integrity sha512-lMfRMFZhknCaMq33pIKdvfmKwV9OM8D0fzydFcDbWD780l++ZEM5kxpHv4dKNnAE94DXJW+FXdpiJ882hqV2mA== + dependencies: + "@typescript-eslint/utils" "^5.14.0" + +"@arnaud-barre/eslint-plugin-local@^1.0.2": + version "1.0.2" + resolved "" + integrity sha512-byQLHKXx5Pv5Y3LVNUWZztqrv79N+DZFO8KUOxPVT2tkyAITtbRRjh4kSezYcVpqh4wTpG6GDO0pdHeAnSDQ4Q== + +"@babel/code-frame@^7.0.0": + version "7.18.6" + resolved "" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/helper-validator-identifier@^7.15.7", "@babel/helper-validator-identifier@^7.18.6": + version "7.19.1" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== + +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/runtime@^7.10.2", "@babel/runtime@^7.18.9": + version "7.19.4" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.4.tgz" + integrity sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/runtime-corejs3@^7.10.2": + version "7.19.6" + resolved "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.6.tgz" + integrity sha512-oWNn1ZlGde7b4i/3tnixpH9qI0bOAACiUs+KEES4UUCnsPjVWFlWdLV/iwJuPC2qp3EowbAqsm+0XqNwnwYhxA== + dependencies: + core-js-pure "^3.25.1" + regenerator-runtime "^0.13.4" + +"@esbuild/android-arm@0.15.12": + version "0.15.12" + resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.12.tgz" + integrity sha512-IC7TqIqiyE0MmvAhWkl/8AEzpOtbhRNDo7aph47We1NbE5w2bt/Q+giAhe0YYeVpYnIhGMcuZY92qDK6dQauvA== + +"@esbuild/linux-loong64@0.15.12": + version "0.15.12" + resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.12.tgz" + integrity sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw== + +"@eslint/eslintrc@^1.3.3": + version "1.3.3" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz" + integrity sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.4.0" + globals "^13.15.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@humanwhocodes/config-array@^0.11.6": + version "0.11.6" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.6.tgz" + integrity sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/module-importer@^1.0.1", "@humanwhocodes/module-importer@^3 || ^4 || ^5 || ^6 || ^7 || ^8": + version "1.0.1" + resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^1.2.1": + version "1.2.1" + resolved "" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + +"@nabla/tnode@^0.7.0": + version "0.7.0" + resolved "https://registry.npmjs.org/@nabla/tnode/-/tnode-0.7.0.tgz" + integrity sha512-scPx/z8g/PubRdz4XX9OiZt6JJkIRdhu8+Oe6yG4Bgrfy0lS7x0P6KqO8hr62PcfR7hbw29J13T/ZYvOGmKqOA== + dependencies: + esbuild "^0.15.6" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@types/json-schema@^7.0.9": + version "7.0.11" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/node@^18.11.4": + version "18.11.4" + resolved "https://registry.npmjs.org/@types/node/-/node-18.11.4.tgz" + integrity sha512-BxcJpBu8D3kv/GZkx/gSMz6VnTJREBj/4lbzYOQueUOELkt8WrO6zAcSPmp9uRPEW/d+lUO8QK0W2xnS1hEU0A== + +"@types/normalize-package-data@^2.4.0": + version "2.4.1" + resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + +"@types/semver@^7.3.12": + version "7.3.12" + resolved "https://registry.npmjs.org/@types/semver/-/semver-7.3.12.tgz" + integrity sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A== + +"@typescript-eslint/eslint-plugin@^5.27.1": + version "5.40.1" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.40.1.tgz" + integrity sha512-FsWboKkWdytGiXT5O1/R9j37YgcjO8MKHSUmWnIEjVaz0krHkplPnYi7mwdb+5+cs0toFNQb0HIrN7zONdIEWg== + dependencies: + "@typescript-eslint/scope-manager" "5.40.1" + "@typescript-eslint/type-utils" "5.40.1" + "@typescript-eslint/utils" "5.40.1" + debug "^4.3.4" + ignore "^5.2.0" + regexpp "^3.2.0" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/parser@^5.27.1": + version "5.40.1" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.40.1.tgz" + integrity sha512-IK6x55va5w4YvXd4b3VrXQPldV9vQTxi5ov+g4pMANsXPTXOcfjx08CRR1Dfrcc51syPtXHF5bgLlMHYFrvQtg== + dependencies: + "@typescript-eslint/scope-manager" "5.40.1" + "@typescript-eslint/types" "5.40.1" + "@typescript-eslint/typescript-estree" "5.40.1" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@5.40.1": + version "5.40.1" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.40.1.tgz" + integrity sha512-jkn4xsJiUQucI16OLCXrLRXDZ3afKhOIqXs4R3O+M00hdQLKR58WuyXPZZjhKLFCEP2g+TXdBRtLQ33UfAdRUg== + dependencies: + "@typescript-eslint/types" "5.40.1" + "@typescript-eslint/visitor-keys" "5.40.1" + +"@typescript-eslint/type-utils@5.40.1": + version "5.40.1" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.40.1.tgz" + integrity sha512-DLAs+AHQOe6n5LRraXiv27IYPhleF0ldEmx6yBqBgBLaNRKTkffhV1RPsjoJBhVup2zHxfaRtan8/YRBgYhU9Q== + dependencies: + "@typescript-eslint/typescript-estree" "5.40.1" + "@typescript-eslint/utils" "5.40.1" + debug "^4.3.4" + tsutils "^3.21.0" + +"@typescript-eslint/types@5.40.1": + version "5.40.1" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.40.1.tgz" + integrity sha512-Icg9kiuVJSwdzSQvtdGspOlWNjVDnF3qVIKXdJ103o36yRprdl3Ge5cABQx+csx960nuMF21v8qvO31v9t3OHw== + +"@typescript-eslint/typescript-estree@5.40.1": + version "5.40.1" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.40.1.tgz" + integrity sha512-5QTP/nW5+60jBcEPfXy/EZL01qrl9GZtbgDZtDPlfW5zj/zjNrdI2B5zMUHmOsfvOr2cWqwVdWjobCiHcedmQA== + dependencies: + "@typescript-eslint/types" "5.40.1" + "@typescript-eslint/visitor-keys" "5.40.1" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.40.1", "@typescript-eslint/utils@^5.14.0": + version "5.40.1" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.40.1.tgz" + integrity sha512-a2TAVScoX9fjryNrW6BZRnreDUszxqm9eQ9Esv8n5nXApMW0zeANUYlwh/DED04SC/ifuBvXgZpIK5xeJHQ3aw== + dependencies: + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.40.1" + "@typescript-eslint/types" "5.40.1" + "@typescript-eslint/typescript-estree" "5.40.1" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + semver "^7.3.7" + +"@typescript-eslint/visitor-keys@5.40.1": + version "5.40.1" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.40.1.tgz" + integrity sha512-A2DGmeZ+FMja0geX5rww+DpvILpwo1OsiQs0M+joPWJYsiEFBLsH0y1oFymPNul6Z5okSmHpP4ivkc2N0Cgfkw== + dependencies: + "@typescript-eslint/types" "5.40.1" + eslint-visitor-keys "^3.3.0" + +acorn@^8.8.0: + version "8.8.0" + resolved "" + integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +ajv@^6.10.0, ajv@^6.12.4: + version "6.12.6" + resolved "" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + 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== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +argparse@^2.0.1: + version "2.0.1" + resolved "" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-query@^4.2.2: + version "4.2.2" + resolved "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz" + integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== + dependencies: + "@babel/runtime" "^7.10.2" + "@babel/runtime-corejs3" "^7.10.2" + +array-includes@^3.1.4, array-includes@^3.1.5: + version "3.1.5" + resolved "" + integrity sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + get-intrinsic "^1.1.1" + is-string "^1.0.7" + +array-union@^2.1.0: + version "2.1.0" + resolved "" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array.prototype.flat@^1.2.5: + version "1.3.0" + resolved "" + integrity sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.2" + es-shim-unscopables "^1.0.0" + +array.prototype.flatmap@^1.3.0: + version "1.3.0" + resolved "" + integrity sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.2" + es-shim-unscopables "^1.0.0" + +ast-types-flow@^0.0.7: + version "0.0.7" + resolved "" + integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== + +axe-core@^4.4.3: + version "4.4.3" + resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz" + integrity sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w== + +axobject-query@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz" + integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.2: + version "3.0.2" + resolved "" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +builtin-modules@^3.3.0: + version "3.3.0" + resolved "" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +ci-info@^3.3.0: + version "3.5.0" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.5.0.tgz" + integrity sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw== + +clean-regexp@^1.0.0: + version "1.0.0" + resolved "" + integrity sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw== + dependencies: + escape-string-regexp "^1.0.5" + +color-convert@^1.9.0: + version "1.9.3" + resolved "" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +concat-map@0.0.1: + version "0.0.1" + resolved "" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +confusing-browser-globals@^1.0.11: + version "1.0.11" + resolved "" + integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== + +core-js-pure@^3.25.1: + version "3.26.0" + resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.0.tgz" + integrity sha512-LiN6fylpVBVwT8twhhluD9TzXmZQQsr2I2eIKtWNbZI1XMfBT7CV18itaN6RA7EtQd/SDdRx/wzvAShX2HvhQA== + +cross-spawn@^7.0.2: + version "7.0.3" + resolved "" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +damerau-levenshtein@^1.0.8: + version "1.0.8" + resolved "" + integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== + +debug@^2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +deep-is@^0.1.3: + version "0.1.4" + resolved "" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +define-properties@^1.1.3, define-properties@^1.1.4: + version "1.1.4" + resolved "" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +error-ex@^1.3.1: + version "1.3.2" + resolved "" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5: + version "1.20.4" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz" + integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.1.3" + get-symbol-description "^1.0.0" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-weakref "^1.0.2" + object-inspect "^1.12.2" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" + string.prototype.trimend "^1.0.5" + string.prototype.trimstart "^1.0.5" + unbox-primitive "^1.0.2" + +es-shim-unscopables@^1.0.0: + version "1.0.0" + resolved "" + integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + dependencies: + has "^1.0.3" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +esbuild@^0.15.6, esbuild@^0.15.9: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.15.12.tgz" + integrity sha512-PcT+/wyDqJQsRVhaE9uX/Oq4XLrFh0ce/bs2TJh4CSaw9xuvI+xFrH2nAYOADbhQjUgAhNWC5LKoUsakm4dxng== + dependencies: + "@esbuild/android-arm" "0.15.12" + "@esbuild/linux-loong64" "0.15.12" + esbuild-android-64 "0.15.12" + esbuild-android-arm64 "0.15.12" + esbuild-darwin-64 "0.15.12" + esbuild-darwin-arm64 "0.15.12" + esbuild-freebsd-64 "0.15.12" + esbuild-freebsd-arm64 "0.15.12" + esbuild-linux-32 "0.15.12" + esbuild-linux-64 "0.15.12" + esbuild-linux-arm "0.15.12" + esbuild-linux-arm64 "0.15.12" + esbuild-linux-mips64le "0.15.12" + esbuild-linux-ppc64le "0.15.12" + esbuild-linux-riscv64 "0.15.12" + esbuild-linux-s390x "0.15.12" + esbuild-netbsd-64 "0.15.12" + esbuild-openbsd-64 "0.15.12" + esbuild-sunos-64 "0.15.12" + esbuild-windows-32 "0.15.12" + esbuild-windows-64 "0.15.12" + esbuild-windows-arm64 "0.15.12" + +esbuild-android-64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.12.tgz" + integrity sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q== + +esbuild-android-arm64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.12.tgz" + integrity sha512-Hc9SEcZbIMhhLcvhr1DH+lrrec9SFTiRzfJ7EGSBZiiw994gfkVV6vG0sLWqQQ6DD7V4+OggB+Hn0IRUdDUqvA== + +esbuild-darwin-64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.12.tgz" + integrity sha512-qkmqrTVYPFiePt5qFjP8w/S+GIUMbt6k8qmiPraECUWfPptaPJUGkCKrWEfYFRWB7bY23FV95rhvPyh/KARP8Q== + +esbuild-darwin-arm64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.12.tgz" + integrity sha512-z4zPX02tQ41kcXMyN3c/GfZpIjKoI/BzHrdKUwhC/Ki5BAhWv59A9M8H+iqaRbwpzYrYidTybBwiZAIWCLJAkw== + +esbuild-freebsd-64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.12.tgz" + integrity sha512-XFL7gKMCKXLDiAiBjhLG0XECliXaRLTZh6hsyzqUqPUf/PY4C6EJDTKIeqqPKXaVJ8+fzNek88285krSz1QECw== + +esbuild-freebsd-arm64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.12.tgz" + integrity sha512-jwEIu5UCUk6TjiG1X+KQnCGISI+ILnXzIzt9yDVrhjug2fkYzlLbl0K43q96Q3KB66v6N1UFF0r5Ks4Xo7i72g== + +esbuild-linux-32@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.12.tgz" + integrity sha512-uSQuSEyF1kVzGzuIr4XM+v7TPKxHjBnLcwv2yPyCz8riV8VUCnO/C4BF3w5dHiVpCd5Z1cebBtZJNlC4anWpwA== + +esbuild-linux-64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.12.tgz" + integrity sha512-QcgCKb7zfJxqT9o5z9ZUeGH1k8N6iX1Y7VNsEi5F9+HzN1OIx7ESxtQXDN9jbeUSPiRH1n9cw6gFT3H4qbdvcA== + +esbuild-linux-arm@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.12.tgz" + integrity sha512-Wf7T0aNylGcLu7hBnzMvsTfEXdEdJY/hY3u36Vla21aY66xR0MS5I1Hw8nVquXjTN0A6fk/vnr32tkC/C2lb0A== + +esbuild-linux-arm64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.12.tgz" + integrity sha512-HtNq5xm8fUpZKwWKS2/YGwSfTF+339L4aIA8yphNKYJckd5hVdhfdl6GM2P3HwLSCORS++++7++//ApEwXEuAQ== + +esbuild-linux-mips64le@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.12.tgz" + integrity sha512-Qol3+AvivngUZkTVFgLpb0H6DT+N5/zM3V1YgTkryPYFeUvuT5JFNDR3ZiS6LxhyF8EE+fiNtzwlPqMDqVcc6A== + +esbuild-linux-ppc64le@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.12.tgz" + integrity sha512-4D8qUCo+CFKaR0cGXtGyVsOI7w7k93Qxb3KFXWr75An0DHamYzq8lt7TNZKoOq/Gh8c40/aKaxvcZnTgQ0TJNg== + +esbuild-linux-riscv64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.12.tgz" + integrity sha512-G9w6NcuuCI6TUUxe6ka0enjZHDnSVK8bO+1qDhMOCtl7Tr78CcZilJj8SGLN00zO5iIlwNRZKHjdMpfFgNn1VA== + +esbuild-linux-s390x@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.12.tgz" + integrity sha512-Lt6BDnuXbXeqSlVuuUM5z18GkJAZf3ERskGZbAWjrQoi9xbEIsj/hEzVnSAFLtkfLuy2DE4RwTcX02tZFunXww== + +esbuild-netbsd-64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.12.tgz" + integrity sha512-jlUxCiHO1dsqoURZDQts+HK100o0hXfi4t54MNRMCAqKGAV33JCVvMplLAa2FwviSojT/5ZG5HUfG3gstwAG8w== + +esbuild-openbsd-64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.12.tgz" + integrity sha512-1o1uAfRTMIWNOmpf8v7iudND0L6zRBYSH45sofCZywrcf7NcZA+c7aFsS1YryU+yN7aRppTqdUK1PgbZVaB1Dw== + +esbuild-sunos-64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.12.tgz" + integrity sha512-nkl251DpoWoBO9Eq9aFdoIt2yYmp4I3kvQjba3jFKlMXuqQ9A4q+JaqdkCouG3DHgAGnzshzaGu6xofGcXyPXg== + +esbuild-windows-32@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.12.tgz" + integrity sha512-WlGeBZHgPC00O08luIp5B2SP4cNCp/PcS+3Pcg31kdcJPopHxLkdCXtadLU9J82LCfw4TVls21A6lilQ9mzHrw== + +esbuild-windows-64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.12.tgz" + integrity sha512-VActO3WnWZSN//xjSfbiGOSyC+wkZtI8I4KlgrTo5oHJM6z3MZZBCuFaZHd8hzf/W9KPhF0lY8OqlmWC9HO5AA== + +esbuild-windows-arm64@0.15.12: + version "0.15.12" + resolved "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.12.tgz" + integrity sha512-Of3MIacva1OK/m4zCNIvBfz8VVROBmQT+gRX6pFTLPngFYcj6TFH/12VveAqq1k9VB2l28EoVMNMUCcmsfwyuA== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint@^8.26.0: + version "8.26.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.26.0.tgz" + integrity sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg== + dependencies: + "@eslint/eslintrc" "^1.3.3" + "@humanwhocodes/config-array" "^0.11.6" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.1.1" + eslint-utils "^3.0.0" + eslint-visitor-keys "^3.3.0" + espree "^9.4.0" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.15.0" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-sdsl "^4.1.4" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.1" + regexpp "^3.2.0" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" + +eslint-import-resolver-node@^0.3.6: + version "0.3.6" + resolved "" + integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== + dependencies: + debug "^3.2.7" + resolve "^1.20.0" + +eslint-import-resolver-typescript@^2.7.1: + version "2.7.1" + resolved "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.7.1.tgz" + integrity sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ== + dependencies: + debug "^4.3.4" + glob "^7.2.0" + is-glob "^4.0.3" + resolve "^1.22.0" + tsconfig-paths "^3.14.1" + +eslint-module-utils@^2.7.3: + version "2.7.4" + resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz" + integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== + dependencies: + debug "^3.2.7" + +eslint-plugin-import@^2.26.0: + version "2.26.0" + resolved "" + integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== + dependencies: + array-includes "^3.1.4" + array.prototype.flat "^1.2.5" + debug "^2.6.9" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.6" + eslint-module-utils "^2.7.3" + has "^1.0.3" + is-core-module "^2.8.1" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.values "^1.1.5" + resolve "^1.22.0" + tsconfig-paths "^3.14.1" + +eslint-plugin-jsx-a11y@^6.5.1: + version "6.6.1" + resolved "" + integrity sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q== + dependencies: + "@babel/runtime" "^7.18.9" + aria-query "^4.2.2" + array-includes "^3.1.5" + ast-types-flow "^0.0.7" + axe-core "^4.4.3" + axobject-query "^2.2.0" + damerau-levenshtein "^1.0.8" + emoji-regex "^9.2.2" + has "^1.0.3" + jsx-ast-utils "^3.3.2" + language-tags "^1.0.5" + minimatch "^3.1.2" + semver "^6.3.0" + +eslint-plugin-react@^7.30.0: + version "7.31.10" + resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz" + integrity sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA== + dependencies: + array-includes "^3.1.5" + array.prototype.flatmap "^1.3.0" + doctrine "^2.1.0" + estraverse "^5.3.0" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.1.2" + object.entries "^1.1.5" + object.fromentries "^2.0.5" + object.hasown "^1.1.1" + object.values "^1.1.5" + prop-types "^15.8.1" + resolve "^2.0.0-next.3" + semver "^6.3.0" + string.prototype.matchall "^4.0.7" + +eslint-plugin-react-hooks@^4.5.0: + version "4.6.0" + resolved "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz" + integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== + +eslint-plugin-react-refresh@^0.2.1: + version "0.2.1" + resolved "" + integrity sha512-6K5oZZN6LtrCoRfN6w/G0+N7hwfPyjJlR3SHuLXNKGR08z4eaxfgNmGSIvCoXZFysHJ/CeyD5vq2fRTgQt6T8A== + +eslint-plugin-unicorn@^42.0.0: + version "42.0.0" + resolved "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-42.0.0.tgz" + integrity sha512-ixBsbhgWuxVaNlPTT8AyfJMlhyC5flCJFjyK3oKE8TRrwBnaHvUbuIkCM1lqg8ryYrFStL/T557zfKzX4GKSlg== + dependencies: + "@babel/helper-validator-identifier" "^7.15.7" + ci-info "^3.3.0" + clean-regexp "^1.0.0" + eslint-utils "^3.0.0" + esquery "^1.4.0" + indent-string "^4.0.0" + is-builtin-module "^3.1.0" + lodash "^4.17.21" + pluralize "^8.0.0" + read-pkg-up "^7.0.1" + regexp-tree "^0.1.24" + safe-regex "^2.1.1" + semver "^7.3.5" + strip-indent "^3.0.0" + +eslint-scope@^5.1.1: + version "5.1.1" + resolved "" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-scope@^7.1.1: + version "7.1.1" + resolved "" + integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-utils@^3.0.0: + version "3.0.0" + resolved "" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint-visitor-keys@^3.3.0: + version "3.3.0" + resolved "" + integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== + +espree@^9.4.0: + version "9.4.0" + resolved "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz" + integrity sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw== + dependencies: + acorn "^8.8.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.3.0" + +esquery@^1.4.0: + version "1.4.0" + resolved "" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: + version "5.3.0" + resolved "" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.2.9: + version "3.2.12" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fastq@^1.6.0: + version "1.13.0" + resolved "" + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + dependencies: + reusify "^1.0.4" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +fill-range@^7.0.1: + version "7.0.1" + resolved "" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@^4.1.0: + version "4.1.0" + resolved "" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^3.1.0: + version "3.2.7" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@*, fsevents@~2.3.2: + version "2.3.2" + resolved "" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +functions-have-names@^1.2.2: + version "1.2.3" + resolved "" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz" + integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +glob@^7.1.3, glob@^7.2.0: + version "7.2.3" + resolved "" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob-parent@^5.1.2: + version "5.1.2" + resolved "" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +globals@^13.15.0: + version "13.17.0" + resolved "" + integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== + dependencies: + type-fest "^0.20.2" + +globby@^11.1.0: + version "11.1.0" + resolved "" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + +has@^1.0.3: + version "1.0.3" + resolved "" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +ignore@^5.2.0: + version "5.2.0" + resolved "" + integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +inflight@^1.0.4: + version "1.0.6" + resolved "" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +internal-slot@^1.0.3: + version "1.0.3" + resolved "" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-builtin-module@^3.1.0: + version "3.2.0" + resolved "" + integrity sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw== + dependencies: + builtin-modules "^3.3.0" + +is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.8.1, is-core-module@^2.9.0: + version "2.11.0" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: + version "4.0.3" + resolved "" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number@^7.0.0: + version "7.0.0" + resolved "" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-regex@^1.1.4: + version "1.1.4" + resolved "" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-weakref@^1.0.2: + version "1.0.2" + resolved "" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +isexe@^2.0.0: + version "2.0.0" + resolved "" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +js-sdsl@^4.1.4: + version "4.1.5" + resolved "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz" + integrity sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +json-parse-even-better-errors@^2.3.0: + 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== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json5@^1.0.1: + version "1.0.1" + resolved "" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.2: + version "3.3.3" + resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz" + integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw== + dependencies: + array-includes "^3.1.5" + object.assign "^4.1.3" + +language-subtag-registry@~0.3.2: + version "0.3.22" + resolved "" + integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== + +language-tags@^1.0.5: + version "1.0.5" + resolved "" + integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ== + dependencies: + language-subtag-registry "~0.3.2" + +levn@^0.4.1: + version "0.4.1" + resolved "" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +locate-path@^5.0.0: + version "5.0.0" + resolved "" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +loose-envify@^1.4.0: + version "1.4.0" + resolved "" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.5" + resolved "" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +min-indent@^1.0.0: + version "1.0.1" + resolved "" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +minimatch@^3.0.4: + version "3.0.8" + resolved "" + integrity sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0, minimist@^1.2.6: + version "1.2.7" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz" + integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +nanoid@^3.3.4: + version "3.3.4" + resolved "" + integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +object-assign@^4.1.1: + version "4.1.1" + resolved "" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.12.2, object-inspect@^1.9.0: + version "1.12.2" + resolved "" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== + +object-keys@^1.1.1: + version "1.1.1" + resolved "" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.3, object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.entries@^1.1.5: + version "1.1.5" + resolved "" + integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + +object.fromentries@^2.0.5: + version "2.0.5" + resolved "" + integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + +object.hasown@^1.1.1: + version "1.1.1" + resolved "" + integrity sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A== + dependencies: + define-properties "^1.1.4" + es-abstract "^1.19.5" + +object.values@^1.1.5: + version "1.1.5" + resolved "" + integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + +once@^1.3.0: + version "1.4.0" + resolved "" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +optionator@^0.9.1: + version "0.9.1" + resolved "" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + prelude-ls "^1.2.1" + deep-is "^0.1.3" + word-wrap "^1.2.3" + type-check "^0.4.0" + levn "^0.4.1" + fast-levenshtein "^2.0.6" + +p-limit@^2.2.0: + version "2.3.0" + resolved "" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-try@^2.0.0: + version "2.2.0" + resolved "" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +parent-module@^1.0.0: + version "1.0.1" + resolved "" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^5.0.0: + version "5.2.0" + resolved "" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + 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" + +path-exists@^4.0.0: + version "4.0.0" + resolved "" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.1.0: + version "3.1.1" + resolved "" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-type@^4.0.0: + version "4.0.0" + resolved "" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picocolors@^1.0.0: + version "1.0.0" + resolved "" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.3.1: + version "2.3.1" + resolved "" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pluralize@^8.0.0: + version "8.0.0" + resolved "" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + +postcss@^8.4.16: + version "8.4.18" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz" + integrity sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier@^2.7.1: + version "2.7.1" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz" + integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== + +prop-types@^15.8.1: + version "15.8.1" + resolved "" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +punycode@^2.1.0: + version "2.1.1" + resolved "" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +react-is@^16.13.1: + version "16.13.1" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +read-pkg@^5.2.0: + version "5.2.0" + resolved "" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +regenerator-runtime@^0.13.4: + version "0.13.10" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz" + integrity sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw== + +regexp-tree@^0.1.24, regexp-tree@~0.1.1: + version "0.1.24" + resolved "" + integrity sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw== + +regexp.prototype.flags@^1.4.1, regexp.prototype.flags@^1.4.3: + version "1.4.3" + resolved "" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + functions-have-names "^1.2.2" + +regexpp@^3.2.0: + version "3.2.0" + resolved "" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + +resolve@^1.10.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.1: + version "1.22.1" + resolved "" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +"resolve@^2.0.0-next.3": + version "2.0.0-next.4" + resolved "" + integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +reusify@^1.0.4: + version "1.0.4" + resolved "" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rollup@~2.78.0: + version "2.78.1" + resolved "https://registry.npmjs.org/rollup/-/rollup-2.78.1.tgz" + integrity sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg== + dependencies: + fsevents "~2.3.2" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-regex@^2.1.1: + version "2.1.1" + resolved "" + integrity sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A== + dependencies: + regexp-tree "~0.1.1" + +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + +"semver@2 || 3 || 4 || 5": + version "5.7.1" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.3.0: + version "6.3.0" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.3.5, semver@^7.3.7: + version "7.3.8" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +side-channel@^1.0.4: + version "1.0.4" + resolved "" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +source-map-js@^1.0.2: + version "1.0.2" + resolved "" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.12" + resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz" + integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== + +string.prototype.matchall@^4.0.7: + version "4.0.7" + resolved "" + integrity sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + get-intrinsic "^1.1.1" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + regexp.prototype.flags "^1.4.1" + side-channel "^1.0.4" + +string.prototype.trimend@^1.0.5: + version "1.0.5" + resolved "" + integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + +string.prototype.trimstart@^1.0.5: + version "1.0.5" + resolved "" + integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + +strip-ansi@^6.0.1: + version "6.0.1" + resolved "" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom@^3.0.0, "strip-bom@^6.0.0 || ^7.0.0 || ^8.0.0": + version "3.0.0" + resolved "" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-indent@^3.0.0: + version "3.0.0" + resolved "" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tsconfig-paths@^3.14.1: + version "3.14.1" + resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz" + integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@^1.8.1: + version "1.14.1" + resolved "" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tsutils@^3.21.0: + version "3.21.0" + resolved "" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +type-check@^0.4.0: + version "0.4.0" + resolved "" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-fest@^0.20.2: + 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== + +typescript@^4.8.4: + version "4.8.4" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz" + integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +uri-js@^4.2.2: + version "4.4.1" + resolved "" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vite@^3.1.8: + version "3.1.8" + resolved "https://registry.npmjs.org/vite/-/vite-3.1.8.tgz" + integrity sha512-m7jJe3nufUbuOfotkntGFupinL/fmuTNuQmiVE7cH2IZMuf4UbfbGYMUT3jVWgGYuRVLY9j8NnrRqgw5rr5QTg== + dependencies: + esbuild "^0.15.9" + postcss "^8.4.16" + resolve "^1.22.1" + rollup "~2.78.0" + fsevents "~2.3.2" + +which@^2.0.1: + version "2.0.2" + resolved "" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +word-wrap@^1.2.3: + version "1.2.3" + resolved "" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrappy@1: + version "1.0.2" + resolved "" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +yallist@^4.0.0: + version "4.0.0" + resolved "" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==