From f59260be18809b9232c44a600214475ac542775d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arnaud=20Barr=C3=A9?= Date: Tue, 21 Feb 2023 21:13:13 +0100 Subject: [PATCH] v2: Context menu on option+right click [publish] --- .github/workflows/publish.yml | 2 +- CHANGELOG.md | 8 + README.md | 2 +- bun.lockb | Bin 99771 -> 102962 bytes package.json | 16 +- playground/bun.lockb | Bin 8574 -> 8110 bytes playground/package.json | 7 +- playground/src/App.tsx | 50 +- playground/src/Button.tsx | 7 + playground/yarn.lock | 156 +++--- scripts/bundle.ts | 10 +- src/client.ts | 190 ++++--- src/index.ts | 10 +- yarn.lock | 982 ++++++++++++++++++++-------------- 14 files changed, 840 insertions(+), 600 deletions(-) create mode 100644 playground/src/Button.tsx mode change 100755 => 100644 playground/yarn.lock mode change 100755 => 100644 yarn.lock diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 0096012..a39648d 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -9,7 +9,7 @@ jobs: if: ${{ contains(github.event.head_commit.message, '[publish]') }} steps: - uses: actions/checkout@v3 - - uses: xhyrom/setup-bun@v0.1.8 + - uses: xhyrom/setup-bun@v1 - run: bun install - run: bun ci - uses: ArnaudBarre/npm-publish@v1 diff --git a/CHANGELOG.md b/CHANGELOG.md index 4fdc799..c2e0903 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 2.0.0 + +Context menu on option+right click to see all the intermediate components and jump to the right place! +Direct click is remove for two reasons: + +- It doesn't play well with buttons and links +- In large apps, you often end up on the generic component instead of going inside the usage of it + ## 1.0.3 - Add Vite 4 to peer dependency range diff --git a/README.md b/README.md index e1e17f5..3c4d0eb 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # 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. +Option+Right Click 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. diff --git a/bun.lockb b/bun.lockb index bcc6c927f817f7a58cddb6334c47d975f040b0bb..3bffaadc7196fc7d5162b47bca699fb87f25e624 100755 GIT binary patch delta 42176 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 diff --git a/package.json b/package.json index f9c061d..7bb3656 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vite-plugin-react-click-to-component", - "version": "1.0.3", + "version": "2.0.0", "license": "MIT", "scripts": { "postinstall": "cd playground && bun i", @@ -11,7 +11,7 @@ "lint-ci": "eslint src scripts --ext ts,tsx --report-unused-disable-directives --max-warnings 0", "prettier": "yarn prettier-ci --write", "prettier-ci": "prettier --ignore-path=.gitignore --check '**/*.{ts,tsx,html,css,json,md,yml}'", - "ci": "tsc && bun lint-ci && bun prettier-ci && bun run build" + "ci": "tsc && bun lint-ci && bun prettier-ci && bun run build && cd playground && tsc && bun lint-ci" }, "prettier": { "trailingComma": "all" @@ -21,12 +21,12 @@ "vite": "^2 || ^3 || ^4" }, "devDependencies": { - "@arnaud-barre/eslint-config": "^1.0.17", + "@arnaud-barre/eslint-config": "^1.0.19", "@nabla/tnode": "^0.8.0", - "@types/node": "^18.11.12", - "eslint": "^8.29.0", - "prettier": "^2.8.1", - "typescript": "^4.9.4", - "vite": "^4.0.0" + "@types/node": "^18.14.0", + "eslint": "^8.34.0", + "prettier": "^2.8.4", + "typescript": "^4.9.5", + "vite": "^4.1.4" } } diff --git a/playground/bun.lockb b/playground/bun.lockb index cf70133ac0a20c41ec6ea234194d7cf3ccbc1c29..0bcaea1e76dd9c5ce71cb946b42b4f8a0bc3852b 100755 GIT binary patch delta 3065 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 W86eaz4AvN?JySk7#i{$h`~6=S&T5$e diff --git a/playground/package.json b/playground/package.json index 34ff395..b462693 100644 --- a/playground/package.json +++ b/playground/package.json @@ -2,14 +2,15 @@ "name": "playground", "private": true, "scripts": { - "dev": "vite" + "dev": "vite", + "lint-ci": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0" }, "dependencies": { "react": "^18.2.0", "react-dom": "^18.2.0" }, "devDependencies": { - "@types/react-dom": "^18.0.9", - "@vitejs/plugin-react-swc": "^3.0.0" + "@types/react-dom": "^18.0.11", + "@vitejs/plugin-react-swc": "^3.2.0" } } diff --git a/playground/src/App.tsx b/playground/src/App.tsx index 841c213..fec8dd5 100644 --- a/playground/src/App.tsx +++ b/playground/src/App.tsx @@ -1,32 +1,28 @@ -import { useState } from "react"; import reactLogo from "./react.svg"; +import { Button } from "./Button"; import "./App.css"; -export const App = () => { - const [count, setCount] = useState(0); - - return ( -
-
Top right
-
Full height
- -

Vite + React

-
- -

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

-
-

- Click on the Vite and React logos to learn more +export const App = () => ( +

+
Top right
+
Full height
+ +

Vite + React

+
+
- ); -}; +

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

+
+); diff --git a/playground/src/Button.tsx b/playground/src/Button.tsx new file mode 100644 index 0000000..9df0bde --- /dev/null +++ b/playground/src/Button.tsx @@ -0,0 +1,7 @@ +import { useState } from "react"; + +export const Button = () => { + const [count, setCount] = useState(0); + + return ; +}; diff --git a/playground/yarn.lock b/playground/yarn.lock old mode 100755 new mode 100644 index 0830549..e5f0d81 --- a/playground/yarn.lock +++ b/playground/yarn.lock @@ -1,73 +1,73 @@ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. # yarn lockfile v1 -# bun ./bun.lockb --hash: 7E502891CC3CE8CC-f8f63b46ff797c67-3D098B48DC753020-0c86a38c3d477462 +# bun ./bun.lockb --hash: C6A399B4BFDAB035-b0d685f590d9fa8d-44ABB523C705F2F6-56bcddc0f6883165 -"@swc/core@^1.3.21": - version "1.3.22" - resolved "https://registry.npmjs.org/@swc/core/-/core-1.3.22.tgz" - integrity sha512-oQ9EPEb7NgWcGIDoVfLCuffvtC4MzVtrwjqwKzFHP8FUh1fn8+2wraOjkkDXW74BB4Hgve5ykkaHix9bebB9Ww== +"@swc/core@^1.3.35": + version "1.3.36" + resolved "https://registry.npmjs.org/@swc/core/-/core-1.3.36.tgz" + integrity sha512-Ogrd9uRNIj7nHjXxG66UlKBIcXESUenJ7OD6K2a8p82qlg6ne7Ne5Goiipm/heHYhSfVmjcnRWL9ZJ4gv+YCPA== dependencies: - "@swc/core-win32-x64-msvc" "1.3.22" - "@swc/core-darwin-x64" "1.3.22" - "@swc/core-linux-x64-gnu" "1.3.22" - "@swc/core-linux-x64-musl" "1.3.22" - "@swc/core-win32-ia32-msvc" "1.3.22" - "@swc/core-linux-arm64-gnu" "1.3.22" - "@swc/core-linux-arm-gnueabihf" "1.3.22" - "@swc/core-darwin-arm64" "1.3.22" - "@swc/core-linux-arm64-musl" "1.3.22" - "@swc/core-win32-arm64-msvc" "1.3.22" - -"@swc/core-darwin-arm64@1.3.22": - version "1.3.22" - resolved "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.22.tgz" - integrity sha512-MMhtPsuXp8gpUgr9bs+RZQ2IyFGiUNDG93usCDAFgAF+6VVp+YaAVjET/3/Bx5Lk2WAt0RxT62C9KTEw1YMo3w== - -"@swc/core-darwin-x64@1.3.22": - version "1.3.22" - resolved "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.22.tgz" - integrity sha512-SG6QbNat4GZ5VJU3Zo6a54oQOtbhJVE6BCQw4JjOCZJmAeBzNebGy9wsT4+fCJNHC3C5qtaRw7ToXJvLniXwfg== - -"@swc/core-linux-arm-gnueabihf@1.3.22": - version "1.3.22" - resolved "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.22.tgz" - integrity sha512-4E+TdQT1oHnHjDaPs/DyrRy9lOuFd6ncEd67yYA4j9lFqt6nuz/jnXss45k8KU7wR5kOTtdW73xPwkU4NbOWdw== - -"@swc/core-linux-arm64-gnu@1.3.22": - version "1.3.22" - resolved "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.22.tgz" - integrity sha512-6VcynOMbOBcbLutIPENI3Ejvg5LGz/Pwvzm25hM0FoiEtPxHA+tawQUwLx8Alk1Yr+Rnqid06UEZ0veJOGn2pQ== - -"@swc/core-linux-arm64-musl@1.3.22": - version "1.3.22" - resolved "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.22.tgz" - integrity sha512-86RxGy0L3qa4De3xWHx8vL2caTxvSLSWTlgUW/Yd4l1pvrCFibMjhkImGu5ViKiReX9DlBtJ7CBs4dln2kHidw== - -"@swc/core-linux-x64-gnu@1.3.22": - version "1.3.22" - resolved "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.22.tgz" - integrity sha512-FLkbiqsdXsVIFZi6iedx4rSBGX8x0vo/5aDlklSxJAAYOcQpO0QADKP5Yr65iMT1d6ABCt2d+/StpGLF7GWOcA== - -"@swc/core-linux-x64-musl@1.3.22": - version "1.3.22" - resolved "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.22.tgz" - integrity sha512-giBuw+Z0Bq6fpZ0Y5TcfpcQwf9p/cE1fOQyO/K1XSTn/haQOqFi7421Jq/dFThSARZiXw1u9Om9VFbwxr8VI+A== - -"@swc/core-win32-arm64-msvc@1.3.22": - version "1.3.22" - resolved "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.22.tgz" - integrity sha512-loKGO+ZM2By6VdrmVJk1G79jVgDPaee93qLFuis5KyeoLLb4m1MlNMc/6SIDZUSuYg6NqaGP1spFeiFetMQ4Zg== - -"@swc/core-win32-ia32-msvc@1.3.22": - version "1.3.22" - resolved "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.22.tgz" - integrity sha512-lvNWAZ3QjXMsrsch6oLLQVikT/hC/4ZcLrTBXa14HwQylaYigkGElgp3ekJr78HjWDPwB46GXwBbNMG0VNAfvA== - -"@swc/core-win32-x64-msvc@1.3.22": - version "1.3.22" - resolved "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.22.tgz" - integrity sha512-ESyn4lZXAKEE3mcTaDfXatsolCiEfVGstsXdgBmZYa6o1IE1bDW8FE7Ob/Y+82WTpm9+A9ZYXYjZ62t67POHZg== + "@swc/core-win32-x64-msvc" "1.3.36" + "@swc/core-darwin-x64" "1.3.36" + "@swc/core-linux-x64-gnu" "1.3.36" + "@swc/core-linux-x64-musl" "1.3.36" + "@swc/core-win32-ia32-msvc" "1.3.36" + "@swc/core-linux-arm64-gnu" "1.3.36" + "@swc/core-linux-arm-gnueabihf" "1.3.36" + "@swc/core-darwin-arm64" "1.3.36" + "@swc/core-linux-arm64-musl" "1.3.36" + "@swc/core-win32-arm64-msvc" "1.3.36" + +"@swc/core-darwin-arm64@1.3.36": + version "1.3.36" + resolved "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.36.tgz" + integrity sha512-lsP+C8p9cC/Vd9uAbtxpEnM8GoJI/MMnVuXak7OlxOtDH9/oTwmAcAQTfNGNaH19d2FAIRwf+5RbXCPnxa2Zjw== + +"@swc/core-darwin-x64@1.3.36": + version "1.3.36" + resolved "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.36.tgz" + integrity sha512-jaLXsozWN5xachl9fPxDMi5nbWq1rRxPAt6ISeiYB6RJk0MQKH1634pOweBBem2pUDDzwDFXFw6f22LTm/cFvA== + +"@swc/core-linux-arm-gnueabihf@1.3.36": + version "1.3.36" + resolved "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.36.tgz" + integrity sha512-vcBdTHjoEpvJDbFlgto+S6VwAHzLA9GyCiuNcTU2v4KNQlFzhbO4A4PMfMCb/Z0RLJEr16tirfHdWIxjU3h8nw== + +"@swc/core-linux-arm64-gnu@1.3.36": + version "1.3.36" + resolved "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.36.tgz" + integrity sha512-o7f5OsvwWppJo+qIZmrGO5+XC6DPt6noecSbRHjF6o1YAcR13ETPC14k1eC9H1YbQwpyCFNVAFXyNcUbCeQyrQ== + +"@swc/core-linux-arm64-musl@1.3.36": + version "1.3.36" + resolved "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.36.tgz" + integrity sha512-FSHPngMi3c0fuGt9yY2Ubn5UcELi3EiPLJxBSC3X8TF9atI/WHZzK9PE9Gtn0C/LyRh4CoyOugDtSOPzGYmLQg== + +"@swc/core-linux-x64-gnu@1.3.36": + version "1.3.36" + resolved "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.36.tgz" + integrity sha512-PHSsH2rek5pr3e0K09VgWAbrWK2vJhaI7MW9TPoTjyACYjcs3WwjcjQ30MghXUs2Dc/bXjWAOi9KFTjq/uCyFg== + +"@swc/core-linux-x64-musl@1.3.36": + version "1.3.36" + resolved "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.36.tgz" + integrity sha512-4LfMYQHzozHCKkIcmQy83b+4SpI+mOp6sYNbXqSRz5dYvTVjegKZXe596P1U/87cK2cgR4uYvkgkgBXquaWvwQ== + +"@swc/core-win32-arm64-msvc@1.3.36": + version "1.3.36" + resolved "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.36.tgz" + integrity sha512-7y3dDcun79TAjCyk3Iv0eOMw1X/KNQbkVyKOGqnEgq9g22F8F1FoUGKHNTzUqVdzpHeJSsHgW5PlkEkl3c/d9w== + +"@swc/core-win32-ia32-msvc@1.3.36": + version "1.3.36" + resolved "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.36.tgz" + integrity sha512-zK0VR3B4LX5hzQ+7eD+K+FkxJlJg5Lo36BeahMzQ+/i0IURpnuyFlW88sdkFkMsc2swdU6bpvxLZeIRQ3W4OUg== + +"@swc/core-win32-x64-msvc@1.3.36": + version "1.3.36" + resolved "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.36.tgz" + integrity sha512-2bIjr9DhAckGiXZEvj6z2z7ECPcTimG+wD0VuQTvr+wkx46uAJKl5Kq+Zk+dd15ErL7JGUtCet1T7bf1k4FwvQ== "@types/prop-types@*": version "15.7.5" @@ -75,18 +75,18 @@ integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== "@types/react@*": - version "18.0.25" - resolved "https://registry.npmjs.org/@types/react/-/react-18.0.25.tgz" - integrity sha512-xD6c0KDT4m7n9uD4ZHi02lzskaiqcBxf4zi+tXZY98a04wvc0hi/TcCPC2FOESZi51Nd7tlUeOJY8RofL799/g== + version "18.0.28" + resolved "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz" + integrity sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" csstype "^3.0.2" -"@types/react-dom@^18.0.9": - version "18.0.9" - resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.9.tgz" - integrity sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg== +"@types/react-dom@^18.0.11": + version "18.0.11" + resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz" + integrity sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw== dependencies: "@types/react" "*" @@ -95,12 +95,12 @@ resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz" integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== -"@vitejs/plugin-react-swc@^3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.0.0.tgz" - integrity sha512-vYlodz/mjYRbxMGbHzDgR8aPR+z8n7K/enWkyBGH096xrL2DIPCuTvQVRYPTXGyy6wO7OFiMxZ3r4nKQD1sH0A== +"@vitejs/plugin-react-swc@^3.2.0": + version "3.2.0" + resolved "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.2.0.tgz" + integrity sha512-IcBoXL/mcH7JdQr/nfDlDwTdIaH8Rg7LpfQDF4nAht+juHWIuv6WhpKPCSfY4+zztAaB07qdBoFz1XCZsgo3pQ== dependencies: - "@swc/core" "^1.3.21" + "@swc/core" "^1.3.35" csstype@^3.0.2: version "3.1.1" @@ -109,7 +109,7 @@ csstype@^3.0.2: "js-tokens@^3.0.0 || ^4.0.0": version "4.0.0" - resolved "" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== loose-envify@^1.1.0: diff --git a/scripts/bundle.ts b/scripts/bundle.ts index b345ebc..297a114 100755 --- a/scripts/bundle.ts +++ b/scripts/bundle.ts @@ -46,13 +46,19 @@ export declare const reactClickToComponent: () => PluginOption; { name: packageJSON.name, description: - "Option+Click React components in your browser to open the source in your editor", + "Option+Right Click 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"], + keywords: [ + "vite", + "vite-plugin", + "react", + "inspector", + "click-to-component", + ], peerDependencies: packageJSON.peerDependencies, }, null, diff --git a/src/client.ts b/src/client.ts index 208e40e..53cc6e6 100644 --- a/src/client.ts +++ b/src/client.ts @@ -7,125 +7,175 @@ 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 { +#click-to-component-menu { 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; + padding: 8px !important; + border-radius: 6px !important; font-size: 14px !important; line-height: 1.5 !important; -}`; + display: flex !important; + gap: 2px !important; + overflow: auto !important; +} +.click-to-component-menu-item { + padding: 4px !important; + border-radius: 4px !important; + cursor: pointer !important; + display: flex !important; + justify-content: space-between !important; + gap: 8px !important; +} +.click-to-component-menu-item:hover { + background: #333 !important; +} +`; document.head.appendChild(style); -let altKey = false; +const root = "__ROOT__"; 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; -}); +let hasMenu = false; +const menuElement = document.createElement("div"); +menuElement.setAttribute("id", "click-to-component-menu"); window.addEventListener("keyup", (event) => { - if (altKey && !event.altKey) cleanUp(); + if (!event.altKey && (hasMenu || currentTarget)) cleanUp(); }); window.addEventListener("mousemove", (event) => { - if (!altKey) return; if (!event.altKey) { cleanUp(); return; } + if (hasMenu) return; if (!(event.target instanceof HTMLElement)) { - clearTarget(); - removeTooltip(); + clearOverlay(); return; } - if (event.target === currentTarget || event.target === tooltipElement) return; - clearTarget(); + if (event.target === currentTarget) return; + clearOverlay(); currentTarget = event.target; - const path = getPathForElement(event.target); - if (!path) { - removeTooltip(); - return; - } event.target.dataset.clickToComponentTarget = "true"; - 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 = ""; +}); + +window.addEventListener("contextmenu", (event) => { + if (!event.altKey) return; + const target = event.target; + if (!(target instanceof HTMLElement)) return; + event.preventDefault(); + const layers = getLayersForElement(target); + if (layers.length === 0) return; + const rect = target.getBoundingClientRect(); + if (rect.bottom < window.innerHeight / 2) { + menuElement.style.top = `${rect.bottom}px`; + menuElement.style.bottom = ""; + menuElement.style.maxHeight = `${window.innerHeight - rect.bottom - 16}px`; + } else if (rect.top > window.innerHeight / 2) { + menuElement.style.bottom = `${window.innerHeight - rect.top}px`; + menuElement.style.top = ""; + menuElement.style.maxHeight = `${rect.top - 16}px`; } else { - tooltipElement.style.bottom = `${window.innerHeight / 2 - 22}px`; - tooltipElement.style.top = ""; + menuElement.style.bottom = `${window.innerHeight - rect.bottom}px`; + menuElement.style.top = ""; + menuElement.style.maxHeight = `${rect.bottom - 16}px`; } if (rect.left < window.innerWidth / 2) { - tooltipElement.style.left = `${rect.left}px`; - tooltipElement.style.right = ""; + menuElement.style.left = `${rect.left}px`; + menuElement.style.right = ""; } else { - tooltipElement.style.right = `${window.innerWidth - rect.right}px`; - tooltipElement.style.left = ""; + menuElement.style.right = `${window.innerWidth - rect.right}px`; + menuElement.style.left = ""; + } + while (menuElement.firstChild) { + menuElement.removeChild(menuElement.firstChild); } - if (!hasTooltip) { - document.body.appendChild(tooltipElement); - hasTooltip = true; + menuElement.style.flexDirection = menuElement.style.top + ? "column" + : "column-reverse"; + for (const layer of layers) { + const item = document.createElement("div"); + item.className = "click-to-component-menu-item"; + const spanL = document.createElement("span"); + spanL.textContent = `<${layer.name} />`; + item.appendChild(spanL); + const spanR = document.createElement("span"); + spanR.textContent = layer.path.replace(`${root}/`, ""); + item.appendChild(spanR); + item.addEventListener("click", () => { + fetch(`/__open-in-editor?file=${encodeURIComponent(layer.path)}`); + cleanUp(); + }); + menuElement.appendChild(item); + } + if (!hasMenu) { + document.body.appendChild(menuElement); + hasMenu = true; } }); const cleanUp = () => { - clearTarget(); - removeTooltip(); - altKey = false; + clearOverlay(); + removeMenu(); }; -const clearTarget = () => { +const clearOverlay = () => { + if (!currentTarget) return; const current = document.querySelector( "[data-click-to-component-target]", ); - if (!current) return; - delete current.dataset.clickToComponentTarget; + if (current) delete current.dataset.clickToComponentTarget; + currentTarget = undefined; }; -const removeTooltip = () => { - if (!hasTooltip) return; - document.body.removeChild(tooltipElement); - hasTooltip = false; +const removeMenu = () => { + if (!hasMenu) return; + document.body.removeChild(menuElement); + hasMenu = 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)}`); +const getLayersForElement = (element: Element) => { + let instance = getReactInstanceForElement(element); + + const layers: { name: string; path: string }[] = []; + while (instance) { + const path = getPath(instance); + if (path) { + const name = + typeof instance.type === "string" + ? instance.type + : instance.type.displayName ?? instance.type.name; + layers.push({ name, path }); } - }, - { capture: true }, -); - -const getPathForElement = (element: Element) => { - const instance = getReactInstanceForElement(element); - if (!instance?._debugSource) { - console.debug("Couldn't find a React instance for the element", element); + instance = instance._debugOwner; + } + + return layers; +}; + +const getPath = (fiber: Fiber) => { + if (!fiber._debugSource) { + console.debug("Couldn't find a React instance for the element", fiber); return; } - const { columnNumber = 1, fileName, lineNumber = 1 } = instance._debugSource; - // eslint-disable-next-line @typescript-eslint/restrict-template-expressions + const { columnNumber = 1, fileName, lineNumber = 1 } = fiber._debugSource; return `${fileName}:${lineNumber}:${columnNumber}`; }; -const getReactInstanceForElement = (element: Element) => { +type Fiber = { + _debugSource?: { + columnNumber?: number; + fileName: string; + lineNumber?: number; + }; + _debugOwner?: Fiber; + type: string | { displayName?: string; name: string }; +}; + +const getReactInstanceForElement = (element: Element): Fiber | undefined => { // 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__; diff --git a/src/index.ts b/src/index.ts index dc0c100..50c100f 100644 --- a/src/index.ts +++ b/src/index.ts @@ -2,14 +2,22 @@ import { readFileSync } from "fs"; import { join } from "path"; import { PluginOption } from "vite"; +let root = ""; + export const reactClickToComponent = (): PluginOption => ({ name: "react-click-to-component", apply: "serve", + configResolved: (config) => { + root = config.root; + }, transformIndexHtml: () => [ { tag: "script", attrs: { type: "module" }, - children: readFileSync(join(__dirname, "client.js"), "utf-8"), + children: readFileSync(join(__dirname, "client.js"), "utf-8").replace( + "__ROOT__", + root, + ), }, ], }); diff --git a/yarn.lock b/yarn.lock old mode 100755 new mode 100644 index 484a1d4..0d7cb8d --- a/yarn.lock +++ b/yarn.lock @@ -1,14 +1,14 @@ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. # yarn lockfile v1 -# bun ./bun.lockb --hash: 317440CD2B2CFE5F-c18b442eb3841daa-FC7EC193FB62E12B-9c767834913c771c +# bun ./bun.lockb --hash: 3898465D1BF30095-770862a859c99a5f-A13E0E8CDD71F65B-febf160da7c350f2 -"@arnaud-barre/eslint-config@^1.0.17": - version "1.0.17" - resolved "https://registry.npmjs.org/@arnaud-barre/eslint-config/-/eslint-config-1.0.17.tgz" - integrity sha512-3fT9Y3mQU1FLvZEn7ym7TgbDWNTw9DlN33SjJsqEOw9wGiW0APlc1AFPRQv4zN2gLr+d2oVnSLiQZPxuefYlMA== +"@arnaud-barre/eslint-config@^1.0.19": + version "1.0.19" + resolved "https://registry.npmjs.org/@arnaud-barre/eslint-config/-/eslint-config-1.0.19.tgz" + integrity sha512-Yk4HzqL4ICqoikczCwWOgHJeiZqpaJgMWB78T3O8eoCvWvlh8I2OSBXuDkRkXq35IPJJKVbGHgWoHimzP9P32Q== dependencies: - "@arnaud-barre/eslint-plugin-custom" "^1.0.4" + "@arnaud-barre/eslint-plugin-custom" "^1.1.0" "@arnaud-barre/eslint-plugin-local" "^1.0.2" "@typescript-eslint/eslint-plugin" "^5.45.1" "@typescript-eslint/parser" "^5.45.1" @@ -21,10 +21,10 @@ eslint-plugin-react-refresh "^0.3.1" eslint-plugin-unicorn "^45.0.1" -"@arnaud-barre/eslint-plugin-custom@^1.0.4": - version "1.0.4" - resolved "https://registry.npmjs.org/@arnaud-barre/eslint-plugin-custom/-/eslint-plugin-custom-1.0.4.tgz" - integrity sha512-ZYNjBnGhfoEtS+1Umjapf+SdWFk7Wputm24ZbKpCueWQpohMfWsUwepft0fZCGrtfXnGJEFLb1R1R1DQq9+H+w== +"@arnaud-barre/eslint-plugin-custom@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@arnaud-barre/eslint-plugin-custom/-/eslint-plugin-custom-1.1.0.tgz" + integrity sha512-Tei7zizKOJTXiUEebL8Wl63BukNmZPSred4IW3YpRqiCEYKp7appq9Hm2P8vInk9S8Irch9wgROTluyVSyumqA== dependencies: "@typescript-eslint/utils" "^5.41.0" @@ -54,157 +54,149 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/runtime@^7.10.2", "@babel/runtime@^7.18.9": - version "7.20.6" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz" - integrity sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA== +"@babel/runtime@^7.20.7": + version "7.21.0" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz" + integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw== dependencies: regenerator-runtime "^0.13.11" -"@babel/runtime-corejs3@^7.10.2": - version "7.20.6" - resolved "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.20.6.tgz" - integrity sha512-tqeujPiuEfcH067mx+7otTQWROVMKHXEaOQcAeNV5dDdbPWvPcFA8/W9LXw2NfjNmOetqLl03dfnG2WALPlsRQ== - dependencies: - core-js-pure "^3.25.1" - regenerator-runtime "^0.13.11" - -"@esbuild/android-arm@0.16.3": - version "0.16.3" - resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.3.tgz" - integrity sha512-mueuEoh+s1eRbSJqq9KNBQwI4QhQV6sRXIfTyLXSHGMpyew61rOK4qY21uKbXl1iBoMb0AdL1deWFCQVlN2qHA== - -"@esbuild/android-arm64@0.16.3": - version "0.16.3" - resolved "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.3.tgz" - integrity sha512-RolFVeinkeraDvN/OoRf1F/lP0KUfGNb5jxy/vkIMeRRChkrX/HTYN6TYZosRJs3a1+8wqpxAo5PI5hFmxyPRg== - -"@esbuild/android-x64@0.16.3": - version "0.16.3" - resolved "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.3.tgz" - integrity sha512-SFpTUcIT1bIJuCCBMCQWq1bL2gPTjWoLZdjmIhjdcQHaUfV41OQfho6Ici5uvvkMmZRXIUGpM3GxysP/EU7ifQ== - -"@esbuild/darwin-arm64@0.16.3": - version "0.16.3" - resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.3.tgz" - integrity sha512-DO8WykMyB+N9mIDfI/Hug70Dk1KipavlGAecxS3jDUwAbTpDXj0Lcwzw9svkhxfpCagDmpaTMgxWK8/C/XcXvw== - -"@esbuild/darwin-x64@0.16.3": - version "0.16.3" - resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.3.tgz" - integrity sha512-uEqZQ2omc6BvWqdCiyZ5+XmxuHEi1SPzpVxXCSSV2+Sh7sbXbpeNhHIeFrIpRjAs0lI1FmA1iIOxFozKBhKgRQ== - -"@esbuild/freebsd-arm64@0.16.3": - version "0.16.3" - resolved "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.3.tgz" - integrity sha512-nJansp3sSXakNkOD5i5mIz2Is/HjzIhFs49b1tjrPrpCmwgBmH9SSzhC/Z1UqlkivqMYkhfPwMw1dGFUuwmXhw== - -"@esbuild/freebsd-x64@0.16.3": - version "0.16.3" - resolved "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.3.tgz" - integrity sha512-TfoDzLw+QHfc4a8aKtGSQ96Wa+6eimljjkq9HKR0rHlU83vw8aldMOUSJTUDxbcUdcgnJzPaX8/vGWm7vyV7ug== - -"@esbuild/linux-arm@0.16.3": - version "0.16.3" - resolved "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.3.tgz" - integrity sha512-VwswmSYwVAAq6LysV59Fyqk3UIjbhuc6wb3vEcJ7HEJUtFuLK9uXWuFoH1lulEbE4+5GjtHi3MHX+w1gNHdOWQ== - -"@esbuild/linux-arm64@0.16.3": - version "0.16.3" - resolved "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.3.tgz" - integrity sha512-7I3RlsnxEFCHVZNBLb2w7unamgZ5sVwO0/ikE2GaYvYuUQs9Qte/w7TqWcXHtCwxvZx/2+F97ndiUQAWs47ZfQ== - -"@esbuild/linux-ia32@0.16.3": - version "0.16.3" - resolved "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.3.tgz" - integrity sha512-X8FDDxM9cqda2rJE+iblQhIMYY49LfvW4kaEjoFbTTQ4Go8G96Smj2w3BRTwA8IHGoi9dPOPGAX63dhuv19UqA== - -"@esbuild/linux-loong64@0.16.3": - version "0.16.3" - resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.3.tgz" - integrity sha512-hIbeejCOyO0X9ujfIIOKjBjNAs9XD/YdJ9JXAy1lHA+8UXuOqbFe4ErMCqMr8dhlMGBuvcQYGF7+kO7waj2KHw== - -"@esbuild/linux-mips64el@0.16.3": - version "0.16.3" - resolved "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.3.tgz" - integrity sha512-znFRzICT/V8VZQMt6rjb21MtAVJv/3dmKRMlohlShrbVXdBuOdDrGb+C2cZGQAR8RFyRe7HS6klmHq103WpmVw== - -"@esbuild/linux-ppc64@0.16.3": - version "0.16.3" - resolved "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.3.tgz" - integrity sha512-EV7LuEybxhXrVTDpbqWF2yehYRNz5e5p+u3oQUS2+ZFpknyi1NXxr8URk4ykR8Efm7iu04//4sBg249yNOwy5Q== - -"@esbuild/linux-riscv64@0.16.3": - version "0.16.3" - resolved "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.3.tgz" - integrity sha512-uDxqFOcLzFIJ+r/pkTTSE9lsCEaV/Y6rMlQjUI9BkzASEChYL/aSQjZjchtEmdnVxDKETnUAmsaZ4pqK1eE5BQ== - -"@esbuild/linux-s390x@0.16.3": - version "0.16.3" - resolved "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.3.tgz" - integrity sha512-NbeREhzSxYwFhnCAQOQZmajsPYtX71Ufej3IQ8W2Gxskfz9DK58ENEju4SbpIj48VenktRASC52N5Fhyf/aliQ== - -"@esbuild/linux-x64@0.16.3": - version "0.16.3" - resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.3.tgz" - integrity sha512-SDiG0nCixYO9JgpehoKgScwic7vXXndfasjnD5DLbp1xltANzqZ425l7LSdHynt19UWOcDjG9wJJzSElsPvk0w== - -"@esbuild/netbsd-x64@0.16.3": - version "0.16.3" - resolved "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.3.tgz" - integrity sha512-AzbsJqiHEq1I/tUvOfAzCY15h4/7Ivp3ff/o1GpP16n48JMNAtbW0qui2WCgoIZArEHD0SUQ95gvR0oSO7ZbdA== - -"@esbuild/openbsd-x64@0.16.3": - version "0.16.3" - resolved "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.3.tgz" - integrity sha512-gSABi8qHl8k3Cbi/4toAzHiykuBuWLZs43JomTcXkjMZVkp0gj3gg9mO+9HJW/8GB5H89RX/V0QP4JGL7YEEVg== - -"@esbuild/sunos-x64@0.16.3": - version "0.16.3" - resolved "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.3.tgz" - integrity sha512-SF9Kch5Ete4reovvRO6yNjMxrvlfT0F0Flm+NPoUw5Z4Q3r1d23LFTgaLwm3Cp0iGbrU/MoUI+ZqwCv5XJijCw== - -"@esbuild/win32-arm64@0.16.3": - version "0.16.3" - resolved "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.3.tgz" - integrity sha512-u5aBonZIyGopAZyOnoPAA6fGsDeHByZ9CnEzyML9NqntK6D/xl5jteZUKm/p6nD09+v3pTM6TuUIqSPcChk5gg== - -"@esbuild/win32-ia32@0.16.3": - version "0.16.3" - resolved "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.3.tgz" - integrity sha512-GlgVq1WpvOEhNioh74TKelwla9KDuAaLZrdxuuUgsP2vayxeLgVc+rbpIv0IYF4+tlIzq2vRhofV+KGLD+37EQ== - -"@esbuild/win32-x64@0.16.3": - version "0.16.3" - resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.3.tgz" - integrity sha512-5/JuTd8OWW8UzEtyf19fbrtMJENza+C9JoPIkvItgTBQ1FO2ZLvjbPO6Xs54vk0s5JB5QsfieUEshRQfu7ZHow== - -"@eslint-community/eslint-utils@^4.1.0": +"@esbuild/android-arm@0.16.17": + version "0.16.17" + resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz" + integrity sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw== + +"@esbuild/android-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz" + integrity sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg== + +"@esbuild/android-x64@0.16.17": + version "0.16.17" + resolved "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz" + integrity sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ== + +"@esbuild/darwin-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz" + integrity sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w== + +"@esbuild/darwin-x64@0.16.17": + version "0.16.17" + resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz" + integrity sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg== + +"@esbuild/freebsd-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz" + integrity sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw== + +"@esbuild/freebsd-x64@0.16.17": + version "0.16.17" + resolved "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz" + integrity sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug== + +"@esbuild/linux-arm@0.16.17": + version "0.16.17" + resolved "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz" + integrity sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ== + +"@esbuild/linux-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz" + integrity sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g== + +"@esbuild/linux-ia32@0.16.17": + version "0.16.17" + resolved "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz" + integrity sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg== + +"@esbuild/linux-loong64@0.16.17": + version "0.16.17" + resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz" + integrity sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ== + +"@esbuild/linux-mips64el@0.16.17": + version "0.16.17" + resolved "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz" + integrity sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw== + +"@esbuild/linux-ppc64@0.16.17": + version "0.16.17" + resolved "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz" + integrity sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g== + +"@esbuild/linux-riscv64@0.16.17": + version "0.16.17" + resolved "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz" + integrity sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw== + +"@esbuild/linux-s390x@0.16.17": + version "0.16.17" + resolved "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz" + integrity sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w== + +"@esbuild/linux-x64@0.16.17": + version "0.16.17" + resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz" + integrity sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw== + +"@esbuild/netbsd-x64@0.16.17": + version "0.16.17" + resolved "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz" + integrity sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA== + +"@esbuild/openbsd-x64@0.16.17": + version "0.16.17" + resolved "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz" + integrity sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg== + +"@esbuild/sunos-x64@0.16.17": + version "0.16.17" + resolved "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz" + integrity sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw== + +"@esbuild/win32-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz" + integrity sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw== + +"@esbuild/win32-ia32@0.16.17": + version "0.16.17" + resolved "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz" + integrity sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig== + +"@esbuild/win32-x64@0.16.17": + version "0.16.17" + resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz" + integrity sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q== + +"@eslint-community/eslint-utils@^4.1.2": version "4.1.2" resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.1.2.tgz" integrity sha512-7qELuQWWjVDdVsFQ5+beUl+KPczrEDA7S3zM4QUd/bJl7oXgsmpXaEVqrRTnOBqenOV4rWf2kVZk2Ot085zPWA== dependencies: eslint-visitor-keys "^3.3.0" -"@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== +"@eslint/eslintrc@^1.4.1": + version "1.4.1" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz" + integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA== dependencies: ajv "^6.12.4" debug "^4.3.2" espree "^9.4.0" - globals "^13.15.0" + globals "^13.19.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.7" - resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz" - integrity sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw== +"@humanwhocodes/config-array@^0.11.8": + version "0.11.8" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz" + integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" @@ -258,10 +250,10 @@ resolved "" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== -"@types/node@^18.11.12": - version "18.11.12" - resolved "https://registry.npmjs.org/@types/node/-/node-18.11.12.tgz" - integrity sha512-FgD3NtTAKvyMmD44T07zz2fEf+OKwutgBCEVM8GcvMGVGaDktiLNTDvPwC/LUe3PinMW+X6CuLOF2Ui1mAlSXg== +"@types/node@>= 14", "@types/node@^18.14.0": + version "18.14.0" + resolved "https://registry.npmjs.org/@types/node/-/node-18.14.0.tgz" + integrity sha512-5EWrvLmglK+imbCJY0+INViFWUHg1AHel1sq4ZVSfdcNqGy9Edv3UB9IIzzg+xPaUcAgZYcfVs2fBcwDeZzU0A== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -274,92 +266,93 @@ integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== "@typescript-eslint/eslint-plugin@^5.45.1": - version "5.46.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.46.0.tgz" - integrity sha512-QrZqaIOzJAjv0sfjY4EjbXUi3ZOFpKfzntx22gPGr9pmFcTjcFw/1sS1LJhEubfAGwuLjNrPV0rH+D1/XZFy7Q== + version "5.53.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.53.0.tgz" + integrity sha512-alFpFWNucPLdUOySmXCJpzr6HKC3bu7XooShWM+3w/EL6J2HIoB2PFxpLnq4JauWVk6DiVeNKzQlFEaE+X9sGw== dependencies: - "@typescript-eslint/scope-manager" "5.46.0" - "@typescript-eslint/type-utils" "5.46.0" - "@typescript-eslint/utils" "5.46.0" + "@typescript-eslint/scope-manager" "5.53.0" + "@typescript-eslint/type-utils" "5.53.0" + "@typescript-eslint/utils" "5.53.0" debug "^4.3.4" + grapheme-splitter "^1.0.4" ignore "^5.2.0" natural-compare-lite "^1.4.0" regexpp "^3.2.0" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/parser@^5.45.1": - version "5.46.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.46.0.tgz" - integrity sha512-joNO6zMGUZg+C73vwrKXCd8usnsmOYmgW/w5ZW0pG0RGvqeznjtGDk61EqqTpNrFLUYBW2RSBFrxdAZMqA4OZA== +"@typescript-eslint/parser@^5.0.0", "@typescript-eslint/parser@^5.45.1": + version "5.53.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.53.0.tgz" + integrity sha512-MKBw9i0DLYlmdOb3Oq/526+al20AJZpANdT6Ct9ffxcV8nKCHz63t/S0IhlTFNsBIHJv+GY5SFJ0XfqVeydQrQ== dependencies: - "@typescript-eslint/scope-manager" "5.46.0" - "@typescript-eslint/types" "5.46.0" - "@typescript-eslint/typescript-estree" "5.46.0" + "@typescript-eslint/scope-manager" "5.53.0" + "@typescript-eslint/types" "5.53.0" + "@typescript-eslint/typescript-estree" "5.53.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.46.0": - version "5.46.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.46.0.tgz" - integrity sha512-7wWBq9d/GbPiIM6SqPK9tfynNxVbfpihoY5cSFMer19OYUA3l4powA2uv0AV2eAZV6KoAh6lkzxv4PoxOLh1oA== +"@typescript-eslint/scope-manager@5.53.0": + version "5.53.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.53.0.tgz" + integrity sha512-Opy3dqNsp/9kBBeCPhkCNR7fmdSQqA+47r21hr9a14Bx0xnkElEQmhoHga+VoaoQ6uDHjDKmQPIYcUcKJifS7w== dependencies: - "@typescript-eslint/types" "5.46.0" - "@typescript-eslint/visitor-keys" "5.46.0" + "@typescript-eslint/types" "5.53.0" + "@typescript-eslint/visitor-keys" "5.53.0" -"@typescript-eslint/type-utils@5.46.0": - version "5.46.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.46.0.tgz" - integrity sha512-dwv4nimVIAsVS2dTA0MekkWaRnoYNXY26dKz8AN5W3cBFYwYGFQEqm/cG+TOoooKlncJS4RTbFKgcFY/pOiBCg== +"@typescript-eslint/type-utils@5.53.0": + version "5.53.0" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.53.0.tgz" + integrity sha512-HO2hh0fmtqNLzTAme/KnND5uFNwbsdYhCZghK2SoxGp3Ifn2emv+hi0PBUjzzSh0dstUIFqOj3bp0AwQlK4OWw== dependencies: - "@typescript-eslint/typescript-estree" "5.46.0" - "@typescript-eslint/utils" "5.46.0" + "@typescript-eslint/typescript-estree" "5.53.0" + "@typescript-eslint/utils" "5.53.0" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.46.0": - version "5.46.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.46.0.tgz" - integrity sha512-wHWgQHFB+qh6bu0IAPAJCdeCdI0wwzZnnWThlmHNY01XJ9Z97oKqKOzWYpR2I83QmshhQJl6LDM9TqMiMwJBTw== +"@typescript-eslint/types@5.53.0": + version "5.53.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.53.0.tgz" + integrity sha512-5kcDL9ZUIP756K6+QOAfPkigJmCPHcLN7Zjdz76lQWWDdzfOhZDTj1irs6gPBKiXx5/6O3L0+AvupAut3z7D2A== -"@typescript-eslint/typescript-estree@5.46.0": - version "5.46.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.46.0.tgz" - integrity sha512-kDLNn/tQP+Yp8Ro2dUpyyVV0Ksn2rmpPpB0/3MO874RNmXtypMwSeazjEN/Q6CTp8D7ExXAAekPEcCEB/vtJkw== +"@typescript-eslint/typescript-estree@5.53.0": + version "5.53.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.53.0.tgz" + integrity sha512-eKmipH7QyScpHSkhbptBBYh9v8FxtngLquq292YTEQ1pxVs39yFBlLC1xeIZcPPz1RWGqb7YgERJRGkjw8ZV7w== dependencies: - "@typescript-eslint/types" "5.46.0" - "@typescript-eslint/visitor-keys" "5.46.0" + "@typescript-eslint/types" "5.53.0" + "@typescript-eslint/visitor-keys" "5.53.0" 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.46.0", "@typescript-eslint/utils@^5.41.0": - version "5.46.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.46.0.tgz" - integrity sha512-4O+Ps1CRDw+D+R40JYh5GlKLQERXRKW5yIQoNDpmXPJ+C7kaPF9R7GWl+PxGgXjB3PQCqsaaZUpZ9dG4U6DO7g== +"@typescript-eslint/utils@5.53.0", "@typescript-eslint/utils@^5.41.0": + version "5.53.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.53.0.tgz" + integrity sha512-VUOOtPv27UNWLxFwQK/8+7kvxVC+hPHNsJjzlJyotlaHjLSIgOCKj9I0DBUjwOOA64qjBwx5afAPjksqOxMO0g== dependencies: "@types/json-schema" "^7.0.9" "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.46.0" - "@typescript-eslint/types" "5.46.0" - "@typescript-eslint/typescript-estree" "5.46.0" + "@typescript-eslint/scope-manager" "5.53.0" + "@typescript-eslint/types" "5.53.0" + "@typescript-eslint/typescript-estree" "5.53.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.46.0": - version "5.46.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.46.0.tgz" - integrity sha512-E13gBoIXmaNhwjipuvQg1ByqSAu/GbEpP/qzFihugJ+MomtoJtFAJG/+2DRPByf57B863m0/q7Zt16V9ohhANw== +"@typescript-eslint/visitor-keys@5.53.0": + version "5.53.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.53.0.tgz" + integrity sha512-JqNLnX3leaHFZEN0gCh81sIvgrp/2GOACZNgO4+Tkf64u51kTpAyWFOY8XHx8XuXr3N2C9zgPPHtcpMg6z1g0w== dependencies: - "@typescript-eslint/types" "5.46.0" + "@typescript-eslint/types" "5.53.0" eslint-visitor-keys "^3.3.0" -acorn@^8.8.0: - version "8.8.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz" - integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.8.0: + version "8.8.2" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== acorn-jsx@^5.3.2: version "5.3.2" @@ -397,18 +390,17 @@ ansi-styles@^4.1.0: argparse@^2.0.1: version "2.0.1" - resolved "" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" 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== +aria-query@^5.1.3: + version "5.1.3" + resolved "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz" + integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== dependencies: - "@babel/runtime" "^7.10.2" - "@babel/runtime-corejs3" "^7.10.2" + deep-equal "^2.0.5" -array-includes@^3.1.4, array-includes@^3.1.5, array-includes@^3.1.6: +array-includes@^3.1.5, array-includes@^3.1.6: version "3.1.6" resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz" integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== @@ -424,7 +416,7 @@ array-union@^2.1.0: resolved "" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array.prototype.flat@^1.2.5: +array.prototype.flat@^1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz" integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== @@ -460,15 +452,22 @@ ast-types-flow@^0.0.7: resolved "" integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== -axe-core@^4.4.3: - version "4.5.2" - resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.5.2.tgz" - integrity sha512-u2MVsXfew5HBvjsczCv+xlwdNnB1oQR9HlAcsejZttNjKKSkeDNVwB1vMThIUIFI9GoT57Vtk8iQLwqOfAkboA== +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== -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== +axe-core@^4.6.2: + version "4.6.3" + resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.6.3.tgz" + integrity sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg== + +axobject-query@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz" + integrity sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg== + dependencies: + deep-equal "^2.0.5" balanced-match@^1.0.0: version "1.0.2" @@ -526,9 +525,9 @@ chalk@^4.0.0: supports-color "^7.1.0" ci-info@^3.6.1: - version "3.7.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz" - integrity sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog== + version "3.8.0" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz" + integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== clean-regexp@^1.0.0: version "1.0.0" @@ -571,11 +570,6 @@ confusing-browser-globals@^1.0.11: resolved "" integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== -core-js-pure@^3.25.1: - version "3.26.1" - resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.1.tgz" - integrity sha512-VVXcDpp/xJ21KdULRq/lXdLzQAtX7+37LzpyfFM973il0tWSsDEoyzG38G14AjTpK9VTfiNM9jnFauq/CpaWGQ== - cross-spawn@^7.0.2: version "7.0.3" resolved "" @@ -590,13 +584,6 @@ damerau-levenshtein@^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" @@ -611,15 +598,38 @@ debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: dependencies: ms "2.1.2" +deep-equal@^2.0.5: + version "2.2.0" + resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz" + integrity sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw== + dependencies: + call-bind "^1.0.2" + es-get-iterator "^1.1.2" + get-intrinsic "^1.1.3" + is-arguments "^1.1.1" + is-array-buffer "^3.0.1" + is-date-object "^1.0.5" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + 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== + version "1.2.0" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz" + integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== dependencies: has-property-descriptors "^1.0.0" object-keys "^1.1.1" @@ -658,26 +668,32 @@ error-ex@^1.3.1: is-arrayish "^0.2.1" es-abstract@^1.19.0, es-abstract@^1.20.4: - version "1.20.5" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz" - integrity sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ== + version "1.21.1" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz" + integrity sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg== dependencies: + available-typed-arrays "^1.0.5" call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" 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" + globalthis "^1.0.3" gopd "^1.0.1" has "^1.0.3" has-property-descriptors "^1.0.0" + has-proto "^1.0.1" has-symbols "^1.0.3" - internal-slot "^1.0.3" + internal-slot "^1.0.4" + is-array-buffer "^3.0.1" 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-typed-array "^1.1.10" is-weakref "^1.0.2" object-inspect "^1.12.2" object-keys "^1.1.1" @@ -686,7 +702,33 @@ es-abstract@^1.19.0, es-abstract@^1.20.4: safe-regex-test "^1.0.0" string.prototype.trimend "^1.0.6" string.prototype.trimstart "^1.0.6" + typed-array-length "^1.0.4" unbox-primitive "^1.0.2" + which-typed-array "^1.1.9" + +es-get-iterator@^1.1.2: + version "1.1.3" + resolved "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.7" + isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" + +es-set-tostringtag@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + has-tostringtag "^1.0.0" es-shim-unscopables@^1.0.0: version "1.0.0" @@ -704,33 +746,33 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild@^0.16.1, esbuild@^0.16.3: - version "0.16.3" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.16.3.tgz" - integrity sha512-71f7EjPWTiSguen8X/kxEpkAS7BFHwtQKisCDDV3Y4GLGWBaoSCyD5uXkaUew6JDzA9FEN1W23mdnSwW9kqCeg== - dependencies: - "@esbuild/android-arm" "0.16.3" - "@esbuild/android-arm64" "0.16.3" - "@esbuild/android-x64" "0.16.3" - "@esbuild/darwin-arm64" "0.16.3" - "@esbuild/darwin-x64" "0.16.3" - "@esbuild/freebsd-arm64" "0.16.3" - "@esbuild/freebsd-x64" "0.16.3" - "@esbuild/linux-arm" "0.16.3" - "@esbuild/linux-arm64" "0.16.3" - "@esbuild/linux-ia32" "0.16.3" - "@esbuild/linux-loong64" "0.16.3" - "@esbuild/linux-mips64el" "0.16.3" - "@esbuild/linux-ppc64" "0.16.3" - "@esbuild/linux-riscv64" "0.16.3" - "@esbuild/linux-s390x" "0.16.3" - "@esbuild/linux-x64" "0.16.3" - "@esbuild/netbsd-x64" "0.16.3" - "@esbuild/openbsd-x64" "0.16.3" - "@esbuild/sunos-x64" "0.16.3" - "@esbuild/win32-arm64" "0.16.3" - "@esbuild/win32-ia32" "0.16.3" - "@esbuild/win32-x64" "0.16.3" +esbuild@^0.16.1, esbuild@^0.16.14: + version "0.16.17" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz" + integrity sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg== + dependencies: + "@esbuild/android-arm" "0.16.17" + "@esbuild/android-arm64" "0.16.17" + "@esbuild/android-x64" "0.16.17" + "@esbuild/darwin-arm64" "0.16.17" + "@esbuild/darwin-x64" "0.16.17" + "@esbuild/freebsd-arm64" "0.16.17" + "@esbuild/freebsd-x64" "0.16.17" + "@esbuild/linux-arm" "0.16.17" + "@esbuild/linux-arm64" "0.16.17" + "@esbuild/linux-ia32" "0.16.17" + "@esbuild/linux-loong64" "0.16.17" + "@esbuild/linux-mips64el" "0.16.17" + "@esbuild/linux-ppc64" "0.16.17" + "@esbuild/linux-riscv64" "0.16.17" + "@esbuild/linux-s390x" "0.16.17" + "@esbuild/linux-x64" "0.16.17" + "@esbuild/netbsd-x64" "0.16.17" + "@esbuild/openbsd-x64" "0.16.17" + "@esbuild/sunos-x64" "0.16.17" + "@esbuild/win32-arm64" "0.16.17" + "@esbuild/win32-ia32" "0.16.17" + "@esbuild/win32-x64" "0.16.17" escape-string-regexp@^1.0.5: version "1.0.5" @@ -742,13 +784,13 @@ escape-string-regexp@^4.0.0: resolved "" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint@^8.29.0: - version "8.29.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.29.0.tgz" - integrity sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg== +eslint@*, eslint@>=5, eslint@>=7, eslint@>=8.28.0, "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8", "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", "eslint@^6.0.0 || ^7.0.0 || ^8.0.0", eslint@^8.29.0, eslint@^8.34.0: + version "8.34.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.34.0.tgz" + integrity sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg== dependencies: - "@eslint/eslintrc" "^1.3.3" - "@humanwhocodes/config-array" "^0.11.6" + "@eslint/eslintrc" "^1.4.1" + "@humanwhocodes/config-array" "^0.11.8" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" ajv "^6.10.0" @@ -767,7 +809,7 @@ eslint@^8.29.0: file-entry-cache "^6.0.1" find-up "^5.0.0" glob-parent "^6.0.2" - globals "^13.15.0" + globals "^13.19.0" grapheme-splitter "^1.0.4" ignore "^5.2.0" import-fresh "^3.0.0" @@ -787,13 +829,14 @@ eslint@^8.29.0: 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== +eslint-import-resolver-node@^0.3.7: + version "0.3.7" + resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz" + integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== dependencies: debug "^3.2.7" - resolve "^1.20.0" + is-core-module "^2.11.0" + resolve "^1.22.1" eslint-import-resolver-typescript@^2.7.1: version "2.7.1" @@ -806,55 +849,60 @@ eslint-import-resolver-typescript@^2.7.1: resolve "^1.22.0" tsconfig-paths "^3.14.1" -eslint-module-utils@^2.7.3: +eslint-module-utils@^2.7.4: 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 "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz" - integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== +eslint-plugin-import@*, eslint-plugin-import@^2.26.0: + version "2.27.5" + resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz" + integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== dependencies: - array-includes "^3.1.4" - array.prototype.flat "^1.2.5" - debug "^2.6.9" + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + array.prototype.flatmap "^1.3.1" + debug "^3.2.7" doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.3" + eslint-import-resolver-node "^0.3.7" + eslint-module-utils "^2.7.4" has "^1.0.3" - is-core-module "^2.8.1" + is-core-module "^2.11.0" is-glob "^4.0.3" minimatch "^3.1.2" - object.values "^1.1.5" - resolve "^1.22.0" + object.values "^1.1.6" + resolve "^1.22.1" + semver "^6.3.0" tsconfig-paths "^3.14.1" eslint-plugin-jsx-a11y@^6.6.1: - version "6.6.1" - resolved "" - integrity sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q== + version "6.7.1" + resolved "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz" + integrity sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA== dependencies: - "@babel/runtime" "^7.18.9" - aria-query "^4.2.2" - array-includes "^3.1.5" + "@babel/runtime" "^7.20.7" + aria-query "^5.1.3" + array-includes "^3.1.6" + array.prototype.flatmap "^1.3.1" ast-types-flow "^0.0.7" - axe-core "^4.4.3" - axobject-query "^2.2.0" + axe-core "^4.6.2" + axobject-query "^3.1.1" 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" + jsx-ast-utils "^3.3.3" + language-tags "=1.0.5" minimatch "^3.1.2" + object.entries "^1.1.6" + object.fromentries "^2.0.6" semver "^6.3.0" eslint-plugin-react@^7.31.11: - version "7.31.11" - resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz" - integrity sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw== + version "7.32.2" + resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz" + integrity sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg== dependencies: array-includes "^3.1.6" array.prototype.flatmap "^1.3.1" @@ -868,7 +916,7 @@ eslint-plugin-react@^7.31.11: object.hasown "^1.1.2" object.values "^1.1.6" prop-types "^15.8.1" - resolve "^2.0.0-next.3" + resolve "^2.0.0-next.4" semver "^6.3.0" string.prototype.matchall "^4.0.8" @@ -878,17 +926,17 @@ eslint-plugin-react-hooks@^4.6.0: integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== eslint-plugin-react-refresh@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.3.1.tgz" - integrity sha512-eGTKtvzy+qKwTwXVz8Gnp5/7THN/rwAU3AyCvsqle2B4rBtMSPuH0HAoPSfg4ezUocYK919a68n4ftVZ7KT9NA== + version "0.3.4" + resolved "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.3.4.tgz" + integrity sha512-E0ViBglxSQAERBp6eTj5fPgtCRtDonnbCFiVQBhf4Dto2blJRxg1dFUMdMh7N6ljTI4UwPhHwYDQ3Dyo4m6bwA== eslint-plugin-unicorn@^45.0.1: - version "45.0.1" - resolved "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-45.0.1.tgz" - integrity sha512-tLnIw5oDJJc3ILYtlKtqOxPP64FZLTkZkgeuoN6e7x6zw+rhBjOxyvq2c7577LGxXuIhBYrwisZuKNqOOHp3BA== + version "45.0.2" + resolved "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-45.0.2.tgz" + integrity sha512-Y0WUDXRyGDMcKLiwgL3zSMpHrXI00xmdyixEGIg90gHnj0PcHY4moNv3Ppje/kDivdAy5vUeUr7z211ImPv2gw== dependencies: "@babel/helper-validator-identifier" "^7.19.1" - "@eslint-community/eslint-utils" "^4.1.0" + "@eslint-community/eslint-utils" "^4.1.2" ci-info "^3.6.1" clean-regexp "^1.0.0" esquery "^1.4.0" @@ -947,9 +995,9 @@ espree@^9.4.0: eslint-visitor-keys "^3.3.0" esquery@^1.4.0: - version "1.4.0" - resolved "" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + version "1.4.2" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.2.tgz" + integrity sha512-JVSoLdTlTDkmjFmab7H/9SL9qGSyjElT3myyKp7krqjVFQCDLmj1QFaCLRFBszBKI0XVZaiiXvuPIX3ZwHe1Ng== dependencies: estraverse "^5.1.0" @@ -1002,9 +1050,9 @@ fast-levenshtein@^2.0.6: integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastq@^1.6.0: - version "1.14.0" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz" - integrity sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg== + version "1.15.0" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== dependencies: reusify "^1.0.4" @@ -1040,7 +1088,7 @@ find-up@^5.0.0: flat-cache@^3.0.4: version "3.0.4" - resolved "" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== dependencies: flatted "^3.1.0" @@ -1051,9 +1099,16 @@ flatted@^3.1.0: resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + fs.realpath@^1.0.0: version "1.0.0" - resolved "" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@~2.3.2: @@ -1063,7 +1118,7 @@ fsevents@~2.3.2: function-bind@^1.1.1: version "1.1.1" - resolved "" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== function.prototype.name@^1.1.5: @@ -1081,10 +1136,10 @@ functions-have-names@^1.2.2: 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== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz" + integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q== dependencies: function-bind "^1.1.1" has "^1.0.3" @@ -1100,7 +1155,7 @@ get-symbol-description@^1.0.0: glob@^7.1.3, glob@^7.2.0: version "7.2.3" - resolved "" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" @@ -1124,16 +1179,23 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -globals@^13.15.0: - version "13.18.0" - resolved "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz" - integrity sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A== +globals@^13.19.0: + version "13.20.0" + resolved "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz" + integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== dependencies: type-fest "^0.20.2" +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + globby@^11.1.0: version "11.1.0" - resolved "" + resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" @@ -1184,6 +1246,11 @@ has-property-descriptors@^1.0.0: dependencies: get-intrinsic "^1.1.1" +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "" @@ -1202,9 +1269,9 @@ hosted-git-info@^2.1.4: integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== ignore@^5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.1.tgz" - integrity sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA== + version "5.2.4" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" @@ -1237,15 +1304,32 @@ inherits@2: resolved "" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -internal-slot@^1.0.3: - version "1.0.3" - resolved "" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== +internal-slot@^1.0.3, internal-slot@^1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== dependencies: - get-intrinsic "^1.1.0" + get-intrinsic "^1.2.0" has "^1.0.3" side-channel "^1.0.4" +is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-array-buffer@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz" + integrity sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-typed-array "^1.1.10" + is-arrayish@^0.2.1: version "0.2.1" resolved "" @@ -1260,32 +1344,32 @@ is-bigint@^1.0.1: is-boolean-object@^1.1.0: version "1.1.2" - resolved "" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== dependencies: call-bind "^1.0.2" has-tostringtag "^1.0.0" is-builtin-module@^3.2.0: - version "3.2.0" - resolved "" - integrity sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw== + version "3.2.1" + resolved "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz" + integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== dependencies: builtin-modules "^3.3.0" -is-callable@^1.1.4, is-callable@^1.2.7: +is-callable@^1.1.3, 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: +is-core-module@^2.11.0, 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: +is-date-object@^1.0.1, is-date-object@^1.0.5: version "1.0.5" resolved "" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== @@ -1304,6 +1388,11 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: dependencies: is-extglob "^2.1.1" +is-map@^2.0.1, is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + is-negative-zero@^2.0.2: version "2.0.2" resolved "" @@ -1334,6 +1423,11 @@ is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" +is-set@^2.0.1, is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + is-shared-array-buffer@^1.0.2: version "1.0.2" resolved "" @@ -1355,6 +1449,22 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" +is-typed-array@^1.1.10, is-typed-array@^1.1.9: + version "1.1.10" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz" + integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + is-weakref@^1.0.2: version "1.0.2" resolved "" @@ -1362,24 +1472,37 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + isexe@^2.0.0: version "2.0.0" resolved "" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== js-sdsl@^4.1.4: - version "4.2.0" - resolved "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz" - integrity sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ== + version "4.3.0" + resolved "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz" + integrity sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" - resolved "" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^4.1.0: version "4.1.0" - resolved "" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" @@ -1401,7 +1524,7 @@ json-parse-even-better-errors@^2.3.0: json-schema-traverse@^0.4.1: version "0.4.1" - resolved "" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-stable-stringify-without-jsonify@^1.0.1: @@ -1410,13 +1533,13 @@ json-stable-stringify-without-jsonify@^1.0.1: integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json5@^1.0.1: - version "1.0.1" - resolved "" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + version "1.0.2" + resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" -"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.2: +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.3: version "3.3.3" resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz" integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw== @@ -1424,17 +1547,17 @@ json5@^1.0.1: array-includes "^3.1.5" object.assign "^4.1.3" -language-subtag-registry@^0.3.20: +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.6" - resolved "https://registry.npmjs.org/language-tags/-/language-tags-1.0.6.tgz" - integrity sha512-HNkaCgM8wZgE/BZACeotAAgpL9FUjEnhgF0FVQMIgH//zqTPreLYMb3rWYkYAqPoF75Jwuycp1da7uz66cfFQg== +language-tags@=1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz" + integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ== dependencies: - language-subtag-registry "^0.3.20" + language-subtag-registry "~0.3.2" levn@^0.4.1: version "0.4.1" @@ -1451,14 +1574,14 @@ lines-and-columns@^1.1.6: locate-path@^5.0.0: version "5.0.0" - resolved "" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: p-locate "^4.1.0" locate-path@^6.0.0: version "6.0.0" - resolved "" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" @@ -1520,14 +1643,9 @@ minimatch@^3.1.1, minimatch@^3.1.2: 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== + version "1.2.8" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== ms@2.1.2: version "2.1.2" @@ -1541,7 +1659,7 @@ ms@^2.1.1: nanoid@^3.3.4: version "3.3.4" - resolved "" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz" integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== natural-compare@^1.4.0: @@ -1566,13 +1684,21 @@ normalize-package-data@^2.5.0: object-assign@^4.1.1: version "4.1.1" - resolved "" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-inspect@^1.12.2, object-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== + version "1.12.3" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + +object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" object-keys@^1.1.1: version "1.1.1" @@ -1615,7 +1741,7 @@ object.hasown@^1.1.2: define-properties "^1.1.4" es-abstract "^1.20.4" -object.values@^1.1.5, object.values@^1.1.6: +object.values@^1.1.6: version "1.1.6" resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz" integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== @@ -1626,7 +1752,7 @@ object.values@^1.1.5, object.values@^1.1.6: once@^1.3.0: version "1.4.0" - resolved "" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" @@ -1705,7 +1831,7 @@ path-is-absolute@^1.0.0: path-key@^3.1.0: version "3.1.1" - resolved "" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.7: @@ -1733,10 +1859,10 @@ pluralize@^8.0.0: resolved "" integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== -postcss@^8.4.19: - version "8.4.19" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz" - integrity sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA== +postcss@^8.4.21: + version "8.4.21" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz" + integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== dependencies: nanoid "^3.3.4" picocolors "^1.0.0" @@ -1747,10 +1873,10 @@ prelude-ls@^1.2.1: resolved "" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier@^2.8.1: - version "2.8.1" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz" - integrity sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg== +prettier@^2.8.4: + version "2.8.4" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz" + integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw== prop-types@^15.8.1: version "15.8.1" @@ -1762,9 +1888,9 @@ prop-types@^15.8.1: react-is "^16.13.1" punycode@^2.1.0: - version "2.1.1" - resolved "" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + version "2.3.0" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== queue-microtask@^1.2.2: version "1.2.3" @@ -1802,7 +1928,7 @@ regenerator-runtime@^0.13.11: regexp-tree@^0.1.24, regexp-tree@~0.1.1: version "0.1.24" - resolved "" + resolved "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz" integrity sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw== regexp.prototype.flags@^1.4.3: @@ -1826,7 +1952,7 @@ regjsparser@^0.9.1: dependencies: jsesc "~0.5.0" -resolve@^1.10.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.1: +resolve@^1.10.0, resolve@^1.22.0, resolve@^1.22.1: version "1.22.1" resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -1835,7 +1961,7 @@ resolve@^1.10.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.1: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -"resolve@^2.0.0-next.3": +"resolve@^2.0.0-next.4": version "2.0.0-next.4" resolved "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz" integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== @@ -1861,10 +1987,10 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -rollup@^3.7.0: - version "3.7.0" - resolved "https://registry.npmjs.org/rollup/-/rollup-3.7.0.tgz" - integrity sha512-FIJe0msW9P7L9BTfvaJyvn1U1BVCNTL3w8O+PKIrCyiMLg+rIUGb4MbcgVZ10Lnm1uWXOTOWRNARjfXC1+M12Q== +rollup@^3.10.0: + version "3.17.2" + resolved "https://registry.npmjs.org/rollup/-/rollup-3.17.2.tgz" + integrity sha512-qMNZdlQPCkWodrAZ3qnJtvCAl4vpQ8q77uEujVCCbC/6CLB7Lcmvjq7HyiOSnf4fxTT9XgsE36oLHJBH49xjqA== dependencies: fsevents "~2.3.2" @@ -1877,7 +2003,7 @@ run-parallel@^1.1.9: safe-regex@^2.1.1: version "2.1.1" - resolved "" + resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz" integrity sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A== dependencies: regexp-tree "~0.1.1" @@ -1941,7 +2067,7 @@ source-map-js@^1.0.2: spdx-correct@^3.0.0: version "3.1.1" - resolved "" + resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz" integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== dependencies: spdx-expression-parse "^3.0.0" @@ -1965,6 +2091,13 @@ spdx-license-ids@^3.0.0: resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz" integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + string.prototype.matchall@^4.0.8: version "4.0.8" resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz" @@ -2096,10 +2229,19 @@ type-fest@^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.9.4: - version "4.9.4" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz" - integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg== +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + +"typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta", typescript@^4.9.5: + version "4.9.5" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== unbox-primitive@^1.0.2: version "1.0.2" @@ -2120,21 +2262,21 @@ uri-js@^4.2.2: validate-npm-package-license@^3.0.1: version "3.0.4" - resolved "" + resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== dependencies: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -vite@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/vite/-/vite-4.0.0.tgz" - integrity sha512-ynad+4kYs8Jcnn8J7SacS9vAbk7eMy0xWg6E7bAhS1s79TK+D7tVFGXVZ55S7RNLRROU1rxoKlvZ/qjaB41DGA== +vite@^4.1.4: + version "4.1.4" + resolved "https://registry.npmjs.org/vite/-/vite-4.1.4.tgz" + integrity sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg== dependencies: - esbuild "^0.16.3" - postcss "^8.4.19" + esbuild "^0.16.14" + postcss "^8.4.21" resolve "^1.22.1" - rollup "^3.7.0" + rollup "^3.10.0" fsevents "~2.3.2" which@^2.0.1: @@ -2155,6 +2297,28 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + +which-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz" + integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.10" + word-wrap@^1.2.3: version "1.2.3" resolved ""