From e60111b8d3dc817c553da33ab7d90cad0a73bb4e Mon Sep 17 00:00:00 2001 From: Sea10wood Date: Sun, 11 Aug 2024 07:44:08 +0900 Subject: [PATCH 01/15] =?UTF-8?q?Add:=20result=5Fpage=E3=81=AEview?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.tsx | 2 ++ src/pages/result/index.module.css | 6 ++++++ src/pages/result/index.tsx | 13 +++++++++++++ 3 files changed, 21 insertions(+) create mode 100644 src/pages/result/index.module.css create mode 100644 src/pages/result/index.tsx diff --git a/src/App.tsx b/src/App.tsx index 669cf16..d2b23a8 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,5 +1,6 @@ import { Route, Routes } from "react-router-dom"; import Home from "./pages/home"; +import Result from "./pages/result"; import Shooter from "./pages/shooter"; import Yatai from "./pages/yatai"; @@ -10,6 +11,7 @@ const AppRoutes = () => { } /> } /> } /> + } /> ); diff --git a/src/pages/result/index.module.css b/src/pages/result/index.module.css new file mode 100644 index 0000000..c07fd05 --- /dev/null +++ b/src/pages/result/index.module.css @@ -0,0 +1,6 @@ +.result-text { + position: absolute; + left: 50%; + transform: translateX(-50%); + font-size: 40px; +} diff --git a/src/pages/result/index.tsx b/src/pages/result/index.tsx new file mode 100644 index 0000000..6761172 --- /dev/null +++ b/src/pages/result/index.tsx @@ -0,0 +1,13 @@ +import styles from "./index.module.css"; + +function Result() { + return ( +
+
+

結果発表!

+
+
+ ); +} + +export default Result; From b11651039ae4167c33628587f2c2e6d7e1f5737d Mon Sep 17 00:00:00 2001 From: Sea10wood Date: Sun, 11 Aug 2024 11:29:43 +0900 Subject: [PATCH 02/15] add; resultPage --- public/drink/bottle0.webp | Bin 0 -> 18174 bytes public/drink/bottle1.webp | Bin 0 -> 12650 bytes public/drink/bottle2.webp | Bin 0 -> 20946 bytes public/drink/bottle3.webp | Bin 0 -> 15844 bytes src/components/GetImage/index.module.css | 12 +++++ src/components/GetImage/index.tsx | 22 ++++++++ src/pages/result/index.module.css | 62 +++++++++++++++++++++++ src/pages/result/index.tsx | 41 +++++++++++++++ 8 files changed, 137 insertions(+) create mode 100644 public/drink/bottle0.webp create mode 100644 public/drink/bottle1.webp create mode 100644 public/drink/bottle2.webp create mode 100644 public/drink/bottle3.webp create mode 100644 src/components/GetImage/index.module.css create mode 100644 src/components/GetImage/index.tsx diff --git a/public/drink/bottle0.webp b/public/drink/bottle0.webp new file mode 100644 index 0000000000000000000000000000000000000000..a9949b1d13f201463c69a87fe980445add7d3a75 GIT binary patch literal 18174 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

|52v z+?>+^fn`LprTY5%F}kg5cNoJHTB4xAF7CNCeVR zr%n=8f^o8HB|X~iCmnyRs*GJfro3&NRg54s@gkawI7G3Yfm&qKEWBZL2k(l#z}Rb| znrFu+cuJJC;qc7f`$crZP89@(8Yd9%inz%yoF7jSUkX*$-cg}##%HZ(@625UvM3(; zm%GT4i_BQo4O-_U!{Z8459l{)Q{!JJ*)JC!B9)_viBUvc2Xp}JM0g=ch z0sMkqiPaYbX{{e%&=GWxje(equOjEP#`jg>ilxc^V*(!_ny`#K3X%Ck8EkW#3OW2s zSKiJV`iw_}r+RjVBo^4&6>%>lQBIT%-2{r3o^P=2)ipMr*<2h$ykw4H!uIIhwE z6AuOO`btR%ZsExS#Kpn}Bl|knhcOge+Mnr|n?9?!O$=IaMB_j!JixI!64*mBw>Gao zmrSG8eg~iNh0>x!+6>MZ=xwqON8>u+$9V5&8R#x0Wr#ic;bSpBNx5e^&*`X7wT-}9 z{RbU!<6KUyxVf`(8OKOfvm@69P4Sgw5*ei(tZ#U@nD(JBG+=n;w{)@ZZtTeyiT8C~JF9N?952vUVyujK0t4KBT=sRSPJ_6kYY>Vb>wV zO(I;zBsaxE^AQ4rBm1{c@w))V!>C~{zt6I5ZoFhD2*Q?7ftYs2=2Zjh=XK-OFq0o% zsXGNV0Mx>>TUEcnew8{LeBhh}rjey3d)x7@1^vkAguO+ux$3d55Q9`k)VcVRH|3_e z=8RJTq`R_bf#_QbmggV=q|on=6%iE9tGz>-qj5q(uCeZX6;PIEiVZ3kWj_snwRFTW z(5R6Z)-1IT1HNjBnHA*nG$LRjkyXW*ushSnb5`FgfYkRYKqctvsYUJV=^JrE*s@VU z?`uP!IK^%`Ywb^>^mBq}$cCy4rzsfim$F12^FVpJ)o3#h0$`_ZqNog-Ki(y^GL@6M zX^Mt*zLYpn#hm4dBXl#W-L#)MHHq=q9o)MT`-!(x**sB#|-^{o*&+#uLfkwygrca(NX*spz7(97dEB|XkCXOVi`U- zFBx6ZUBO1$2}2?5`j7QQ8%;fQXrI)yD$rJU#mZ-Dg{u5l&dlt;2BjZXM|q9ur%j^K z9V=%TWoR{(mfRD8!`dM60Ma+RXnP7}*6#Fyl9oK{tfB)d72YEOoy5Ky} z1n$M`916(4vWdG^_qf!zJV51-B^<5{e}8WXP)X{As;jY952O3@q}|_UtkOj~`T!XS zTX+TV08eu-sq))Qyz7%11eMNH0Mh8e3TB_9?3!{s$D@joTrsyn^Mi(2epX7^pr+_w z^{8=7%vH#Exuk)J^{JwvVaG|CU?b~`7>rhXk z=Frc zoa@|PtN_`9LUq)e(;ioQ#ll*7DXkg&#sIVaJb%Tii#*2&5^B^VRdMQjISBv&00000 D;tGx7 literal 0 HcmV?d00001 diff --git a/public/drink/bottle1.webp b/public/drink/bottle1.webp new file mode 100644 index 0000000000000000000000000000000000000000..869dfd99078fe40f8958a7dcb74196b03e9a1a2f GIT binary patch literal 12650 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

Pq3-`8oaT9mF1$hZ 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 Y#oy#QW}rm$xtNk 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 literal 0 HcmV?d00001 diff --git a/src/components/GetImage/index.module.css b/src/components/GetImage/index.module.css new file mode 100644 index 0000000..c932934 --- /dev/null +++ b/src/components/GetImage/index.module.css @@ -0,0 +1,12 @@ +.centered-image { + display: flex; + justify-content: center; + align-items: center; + margin: 20px 0; +} + +.centered-image img { + max-width: 40%; + height: auto; + border-radius: 10px; +} diff --git a/src/components/GetImage/index.tsx b/src/components/GetImage/index.tsx new file mode 100644 index 0000000..55e48f9 --- /dev/null +++ b/src/components/GetImage/index.tsx @@ -0,0 +1,22 @@ + +interface GetImageProps { + images: string[]; + alt: string; + width: number; + height: number; +} + +const GetImage: React.FC = ({ images, alt }) => { + const randomImage = images[Math.floor(Math.random() * images.length)]; + + return ( + {alt} + ); +}; + +export default GetImage; diff --git a/src/pages/result/index.module.css b/src/pages/result/index.module.css index c07fd05..ce483cf 100644 --- a/src/pages/result/index.module.css +++ b/src/pages/result/index.module.css @@ -4,3 +4,65 @@ transform: translateX(-50%); font-size: 40px; } + +.background-logo{ + opacity: 0.6; + position: absolute; + top: 40%; + left: 50%; + transform: translate(-50%, -50%); + justify-content: center; + align-items: center; + +} + +.get-text { + position: absolute; + top: 60%; + left: 50%; + transform: translateX(-50%); + font-size: 40px; + white-space: nowrap; +} + +.share-btn{ + position: absolute; + top: 80%; + left: 50%; + transform: translateX(-50%); + white-space: nowrap; +} + +.replay-text { + position: absolute; + top: 88%; + left: 50%; + transform: translateX(-50%); + white-space: nowrap; + font-family: 'Yuji Syuku', serif, sans-serif; + line-height: 1.5; + font-weight: 400; + font-style: normal; +} + +@keyframes rotate { + from { + transform: translate(-50%, -50%) rotate(0deg); + } + to { + transform: translate(-50%, -50%) rotate(360deg); + } +} + +.get-image-container { + position: absolute; + top: 40%; + left: 50%; + transform: translate(-50%, -50%); + display: flex; + justify-content: center; + align-items: center; + z-index: 1; + animation: rotate 16s linear infinite; +} + diff --git a/src/pages/result/index.tsx b/src/pages/result/index.tsx index 6761172..1107717 100644 --- a/src/pages/result/index.tsx +++ b/src/pages/result/index.tsx @@ -1,11 +1,52 @@ +import GetImage from "../../components/GetImage"; +import { DefaultButton } from "../../components/ui/Button"; import styles from "./index.module.css"; function Result() { + const images = [ + "/drink/bottle0.webp", + "/drink/bottle1.webp", + "/drink/bottle2.webp", + "/drink/bottle3.webp", + ]; + return (

結果発表!

+
+ +
+
+ 背景にばーちゃるなつまつりのロゴ +
+
+

Bottle Get!

+
+ +
+

また遊びにきてや〜

+
); } From f168a75dfea6fc2b2d5d93cea6120277e048f0de Mon Sep 17 00:00:00 2001 From: Sea10wood Date: Sun, 11 Aug 2024 11:31:47 +0900 Subject: [PATCH 03/15] =?UTF-8?q?fix:=20pmpm=20check=E3=81=A7=E3=81=AE?= =?UTF-8?q?=E4=BD=99=E7=99=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/GetImage/index.tsx | 28 ++++++++++++++-------------- src/pages/result/index.tsx | 7 ++++--- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/src/components/GetImage/index.tsx b/src/components/GetImage/index.tsx index 55e48f9..3cedabb 100644 --- a/src/components/GetImage/index.tsx +++ b/src/components/GetImage/index.tsx @@ -1,22 +1,22 @@ - interface GetImageProps { - images: string[]; - alt: string; - width: number; - height: number; + images: string[]; + alt: string; + width: number; + height: number; } const GetImage: React.FC = ({ images, alt }) => { - const randomImage = images[Math.floor(Math.random() * images.length)]; + const randomImage = images[Math.floor(Math.random() * images.length)]; - return ( - {alt} - ); + return ( + {alt} + ); }; export default GetImage; diff --git a/src/pages/result/index.tsx b/src/pages/result/index.tsx index 1107717..aa90a4e 100644 --- a/src/pages/result/index.tsx +++ b/src/pages/result/index.tsx @@ -20,7 +20,8 @@ function Result() { images={images} alt="ランダムに表示されるボトル画像" width={160} - height={160} /> + height={160} + />

Bottle Get!

-
+ -
+

また遊びにきてや〜

From 9cb02270c431d6f2c4d1d22dbe92573e5bc8ac31 Mon Sep 17 00:00:00 2001 From: Sea10wood Date: Sun, 11 Aug 2024 05:52:14 +0900 Subject: [PATCH 04/15] =?UTF-8?q?add:=20QR=E3=82=B3=E3=83=BC=E3=83=89?= =?UTF-8?q?=E3=82=92=E7=94=9F=E6=88=90=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.tsx | 2 ++ src/components/QRCodeGenerator.tsx | 22 ++++++++++++++++++++++ src/pages/QRCodeGenerator/index.tsx | 11 +++++++++++ src/utils/queryParams.ts | 19 +++++++++++++++++++ 4 files changed, 54 insertions(+) create mode 100644 src/components/QRCodeGenerator.tsx create mode 100644 src/pages/QRCodeGenerator/index.tsx create mode 100644 src/utils/queryParams.ts diff --git a/src/App.tsx b/src/App.tsx index 669cf16..0515ab9 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,4 +1,5 @@ import { Route, Routes } from "react-router-dom"; +import QRCodePage from "./pages/QRCodeGenerator"; import Home from "./pages/home"; import Shooter from "./pages/shooter"; import Yatai from "./pages/yatai"; @@ -10,6 +11,7 @@ const AppRoutes = () => { } /> } /> } /> + } /> ); diff --git a/src/components/QRCodeGenerator.tsx b/src/components/QRCodeGenerator.tsx new file mode 100644 index 0000000..bc727c6 --- /dev/null +++ b/src/components/QRCodeGenerator.tsx @@ -0,0 +1,22 @@ +import QRCode from "qrcode.react"; +import { useLocation } from "react-router-dom"; +import { generateUUID } from "../utils/uuid"; + +type QRCodeGeneratorProps = { + size?: number; +}; + +const QRCodeGenerator: React.FC = ({ size = 128 }) => { + const location = useLocation(); + const baseUrl = `${window.location.origin}${location.pathname}`; + const roomId = generateUUID(); + const url = `${baseUrl}?room_id=${roomId}`; + + return ( +
+ +
+ ); +}; + +export default QRCodeGenerator; diff --git a/src/pages/QRCodeGenerator/index.tsx b/src/pages/QRCodeGenerator/index.tsx new file mode 100644 index 0000000..56c9b81 --- /dev/null +++ b/src/pages/QRCodeGenerator/index.tsx @@ -0,0 +1,11 @@ +import QRCodeGenerator from "../../components/QRCodeGenerator"; + +const QRCodePage: React.FC = () => { + return ( +
+ +
+ ); +}; + +export default QRCodePage; diff --git a/src/utils/queryParams.ts b/src/utils/queryParams.ts new file mode 100644 index 0000000..457c80c --- /dev/null +++ b/src/utils/queryParams.ts @@ -0,0 +1,19 @@ +export function generateQueryParams( + params: Record, +): string { + const searchParams = new URLSearchParams(); + // biome-ignore lint/complexity/noForEach: + Object.entries(params).forEach(([key, value]) => { + searchParams.append(key, String(value)); + }); + return searchParams.toString(); +} + +export function appendQueryParamsToUrl( + baseUrl: string, + params: Record, +): string { + const queryString = generateQueryParams(params); + const separator = baseUrl.includes("?") ? "&" : "?"; + return `${baseUrl}${separator}${queryString}`; +} From 43f27afbd24da2d31a5e610b3aa2fb6dbd7f398e Mon Sep 17 00:00:00 2001 From: Sea10wood Date: Sun, 11 Aug 2024 05:58:57 +0900 Subject: [PATCH 05/15] =?UTF-8?q?add:=20cspel=E3=81=AEqrcode=E3=82=92?= =?UTF-8?q?=E9=99=A4=E5=A4=96l?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cspell.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cspell.json b/cspell.json index 3255c33..3da8c6e 100644 --- a/cspell.json +++ b/cspell.json @@ -2,5 +2,5 @@ "ignorePaths": ["node_modules/**", "*.svg"], "version": "0.2", "language": "en", - "words": ["NATSUMATSURI", "yatai", "Dela", "Yuji", "Syuku", "zustand", "wadaiko"] + "words": ["NATSUMATSURI", "yatai", "Dela", "Yuji", "Syuku", "zustand", "wadaiko", "qrcode"] } From d580c70932808eab5128f0391244eef2f2ea5e7d Mon Sep 17 00:00:00 2001 From: Sea10wood Date: Sun, 11 Aug 2024 06:18:35 +0900 Subject: [PATCH 06/15] =?UTF-8?q?fix:=20build=5Ffailed=E3=82=92=E8=B8=8F?= =?UTF-8?q?=E3=81=BE=E3=81=88=E3=81=A6pnpm=20install=E3=82=92=E3=81=97?= =?UTF-8?q?=E3=81=AA=E3=81=8A=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pnpm-lock.yaml | 3378 ++++++++++++++++++++++-------------------------- 1 file changed, 1533 insertions(+), 1845 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3bf080f..082d20a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,526 +1,804 @@ -lockfileVersion: '9.0' +lockfileVersion: '6.0' settings: autoInstallPeers: true excludeLinksFromLockfile: false -importers: - - .: - dependencies: - '@react-three/cannon': - specifier: ^6.6.0 - version: 6.6.0(@react-three/fiber@8.16.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(three@0.167.1))(react@18.3.1)(three@0.167.1)(typescript@5.5.4) - '@react-three/fiber': - specifier: ^8.16.8 - version: 8.16.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(three@0.167.1) - react: - specifier: ^18.3.1 - version: 18.3.1 - react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) - react-router-dom: - specifier: ^6.26.0 - version: 6.26.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - three: - specifier: ^0.167.1 - version: 0.167.1 - zustand: - specifier: ^4.5.4 - version: 4.5.4(@types/react@18.3.3)(react@18.3.1) - devDependencies: - '@biomejs/biome': - specifier: 1.8.3 - version: 1.8.3 - '@types/react': - specifier: ^18.3.3 - version: 18.3.3 - '@types/react-dom': - specifier: ^18.3.0 - version: 18.3.0 - '@types/three': - specifier: ^0.167.1 - version: 0.167.1 - '@typescript-eslint/eslint-plugin': - specifier: ^7.15.0 - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/parser': - specifier: ^7.15.0 - version: 7.18.0(eslint@8.57.0)(typescript@5.5.4) - '@vitejs/plugin-react-swc': - specifier: ^3.5.0 - version: 3.7.0(vite@5.4.0) - cspell: - specifier: 8.13.2 - version: 8.13.2 - eslint: - specifier: ^8.57.0 - version: 8.57.0 - eslint-plugin-react-hooks: - specifier: ^4.6.2 - version: 4.6.2(eslint@8.57.0) - eslint-plugin-react-refresh: - specifier: ^0.4.7 - version: 0.4.9(eslint@8.57.0) - rollup-plugin-visualizer: - specifier: ^5.12.0 - version: 5.12.0(rollup@4.20.0) - typescript: - specifier: ^5.2.2 - version: 5.5.4 - vite: - specifier: ^5.3.4 - version: 5.4.0 +dependencies: + '@react-three/cannon': + specifier: ^6.6.0 + version: 6.6.0(@react-three/fiber@8.16.8)(react@18.3.1)(three@0.167.1)(typescript@5.5.4) + '@react-three/fiber': + specifier: ^8.16.8 + version: 8.16.8(react-dom@18.3.1)(react@18.3.1)(three@0.167.1) + react: + specifier: ^18.3.1 + version: 18.3.1 + react-dom: + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) + react-router-dom: + specifier: ^6.26.0 + version: 6.26.0(react-dom@18.3.1)(react@18.3.1) + three: + specifier: ^0.167.1 + version: 0.167.1 + zustand: + specifier: ^4.5.4 + version: 4.5.4(@types/react@18.3.3)(react@18.3.1) + +devDependencies: + '@biomejs/biome': + specifier: 1.8.3 + version: 1.8.3 + '@types/react': + specifier: ^18.3.3 + version: 18.3.3 + '@types/react-dom': + specifier: ^18.3.0 + version: 18.3.0 + '@types/three': + specifier: ^0.167.1 + version: 0.167.1 + '@typescript-eslint/eslint-plugin': + specifier: ^7.15.0 + version: 7.18.0(@typescript-eslint/parser@7.18.0)(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/parser': + specifier: ^7.15.0 + version: 7.18.0(eslint@8.57.0)(typescript@5.5.4) + '@vitejs/plugin-react-swc': + specifier: ^3.5.0 + version: 3.7.0(vite@5.4.0) + cspell: + specifier: 8.13.2 + version: 8.13.2 + eslint: + specifier: ^8.57.0 + version: 8.57.0 + eslint-plugin-react-hooks: + specifier: ^4.6.2 + version: 4.6.2(eslint@8.57.0) + eslint-plugin-react-refresh: + specifier: ^0.4.7 + version: 0.4.9(eslint@8.57.0) + rollup-plugin-visualizer: + specifier: ^5.12.0 + version: 5.12.0 + typescript: + specifier: ^5.2.2 + version: 5.5.4 + vite: + specifier: ^5.3.4 + version: 5.4.0 packages: - '@babel/runtime@7.25.0': + /@babel/runtime@7.25.0: resolution: {integrity: sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==} engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.1 + dev: false - '@biomejs/biome@1.8.3': + /@biomejs/biome@1.8.3: resolution: {integrity: sha512-/uUV3MV+vyAczO+vKrPdOW0Iaet7UnJMU4bNMinggGJTAnBPjCoLEYcyYtYHNnUNYlv4xZMH6hVIQCAozq8d5w==} engines: {node: '>=14.21.3'} hasBin: true + requiresBuild: true + optionalDependencies: + '@biomejs/cli-darwin-arm64': 1.8.3 + '@biomejs/cli-darwin-x64': 1.8.3 + '@biomejs/cli-linux-arm64': 1.8.3 + '@biomejs/cli-linux-arm64-musl': 1.8.3 + '@biomejs/cli-linux-x64': 1.8.3 + '@biomejs/cli-linux-x64-musl': 1.8.3 + '@biomejs/cli-win32-arm64': 1.8.3 + '@biomejs/cli-win32-x64': 1.8.3 + dev: true - '@biomejs/cli-darwin-arm64@1.8.3': + /@biomejs/cli-darwin-arm64@1.8.3: resolution: {integrity: sha512-9DYOjclFpKrH/m1Oz75SSExR8VKvNSSsLnVIqdnKexj6NwmiMlKk94Wa1kZEdv6MCOHGHgyyoV57Cw8WzL5n3A==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [darwin] + requiresBuild: true + dev: true + optional: true - '@biomejs/cli-darwin-x64@1.8.3': + /@biomejs/cli-darwin-x64@1.8.3: resolution: {integrity: sha512-UeW44L/AtbmOF7KXLCoM+9PSgPo0IDcyEUfIoOXYeANaNXXf9mLUwV1GeF2OWjyic5zj6CnAJ9uzk2LT3v/wAw==} engines: {node: '>=14.21.3'} cpu: [x64] os: [darwin] + requiresBuild: true + dev: true + optional: true - '@biomejs/cli-linux-arm64-musl@1.8.3': + /@biomejs/cli-linux-arm64-musl@1.8.3: resolution: {integrity: sha512-9yjUfOFN7wrYsXt/T/gEWfvVxKlnh3yBpnScw98IF+oOeCYb5/b/+K7YNqKROV2i1DlMjg9g/EcN9wvj+NkMuQ==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@biomejs/cli-linux-arm64@1.8.3': + /@biomejs/cli-linux-arm64@1.8.3: resolution: {integrity: sha512-fed2ji8s+I/m8upWpTJGanqiJ0rnlHOK3DdxsyVLZQ8ClY6qLuPc9uehCREBifRJLl/iJyQpHIRufLDeotsPtw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@biomejs/cli-linux-x64-musl@1.8.3': + /@biomejs/cli-linux-x64-musl@1.8.3: resolution: {integrity: sha512-UHrGJX7PrKMKzPGoEsooKC9jXJMa28TUSMjcIlbDnIO4EAavCoVmNQaIuUSH0Ls2mpGMwUIf+aZJv657zfWWjA==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@biomejs/cli-linux-x64@1.8.3': + /@biomejs/cli-linux-x64@1.8.3: resolution: {integrity: sha512-I8G2QmuE1teISyT8ie1HXsjFRz9L1m5n83U1O6m30Kw+kPMPSKjag6QGUn+sXT8V+XWIZxFFBoTDEDZW2KPDDw==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@biomejs/cli-win32-arm64@1.8.3': + /@biomejs/cli-win32-arm64@1.8.3: resolution: {integrity: sha512-J+Hu9WvrBevfy06eU1Na0lpc7uR9tibm9maHynLIoAjLZpQU3IW+OKHUtyL8p6/3pT2Ju5t5emReeIS2SAxhkQ==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [win32] + requiresBuild: true + dev: true + optional: true - '@biomejs/cli-win32-x64@1.8.3': + /@biomejs/cli-win32-x64@1.8.3: resolution: {integrity: sha512-/PJ59vA1pnQeKahemaQf4Nyj7IKUvGQSc3Ze1uIGi+Wvr1xF7rGobSrAAG01T/gUDG21vkDsZYM03NAmPiVkqg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [win32] + requiresBuild: true + dev: true + optional: true - '@cspell/cspell-bundled-dicts@8.13.2': + /@cspell/cspell-bundled-dicts@8.13.2: resolution: {integrity: sha512-BLXah6gUvPeZM8bj1I0F5YJ0CzDZ3d3xpbDCrDB0NfHIsF9zn0la+ie0O15VcVWNBrNIToc6enjxWg1JSF3E5g==} engines: {node: '>=18'} + dependencies: + '@cspell/dict-ada': 4.0.2 + '@cspell/dict-aws': 4.0.3 + '@cspell/dict-bash': 4.1.3 + '@cspell/dict-companies': 3.1.4 + '@cspell/dict-cpp': 5.1.12 + '@cspell/dict-cryptocurrencies': 5.0.0 + '@cspell/dict-csharp': 4.0.2 + '@cspell/dict-css': 4.0.12 + '@cspell/dict-dart': 2.0.3 + '@cspell/dict-django': 4.1.0 + '@cspell/dict-docker': 1.1.7 + '@cspell/dict-dotnet': 5.0.2 + '@cspell/dict-elixir': 4.0.3 + '@cspell/dict-en-common-misspellings': 2.0.4 + '@cspell/dict-en-gb': 1.1.33 + '@cspell/dict-en_us': 4.3.23 + '@cspell/dict-filetypes': 3.0.4 + '@cspell/dict-fonts': 4.0.0 + '@cspell/dict-fsharp': 1.0.1 + '@cspell/dict-fullstack': 3.2.0 + '@cspell/dict-gaming-terms': 1.0.5 + '@cspell/dict-git': 3.0.0 + '@cspell/dict-golang': 6.0.9 + '@cspell/dict-google': 1.0.1 + '@cspell/dict-haskell': 4.0.1 + '@cspell/dict-html': 4.0.5 + '@cspell/dict-html-symbol-entities': 4.0.0 + '@cspell/dict-java': 5.0.7 + '@cspell/dict-julia': 1.0.1 + '@cspell/dict-k8s': 1.0.6 + '@cspell/dict-latex': 4.0.0 + '@cspell/dict-lorem-ipsum': 4.0.0 + '@cspell/dict-lua': 4.0.3 + '@cspell/dict-makefile': 1.0.0 + '@cspell/dict-monkeyc': 1.0.6 + '@cspell/dict-node': 5.0.1 + '@cspell/dict-npm': 5.0.18 + '@cspell/dict-php': 4.0.8 + '@cspell/dict-powershell': 5.0.5 + '@cspell/dict-public-licenses': 2.0.7 + '@cspell/dict-python': 4.2.4 + '@cspell/dict-r': 2.0.1 + '@cspell/dict-ruby': 5.0.2 + '@cspell/dict-rust': 4.0.5 + '@cspell/dict-scala': 5.0.3 + '@cspell/dict-software-terms': 4.0.6 + '@cspell/dict-sql': 2.1.5 + '@cspell/dict-svelte': 1.0.2 + '@cspell/dict-swift': 2.0.1 + '@cspell/dict-terraform': 1.0.0 + '@cspell/dict-typescript': 3.1.6 + '@cspell/dict-vue': 3.0.0 + dev: true - '@cspell/cspell-json-reporter@8.13.2': + /@cspell/cspell-json-reporter@8.13.2: resolution: {integrity: sha512-UOINJikJs9tRWc2RrFmXK4s3hpasAIbSq+6ed7NojY/2kYv6u0bHNhh4D+4DAroHcFsU24vl/PeTa9V4Z5CelA==} engines: {node: '>=18'} + dependencies: + '@cspell/cspell-types': 8.13.2 + dev: true - '@cspell/cspell-pipe@8.13.2': + /@cspell/cspell-pipe@8.13.2: resolution: {integrity: sha512-67N6UHaHRc3H9Nl5TKO/r1lCMgnMPQH+scR6aJxHjcwlKLSoNpGF9LiURhmYaItIhfTH4TDfB2hVPzsslRzaWg==} engines: {node: '>=18'} + dev: true - '@cspell/cspell-resolver@8.13.2': + /@cspell/cspell-resolver@8.13.2: resolution: {integrity: sha512-SCAH4LbV0uFP9ldXB49mRGnAnPCKZV8W96EMHv9Tdh7Fp3btF5FFaVf0h3/ms1g3quzWJq1+EZvJCKCpm9JY5g==} engines: {node: '>=18'} + dependencies: + global-directory: 4.0.1 + dev: true - '@cspell/cspell-service-bus@8.13.2': + /@cspell/cspell-service-bus@8.13.2: resolution: {integrity: sha512-lKgRzJlCPc4BLlqDjWQgIo0ikX4nQ04M1vu0H3CQjfcwr2PVEGLSlXXyJnA6S3A80WxVXhGehyMBhXzItmpKIQ==} engines: {node: '>=18'} + dev: true - '@cspell/cspell-types@8.13.2': + /@cspell/cspell-types@8.13.2: resolution: {integrity: sha512-0QFLcerzBapst1A729VTegeEcsHFK/YfDvOYWUwsZcmPrpacJ8qHmRPVyyFLvN5punXWwB7pIdtbrVRPDQT49w==} engines: {node: '>=18'} + dev: true - '@cspell/dict-ada@4.0.2': + /@cspell/dict-ada@4.0.2: resolution: {integrity: sha512-0kENOWQeHjUlfyId/aCM/mKXtkEgV0Zu2RhUXCBr4hHo9F9vph+Uu8Ww2b0i5a4ZixoIkudGA+eJvyxrG1jUpA==} + dev: true - '@cspell/dict-aws@4.0.3': + /@cspell/dict-aws@4.0.3: resolution: {integrity: sha512-0C0RQ4EM29fH0tIYv+EgDQEum0QI6OrmjENC9u98pB8UcnYxGG/SqinuPxo+TgcEuInj0Q73MsBpJ1l5xUnrsw==} + dev: true - '@cspell/dict-bash@4.1.3': + /@cspell/dict-bash@4.1.3: resolution: {integrity: sha512-tOdI3QVJDbQSwPjUkOiQFhYcu2eedmX/PtEpVWg0aFps/r6AyjUQINtTgpqMYnYuq8O1QUIQqnpx21aovcgZCw==} + dev: true - '@cspell/dict-companies@3.1.4': + /@cspell/dict-companies@3.1.4: resolution: {integrity: sha512-y9e0amzEK36EiiKx3VAA+SHQJPpf2Qv5cCt5eTUSggpTkiFkCh6gRKQ97rVlrKh5GJrqinDwYIJtTsxuh2vy2Q==} + dev: true - '@cspell/dict-cpp@5.1.12': + /@cspell/dict-cpp@5.1.12: resolution: {integrity: sha512-6lXLOFIa+k/qBcu0bjaE/Kc6v3sh9VhsDOXD1Dalm3zgd0QIMjp5XBmkpSdCAK3pWCPV0Se7ysVLDfCea1BuXg==} + dev: true - '@cspell/dict-cryptocurrencies@5.0.0': + /@cspell/dict-cryptocurrencies@5.0.0: resolution: {integrity: sha512-Z4ARIw5+bvmShL+4ZrhDzGhnc9znaAGHOEMaB/GURdS/jdoreEDY34wdN0NtdLHDO5KO7GduZnZyqGdRoiSmYA==} + dev: true - '@cspell/dict-csharp@4.0.2': + /@cspell/dict-csharp@4.0.2: resolution: {integrity: sha512-1JMofhLK+4p4KairF75D3A924m5ERMgd1GvzhwK2geuYgd2ZKuGW72gvXpIV7aGf52E3Uu1kDXxxGAiZ5uVG7g==} + dev: true - '@cspell/dict-css@4.0.12': + /@cspell/dict-css@4.0.12: resolution: {integrity: sha512-vGBgPM92MkHQF5/2jsWcnaahOZ+C6OE/fPvd5ScBP72oFY9tn5GLuomcyO0z8vWCr2e0nUSX1OGimPtcQAlvSw==} + dev: true - '@cspell/dict-dart@2.0.3': + /@cspell/dict-dart@2.0.3: resolution: {integrity: sha512-cLkwo1KT5CJY5N5RJVHks2genFkNCl/WLfj+0fFjqNR+tk3tBI1LY7ldr9piCtSFSm4x9pO1x6IV3kRUY1lLiw==} + dev: true - '@cspell/dict-data-science@2.0.1': + /@cspell/dict-data-science@2.0.1: resolution: {integrity: sha512-xeutkzK0eBe+LFXOFU2kJeAYO6IuFUc1g7iRLr7HeCmlC4rsdGclwGHh61KmttL3+YHQytYStxaRBdGAXWC8Lw==} + dev: true - '@cspell/dict-django@4.1.0': + /@cspell/dict-django@4.1.0: resolution: {integrity: sha512-bKJ4gPyrf+1c78Z0Oc4trEB9MuhcB+Yg+uTTWsvhY6O2ncFYbB/LbEZfqhfmmuK/XJJixXfI1laF2zicyf+l0w==} + dev: true - '@cspell/dict-docker@1.1.7': + /@cspell/dict-docker@1.1.7: resolution: {integrity: sha512-XlXHAr822euV36GGsl2J1CkBIVg3fZ6879ZOg5dxTIssuhUOCiV2BuzKZmt6aIFmcdPmR14+9i9Xq+3zuxeX0A==} + dev: true - '@cspell/dict-dotnet@5.0.2': + /@cspell/dict-dotnet@5.0.2: resolution: {integrity: sha512-UD/pO2A2zia/YZJ8Kck/F6YyDSpCMq0YvItpd4YbtDVzPREfTZ48FjZsbYi4Jhzwfvc6o8R56JusAE58P+4sNQ==} + dev: true - '@cspell/dict-elixir@4.0.3': + /@cspell/dict-elixir@4.0.3: resolution: {integrity: sha512-g+uKLWvOp9IEZvrIvBPTr/oaO6619uH/wyqypqvwpmnmpjcfi8+/hqZH8YNKt15oviK8k4CkINIqNhyndG9d9Q==} + dev: true - '@cspell/dict-en-common-misspellings@2.0.4': + /@cspell/dict-en-common-misspellings@2.0.4: resolution: {integrity: sha512-lvOiRjV/FG4pAGZL3PN2GCVHSTCE92cwhfLGGkOsQtxSmef6WCHfHwp9auafkBlX0yFQSKDfq6/TlpQbjbJBtQ==} + dev: true - '@cspell/dict-en-gb@1.1.33': + /@cspell/dict-en-gb@1.1.33: resolution: {integrity: sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g==} + dev: true - '@cspell/dict-en_us@4.3.23': + /@cspell/dict-en_us@4.3.23: resolution: {integrity: sha512-l0SoEQBsi3zDSl3OuL4/apBkxjuj4hLIg/oy6+gZ7LWh03rKdF6VNtSZNXWAmMY+pmb1cGA3ouleTiJIglbsIg==} + dev: true - '@cspell/dict-filetypes@3.0.4': + /@cspell/dict-filetypes@3.0.4: resolution: {integrity: sha512-IBi8eIVdykoGgIv5wQhOURi5lmCNJq0we6DvqKoPQJHthXbgsuO1qrHSiUVydMiQl/XvcnUWTMeAlVUlUClnVg==} + dev: true - '@cspell/dict-fonts@4.0.0': + /@cspell/dict-fonts@4.0.0: resolution: {integrity: sha512-t9V4GeN/m517UZn63kZPUYP3OQg5f0OBLSd3Md5CU3eH1IFogSvTzHHnz4Wqqbv8NNRiBZ3HfdY/pqREZ6br3Q==} + dev: true - '@cspell/dict-fsharp@1.0.1': + /@cspell/dict-fsharp@1.0.1: resolution: {integrity: sha512-23xyPcD+j+NnqOjRHgW3IU7Li912SX9wmeefcY0QxukbAxJ/vAN4rBpjSwwYZeQPAn3fxdfdNZs03fg+UM+4yQ==} + dev: true - '@cspell/dict-fullstack@3.2.0': + /@cspell/dict-fullstack@3.2.0: resolution: {integrity: sha512-sIGQwU6G3rLTo+nx0GKyirR5dQSFeTIzFTOrURw51ISf+jKG9a3OmvsVtc2OANfvEAOLOC9Wfd8WYhmsO8KRDQ==} + dev: true - '@cspell/dict-gaming-terms@1.0.5': + /@cspell/dict-gaming-terms@1.0.5: resolution: {integrity: sha512-C3riccZDD3d9caJQQs1+MPfrUrQ+0KHdlj9iUR1QD92FgTOF6UxoBpvHUUZ9YSezslcmpFQK4xQQ5FUGS7uWfw==} + dev: true - '@cspell/dict-git@3.0.0': + /@cspell/dict-git@3.0.0: resolution: {integrity: sha512-simGS/lIiXbEaqJu9E2VPoYW1OTC2xrwPPXNXFMa2uo/50av56qOuaxDrZ5eH1LidFXwoc8HROCHYeKoNrDLSw==} + dev: true - '@cspell/dict-golang@6.0.9': + /@cspell/dict-golang@6.0.9: resolution: {integrity: sha512-etDt2WQauyEQDA+qPS5QtkYTb2I9l5IfQftAllVoB1aOrT6bxxpHvMEpJ0Hsn/vezxrCqa/BmtUbRxllIxIuSg==} + dev: true - '@cspell/dict-google@1.0.1': + /@cspell/dict-google@1.0.1: resolution: {integrity: sha512-dQr4M3n95uOhtloNSgB9tYYGXGGEGEykkFyRtfcp5pFuEecYUa0BSgtlGKx9RXVtJtKgR+yFT/a5uQSlt8WjqQ==} + dev: true - '@cspell/dict-haskell@4.0.1': + /@cspell/dict-haskell@4.0.1: resolution: {integrity: sha512-uRrl65mGrOmwT7NxspB4xKXFUenNC7IikmpRZW8Uzqbqcu7ZRCUfstuVH7T1rmjRgRkjcIjE4PC11luDou4wEQ==} + dev: true - '@cspell/dict-html-symbol-entities@4.0.0': + /@cspell/dict-html-symbol-entities@4.0.0: resolution: {integrity: sha512-HGRu+48ErJjoweR5IbcixxETRewrBb0uxQBd6xFGcxbEYCX8CnQFTAmKI5xNaIt2PKaZiJH3ijodGSqbKdsxhw==} + dev: true - '@cspell/dict-html@4.0.5': + /@cspell/dict-html@4.0.5: resolution: {integrity: sha512-p0brEnRybzSSWi8sGbuVEf7jSTDmXPx7XhQUb5bgG6b54uj+Z0Qf0V2n8b/LWwIPJNd1GygaO9l8k3HTCy1h4w==} + dev: true - '@cspell/dict-java@5.0.7': + /@cspell/dict-java@5.0.7: resolution: {integrity: sha512-ejQ9iJXYIq7R09BScU2y5OUGrSqwcD+J5mHFOKbduuQ5s/Eh/duz45KOzykeMLI6KHPVxhBKpUPBWIsfewECpQ==} + dev: true - '@cspell/dict-julia@1.0.1': + /@cspell/dict-julia@1.0.1: resolution: {integrity: sha512-4JsCLCRhhLMLiaHpmR7zHFjj1qOauzDI5ZzCNQS31TUMfsOo26jAKDfo0jljFAKgw5M2fEG7sKr8IlPpQAYrmQ==} + dev: true - '@cspell/dict-k8s@1.0.6': + /@cspell/dict-k8s@1.0.6: resolution: {integrity: sha512-srhVDtwrd799uxMpsPOQqeDJY+gEocgZpoK06EFrb4GRYGhv7lXo9Fb+xQMyQytzOW9dw4DNOEck++nacDuymg==} + dev: true - '@cspell/dict-latex@4.0.0': + /@cspell/dict-latex@4.0.0: resolution: {integrity: sha512-LPY4y6D5oI7D3d+5JMJHK/wxYTQa2lJMSNxps2JtuF8hbAnBQb3igoWEjEbIbRRH1XBM0X8dQqemnjQNCiAtxQ==} + dev: true - '@cspell/dict-lorem-ipsum@4.0.0': + /@cspell/dict-lorem-ipsum@4.0.0: resolution: {integrity: sha512-1l3yjfNvMzZPibW8A7mQU4kTozwVZVw0AvFEdy+NcqtbxH+TvbSkNMqROOFWrkD2PjnKG0+Ea0tHI2Pi6Gchnw==} + dev: true - '@cspell/dict-lua@4.0.3': + /@cspell/dict-lua@4.0.3: resolution: {integrity: sha512-lDHKjsrrbqPaea13+G9s0rtXjMO06gPXPYRjRYawbNmo4E/e3XFfVzeci3OQDQNDmf2cPOwt9Ef5lu2lDmwfJg==} + dev: true - '@cspell/dict-makefile@1.0.0': + /@cspell/dict-makefile@1.0.0: resolution: {integrity: sha512-3W9tHPcSbJa6s0bcqWo6VisEDTSN5zOtDbnPabF7rbyjRpNo0uHXHRJQF8gAbFzoTzBBhgkTmrfSiuyQm7vBUQ==} + dev: true - '@cspell/dict-monkeyc@1.0.6': + /@cspell/dict-monkeyc@1.0.6: resolution: {integrity: sha512-oO8ZDu/FtZ55aq9Mb67HtaCnsLn59xvhO/t2mLLTHAp667hJFxpp7bCtr2zOrR1NELzFXmKln/2lw/PvxMSvrA==} + dev: true - '@cspell/dict-node@5.0.1': + /@cspell/dict-node@5.0.1: resolution: {integrity: sha512-lax/jGz9h3Dv83v8LHa5G0bf6wm8YVRMzbjJPG/9rp7cAGPtdrga+XANFq+B7bY5+jiSA3zvj10LUFCFjnnCCg==} + dev: true - '@cspell/dict-npm@5.0.18': + /@cspell/dict-npm@5.0.18: resolution: {integrity: sha512-weMTyxWpzz19q4wv9n183BtFvdD5fCjtze+bFKpl+4rO/YlPhHL2cXLAeexJz/VDSBecwX4ybTZYoknd1h2J4w==} + dev: true - '@cspell/dict-php@4.0.8': + /@cspell/dict-php@4.0.8: resolution: {integrity: sha512-TBw3won4MCBQ2wdu7kvgOCR3dY2Tb+LJHgDUpuquy3WnzGiSDJ4AVelrZdE1xu7mjFJUr4q48aB21YT5uQqPZA==} + dev: true - '@cspell/dict-powershell@5.0.5': + /@cspell/dict-powershell@5.0.5: resolution: {integrity: sha512-3JVyvMoDJesAATYGOxcUWPbQPUvpZmkinV3m8HL1w1RrjeMVXXuK7U1jhopSneBtLhkU+9HKFwgh9l9xL9mY2Q==} + dev: true - '@cspell/dict-public-licenses@2.0.7': + /@cspell/dict-public-licenses@2.0.7: resolution: {integrity: sha512-KlBXuGcN3LE7tQi/GEqKiDewWGGuopiAD0zRK1QilOx5Co8XAvs044gk4MNIQftc8r0nHeUI+irJKLGcR36DIQ==} + dev: true - '@cspell/dict-python@4.2.4': + /@cspell/dict-python@4.2.4: resolution: {integrity: sha512-sCtLBqMreb+8zRW2bXvFsfSnRUVU6IFm4mT6Dc4xbz0YajprbaPPh/kOUTw5IJRP8Uh+FFb7Xp2iH03CNWRq/A==} + dependencies: + '@cspell/dict-data-science': 2.0.1 + dev: true - '@cspell/dict-r@2.0.1': + /@cspell/dict-r@2.0.1: resolution: {integrity: sha512-KCmKaeYMLm2Ip79mlYPc8p+B2uzwBp4KMkzeLd5E6jUlCL93Y5Nvq68wV5fRLDRTf7N1LvofkVFWfDcednFOgA==} + dev: true - '@cspell/dict-ruby@5.0.2': + /@cspell/dict-ruby@5.0.2: resolution: {integrity: sha512-cIh8KTjpldzFzKGgrqUX4bFyav5lC52hXDKo4LbRuMVncs3zg4hcSf4HtURY+f2AfEZzN6ZKzXafQpThq3dl2g==} + dev: true - '@cspell/dict-rust@4.0.5': + /@cspell/dict-rust@4.0.5: resolution: {integrity: sha512-DIvlPRDemjKQy8rCqftAgGNZxY5Bg+Ps7qAIJjxkSjmMETyDgl0KTVuaJPt7EK4jJt6uCZ4ILy96npsHDPwoXA==} + dev: true - '@cspell/dict-scala@5.0.3': + /@cspell/dict-scala@5.0.3: resolution: {integrity: sha512-4yGb4AInT99rqprxVNT9TYb1YSpq58Owzq7zi3ZS5T0u899Y4VsxsBiOgHnQ/4W+ygi+sp+oqef8w8nABR2lkg==} + dev: true - '@cspell/dict-software-terms@4.0.6': + /@cspell/dict-software-terms@4.0.6: resolution: {integrity: sha512-UDhUzNSf7GN529a0Ip9hlSoGbpscz0YlUYBEJmZBXi8otpkrbCJqs50T74Ppd+SWqNil04De8urv4af2c6SY5Q==} + dev: true - '@cspell/dict-sql@2.1.5': + /@cspell/dict-sql@2.1.5: resolution: {integrity: sha512-FmxanytHXss7GAWAXmgaxl3icTCW7YxlimyOSPNfm+njqeUDjw3kEv4mFNDDObBJv8Ec5AWCbUDkWIpkE3IpKg==} + dev: true - '@cspell/dict-svelte@1.0.2': + /@cspell/dict-svelte@1.0.2: resolution: {integrity: sha512-rPJmnn/GsDs0btNvrRBciOhngKV98yZ9SHmg8qI6HLS8hZKvcXc0LMsf9LLuMK1TmS2+WQFAan6qeqg6bBxL2Q==} + dev: true - '@cspell/dict-swift@2.0.1': + /@cspell/dict-swift@2.0.1: resolution: {integrity: sha512-gxrCMUOndOk7xZFmXNtkCEeroZRnS2VbeaIPiymGRHj5H+qfTAzAKxtv7jJbVA3YYvEzWcVE2oKDP4wcbhIERw==} + dev: true - '@cspell/dict-terraform@1.0.0': + /@cspell/dict-terraform@1.0.0: resolution: {integrity: sha512-Ak+vy4HP/bOgzf06BAMC30+ZvL9mzv21xLM2XtfnBLTDJGdxlk/nK0U6QT8VfFLqJ0ZZSpyOxGsUebWDCTr/zQ==} + dev: true - '@cspell/dict-typescript@3.1.6': + /@cspell/dict-typescript@3.1.6: resolution: {integrity: sha512-1beC6O4P/j23VuxX+i0+F7XqPVc3hhiAzGJHEKqnWf5cWAXQtg0xz3xQJ5MvYx2a7iLaSa+lu7+05vG9UHyu9Q==} + dev: true - '@cspell/dict-vue@3.0.0': + /@cspell/dict-vue@3.0.0: resolution: {integrity: sha512-niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A==} + dev: true - '@cspell/dynamic-import@8.13.2': + /@cspell/dynamic-import@8.13.2: resolution: {integrity: sha512-ckn9k7kW9Wv1kw8WltUGByQQzFFR9YITtnDQHHFI8yi9IQkSle4+KHLr9Y8uL6U8rtwP70edX4ese++yfnJr+Q==} engines: {node: '>=18.0'} + dependencies: + import-meta-resolve: 4.1.0 + dev: true - '@cspell/strong-weak-map@8.13.2': + /@cspell/strong-weak-map@8.13.2: resolution: {integrity: sha512-jVwlZnef8Q/x3MEg5ixRYYfV3BoI5ZOw0UZRianaM1GwsLCIW/mJ7ZIlIQF6N/exE1YWCpyRlCNgvTgUf7fc7w==} engines: {node: '>=18'} + dev: true - '@cspell/url@8.13.2': + /@cspell/url@8.13.2: resolution: {integrity: sha512-IFtiADDLGCp4QXPhsQ0F5/jbVQb0Loeum36wzGLiqXWYDjIA25W8miy0hyy/S8aZhzdEq2aUZjz9dTvkl+5ISQ==} engines: {node: '>=18.0'} + dev: true - '@esbuild/aix-ppc64@0.21.5': + /@esbuild/aix-ppc64@0.21.5: resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] + requiresBuild: true + dev: true + optional: true - '@esbuild/android-arm64@0.21.5': + /@esbuild/android-arm64@0.21.5: resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} engines: {node: '>=12'} cpu: [arm64] os: [android] + requiresBuild: true + dev: true + optional: true - '@esbuild/android-arm@0.21.5': + /@esbuild/android-arm@0.21.5: resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} cpu: [arm] os: [android] + requiresBuild: true + dev: true + optional: true - '@esbuild/android-x64@0.21.5': + /@esbuild/android-x64@0.21.5: resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} engines: {node: '>=12'} cpu: [x64] os: [android] + requiresBuild: true + dev: true + optional: true - '@esbuild/darwin-arm64@0.21.5': + /@esbuild/darwin-arm64@0.21.5: resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] + requiresBuild: true + dev: true + optional: true - '@esbuild/darwin-x64@0.21.5': + /@esbuild/darwin-x64@0.21.5: resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} engines: {node: '>=12'} cpu: [x64] os: [darwin] + requiresBuild: true + dev: true + optional: true - '@esbuild/freebsd-arm64@0.21.5': + /@esbuild/freebsd-arm64@0.21.5: resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] + requiresBuild: true + dev: true + optional: true - '@esbuild/freebsd-x64@0.21.5': + /@esbuild/freebsd-x64@0.21.5: resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-arm64@0.21.5': + /@esbuild/linux-arm64@0.21.5: resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} cpu: [arm64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-arm@0.21.5': + /@esbuild/linux-arm@0.21.5: resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} engines: {node: '>=12'} cpu: [arm] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-ia32@0.21.5': + /@esbuild/linux-ia32@0.21.5: resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-loong64@0.21.5': + /@esbuild/linux-loong64@0.21.5: resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-mips64el@0.21.5': + /@esbuild/linux-mips64el@0.21.5: resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-ppc64@0.21.5': + /@esbuild/linux-ppc64@0.21.5: resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-riscv64@0.21.5': + /@esbuild/linux-riscv64@0.21.5: resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-s390x@0.21.5': + /@esbuild/linux-s390x@0.21.5: resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} engines: {node: '>=12'} cpu: [s390x] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-x64@0.21.5': + /@esbuild/linux-x64@0.21.5: resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/netbsd-x64@0.21.5': + /@esbuild/netbsd-x64@0.21.5: resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] + requiresBuild: true + dev: true + optional: true - '@esbuild/openbsd-x64@0.21.5': + /@esbuild/openbsd-x64@0.21.5: resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] + requiresBuild: true + dev: true + optional: true - '@esbuild/sunos-x64@0.21.5': + /@esbuild/sunos-x64@0.21.5: resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] + requiresBuild: true + dev: true + optional: true - '@esbuild/win32-arm64@0.21.5': + /@esbuild/win32-arm64@0.21.5: resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] + requiresBuild: true + dev: true + optional: true - '@esbuild/win32-ia32@0.21.5': + /@esbuild/win32-ia32@0.21.5: resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] + requiresBuild: true + dev: true + optional: true - '@esbuild/win32-x64@0.21.5': + /@esbuild/win32-x64@0.21.5: resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} engines: {node: '>=12'} cpu: [x64] os: [win32] + requiresBuild: true + dev: true + optional: true - '@eslint-community/eslint-utils@4.4.0': + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.57.0 + eslint-visitor-keys: 3.4.3 + dev: true - '@eslint-community/regexpp@4.11.0': + /@eslint-community/regexpp@4.11.0: resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true - '@eslint/eslintrc@2.1.4': + /@eslint/eslintrc@2.1.4: resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.6 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true - '@eslint/js@8.57.0': + /@eslint/js@8.57.0: resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true - '@humanwhocodes/config-array@0.11.14': + /@humanwhocodes/config-array@0.11.14: resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} deprecated: Use @eslint/config-array instead + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.3.6 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true - '@humanwhocodes/module-importer@1.0.1': + /@humanwhocodes/module-importer@1.0.1: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} + dev: true - '@humanwhocodes/object-schema@2.0.3': + /@humanwhocodes/object-schema@2.0.3: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} deprecated: Use @eslint/object-schema instead + dev: true - '@nodelib/fs.scandir@2.1.5': + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true - '@nodelib/fs.stat@2.0.5': + /@nodelib/fs.stat@2.0.5: resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} + dev: true - '@nodelib/fs.walk@1.2.8': + /@nodelib/fs.walk@1.2.8: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + dev: true - '@pmndrs/cannon-worker-api@2.4.0': + /@pmndrs/cannon-worker-api@2.4.0(three@0.167.1): resolution: {integrity: sha512-oJA1Bboc+WObksRaGDKJG0Wna9Q75xi1MdXVAZ9qXzBOyPsadmAnrmiKOEF0R8v/4zsuJElvscNZmyo3msbZjA==} peerDependencies: three: '>=0.139' + dependencies: + three: 0.167.1 + dev: false - '@react-three/cannon@6.6.0': + /@react-three/cannon@6.6.0(@react-three/fiber@8.16.8)(react@18.3.1)(three@0.167.1)(typescript@5.5.4): resolution: {integrity: sha512-lP9rJoVHQi0w+dYF8FJAm2xr5eLfNEckb04j72kjqndUkuOPr26N4rSBhQbHl5b5N3tEnhQaIMungAvHkcY8/A==} peerDependencies: '@react-three/fiber': '>=8' react: '>=18' three: '>=0.139' + dependencies: + '@pmndrs/cannon-worker-api': 2.4.0(three@0.167.1) + '@react-three/fiber': 8.16.8(react-dom@18.3.1)(react@18.3.1)(three@0.167.1) + cannon-es: 0.20.0 + cannon-es-debugger: 1.0.0(cannon-es@0.20.0)(three@0.167.1)(typescript@5.5.4) + react: 18.3.1 + three: 0.167.1 + transitivePeerDependencies: + - typescript + dev: false - '@react-three/fiber@8.16.8': + /@react-three/fiber@8.16.8(react-dom@18.3.1)(react@18.3.1)(three@0.167.1): resolution: {integrity: sha512-Lc8fjATtvQEfSd8d5iKdbpHtRm/aPMeFj7jQvp6TNHfpo8IQTW3wwcE1ZMrGGoUH+w2mnyS+0MK1NLPLnuzGkQ==} peerDependencies: expo: '>=43.0' @@ -544,197 +822,334 @@ packages: optional: true react-native: optional: true + dependencies: + '@babel/runtime': 7.25.0 + '@types/react-reconciler': 0.26.7 + '@types/webxr': 0.5.19 + base64-js: 1.5.1 + buffer: 6.0.3 + its-fine: 1.2.5(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-reconciler: 0.27.0(react@18.3.1) + react-use-measure: 2.1.1(react-dom@18.3.1)(react@18.3.1) + scheduler: 0.21.0 + suspend-react: 0.1.3(react@18.3.1) + three: 0.167.1 + zustand: 3.7.2(react@18.3.1) + dev: false - '@remix-run/router@1.19.0': + /@remix-run/router@1.19.0: resolution: {integrity: sha512-zDICCLKEwbVYTS6TjYaWtHXxkdoUvD/QXvyVZjGCsWz5vyH7aFeONlPffPdW+Y/t6KT0MgXb2Mfjun9YpWN1dA==} engines: {node: '>=14.0.0'} + dev: false - '@rollup/rollup-android-arm-eabi@4.20.0': + /@rollup/rollup-android-arm-eabi@4.20.0: resolution: {integrity: sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==} cpu: [arm] os: [android] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-android-arm64@4.20.0': + /@rollup/rollup-android-arm64@4.20.0: resolution: {integrity: sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==} cpu: [arm64] os: [android] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-darwin-arm64@4.20.0': + /@rollup/rollup-darwin-arm64@4.20.0: resolution: {integrity: sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==} cpu: [arm64] os: [darwin] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-darwin-x64@4.20.0': + /@rollup/rollup-darwin-x64@4.20.0: resolution: {integrity: sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==} cpu: [x64] os: [darwin] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.20.0': + /@rollup/rollup-linux-arm-gnueabihf@4.20.0: resolution: {integrity: sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==} cpu: [arm] os: [linux] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-arm-musleabihf@4.20.0': + /@rollup/rollup-linux-arm-musleabihf@4.20.0: resolution: {integrity: sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==} cpu: [arm] os: [linux] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-arm64-gnu@4.20.0': + /@rollup/rollup-linux-arm64-gnu@4.20.0: resolution: {integrity: sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==} cpu: [arm64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-arm64-musl@4.20.0': + /@rollup/rollup-linux-arm64-musl@4.20.0: resolution: {integrity: sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==} cpu: [arm64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.20.0': + /@rollup/rollup-linux-powerpc64le-gnu@4.20.0: resolution: {integrity: sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==} cpu: [ppc64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-riscv64-gnu@4.20.0': + /@rollup/rollup-linux-riscv64-gnu@4.20.0: resolution: {integrity: sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==} cpu: [riscv64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-s390x-gnu@4.20.0': + /@rollup/rollup-linux-s390x-gnu@4.20.0: resolution: {integrity: sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==} cpu: [s390x] os: [linux] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-x64-gnu@4.20.0': + /@rollup/rollup-linux-x64-gnu@4.20.0: resolution: {integrity: sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==} cpu: [x64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-x64-musl@4.20.0': + /@rollup/rollup-linux-x64-musl@4.20.0: resolution: {integrity: sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==} cpu: [x64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-win32-arm64-msvc@4.20.0': + /@rollup/rollup-win32-arm64-msvc@4.20.0: resolution: {integrity: sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==} cpu: [arm64] os: [win32] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-win32-ia32-msvc@4.20.0': + /@rollup/rollup-win32-ia32-msvc@4.20.0: resolution: {integrity: sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==} cpu: [ia32] os: [win32] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-win32-x64-msvc@4.20.0': + /@rollup/rollup-win32-x64-msvc@4.20.0: resolution: {integrity: sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==} cpu: [x64] os: [win32] + requiresBuild: true + dev: true + optional: true - '@swc/core-darwin-arm64@1.7.10': + /@swc/core-darwin-arm64@1.7.10: resolution: {integrity: sha512-TYp4x/9w/C/yMU1olK5hTKq/Hi7BjG71UJ4V1U1WxI1JA3uokjQ/GoktDfmH5V5pX4dgGSOJwUe2RjoN8Z/XnA==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] + requiresBuild: true + dev: true + optional: true - '@swc/core-darwin-x64@1.7.10': + /@swc/core-darwin-x64@1.7.10: resolution: {integrity: sha512-P3LJjAWh5yLc6p5IUwV5LgRfA3R1oDCZDMabYyb2BVQuJTD4MfegW9DhBcUUF5dhBLwq3191KpLVzE+dLTbiXw==} engines: {node: '>=10'} cpu: [x64] os: [darwin] + requiresBuild: true + dev: true + optional: true - '@swc/core-linux-arm-gnueabihf@1.7.10': + /@swc/core-linux-arm-gnueabihf@1.7.10: resolution: {integrity: sha512-yGOFjE7w/akRTmqGY3FvWYrqbxO7OB2N2FHj2LO5HtzXflfoABb5RyRvdEquX+17J6mEpu4EwjYNraTD/WHIEQ==} engines: {node: '>=10'} cpu: [arm] os: [linux] + requiresBuild: true + dev: true + optional: true - '@swc/core-linux-arm64-gnu@1.7.10': + /@swc/core-linux-arm64-gnu@1.7.10: resolution: {integrity: sha512-SPWsgWHfdWKKjLrYlvhxcdBJ7Ruy6crJbPoE9NfD95eJEjMnS2yZTqj2ChFsY737WeyhWYlHzgYhYOVCp83YwQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@swc/core-linux-arm64-musl@1.7.10': + /@swc/core-linux-arm64-musl@1.7.10: resolution: {integrity: sha512-PUi50bkNqnBL3Z/Zq6jSfwgN9A/taA6u2Zou0tjDJi7oVdpjdr7SxNgCGzMJ/nNg5D/IQn1opM1jktMvpsPAuQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@swc/core-linux-x64-gnu@1.7.10': + /@swc/core-linux-x64-gnu@1.7.10: resolution: {integrity: sha512-Sc+pY55gknCAmBQBR6DhlA7jZSxHaLSDb5Sevzi6DOFMXR79NpA6zWTNKwp1GK2AnRIkbAfvYLgOxS5uWTFVpg==} engines: {node: '>=10'} cpu: [x64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@swc/core-linux-x64-musl@1.7.10': + /@swc/core-linux-x64-musl@1.7.10: resolution: {integrity: sha512-g5NKx2LXaGd0K26hmEts1Cvb7ptIvq3MHSgr6/D1tRPcDZw1Sp0dYsmyOv0ho4F5GOJyiCooG3oE9FXdb7jIpQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@swc/core-win32-arm64-msvc@1.7.10': + /@swc/core-win32-arm64-msvc@1.7.10: resolution: {integrity: sha512-plRIsOcfy9t9Q/ivm5DA7I0HaIvfAWPbI+bvVRrr3C/1K2CSqnqZJjEWOAmx2LiyipijNnEaFYuLBp0IkGuJpg==} engines: {node: '>=10'} cpu: [arm64] os: [win32] + requiresBuild: true + dev: true + optional: true - '@swc/core-win32-ia32-msvc@1.7.10': + /@swc/core-win32-ia32-msvc@1.7.10: resolution: {integrity: sha512-GntrVNT23viHtbfzmlK8lfBiKeajH24GzbDT7qXhnoO20suUPcyYZxyvCb4gWM2zu8ZBTPHNlqfrNsriQCZ+lQ==} engines: {node: '>=10'} cpu: [ia32] os: [win32] + requiresBuild: true + dev: true + optional: true - '@swc/core-win32-x64-msvc@1.7.10': + /@swc/core-win32-x64-msvc@1.7.10: resolution: {integrity: sha512-uXIF8GuSappe1imm6Lf7pHGepfCBjDQlS+qTqvEGE0wZAsL1IVATK9P/cH/OCLfJXeQDTLeSYmrpwjtXNt46tQ==} engines: {node: '>=10'} cpu: [x64] os: [win32] + requiresBuild: true + dev: true + optional: true - '@swc/core@1.7.10': + /@swc/core@1.7.10: resolution: {integrity: sha512-l0xrFwBQ9atizhmV94yC2nwcecTk/oftofwMNPiFMGe56dqdmi2ArHaTV3PCtMlgaUH6rGCehoRMt5OrCI1ktg==} engines: {node: '>=10'} + requiresBuild: true peerDependencies: '@swc/helpers': '*' peerDependenciesMeta: '@swc/helpers': optional: true + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.12 + optionalDependencies: + '@swc/core-darwin-arm64': 1.7.10 + '@swc/core-darwin-x64': 1.7.10 + '@swc/core-linux-arm-gnueabihf': 1.7.10 + '@swc/core-linux-arm64-gnu': 1.7.10 + '@swc/core-linux-arm64-musl': 1.7.10 + '@swc/core-linux-x64-gnu': 1.7.10 + '@swc/core-linux-x64-musl': 1.7.10 + '@swc/core-win32-arm64-msvc': 1.7.10 + '@swc/core-win32-ia32-msvc': 1.7.10 + '@swc/core-win32-x64-msvc': 1.7.10 + dev: true - '@swc/counter@0.1.3': + /@swc/counter@0.1.3: resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + dev: true - '@swc/types@0.1.12': + /@swc/types@0.1.12: resolution: {integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==} + dependencies: + '@swc/counter': 0.1.3 + dev: true - '@tweenjs/tween.js@23.1.3': + /@tweenjs/tween.js@23.1.3: resolution: {integrity: sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==} + dev: true - '@types/estree@1.0.5': + /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: true - '@types/prop-types@15.7.12': + /@types/prop-types@15.7.12: resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} - '@types/react-dom@18.3.0': + /@types/react-dom@18.3.0: resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} + dependencies: + '@types/react': 18.3.3 + dev: true - '@types/react-reconciler@0.26.7': + /@types/react-reconciler@0.26.7: resolution: {integrity: sha512-mBDYl8x+oyPX/VBb3E638N0B7xG+SPk/EAMcVPeexqus/5aTpTphQi0curhhshOqRrc9t6OPoJfEUkbymse/lQ==} + dependencies: + '@types/react': 18.3.3 + dev: false - '@types/react-reconciler@0.28.8': + /@types/react-reconciler@0.28.8: resolution: {integrity: sha512-SN9c4kxXZonFhbX4hJrZy37yw9e7EIxcpHCxQv5JUS18wDE5ovkQKlqQEkufdJCCMfuI9BnjUJvhYeJ9x5Ra7g==} + dependencies: + '@types/react': 18.3.3 + dev: false - '@types/react@18.3.3': + /@types/react@18.3.3: resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} + dependencies: + '@types/prop-types': 15.7.12 + csstype: 3.1.3 - '@types/stats.js@0.17.3': + /@types/stats.js@0.17.3: resolution: {integrity: sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==} + dev: true - '@types/three@0.167.1': + /@types/three@0.167.1: resolution: {integrity: sha512-OCd2Uv/8/4TbmSaIRFawrCOnDMLdpaa+QGJdhlUBmdfbHjLY8k6uFc0tde2/UvcaHQ6NtLl28onj/vJfofV+Tg==} + dependencies: + '@tweenjs/tween.js': 23.1.3 + '@types/stats.js': 0.17.3 + '@types/webxr': 0.5.19 + fflate: 0.8.2 + meshoptimizer: 0.18.1 + dev: true - '@types/webxr@0.5.19': + /@types/webxr@0.5.19: resolution: {integrity: sha512-4hxA+NwohSgImdTSlPXEqDqqFktNgmTXQ05ff1uWam05tNGroCMp4G+4XVl6qWm1p7GQ/9oD41kAYsSssF6Mzw==} - '@typescript-eslint/eslint-plugin@7.18.0': + /@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0)(eslint@8.57.0)(typescript@5.5.4): resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: @@ -744,8 +1159,24 @@ packages: peerDependenciesMeta: typescript: optional: true + dependencies: + '@eslint-community/regexpp': 4.11.0 + '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 7.18.0 + eslint: 8.57.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + ts-api-utils: 1.3.0(typescript@5.5.4) + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + dev: true - '@typescript-eslint/parser@7.18.0': + /@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4): resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: @@ -754,12 +1185,27 @@ packages: peerDependenciesMeta: typescript: optional: true + dependencies: + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.3.6 + eslint: 8.57.0 + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + dev: true - '@typescript-eslint/scope-manager@7.18.0': + /@typescript-eslint/scope-manager@7.18.0: resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} + dependencies: + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + dev: true - '@typescript-eslint/type-utils@7.18.0': + /@typescript-eslint/type-utils@7.18.0(eslint@8.57.0)(typescript@5.5.4): resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: @@ -768,12 +1214,23 @@ packages: peerDependenciesMeta: typescript: optional: true + dependencies: + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4) + debug: 4.3.6 + eslint: 8.57.0 + ts-api-utils: 1.3.0(typescript@5.5.4) + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + dev: true - '@typescript-eslint/types@7.18.0': + /@typescript-eslint/types@7.18.0: resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} + dev: true - '@typescript-eslint/typescript-estree@7.18.0': + /@typescript-eslint/typescript-estree@7.18.0(typescript@5.5.4): resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: @@ -781,1420 +1238,6 @@ packages: peerDependenciesMeta: typescript: optional: true - - '@typescript-eslint/utils@7.18.0': - resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - - '@typescript-eslint/visitor-keys@7.18.0': - resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - - '@vitejs/plugin-react-swc@3.7.0': - resolution: {integrity: sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA==} - peerDependencies: - vite: ^4 || ^5 - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn@8.12.1: - resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} - engines: {node: '>=0.4.0'} - hasBin: true - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - array-timsort@1.0.3: - resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} - - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - cannon-es-debugger@1.0.0: - resolution: {integrity: sha512-sE9lDOBAYFKlh+0w+cvWKwUhJef8HYnUSVPWPL0jD15MAuVRQKno4QYZSGxgOoJkMR3mQqxL4bxys2b3RSWH8g==} - peerDependencies: - cannon-es: 0.x - three: 0.x - typescript: '>=3.8' - peerDependenciesMeta: - typescript: - optional: true - - cannon-es@0.20.0: - resolution: {integrity: sha512-eZhWTZIkFOnMAJOgfXJa9+b3kVlvG+FX4mdkpePev/w/rP5V8NRquGyEozcjPfEoXUlb+p7d9SUcmDSn14prOA==} - - chalk-template@1.1.0: - resolution: {integrity: sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg==} - engines: {node: '>=14.16'} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - - clear-module@4.1.2: - resolution: {integrity: sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw==} - engines: {node: '>=8'} - - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - commander@12.1.0: - resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} - engines: {node: '>=18'} - - comment-json@4.2.4: - resolution: {integrity: sha512-E5AjpSW+O+N5T2GsOQMHLLsJvrYw6G/AFt9GvU6NguEAfzKShh7hRiLtVo6S9KbRpFMGqE5ojo0/hE+sdteWvQ==} - engines: {node: '>= 6'} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - - cspell-config-lib@8.13.2: - resolution: {integrity: sha512-AkG5qWnmHxwEJqyLsraVVzEWGShICn533GdcbSHYYrLxEd9UromEjmFrMlgNomwj8SnJq4L9xq1LoWgRXa5jjg==} - engines: {node: '>=18'} - - cspell-dictionary@8.13.2: - resolution: {integrity: sha512-dvtb9fDHw3jEa5mGBmrDTRxlaXVccQ5LMYkosPcS+J5/iLrV0E3iQu3njFHBFXKsLqOwnd6GV9pd6fXkPEFdeQ==} - engines: {node: '>=18'} - - cspell-gitignore@8.13.2: - resolution: {integrity: sha512-eEDR0g2VQHVRg9mLXi6PUnjZzD1DYa2jkmiuj61ZEN9yEKZ3GKXlUTxlewIiMGN/fxIn5kHyjeMo+hbCHoYkGw==} - engines: {node: '>=18'} - hasBin: true - - cspell-glob@8.13.2: - resolution: {integrity: sha512-zhWcfE4k1BVErVd36AMle9DE5W0bxI4OcM7/q3YxPQUdbsox/DihGXGQu+jld2LkUpDl0llIPVJ8OibKg9stcQ==} - engines: {node: '>=18'} - - cspell-grammar@8.13.2: - resolution: {integrity: sha512-mdRNahGfY7BXg36PQcmeB8WQZETYB6W0A/+yMDgFg+YQX7UdJr8M5GVDFmIFRWyc7/cnv6GMiqdI64gmfCU8ww==} - engines: {node: '>=18'} - hasBin: true - - cspell-io@8.13.2: - resolution: {integrity: sha512-Jf5LL1TEXPvKH0iabIr8BLK/Hc6crPCdsWM3CbZydp/fDU6rpbaApzSVQ376JlAaLMLpEP7s5oVh9WC4wIE5Bw==} - engines: {node: '>=18'} - - cspell-lib@8.13.2: - resolution: {integrity: sha512-qWX4B0Nwo6Souoi8/hLEohSLQEeeh1mWIiQDDJ43w+zmzzzmHZ8+tAeJJ2eAGgOKVqfjcyefH5y7Py2TQrn3xg==} - engines: {node: '>=18'} - - cspell-trie-lib@8.13.2: - resolution: {integrity: sha512-JYpxU6mN0W9cp5g6QN4TXz0S3zzcmGpVJf1fka7tuWHY1e62Gs0qIIL2LjTHYW9wlRFYyrqPnN5opfwuEZCCMg==} - engines: {node: '>=18'} - - cspell@8.13.2: - resolution: {integrity: sha512-m+aA54r95QteZBPzZBR4bdld92TDV47/qoKhYt7+M8umcLZR3C2dfktEbVQGoAJokRgSQo9L4/fRF0skk+g5Mg==} - engines: {node: '>=18'} - hasBin: true - - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - - debounce@1.2.1: - resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} - - debug@4.3.6: - resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - env-paths@3.0.0: - resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} - hasBin: true - - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - eslint-plugin-react-hooks@4.6.2: - resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - - eslint-plugin-react-refresh@0.4.9: - resolution: {integrity: sha512-QK49YrBAo5CLNLseZ7sZgvgTy21E6NEw22eZqc4teZfH8pxV3yXc9XXOYfUI6JNpw7mfHNkAeWtBxrTyykB6HA==} - peerDependencies: - eslint: '>=7' - - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-equals@5.0.1: - resolution: {integrity: sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==} - engines: {node: '>=6.0.0'} - - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - - fflate@0.8.2: - resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} - - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - - file-entry-cache@9.0.0: - resolution: {integrity: sha512-6MgEugi8p2tiUhqO7GnPsmbCCzj0YRCwwaTbpGRyKZesjRSzkqkAE9fPp7V2yMs5hwfgbQLgdvSSkGNg1s5Uvw==} - engines: {node: '>=18'} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - find-up-simple@1.0.0: - resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} - engines: {node: '>=18'} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - - flat-cache@5.0.0: - resolution: {integrity: sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==} - engines: {node: '>=18'} - - flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - gensequence@7.0.0: - resolution: {integrity: sha512-47Frx13aZh01afHJTB3zTtKIlFI6vWY+MYCN9Qpew6i52rfKjnhCF/l1YlC8UmEMvvntZZ6z4PiCcmyuedR2aQ==} - engines: {node: '>=18'} - - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - get-stdin@9.0.0: - resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} - engines: {node: '>=12'} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported - - global-directory@4.0.1: - resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} - engines: {node: '>=18'} - - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - has-own-prop@2.0.0: - resolution: {integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==} - engines: {node: '>=8'} - - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} - - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - - import-meta-resolve@4.1.0: - resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - ini@4.1.1: - resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - its-fine@1.2.5: - resolution: {integrity: sha512-fXtDA0X0t0eBYAGLVM5YsgJGsJ5jEmqZEPrGbzdf5awjv0xE7nqv3TVnvtUF060Tkes15DbDAKW/I48vsb6SyA==} - peerDependencies: - react: '>=18.0' - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - meshoptimizer@0.18.1: - resolution: {integrity: sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==} - - micromatch@4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} - engines: {node: '>=8.6'} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} - - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - parent-module@2.0.0: - resolution: {integrity: sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==} - engines: {node: '>=8'} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - postcss@8.4.41: - resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} - engines: {node: ^10 || ^12 || >=14} - - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - react-dom@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} - peerDependencies: - react: ^18.3.1 - - react-reconciler@0.27.0: - resolution: {integrity: sha512-HmMDKciQjYmBRGuuhIaKA1ba/7a+UsM5FzOZsMO2JYHt9Jh8reCb7j1eDC95NOyUlKM9KRyvdx0flBuDvYSBoA==} - engines: {node: '>=0.10.0'} - peerDependencies: - react: ^18.0.0 - - react-router-dom@6.26.0: - resolution: {integrity: sha512-RRGUIiDtLrkX3uYcFiCIxKFWMcWQGMojpYZfcstc63A1+sSnVgILGIm9gNUA6na3Fm1QuPGSBQH2EMbAZOnMsQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - - react-router@6.26.0: - resolution: {integrity: sha512-wVQq0/iFYd3iZ9H2l3N3k4PL8EEHcb0XlU2Na8nEwmiXgIUElEH6gaJDtUQxJ+JFzmIXaQjfdpcGWaM6IoQGxg==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' - - react-use-measure@2.1.1: - resolution: {integrity: sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig==} - peerDependencies: - react: '>=16.13' - react-dom: '>=16.13' - - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} - engines: {node: '>=0.10.0'} - - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - - repeat-string@1.6.1: - resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} - engines: {node: '>=0.10'} - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - - rollup-plugin-visualizer@5.12.0: - resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} - engines: {node: '>=14'} - hasBin: true - peerDependencies: - rollup: 2.x || 3.x || 4.x - peerDependenciesMeta: - rollup: - optional: true - - rollup@4.20.0: - resolution: {integrity: sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - scheduler@0.21.0: - resolution: {integrity: sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==} - - scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - - semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} - engines: {node: '>=10'} - hasBin: true - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - - source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - suspend-react@0.1.3: - resolution: {integrity: sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ==} - peerDependencies: - react: '>=17.0' - - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - - three@0.167.1: - resolution: {integrity: sha512-gYTLJA/UQip6J/tJvl91YYqlZF47+D/kxiWrbTon35ZHlXEN0VOo+Qke2walF1/x92v55H6enomymg4Dak52kw==} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - ts-api-utils@1.3.0: - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - - typescript@5.5.4: - resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} - engines: {node: '>=14.17'} - hasBin: true - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - use-sync-external-store@1.2.0: - resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - - vite@5.4.0: - resolution: {integrity: sha512-5xokfMX0PIiwCMCMb9ZJcMyh5wbBun0zUzKib+L65vAZ8GY9ePZMXxFrHbr/Kyll2+LSCY7xtERPpxkBDKngwg==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - - vscode-languageserver-textdocument@1.0.12: - resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} - - vscode-uri@3.0.8: - resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - xdg-basedir@5.1.0: - resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} - engines: {node: '>=12'} - - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - yaml@2.5.0: - resolution: {integrity: sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==} - engines: {node: '>= 14'} - hasBin: true - - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - - zustand@3.7.2: - resolution: {integrity: sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==} - engines: {node: '>=12.7.0'} - peerDependencies: - react: '>=16.8' - peerDependenciesMeta: - react: - optional: true - - zustand@4.5.4: - resolution: {integrity: sha512-/BPMyLKJPtFEvVL0E9E9BTUM63MNyhPGlvxk1XjrfWTUlV+BR8jufjsovHzrtR6YNcBEcL7cMHovL1n9xHawEg==} - engines: {node: '>=12.7.0'} - peerDependencies: - '@types/react': '>=16.8' - immer: '>=9.0.6' - react: '>=16.8' - peerDependenciesMeta: - '@types/react': - optional: true - immer: - optional: true - react: - optional: true - -snapshots: - - '@babel/runtime@7.25.0': - dependencies: - regenerator-runtime: 0.14.1 - - '@biomejs/biome@1.8.3': - optionalDependencies: - '@biomejs/cli-darwin-arm64': 1.8.3 - '@biomejs/cli-darwin-x64': 1.8.3 - '@biomejs/cli-linux-arm64': 1.8.3 - '@biomejs/cli-linux-arm64-musl': 1.8.3 - '@biomejs/cli-linux-x64': 1.8.3 - '@biomejs/cli-linux-x64-musl': 1.8.3 - '@biomejs/cli-win32-arm64': 1.8.3 - '@biomejs/cli-win32-x64': 1.8.3 - - '@biomejs/cli-darwin-arm64@1.8.3': - optional: true - - '@biomejs/cli-darwin-x64@1.8.3': - optional: true - - '@biomejs/cli-linux-arm64-musl@1.8.3': - optional: true - - '@biomejs/cli-linux-arm64@1.8.3': - optional: true - - '@biomejs/cli-linux-x64-musl@1.8.3': - optional: true - - '@biomejs/cli-linux-x64@1.8.3': - optional: true - - '@biomejs/cli-win32-arm64@1.8.3': - optional: true - - '@biomejs/cli-win32-x64@1.8.3': - optional: true - - '@cspell/cspell-bundled-dicts@8.13.2': - dependencies: - '@cspell/dict-ada': 4.0.2 - '@cspell/dict-aws': 4.0.3 - '@cspell/dict-bash': 4.1.3 - '@cspell/dict-companies': 3.1.4 - '@cspell/dict-cpp': 5.1.12 - '@cspell/dict-cryptocurrencies': 5.0.0 - '@cspell/dict-csharp': 4.0.2 - '@cspell/dict-css': 4.0.12 - '@cspell/dict-dart': 2.0.3 - '@cspell/dict-django': 4.1.0 - '@cspell/dict-docker': 1.1.7 - '@cspell/dict-dotnet': 5.0.2 - '@cspell/dict-elixir': 4.0.3 - '@cspell/dict-en-common-misspellings': 2.0.4 - '@cspell/dict-en-gb': 1.1.33 - '@cspell/dict-en_us': 4.3.23 - '@cspell/dict-filetypes': 3.0.4 - '@cspell/dict-fonts': 4.0.0 - '@cspell/dict-fsharp': 1.0.1 - '@cspell/dict-fullstack': 3.2.0 - '@cspell/dict-gaming-terms': 1.0.5 - '@cspell/dict-git': 3.0.0 - '@cspell/dict-golang': 6.0.9 - '@cspell/dict-google': 1.0.1 - '@cspell/dict-haskell': 4.0.1 - '@cspell/dict-html': 4.0.5 - '@cspell/dict-html-symbol-entities': 4.0.0 - '@cspell/dict-java': 5.0.7 - '@cspell/dict-julia': 1.0.1 - '@cspell/dict-k8s': 1.0.6 - '@cspell/dict-latex': 4.0.0 - '@cspell/dict-lorem-ipsum': 4.0.0 - '@cspell/dict-lua': 4.0.3 - '@cspell/dict-makefile': 1.0.0 - '@cspell/dict-monkeyc': 1.0.6 - '@cspell/dict-node': 5.0.1 - '@cspell/dict-npm': 5.0.18 - '@cspell/dict-php': 4.0.8 - '@cspell/dict-powershell': 5.0.5 - '@cspell/dict-public-licenses': 2.0.7 - '@cspell/dict-python': 4.2.4 - '@cspell/dict-r': 2.0.1 - '@cspell/dict-ruby': 5.0.2 - '@cspell/dict-rust': 4.0.5 - '@cspell/dict-scala': 5.0.3 - '@cspell/dict-software-terms': 4.0.6 - '@cspell/dict-sql': 2.1.5 - '@cspell/dict-svelte': 1.0.2 - '@cspell/dict-swift': 2.0.1 - '@cspell/dict-terraform': 1.0.0 - '@cspell/dict-typescript': 3.1.6 - '@cspell/dict-vue': 3.0.0 - - '@cspell/cspell-json-reporter@8.13.2': - dependencies: - '@cspell/cspell-types': 8.13.2 - - '@cspell/cspell-pipe@8.13.2': {} - - '@cspell/cspell-resolver@8.13.2': - dependencies: - global-directory: 4.0.1 - - '@cspell/cspell-service-bus@8.13.2': {} - - '@cspell/cspell-types@8.13.2': {} - - '@cspell/dict-ada@4.0.2': {} - - '@cspell/dict-aws@4.0.3': {} - - '@cspell/dict-bash@4.1.3': {} - - '@cspell/dict-companies@3.1.4': {} - - '@cspell/dict-cpp@5.1.12': {} - - '@cspell/dict-cryptocurrencies@5.0.0': {} - - '@cspell/dict-csharp@4.0.2': {} - - '@cspell/dict-css@4.0.12': {} - - '@cspell/dict-dart@2.0.3': {} - - '@cspell/dict-data-science@2.0.1': {} - - '@cspell/dict-django@4.1.0': {} - - '@cspell/dict-docker@1.1.7': {} - - '@cspell/dict-dotnet@5.0.2': {} - - '@cspell/dict-elixir@4.0.3': {} - - '@cspell/dict-en-common-misspellings@2.0.4': {} - - '@cspell/dict-en-gb@1.1.33': {} - - '@cspell/dict-en_us@4.3.23': {} - - '@cspell/dict-filetypes@3.0.4': {} - - '@cspell/dict-fonts@4.0.0': {} - - '@cspell/dict-fsharp@1.0.1': {} - - '@cspell/dict-fullstack@3.2.0': {} - - '@cspell/dict-gaming-terms@1.0.5': {} - - '@cspell/dict-git@3.0.0': {} - - '@cspell/dict-golang@6.0.9': {} - - '@cspell/dict-google@1.0.1': {} - - '@cspell/dict-haskell@4.0.1': {} - - '@cspell/dict-html-symbol-entities@4.0.0': {} - - '@cspell/dict-html@4.0.5': {} - - '@cspell/dict-java@5.0.7': {} - - '@cspell/dict-julia@1.0.1': {} - - '@cspell/dict-k8s@1.0.6': {} - - '@cspell/dict-latex@4.0.0': {} - - '@cspell/dict-lorem-ipsum@4.0.0': {} - - '@cspell/dict-lua@4.0.3': {} - - '@cspell/dict-makefile@1.0.0': {} - - '@cspell/dict-monkeyc@1.0.6': {} - - '@cspell/dict-node@5.0.1': {} - - '@cspell/dict-npm@5.0.18': {} - - '@cspell/dict-php@4.0.8': {} - - '@cspell/dict-powershell@5.0.5': {} - - '@cspell/dict-public-licenses@2.0.7': {} - - '@cspell/dict-python@4.2.4': - dependencies: - '@cspell/dict-data-science': 2.0.1 - - '@cspell/dict-r@2.0.1': {} - - '@cspell/dict-ruby@5.0.2': {} - - '@cspell/dict-rust@4.0.5': {} - - '@cspell/dict-scala@5.0.3': {} - - '@cspell/dict-software-terms@4.0.6': {} - - '@cspell/dict-sql@2.1.5': {} - - '@cspell/dict-svelte@1.0.2': {} - - '@cspell/dict-swift@2.0.1': {} - - '@cspell/dict-terraform@1.0.0': {} - - '@cspell/dict-typescript@3.1.6': {} - - '@cspell/dict-vue@3.0.0': {} - - '@cspell/dynamic-import@8.13.2': - dependencies: - import-meta-resolve: 4.1.0 - - '@cspell/strong-weak-map@8.13.2': {} - - '@cspell/url@8.13.2': {} - - '@esbuild/aix-ppc64@0.21.5': - optional: true - - '@esbuild/android-arm64@0.21.5': - optional: true - - '@esbuild/android-arm@0.21.5': - optional: true - - '@esbuild/android-x64@0.21.5': - optional: true - - '@esbuild/darwin-arm64@0.21.5': - optional: true - - '@esbuild/darwin-x64@0.21.5': - optional: true - - '@esbuild/freebsd-arm64@0.21.5': - optional: true - - '@esbuild/freebsd-x64@0.21.5': - optional: true - - '@esbuild/linux-arm64@0.21.5': - optional: true - - '@esbuild/linux-arm@0.21.5': - optional: true - - '@esbuild/linux-ia32@0.21.5': - optional: true - - '@esbuild/linux-loong64@0.21.5': - optional: true - - '@esbuild/linux-mips64el@0.21.5': - optional: true - - '@esbuild/linux-ppc64@0.21.5': - optional: true - - '@esbuild/linux-riscv64@0.21.5': - optional: true - - '@esbuild/linux-s390x@0.21.5': - optional: true - - '@esbuild/linux-x64@0.21.5': - optional: true - - '@esbuild/netbsd-x64@0.21.5': - optional: true - - '@esbuild/openbsd-x64@0.21.5': - optional: true - - '@esbuild/sunos-x64@0.21.5': - optional: true - - '@esbuild/win32-arm64@0.21.5': - optional: true - - '@esbuild/win32-ia32@0.21.5': - optional: true - - '@esbuild/win32-x64@0.21.5': - optional: true - - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': - dependencies: - eslint: 8.57.0 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.11.0': {} - - '@eslint/eslintrc@2.1.4': - dependencies: - ajv: 6.12.6 - debug: 4.3.6 - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@8.57.0': {} - - '@humanwhocodes/config-array@0.11.14': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.6 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/object-schema@2.0.3': {} - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 - - '@pmndrs/cannon-worker-api@2.4.0(three@0.167.1)': - dependencies: - three: 0.167.1 - - '@react-three/cannon@6.6.0(@react-three/fiber@8.16.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(three@0.167.1))(react@18.3.1)(three@0.167.1)(typescript@5.5.4)': - dependencies: - '@pmndrs/cannon-worker-api': 2.4.0(three@0.167.1) - '@react-three/fiber': 8.16.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(three@0.167.1) - cannon-es: 0.20.0 - cannon-es-debugger: 1.0.0(cannon-es@0.20.0)(three@0.167.1)(typescript@5.5.4) - react: 18.3.1 - three: 0.167.1 - transitivePeerDependencies: - - typescript - - '@react-three/fiber@8.16.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(three@0.167.1)': - dependencies: - '@babel/runtime': 7.25.0 - '@types/react-reconciler': 0.26.7 - '@types/webxr': 0.5.19 - base64-js: 1.5.1 - buffer: 6.0.3 - its-fine: 1.2.5(react@18.3.1) - react: 18.3.1 - react-reconciler: 0.27.0(react@18.3.1) - react-use-measure: 2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - scheduler: 0.21.0 - suspend-react: 0.1.3(react@18.3.1) - three: 0.167.1 - zustand: 3.7.2(react@18.3.1) - optionalDependencies: - react-dom: 18.3.1(react@18.3.1) - - '@remix-run/router@1.19.0': {} - - '@rollup/rollup-android-arm-eabi@4.20.0': - optional: true - - '@rollup/rollup-android-arm64@4.20.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.20.0': - optional: true - - '@rollup/rollup-darwin-x64@4.20.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.20.0': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.20.0': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.20.0': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.20.0': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.20.0': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.20.0': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.20.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.20.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.20.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.20.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.20.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.20.0': - optional: true - - '@swc/core-darwin-arm64@1.7.10': - optional: true - - '@swc/core-darwin-x64@1.7.10': - optional: true - - '@swc/core-linux-arm-gnueabihf@1.7.10': - optional: true - - '@swc/core-linux-arm64-gnu@1.7.10': - optional: true - - '@swc/core-linux-arm64-musl@1.7.10': - optional: true - - '@swc/core-linux-x64-gnu@1.7.10': - optional: true - - '@swc/core-linux-x64-musl@1.7.10': - optional: true - - '@swc/core-win32-arm64-msvc@1.7.10': - optional: true - - '@swc/core-win32-ia32-msvc@1.7.10': - optional: true - - '@swc/core-win32-x64-msvc@1.7.10': - optional: true - - '@swc/core@1.7.10': - dependencies: - '@swc/counter': 0.1.3 - '@swc/types': 0.1.12 - optionalDependencies: - '@swc/core-darwin-arm64': 1.7.10 - '@swc/core-darwin-x64': 1.7.10 - '@swc/core-linux-arm-gnueabihf': 1.7.10 - '@swc/core-linux-arm64-gnu': 1.7.10 - '@swc/core-linux-arm64-musl': 1.7.10 - '@swc/core-linux-x64-gnu': 1.7.10 - '@swc/core-linux-x64-musl': 1.7.10 - '@swc/core-win32-arm64-msvc': 1.7.10 - '@swc/core-win32-ia32-msvc': 1.7.10 - '@swc/core-win32-x64-msvc': 1.7.10 - - '@swc/counter@0.1.3': {} - - '@swc/types@0.1.12': - dependencies: - '@swc/counter': 0.1.3 - - '@tweenjs/tween.js@23.1.3': {} - - '@types/estree@1.0.5': {} - - '@types/prop-types@15.7.12': {} - - '@types/react-dom@18.3.0': - dependencies: - '@types/react': 18.3.3 - - '@types/react-reconciler@0.26.7': - dependencies: - '@types/react': 18.3.3 - - '@types/react-reconciler@0.28.8': - dependencies: - '@types/react': 18.3.3 - - '@types/react@18.3.3': - dependencies: - '@types/prop-types': 15.7.12 - csstype: 3.1.3 - - '@types/stats.js@0.17.3': {} - - '@types/three@0.167.1': - dependencies: - '@tweenjs/tween.js': 23.1.3 - '@types/stats.js': 0.17.3 - '@types/webxr': 0.5.19 - fflate: 0.8.2 - meshoptimizer: 0.18.1 - - '@types/webxr@0.5.19': {} - - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)': - dependencies: - '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 7.18.0 - eslint: 8.57.0 - graphemer: 1.4.0 - ignore: 5.3.1 - natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.5.4) - optionalDependencies: - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4)': - dependencies: - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.3.6 - eslint: 8.57.0 - optionalDependencies: - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@7.18.0': - dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 - - '@typescript-eslint/type-utils@7.18.0(eslint@8.57.0)(typescript@5.5.4)': - dependencies: - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4) - debug: 4.3.6 - eslint: 8.57.0 - ts-api-utils: 1.3.0(typescript@5.5.4) - optionalDependencies: - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@7.18.0': {} - - '@typescript-eslint/typescript-estree@7.18.0(typescript@5.5.4)': dependencies: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 @@ -2204,12 +1247,16 @@ snapshots: minimatch: 9.0.5 semver: 7.6.3 ts-api-utils: 1.3.0(typescript@5.5.4) - optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: - supports-color + dev: true - '@typescript-eslint/utils@7.18.0(eslint@8.57.0)(typescript@5.5.4)': + /@typescript-eslint/utils@7.18.0(eslint@8.57.0)(typescript@5.5.4): + resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@typescript-eslint/scope-manager': 7.18.0 @@ -2219,165 +1266,282 @@ snapshots: transitivePeerDependencies: - supports-color - typescript + dev: true - '@typescript-eslint/visitor-keys@7.18.0': + /@typescript-eslint/visitor-keys@7.18.0: + resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} + engines: {node: ^18.18.0 || >=20.0.0} dependencies: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 + dev: true - '@ungap/structured-clone@1.2.0': {} + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: true - '@vitejs/plugin-react-swc@3.7.0(vite@5.4.0)': + /@vitejs/plugin-react-swc@3.7.0(vite@5.4.0): + resolution: {integrity: sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA==} + peerDependencies: + vite: ^4 || ^5 dependencies: '@swc/core': 1.7.10 vite: 5.4.0 transitivePeerDependencies: - '@swc/helpers' + dev: true - acorn-jsx@5.3.2(acorn@8.12.1): + /acorn-jsx@5.3.2(acorn@8.12.1): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 8.12.1 + dev: true - acorn@8.12.1: {} + /acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true - ajv@6.12.6: + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 + dev: true - ansi-regex@5.0.1: {} + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true - ansi-regex@6.0.1: {} + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true - ansi-styles@4.3.0: + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} dependencies: color-convert: 2.0.1 + dev: true - argparse@2.0.1: {} + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true - array-timsort@1.0.3: {} + /array-timsort@1.0.3: + resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} + dev: true - array-union@2.1.0: {} + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true - balanced-match@1.0.2: {} + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true - base64-js@1.5.1: {} + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: false - brace-expansion@1.1.11: + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 + dev: true - brace-expansion@2.0.1: + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 + dev: true - braces@3.0.3: + /braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} dependencies: fill-range: 7.1.1 + dev: true - buffer@6.0.3: + /buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} dependencies: base64-js: 1.5.1 ieee754: 1.2.1 + dev: false - callsites@3.1.0: {} + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true - cannon-es-debugger@1.0.0(cannon-es@0.20.0)(three@0.167.1)(typescript@5.5.4): + /cannon-es-debugger@1.0.0(cannon-es@0.20.0)(three@0.167.1)(typescript@5.5.4): + resolution: {integrity: sha512-sE9lDOBAYFKlh+0w+cvWKwUhJef8HYnUSVPWPL0jD15MAuVRQKno4QYZSGxgOoJkMR3mQqxL4bxys2b3RSWH8g==} + peerDependencies: + cannon-es: 0.x + three: 0.x + typescript: '>=3.8' + peerDependenciesMeta: + typescript: + optional: true dependencies: cannon-es: 0.20.0 three: 0.167.1 - optionalDependencies: typescript: 5.5.4 + dev: false - cannon-es@0.20.0: {} + /cannon-es@0.20.0: + resolution: {integrity: sha512-eZhWTZIkFOnMAJOgfXJa9+b3kVlvG+FX4mdkpePev/w/rP5V8NRquGyEozcjPfEoXUlb+p7d9SUcmDSn14prOA==} + dev: false - chalk-template@1.1.0: + /chalk-template@1.1.0: + resolution: {integrity: sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg==} + engines: {node: '>=14.16'} dependencies: chalk: 5.3.0 + dev: true - chalk@4.1.2: + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 + dev: true - chalk@5.3.0: {} + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true - clear-module@4.1.2: + /clear-module@4.1.2: + resolution: {integrity: sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw==} + engines: {node: '>=8'} dependencies: parent-module: 2.0.0 resolve-from: 5.0.0 + dev: true - cliui@8.0.1: + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + dev: true - color-convert@2.0.1: + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 + dev: true - color-name@1.1.4: {} + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true - commander@12.1.0: {} + /commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + dev: true - comment-json@4.2.4: + /comment-json@4.2.4: + resolution: {integrity: sha512-E5AjpSW+O+N5T2GsOQMHLLsJvrYw6G/AFt9GvU6NguEAfzKShh7hRiLtVo6S9KbRpFMGqE5ojo0/hE+sdteWvQ==} + engines: {node: '>= 6'} dependencies: array-timsort: 1.0.3 core-util-is: 1.0.3 esprima: 4.0.1 has-own-prop: 2.0.0 repeat-string: 1.6.1 + dev: true - concat-map@0.0.1: {} + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true - core-util-is@1.0.3: {} + /core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + dev: true - cross-spawn@7.0.3: + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 + dev: true - cspell-config-lib@8.13.2: + /cspell-config-lib@8.13.2: + resolution: {integrity: sha512-AkG5qWnmHxwEJqyLsraVVzEWGShICn533GdcbSHYYrLxEd9UromEjmFrMlgNomwj8SnJq4L9xq1LoWgRXa5jjg==} + engines: {node: '>=18'} dependencies: '@cspell/cspell-types': 8.13.2 comment-json: 4.2.4 yaml: 2.5.0 + dev: true - cspell-dictionary@8.13.2: + /cspell-dictionary@8.13.2: + resolution: {integrity: sha512-dvtb9fDHw3jEa5mGBmrDTRxlaXVccQ5LMYkosPcS+J5/iLrV0E3iQu3njFHBFXKsLqOwnd6GV9pd6fXkPEFdeQ==} + engines: {node: '>=18'} dependencies: '@cspell/cspell-pipe': 8.13.2 '@cspell/cspell-types': 8.13.2 cspell-trie-lib: 8.13.2 fast-equals: 5.0.1 + dev: true - cspell-gitignore@8.13.2: + /cspell-gitignore@8.13.2: + resolution: {integrity: sha512-eEDR0g2VQHVRg9mLXi6PUnjZzD1DYa2jkmiuj61ZEN9yEKZ3GKXlUTxlewIiMGN/fxIn5kHyjeMo+hbCHoYkGw==} + engines: {node: '>=18'} + hasBin: true dependencies: '@cspell/url': 8.13.2 cspell-glob: 8.13.2 cspell-io: 8.13.2 find-up-simple: 1.0.0 + dev: true - cspell-glob@8.13.2: + /cspell-glob@8.13.2: + resolution: {integrity: sha512-zhWcfE4k1BVErVd36AMle9DE5W0bxI4OcM7/q3YxPQUdbsox/DihGXGQu+jld2LkUpDl0llIPVJ8OibKg9stcQ==} + engines: {node: '>=18'} dependencies: '@cspell/url': 8.13.2 micromatch: 4.0.7 + dev: true - cspell-grammar@8.13.2: + /cspell-grammar@8.13.2: + resolution: {integrity: sha512-mdRNahGfY7BXg36PQcmeB8WQZETYB6W0A/+yMDgFg+YQX7UdJr8M5GVDFmIFRWyc7/cnv6GMiqdI64gmfCU8ww==} + engines: {node: '>=18'} + hasBin: true dependencies: '@cspell/cspell-pipe': 8.13.2 '@cspell/cspell-types': 8.13.2 + dev: true - cspell-io@8.13.2: + /cspell-io@8.13.2: + resolution: {integrity: sha512-Jf5LL1TEXPvKH0iabIr8BLK/Hc6crPCdsWM3CbZydp/fDU6rpbaApzSVQ376JlAaLMLpEP7s5oVh9WC4wIE5Bw==} + engines: {node: '>=18'} dependencies: '@cspell/cspell-service-bus': 8.13.2 '@cspell/url': 8.13.2 + dev: true - cspell-lib@8.13.2: + /cspell-lib@8.13.2: + resolution: {integrity: sha512-qWX4B0Nwo6Souoi8/hLEohSLQEeeh1mWIiQDDJ43w+zmzzzmHZ8+tAeJJ2eAGgOKVqfjcyefH5y7Py2TQrn3xg==} + engines: {node: '>=18'} dependencies: '@cspell/cspell-bundled-dicts': 8.13.2 '@cspell/cspell-pipe': 8.13.2 @@ -2402,14 +1566,21 @@ snapshots: vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 xdg-basedir: 5.1.0 + dev: true - cspell-trie-lib@8.13.2: + /cspell-trie-lib@8.13.2: + resolution: {integrity: sha512-JYpxU6mN0W9cp5g6QN4TXz0S3zzcmGpVJf1fka7tuWHY1e62Gs0qIIL2LjTHYW9wlRFYyrqPnN5opfwuEZCCMg==} + engines: {node: '>=18'} dependencies: '@cspell/cspell-pipe': 8.13.2 '@cspell/cspell-types': 8.13.2 gensequence: 7.0.0 + dev: true - cspell@8.13.2: + /cspell@8.13.2: + resolution: {integrity: sha512-m+aA54r95QteZBPzZBR4bdld92TDV47/qoKhYt7+M8umcLZR3C2dfktEbVQGoAJokRgSQo9L4/fRF0skk+g5Mg==} + engines: {node: '>=18'} + hasBin: true dependencies: '@cspell/cspell-json-reporter': 8.13.2 '@cspell/cspell-pipe': 8.13.2 @@ -2430,32 +1601,64 @@ snapshots: get-stdin: 9.0.0 semver: 7.6.3 strip-ansi: 7.1.0 + dev: true - csstype@3.1.3: {} + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - debounce@1.2.1: {} + /debounce@1.2.1: + resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} + dev: false - debug@4.3.6: + /debug@4.3.6: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.1.2 + dev: true - deep-is@0.1.4: {} + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true - define-lazy-prop@2.0.0: {} + /define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + dev: true - dir-glob@3.0.1: + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} dependencies: path-type: 4.0.0 + dev: true - doctrine@3.0.0: + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 + dev: true - emoji-regex@8.0.0: {} + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true - env-paths@3.0.0: {} + /env-paths@3.0.0: + resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true - esbuild@0.21.5: + /esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true optionalDependencies: '@esbuild/aix-ppc64': 0.21.5 '@esbuild/android-arm': 0.21.5 @@ -2480,27 +1683,52 @@ snapshots: '@esbuild/win32-arm64': 0.21.5 '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 + dev: true - escalade@3.1.2: {} + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + dev: true - escape-string-regexp@4.0.0: {} + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true - eslint-plugin-react-hooks@4.6.2(eslint@8.57.0): + /eslint-plugin-react-hooks@4.6.2(eslint@8.57.0): + resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: eslint: 8.57.0 + dev: true - eslint-plugin-react-refresh@0.4.9(eslint@8.57.0): + /eslint-plugin-react-refresh@0.4.9(eslint@8.57.0): + resolution: {integrity: sha512-QK49YrBAo5CLNLseZ7sZgvgTy21E6NEw22eZqc4teZfH8pxV3yXc9XXOYfUI6JNpw7mfHNkAeWtBxrTyykB6HA==} + peerDependencies: + eslint: '>=7' dependencies: eslint: 8.57.0 + dev: true - eslint-scope@7.2.2: + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 + dev: true - eslint-visitor-keys@3.4.3: {} + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true - eslint@8.57.0: + /eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint-community/regexpp': 4.11.0 @@ -2542,101 +1770,184 @@ snapshots: text-table: 0.2.0 transitivePeerDependencies: - supports-color + dev: true - espree@9.6.1: + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.12.1 acorn-jsx: 5.3.2(acorn@8.12.1) eslint-visitor-keys: 3.4.3 + dev: true - esprima@4.0.1: {} + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true - esquery@1.6.0: + /esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 + dev: true - esrecurse@4.3.0: + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 + dev: true - estraverse@5.3.0: {} + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true - esutils@2.0.3: {} + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true - fast-deep-equal@3.1.3: {} + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true - fast-equals@5.0.1: {} + /fast-equals@5.0.1: + resolution: {integrity: sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==} + engines: {node: '>=6.0.0'} + dev: true - fast-glob@3.3.2: + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.7 + dev: true - fast-json-stable-stringify@2.1.0: {} + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true - fast-levenshtein@2.0.6: {} + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true - fastq@1.17.1: + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: reusify: 1.0.4 + dev: true - fflate@0.8.2: {} + /fflate@0.8.2: + resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} + dev: true - file-entry-cache@6.0.1: + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.2.0 + dev: true - file-entry-cache@9.0.0: + /file-entry-cache@9.0.0: + resolution: {integrity: sha512-6MgEugi8p2tiUhqO7GnPsmbCCzj0YRCwwaTbpGRyKZesjRSzkqkAE9fPp7V2yMs5hwfgbQLgdvSSkGNg1s5Uvw==} + engines: {node: '>=18'} dependencies: flat-cache: 5.0.0 + dev: true - fill-range@7.1.1: + /fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 + dev: true - find-up-simple@1.0.0: {} + /find-up-simple@1.0.0: + resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} + engines: {node: '>=18'} + dev: true - find-up@5.0.0: + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} dependencies: locate-path: 6.0.0 path-exists: 4.0.0 + dev: true - flat-cache@3.2.0: + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: flatted: 3.3.1 keyv: 4.5.4 rimraf: 3.0.2 + dev: true - flat-cache@5.0.0: + /flat-cache@5.0.0: + resolution: {integrity: sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==} + engines: {node: '>=18'} dependencies: flatted: 3.3.1 keyv: 4.5.4 + dev: true - flatted@3.3.1: {} + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + dev: true - fs.realpath@1.0.0: {} + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true - fsevents@2.3.3: + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true optional: true - gensequence@7.0.0: {} + /gensequence@7.0.0: + resolution: {integrity: sha512-47Frx13aZh01afHJTB3zTtKIlFI6vWY+MYCN9Qpew6i52rfKjnhCF/l1YlC8UmEMvvntZZ6z4PiCcmyuedR2aQ==} + engines: {node: '>=18'} + dev: true - get-caller-file@2.0.5: {} + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true - get-stdin@9.0.0: {} + /get-stdin@9.0.0: + resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} + engines: {node: '>=12'} + dev: true - glob-parent@5.1.2: + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 + dev: true - glob-parent@6.0.2: + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 + dev: true - glob@7.2.3: + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -2644,16 +1955,25 @@ snapshots: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 + dev: true - global-directory@4.0.1: + /global-directory@4.0.1: + resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} + engines: {node: '>=18'} dependencies: ini: 4.1.1 + dev: true - globals@13.24.0: + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} dependencies: type-fest: 0.20.2 + dev: true - globby@11.1.0: + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} dependencies: array-union: 2.1.0 dir-glob: 3.0.1 @@ -2661,125 +1981,235 @@ snapshots: ignore: 5.3.1 merge2: 1.4.1 slash: 3.0.0 + dev: true - graphemer@1.4.0: {} + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: true - has-flag@4.0.0: {} + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true - has-own-prop@2.0.0: {} + /has-own-prop@2.0.0: + resolution: {integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==} + engines: {node: '>=8'} + dev: true - ieee754@1.2.1: {} + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: false - ignore@5.3.1: {} + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + dev: true - import-fresh@3.3.0: + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 + dev: true - import-meta-resolve@4.1.0: {} + /import-meta-resolve@4.1.0: + resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} + dev: true - imurmurhash@0.1.4: {} + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true - inflight@1.0.6: + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. dependencies: once: 1.4.0 wrappy: 1.0.2 + dev: true - inherits@2.0.4: {} + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true - ini@4.1.1: {} + /ini@4.1.1: + resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true - is-docker@2.2.1: {} + /is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: true - is-extglob@2.1.1: {} + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true - is-fullwidth-code-point@3.0.0: {} + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true - is-glob@4.0.3: + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 + dev: true - is-number@7.0.0: {} + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true - is-path-inside@3.0.3: {} + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true - is-wsl@2.2.0: + /is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} dependencies: is-docker: 2.2.1 + dev: true - isexe@2.0.0: {} + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true - its-fine@1.2.5(react@18.3.1): + /its-fine@1.2.5(react@18.3.1): + resolution: {integrity: sha512-fXtDA0X0t0eBYAGLVM5YsgJGsJ5jEmqZEPrGbzdf5awjv0xE7nqv3TVnvtUF060Tkes15DbDAKW/I48vsb6SyA==} + peerDependencies: + react: '>=18.0' dependencies: '@types/react-reconciler': 0.28.8 react: 18.3.1 + dev: false - js-tokens@4.0.0: {} + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: false - js-yaml@4.1.0: + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true dependencies: argparse: 2.0.1 + dev: true - json-buffer@3.0.1: {} + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true - json-schema-traverse@0.4.1: {} + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true - json-stable-stringify-without-jsonify@1.0.1: {} + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true - keyv@4.5.4: + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: json-buffer: 3.0.1 + dev: true - levn@0.4.1: + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 + dev: true - locate-path@6.0.0: + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} dependencies: p-locate: 5.0.0 + dev: true - lodash.merge@4.6.2: {} + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true - loose-envify@1.4.0: + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true dependencies: js-tokens: 4.0.0 + dev: false - merge2@1.4.1: {} + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true - meshoptimizer@0.18.1: {} + /meshoptimizer@0.18.1: + resolution: {integrity: sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==} + dev: true - micromatch@4.0.7: + /micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + engines: {node: '>=8.6'} dependencies: braces: 3.0.3 picomatch: 2.3.1 + dev: true - minimatch@3.1.2: + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 + dev: true - minimatch@9.0.5: + /minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 + dev: true - ms@2.1.2: {} + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true - nanoid@3.3.7: {} + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true - natural-compare@1.4.0: {} + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true - once@1.4.0: + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 + dev: true - open@8.4.2: + /open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} dependencies: define-lazy-prop: 2.0.0 is-docker: 2.2.1 is-wsl: 2.2.0 + dev: true - optionator@0.9.4: + /optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} dependencies: deep-is: 0.1.4 fast-levenshtein: 2.0.6 @@ -2787,107 +2217,207 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 word-wrap: 1.2.5 + dev: true - p-limit@3.1.0: + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 + dev: true - p-locate@5.0.0: + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} dependencies: p-limit: 3.1.0 + dev: true - parent-module@1.0.1: + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} dependencies: callsites: 3.1.0 + dev: true - parent-module@2.0.0: + /parent-module@2.0.0: + resolution: {integrity: sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==} + engines: {node: '>=8'} dependencies: callsites: 3.1.0 + dev: true - path-exists@4.0.0: {} + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true - path-is-absolute@1.0.1: {} + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true - path-key@3.1.1: {} + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true - path-type@4.0.0: {} + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true - picocolors@1.0.1: {} + /picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + dev: true - picomatch@2.3.1: {} + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true - postcss@8.4.41: + /postcss@8.4.41: + resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} + engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 picocolors: 1.0.1 source-map-js: 1.2.0 + dev: true - prelude-ls@1.2.1: {} + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true - punycode@2.3.1: {} + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + dev: true - queue-microtask@1.2.3: {} + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true - react-dom@18.3.1(react@18.3.1): + /react-dom@18.3.1(react@18.3.1): + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 dependencies: loose-envify: 1.4.0 react: 18.3.1 scheduler: 0.23.2 + dev: false - react-reconciler@0.27.0(react@18.3.1): + /react-reconciler@0.27.0(react@18.3.1): + resolution: {integrity: sha512-HmMDKciQjYmBRGuuhIaKA1ba/7a+UsM5FzOZsMO2JYHt9Jh8reCb7j1eDC95NOyUlKM9KRyvdx0flBuDvYSBoA==} + engines: {node: '>=0.10.0'} + peerDependencies: + react: ^18.0.0 dependencies: loose-envify: 1.4.0 react: 18.3.1 scheduler: 0.21.0 + dev: false - react-router-dom@6.26.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + /react-router-dom@6.26.0(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-RRGUIiDtLrkX3uYcFiCIxKFWMcWQGMojpYZfcstc63A1+sSnVgILGIm9gNUA6na3Fm1QuPGSBQH2EMbAZOnMsQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' dependencies: '@remix-run/router': 1.19.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-router: 6.26.0(react@18.3.1) + dev: false - react-router@6.26.0(react@18.3.1): + /react-router@6.26.0(react@18.3.1): + resolution: {integrity: sha512-wVQq0/iFYd3iZ9H2l3N3k4PL8EEHcb0XlU2Na8nEwmiXgIUElEH6gaJDtUQxJ+JFzmIXaQjfdpcGWaM6IoQGxg==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' dependencies: '@remix-run/router': 1.19.0 react: 18.3.1 + dev: false - react-use-measure@2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + /react-use-measure@2.1.1(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig==} + peerDependencies: + react: '>=16.13' + react-dom: '>=16.13' dependencies: debounce: 1.2.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + dev: false - react@18.3.1: + /react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} dependencies: loose-envify: 1.4.0 + dev: false - regenerator-runtime@0.14.1: {} + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + dev: false - repeat-string@1.6.1: {} + /repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + dev: true - require-directory@2.1.1: {} + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true - resolve-from@4.0.0: {} + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true - resolve-from@5.0.0: {} + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true - reusify@1.0.4: {} + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true - rimraf@3.0.2: + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true dependencies: glob: 7.2.3 + dev: true - rollup-plugin-visualizer@5.12.0(rollup@4.20.0): + /rollup-plugin-visualizer@5.12.0: + resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} + engines: {node: '>=14'} + hasBin: true + peerDependencies: + rollup: 2.x || 3.x || 4.x + peerDependenciesMeta: + rollup: + optional: true dependencies: open: 8.4.2 picomatch: 2.3.1 source-map: 0.7.4 yargs: 17.7.2 - optionalDependencies: - rollup: 4.20.0 + dev: true - rollup@4.20.0: + /rollup@4.20.0: + resolution: {integrity: sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: @@ -2908,120 +2438,253 @@ snapshots: '@rollup/rollup-win32-ia32-msvc': 4.20.0 '@rollup/rollup-win32-x64-msvc': 4.20.0 fsevents: 2.3.3 + dev: true - run-parallel@1.2.0: + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 + dev: true - scheduler@0.21.0: + /scheduler@0.21.0: + resolution: {integrity: sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==} dependencies: loose-envify: 1.4.0 + dev: false - scheduler@0.23.2: + /scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} dependencies: loose-envify: 1.4.0 + dev: false - semver@7.6.3: {} + /semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + dev: true - shebang-command@2.0.0: + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 + dev: true - shebang-regex@3.0.0: {} + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true - slash@3.0.0: {} + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true - source-map-js@1.2.0: {} + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + dev: true - source-map@0.7.4: {} + /source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + dev: true - string-width@4.2.3: + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + dev: true - strip-ansi@6.0.1: + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 + dev: true - strip-ansi@7.1.0: + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 + dev: true - strip-json-comments@3.1.1: {} + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true - supports-color@7.2.0: + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} dependencies: has-flag: 4.0.0 + dev: true - suspend-react@0.1.3(react@18.3.1): + /suspend-react@0.1.3(react@18.3.1): + resolution: {integrity: sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ==} + peerDependencies: + react: '>=17.0' dependencies: react: 18.3.1 + dev: false - text-table@0.2.0: {} + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true - three@0.167.1: {} + /three@0.167.1: + resolution: {integrity: sha512-gYTLJA/UQip6J/tJvl91YYqlZF47+D/kxiWrbTon35ZHlXEN0VOo+Qke2walF1/x92v55H6enomymg4Dak52kw==} + dev: false - to-regex-range@5.0.1: + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 + dev: true - ts-api-utils@1.3.0(typescript@5.5.4): + /ts-api-utils@1.3.0(typescript@5.5.4): + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' dependencies: typescript: 5.5.4 + dev: true - type-check@0.4.0: + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 + dev: true - type-fest@0.20.2: {} + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true - typescript@5.5.4: {} + /typescript@5.5.4: + resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} + engines: {node: '>=14.17'} + hasBin: true - uri-js@4.4.1: + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.1 + dev: true - use-sync-external-store@1.2.0(react@18.3.1): + /use-sync-external-store@1.2.0(react@18.3.1): + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: react: 18.3.1 + dev: false - vite@5.4.0: + /vite@5.4.0: + resolution: {integrity: sha512-5xokfMX0PIiwCMCMb9ZJcMyh5wbBun0zUzKib+L65vAZ8GY9ePZMXxFrHbr/Kyll2+LSCY7xtERPpxkBDKngwg==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true dependencies: esbuild: 0.21.5 postcss: 8.4.41 rollup: 4.20.0 optionalDependencies: fsevents: 2.3.3 + dev: true - vscode-languageserver-textdocument@1.0.12: {} + /vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + dev: true - vscode-uri@3.0.8: {} + /vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + dev: true - which@2.0.2: + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true dependencies: isexe: 2.0.0 + dev: true - word-wrap@1.2.5: {} + /word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + dev: true - wrap-ansi@7.0.0: + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 + dev: true - wrappy@1.0.2: {} + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true - xdg-basedir@5.1.0: {} + /xdg-basedir@5.1.0: + resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} + engines: {node: '>=12'} + dev: true - y18n@5.0.8: {} + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true - yaml@2.5.0: {} + /yaml@2.5.0: + resolution: {integrity: sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==} + engines: {node: '>= 14'} + hasBin: true + dev: true - yargs-parser@21.1.1: {} + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: true - yargs@17.7.2: + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} dependencies: cliui: 8.0.1 escalade: 3.1.2 @@ -3030,16 +2693,41 @@ snapshots: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 + dev: true - yocto-queue@0.1.0: {} + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true - zustand@3.7.2(react@18.3.1): - optionalDependencies: + /zustand@3.7.2(react@18.3.1): + resolution: {integrity: sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==} + engines: {node: '>=12.7.0'} + peerDependencies: + react: '>=16.8' + peerDependenciesMeta: + react: + optional: true + dependencies: react: 18.3.1 + dev: false - zustand@4.5.4(@types/react@18.3.3)(react@18.3.1): + /zustand@4.5.4(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-/BPMyLKJPtFEvVL0E9E9BTUM63MNyhPGlvxk1XjrfWTUlV+BR8jufjsovHzrtR6YNcBEcL7cMHovL1n9xHawEg==} + engines: {node: '>=12.7.0'} + peerDependencies: + '@types/react': '>=16.8' + immer: '>=9.0.6' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true dependencies: - use-sync-external-store: 1.2.0(react@18.3.1) - optionalDependencies: '@types/react': 18.3.3 react: 18.3.1 + use-sync-external-store: 1.2.0(react@18.3.1) + dev: false From 0920932b33dd5691671d3ac7bfca22808b62dc97 Mon Sep 17 00:00:00 2001 From: Sea10wood Date: Sun, 11 Aug 2024 06:20:40 +0900 Subject: [PATCH 07/15] fix; pnpm install-error --- package.json | 1 + pnpm-lock.yaml | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/package.json b/package.json index 5409cba..a86b05f 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "dependencies": { "@react-three/cannon": "^6.6.0", "@react-three/fiber": "^8.16.8", + "qrcode.react": "^3.1.0", "react": "^18.3.1", "react-dom": "^18.3.1", "react-router-dom": "^6.26.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 082d20a..88982b6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,6 +11,9 @@ dependencies: '@react-three/fiber': specifier: ^8.16.8 version: 8.16.8(react-dom@18.3.1)(react@18.3.1)(three@0.167.1) + qrcode.react: + specifier: ^3.1.0 + version: 3.1.0(react@18.3.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -2295,6 +2298,14 @@ packages: engines: {node: '>=6'} dev: true + /qrcode.react@3.1.0(react@18.3.1): + resolution: {integrity: sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.3.1 + dev: false + /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true From 9ef54aeae47b0cd00bcaf0faa3900f7d493d9c5b Mon Sep 17 00:00:00 2001 From: Sea10wood Date: Sun, 11 Aug 2024 09:00:32 +0900 Subject: [PATCH 08/15] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0=E3=81=95?= =?UTF-8?q?=E3=82=8C=E3=81=BE=E3=81=9B=E3=82=93=E3=81=A7=E3=81=97=E3=81=9F?= =?UTF-8?q?=E3=80=81=E3=80=81=E3=80=81=E3=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/QRCodeGenerator.tsx | 47 +++++++++++++++++++++-------- src/pages/QRCodeGenerator/index.tsx | 19 +++++++++--- 2 files changed, 48 insertions(+), 18 deletions(-) diff --git a/src/components/QRCodeGenerator.tsx b/src/components/QRCodeGenerator.tsx index bc727c6..c523bc9 100644 --- a/src/components/QRCodeGenerator.tsx +++ b/src/components/QRCodeGenerator.tsx @@ -1,22 +1,43 @@ -import QRCode from "qrcode.react"; -import { useLocation } from "react-router-dom"; +import { useEffect, useState } from "react"; +import { useLocation, useNavigate } from "react-router-dom"; import { generateUUID } from "../utils/uuid"; +import QRCode from "qrcode.react"; type QRCodeGeneratorProps = { - size?: number; + size?: number; + onUrlGenerated?: (url: string) => void; }; -const QRCodeGenerator: React.FC = ({ size = 128 }) => { - const location = useLocation(); - const baseUrl = `${window.location.origin}${location.pathname}`; - const roomId = generateUUID(); - const url = `${baseUrl}?room_id=${roomId}`; +const QRCodeGenerator: React.FC = ({ size = 128, onUrlGenerated }) => { + const location = useLocation(); + const navigate = useNavigate(); + const [url, setUrl] = useState(""); + + useEffect(() => { + const params = new URLSearchParams(location.search); + const existingRoomId = params.get("room_id"); + + if (!existingRoomId) { + const newRoomId = generateUUID(); + const newUrl = `${window.location.pathname}?room_id=${newRoomId}`; + setUrl(newUrl); + onUrlGenerated?.(newUrl); + + if (window.location.href !== newUrl) { + navigate(newUrl, { replace: true }); + } + } else { + const newUrl = `${window.location.pathname}?room_id=${existingRoomId}`; + setUrl(newUrl); + onUrlGenerated?.(newUrl); + } + }, [location.search, navigate, onUrlGenerated]); - return ( -
- -
- ); + return ( +
+ +
+ ); }; export default QRCodeGenerator; diff --git a/src/pages/QRCodeGenerator/index.tsx b/src/pages/QRCodeGenerator/index.tsx index 56c9b81..20912b4 100644 --- a/src/pages/QRCodeGenerator/index.tsx +++ b/src/pages/QRCodeGenerator/index.tsx @@ -1,11 +1,20 @@ import QRCodeGenerator from "../../components/QRCodeGenerator"; +import { useState } from "react"; +import QRCode from "qrcode.react"; const QRCodePage: React.FC = () => { - return ( -
- -
- ); + const [qrCodeUrl, setQrCodeUrl] = useState(null); + + const handleUrlGenerated = (generatedUrl: string) => { + setQrCodeUrl(generatedUrl); + }; + + return ( +
+ + {qrCodeUrl && } +
+ ); }; export default QRCodePage; From 3ad5f4ec47cf48ddcfec39ac2455d605f15e6352 Mon Sep 17 00:00:00 2001 From: K-Kizuku Date: Sun, 11 Aug 2024 13:54:26 +0900 Subject: [PATCH 09/15] =?UTF-8?q?feat:=20QR=E3=82=B3=E3=83=BC=E3=83=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/QRCodeGenerator.tsx | 47 +--- .../responsive/homePC/index.module.css | 214 +++++++++++------- src/components/responsive/homePC/index.tsx | 85 ++++--- src/components/responsive/homeSP/index.tsx | 7 +- src/index.css | 9 +- src/pages/QRCodeGenerator/index.tsx | 24 +- src/store/index.ts | 1 + src/store/useRoomIdStore.ts | 15 ++ src/utils/copyClipBoard.ts | 10 + 9 files changed, 247 insertions(+), 165 deletions(-) create mode 100644 src/store/useRoomIdStore.ts create mode 100644 src/utils/copyClipBoard.ts diff --git a/src/components/QRCodeGenerator.tsx b/src/components/QRCodeGenerator.tsx index c523bc9..e98bd8b 100644 --- a/src/components/QRCodeGenerator.tsx +++ b/src/components/QRCodeGenerator.tsx @@ -1,43 +1,20 @@ -import { useEffect, useState } from "react"; -import { useLocation, useNavigate } from "react-router-dom"; -import { generateUUID } from "../utils/uuid"; import QRCode from "qrcode.react"; type QRCodeGeneratorProps = { - size?: number; - onUrlGenerated?: (url: string) => void; + size?: number; + url: string; + onUrlGenerated?: (url: string) => void; }; -const QRCodeGenerator: React.FC = ({ size = 128, onUrlGenerated }) => { - const location = useLocation(); - const navigate = useNavigate(); - const [url, setUrl] = useState(""); - - useEffect(() => { - const params = new URLSearchParams(location.search); - const existingRoomId = params.get("room_id"); - - if (!existingRoomId) { - const newRoomId = generateUUID(); - const newUrl = `${window.location.pathname}?room_id=${newRoomId}`; - setUrl(newUrl); - onUrlGenerated?.(newUrl); - - if (window.location.href !== newUrl) { - navigate(newUrl, { replace: true }); - } - } else { - const newUrl = `${window.location.pathname}?room_id=${existingRoomId}`; - setUrl(newUrl); - onUrlGenerated?.(newUrl); - } - }, [location.search, navigate, onUrlGenerated]); - - return ( -
- -
- ); +const QRCodeGenerator: React.FC = ({ + size = 128, + url, +}) => { + return ( +
+ +
+ ); }; export default QRCodeGenerator; diff --git a/src/components/responsive/homePC/index.module.css b/src/components/responsive/homePC/index.module.css index 6ef54f8..f72d257 100644 --- a/src/components/responsive/homePC/index.module.css +++ b/src/components/responsive/homePC/index.module.css @@ -1,113 +1,171 @@ @keyframes infinity-scroll-left { - from { - transform: translateX(0); - } - to { - transform: translateX(-100%); - } + from { + transform: translateX(0); + } + to { + transform: translateX(-100%); + } +} + +.scroll-infinity { + position: absolute; + display: flex; + z-index: 100; + width: 100vw; + overflow: hidden; } .scroll-infinity__wrap { - display: flex; - overflow: hidden; - width: 100vw; + overflow: hidden; } .scroll-infinity__list { - display: flex; - list-style: none; - padding: 0; + display: flex; + list-style: none; + padding: 0; } .scroll-infinity__list--left { - animation: infinity-scroll-left 60s infinite linear 0.5s both; + animation: infinity-scroll-left 60s infinite linear 0.5s both; } .scroll-infinity__item { - width: 33.33vw; + width: 33.33vw; } .scroll-infinity__item > img { - width: 100%; + width: 100%; } .background-logo { - opacity: 0.2; - position: absolute; - top: 50%; - left: 24%; - transform: translate(-50%, -50%); - justify-content: center; - align-items: center; - max-width: 48%; + opacity: 0.2; + position: absolute; + top: 50%; + left: 24%; + transform: translate(-50%, -50%); + justify-content: center; + align-items: center; + max-width: 48%; +} +.background-logo img { + height: 100vh; + aspect-ratio: 1 / 1; } li { - font-size: 40px; - padding: 0 32px; + font-size: 40px; + padding: 0 32px; } .go-game-pc { - position: absolute; - top: 80%; - left: 24%; - transform: translate(-50%, -50%); - justify-content: center; - align-items: center; - width: 40%; - text-align: center; - z-index: 10; + justify-content: center; + align-items: center; + width: 40%; + text-align: center; + z-index: 10; } .go-game-pc button { - width: 100%; - padding: 16px 0; - font-size: 24px; + width: 100%; + padding: 16px 0; + font-size: 24px; } -.red-lite{ - opacity: 0.8; - position: absolute; - top: 2%; - right: 0; +.red-lite { + opacity: 0.8; + position: absolute; + top: 2%; + width: 500px; + height: 500px; + right: 0; + z-index: -1; } -.pistol-img{ - opacity: 0.2; - position: absolute; - top: 25%; - right: 8%; - transform: scale(-1, 1); +.pistol-img { + opacity: 0.2; + position: absolute; + top: 25%; + right: 8%; + transform: scale(-1, 1); } .overlay-square { - position: absolute; - top: 20%; - right: 120px; - width: 520px; - height: 532px; - background-color: rgba(255, 255, 255, 0.8); - z-index: 1; -} - -.id-room{ - position: absolute; - top: 20%; - right: 300px; - font-size: 32px; - z-index: 10; -} - -.qr-scan{ - position: absolute; - top: 60%; - right: -10px; - z-index: 10; -} - -.link-copy{ - position: absolute; - top: 80%; - right: 300px; - z-index: 10; -} \ No newline at end of file + position: absolute; + top: 20%; + right: 120px; + width: 520px; + height: 532px; + background-color: rgba(255, 255, 255, 0.8); + z-index: 1; +} + +.qr-scan { + position: absolute; + bottom: 10%; + right: -50px; + z-index: 10; +} + +.link-copy { + margin: 50px; + z-index: 10; +} + +.content-wrapper { + width: 100vw; + height: 100vh; + display: flex; + flex-direction: row; + overflow: hidden; +} + +.left-container { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + width: 50%; + height: 100%; +} + +.right-container { + display: flex; + width: 50%; + height: 100%; +} + +.qr-wrapper { + display: flex; + position: relative; + justify-content: center; + align-items: center; + width: 70%; + aspect-ratio: 520 / 532; + background-color: rgba(255, 255, 255, 0.8); + z-index: 1; +} + +.qr-wrapper svg { + width: 80%; + position: absolute; + top: 55%; + left: 50%; + transform: translate(-50%, -50%); +} + +.yatai-wrapper { + width: 100%; + height: 100%; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; +} +.id-room { + position: absolute; + top: 7%; + left: 50%; + transform: translate(-50%, -50%); + font-size: 32px; + z-index: 10; +} diff --git a/src/components/responsive/homePC/index.tsx b/src/components/responsive/homePC/index.tsx index d921698..188cf3a 100644 --- a/src/components/responsive/homePC/index.tsx +++ b/src/components/responsive/homePC/index.tsx @@ -1,6 +1,8 @@ import { useNavigate } from "react-router-dom"; -import { useSocketRefStore } from "../../../store"; +import { useRoomIdStore, useSocketRefStore } from "../../../store"; +import { copyStringToClipboard } from "../../../utils/copyClipBoard"; import { requestPermission } from "../../../utils/permission"; +import QRCodeGenerator from "../../QRCodeGenerator"; import { DefaultButton } from "../../ui/Button"; import TextButton from "../../ui/TextButton"; import styles from "./index.module.css"; @@ -8,11 +10,16 @@ import styles from "./index.module.css"; function HomePC() { const navigate = useNavigate(); const setRef = useSocketRefStore((state) => state.setRef); + const roomId = useRoomIdStore((state) => state.uuid); + const url = `${window.location.href}?room_id=${roomId}`; const handleClick = () => { requestPermission(); const socketRef = new WebSocket( - `wss://${import.meta.env.VITE_HOST_NAME || "virtual-natsumatsuri-3jpy6th4da-an.a.run.app"}/ws?room_id=2`, + `wss://${ + import.meta.env.VITE_HOST_NAME || + "virtual-natsumatsuri-3jpy6th4da-an.a.run.app" + }/ws?room_id=${roomId}`, ); setRef({ current: socketRef }); const audio = new Audio("/sound/wadaiko.mp3"); @@ -28,7 +35,7 @@ function HomePC() { }; return ( -
+
-
- 背景にばーちゃるなつまつりのロゴ -
-
- - 射的へ向かう - +
+
+ 背景にばーちゃるなつまつりのロゴ +
+
+ + 射的へ向かう + +
-
-
-

屋台のID

+
+
+
+
+

屋台のID

+
+ +
+
+ qr-scan +
+
+ copyStringToClipboard(url)} + underline={true} + /> +
+
赤提灯
@@ -79,21 +109,6 @@ function HomePC() { height="540" />
-
- qr-scan -
-
- -
); } diff --git a/src/components/responsive/homeSP/index.tsx b/src/components/responsive/homeSP/index.tsx index 92fdcbd..1bdd2df 100644 --- a/src/components/responsive/homeSP/index.tsx +++ b/src/components/responsive/homeSP/index.tsx @@ -10,8 +10,13 @@ function HomeSP() { const handleClick = () => { requestPermission(); + const params = new URLSearchParams(location.search); + const roomId = params.get("room_id"); const socketRef = new WebSocket( - `wss://${import.meta.env.VITE_HOST_NAME || "virtual-natsumatsuri-3jpy6th4da-an.a.run.app"}/ws?room_id=2`, + `wss://${ + import.meta.env.VITE_HOST_NAME || + "virtual-natsumatsuri-3jpy6th4da-an.a.run.app" + }/ws?room_id=${roomId}`, ); setRef({ current: socketRef }); const audio = new Audio("/sound/wadaiko.mp3"); diff --git a/src/index.css b/src/index.css index a29afbb..a19add4 100644 --- a/src/index.css +++ b/src/index.css @@ -1,13 +1,13 @@ :root { - font-family: Dela Gothic One, Yuji Syuku, serif, sans-serif; + font-family: Dela Gothic One, Yuji Syuku, serif, sans-serif; line-height: 1.5; font-weight: 400; font-style: normal; --black: #212121; --white: #ffffff; - --red: #FF3131; - --yellow: #FFF501; + --red: #ff3131; + --yellow: #fff501; } a { @@ -24,7 +24,8 @@ body { display: flex; min-width: 320px; min-height: 100vh; - background-color: #FFF2F2; + background-color: #fff2f2; + overflow: hidden; } h1 { diff --git a/src/pages/QRCodeGenerator/index.tsx b/src/pages/QRCodeGenerator/index.tsx index 20912b4..a9e1706 100644 --- a/src/pages/QRCodeGenerator/index.tsx +++ b/src/pages/QRCodeGenerator/index.tsx @@ -1,20 +1,20 @@ -import QRCodeGenerator from "../../components/QRCodeGenerator"; -import { useState } from "react"; import QRCode from "qrcode.react"; +import { useState } from "react"; +import QRCodeGenerator from "../../components/QRCodeGenerator"; const QRCodePage: React.FC = () => { - const [qrCodeUrl, setQrCodeUrl] = useState(null); + const [qrCodeUrl, setQrCodeUrl] = useState(null); - const handleUrlGenerated = (generatedUrl: string) => { - setQrCodeUrl(generatedUrl); - }; + const handleUrlGenerated = (generatedUrl: string) => { + setQrCodeUrl(generatedUrl); + }; - return ( -
- - {qrCodeUrl && } -
- ); + return ( +
+ + {qrCodeUrl && } +
+ ); }; export default QRCodePage; diff --git a/src/store/index.ts b/src/store/index.ts index d527464..725c6ae 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -1,2 +1,3 @@ export { useSocketRefStore } from "./useSocketRefStore"; export { useUUIDStore } from "./useUUIDStore"; +export { useRoomIdStore } from "./useRoomIdStore"; diff --git a/src/store/useRoomIdStore.ts b/src/store/useRoomIdStore.ts new file mode 100644 index 0000000..32eb412 --- /dev/null +++ b/src/store/useRoomIdStore.ts @@ -0,0 +1,15 @@ +import { create } from "zustand"; +import { generateUUID } from "../utils/uuid"; + +type State = { + uuid: string; +}; + +type Action = { + updateUUID: () => void; +}; + +export const useRoomIdStore = create()((set) => ({ + uuid: generateUUID(), + updateUUID: () => set(() => ({ uuid: generateUUID() })), +})); diff --git a/src/utils/copyClipBoard.ts b/src/utils/copyClipBoard.ts new file mode 100644 index 0000000..1652119 --- /dev/null +++ b/src/utils/copyClipBoard.ts @@ -0,0 +1,10 @@ +export const copyStringToClipboard = (text: string) => { + navigator.clipboard.writeText(text).then( + () => { + console.log("Async: Copying to clipboard was successful!"); + }, + (err) => { + console.error("Async: Could not copy text: ", err); + }, + ); +}; From 62d9aa47ef39cbf21753622bf2fa722ed77bfd45 Mon Sep 17 00:00:00 2001 From: Sea10wood Date: Sun, 11 Aug 2024 15:11:41 +0900 Subject: [PATCH 10/15] Fix: HomePage --- src/App.tsx | 2 -- .../responsive/homePC/index.module.css | 32 +++++++------------ src/components/responsive/homePC/index.tsx | 28 ++++++++-------- src/components/ui/Button/index.module.css | 7 ++-- src/components/ui/TextButton/index.module.css | 16 ++++++++++ src/pages/QRCodeGenerator/index.tsx | 20 ------------ 6 files changed, 44 insertions(+), 61 deletions(-) delete mode 100644 src/pages/QRCodeGenerator/index.tsx diff --git a/src/App.tsx b/src/App.tsx index 0515ab9..669cf16 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,5 +1,4 @@ import { Route, Routes } from "react-router-dom"; -import QRCodePage from "./pages/QRCodeGenerator"; import Home from "./pages/home"; import Shooter from "./pages/shooter"; import Yatai from "./pages/yatai"; @@ -11,7 +10,6 @@ const AppRoutes = () => { } /> } /> } /> - } /> ); diff --git a/src/components/responsive/homePC/index.module.css b/src/components/responsive/homePC/index.module.css index f72d257..4f05798 100644 --- a/src/components/responsive/homePC/index.module.css +++ b/src/components/responsive/homePC/index.module.css @@ -48,7 +48,7 @@ max-width: 48%; } .background-logo img { - height: 100vh; + height: 90vh; aspect-ratio: 1 / 1; } @@ -57,26 +57,12 @@ li { padding: 0 32px; } -.go-game-pc { - justify-content: center; - align-items: center; - width: 40%; - text-align: center; - z-index: 10; -} - -.go-game-pc button { - width: 100%; - padding: 16px 0; - font-size: 24px; -} - .red-lite { opacity: 0.8; position: absolute; top: 2%; - width: 500px; - height: 500px; + width: 200px; + height: 200px; right: 0; z-index: -1; } @@ -85,7 +71,7 @@ li { opacity: 0.2; position: absolute; top: 25%; - right: 8%; + right: 12px; transform: scale(-1, 1); } @@ -95,14 +81,13 @@ li { right: 120px; width: 520px; height: 532px; - background-color: rgba(255, 255, 255, 0.8); z-index: 1; } .qr-scan { position: absolute; - bottom: 10%; - right: -50px; + bottom: 10px; + right: 0; z-index: 10; } @@ -134,6 +119,11 @@ li { height: 100%; } +.go-game-pc { + margin-left: 15%; + z-index: 10; +} + .qr-wrapper { display: flex; position: relative; diff --git a/src/components/responsive/homePC/index.tsx b/src/components/responsive/homePC/index.tsx index 188cf3a..dc83571 100644 --- a/src/components/responsive/homePC/index.tsx +++ b/src/components/responsive/homePC/index.tsx @@ -55,15 +55,15 @@ function HomePC() {
- 背景にばーちゃるなつまつりのロゴ + 背景にばーちゃるなつまつりのロゴ
- + 射的へ向かう
@@ -80,13 +80,16 @@ function HomePC() { qr-scan
copyStringToClipboard(url)} underline={true} /> @@ -94,12 +97,7 @@ function HomePC() {
- 赤提灯 + 赤提灯
{ - const [qrCodeUrl, setQrCodeUrl] = useState(null); - - const handleUrlGenerated = (generatedUrl: string) => { - setQrCodeUrl(generatedUrl); - }; - - return ( -
- - {qrCodeUrl && } -
- ); -}; - -export default QRCodePage; From b2a0728a10e756f008af1bbbaa01281763064a0c Mon Sep 17 00:00:00 2001 From: Sea10wood Date: Sun, 11 Aug 2024 15:11:56 +0900 Subject: [PATCH 11/15] fix: home --- src/components/responsive/homePC/index.module.css | 6 +++--- src/components/responsive/homePC/index.tsx | 12 ++++++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/components/responsive/homePC/index.module.css b/src/components/responsive/homePC/index.module.css index 4f05798..ec68ad2 100644 --- a/src/components/responsive/homePC/index.module.css +++ b/src/components/responsive/homePC/index.module.css @@ -120,7 +120,6 @@ li { } .go-game-pc { - margin-left: 15%; z-index: 10; } @@ -129,10 +128,11 @@ li { position: relative; justify-content: center; align-items: center; - width: 70%; - aspect-ratio: 520 / 532; + width: 68%; + aspect-ratio: 520 / 560; background-color: rgba(255, 255, 255, 0.8); z-index: 1; + margin-top: 80px; } .qr-wrapper svg { diff --git a/src/components/responsive/homePC/index.tsx b/src/components/responsive/homePC/index.tsx index dc83571..7cb53cd 100644 --- a/src/components/responsive/homePC/index.tsx +++ b/src/components/responsive/homePC/index.tsx @@ -1,3 +1,4 @@ +import { useState } from "react"; import { useNavigate } from "react-router-dom"; import { useRoomIdStore, useSocketRefStore } from "../../../store"; import { copyStringToClipboard } from "../../../utils/copyClipBoard"; @@ -12,6 +13,13 @@ function HomePC() { const setRef = useSocketRefStore((state) => state.setRef); const roomId = useRoomIdStore((state) => state.uuid); const url = `${window.location.href}?room_id=${roomId}`; + const [buttonText, setButtonText] = useState("共有リンクをコピー"); + + const handleCopyClick = () => { + copyStringToClipboard(url); + setButtonText("コピーしました"); + setTimeout(() => setButtonText("共有リンクをコピー"), 2000); + }; const handleClick = () => { requestPermission(); @@ -86,11 +94,11 @@ function HomePC() {
copyStringToClipboard(url)} + onClick={handleCopyClick} underline={true} />
From c0158d6e2c38908a3bc8fa0a42f982d73f21589b Mon Sep 17 00:00:00 2001 From: claustra01 Date: Sun, 11 Aug 2024 15:40:39 +0900 Subject: [PATCH 12/15] add: shot judge --- src/pages/yatai/index.tsx | 42 ++++++++++++++++++++++++++++++++------- 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/src/pages/yatai/index.tsx b/src/pages/yatai/index.tsx index 47fa8e2..9a0a41f 100644 --- a/src/pages/yatai/index.tsx +++ b/src/pages/yatai/index.tsx @@ -56,14 +56,43 @@ const YataiStage = memo(() => { args: args, })); - // 弾が当たった時はこれを呼び出す - const handleHit = () => { - api.applyImpulse( - [randFloat(-2, 2), 4, 8], - [randFloat(-1, 1), randFloat(-1, 1), randFloat(-1, 1)], - ); + const socketRef = useSocketRefStore((state) => state.socketRef); + + useEffect(() => { + const onMessage = (event: MessageEvent) => { + const data = JSON.parse(event.data); + if (data.message_type === MessageType.Action) { + shotTarget(data); + } + }; + const currentSocketRef = socketRef?.current; + currentSocketRef?.addEventListener("message", onMessage); + return () => { + currentSocketRef?.removeEventListener("message", onMessage); + }; + }, [socketRef]); + + // TODO: これらは一人用,いつかマルチプレイヤー対応する + const [target, setTarget] = useState(undefined); + const shotTarget = (data: ActionSchema) => { + setTarget({ x: data.target.x, y: data.target.y }); }; + useEffect(() => { + if (!target) return; + if ( + target.x * 2 > (props.position as [number, number, number])[0] - args[0]/2 && + target.x * 2 < (props.position as [number, number, number])[0] + args[0]/2 && + target.y * 2 > (props.position as [number, number, number])[1] - args[1]/2 - 2 && + target.y * 2 < (props.position as [number, number, number])[1] + args[1]/2 - 2 + ) { + api.applyImpulse( + [randFloat(-2, 2), 4, 8], + [randFloat(-1, 1), randFloat(-1, 1), randFloat(-1, 1)], + ); + } + }, [target]); + return ( { {...props} castShadow receiveShadow - onPointerOver={() => handleHit()} > From 160cd0755c7ba9869fc06dea108ef0ef383dfed1 Mon Sep 17 00:00:00 2001 From: claustra01 Date: Sun, 11 Aug 2024 15:40:57 +0900 Subject: [PATCH 13/15] chore: comment out debug funcs --- src/pages/yatai/index.tsx | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/pages/yatai/index.tsx b/src/pages/yatai/index.tsx index 9a0a41f..2833aa8 100644 --- a/src/pages/yatai/index.tsx +++ b/src/pages/yatai/index.tsx @@ -181,18 +181,15 @@ const TargetOverlay = () => { // setAim({ x, y }); // }; - const [target, setTarget] = useState(undefined); + // const [target, setTarget] = useState(undefined); const shotTarget = (data: ActionSchema) => { const x = window.innerWidth / 2 + data.target.x * 300; const y = window.innerHeight / 2 + data.target.y * 300; // TODO: エイム実装ができたらここのsetAimは削除する setAim({ x, y }); - setTarget({ x, y }); + // setTarget({ x, y }); }; - // DEBUG: 後で消す - console.log(target); - return (
Date: Sun, 11 Aug 2024 15:44:13 +0900 Subject: [PATCH 14/15] fix: lint --- src/pages/yatai/index.tsx | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/pages/yatai/index.tsx b/src/pages/yatai/index.tsx index 2833aa8..0378c10 100644 --- a/src/pages/yatai/index.tsx +++ b/src/pages/yatai/index.tsx @@ -81,17 +81,21 @@ const YataiStage = memo(() => { useEffect(() => { if (!target) return; if ( - target.x * 2 > (props.position as [number, number, number])[0] - args[0]/2 && - target.x * 2 < (props.position as [number, number, number])[0] + args[0]/2 && - target.y * 2 > (props.position as [number, number, number])[1] - args[1]/2 - 2 && - target.y * 2 < (props.position as [number, number, number])[1] + args[1]/2 - 2 + target.x * 2 > + (props.position as [number, number, number])[0] - args[0] / 2 && + target.x * 2 < + (props.position as [number, number, number])[0] + args[0] / 2 && + target.y * 2 > + (props.position as [number, number, number])[1] - args[1] / 2 - 2 && + target.y * 2 < + (props.position as [number, number, number])[1] + args[1] / 2 - 2 ) { api.applyImpulse( [randFloat(-2, 2), 4, 8], [randFloat(-1, 1), randFloat(-1, 1), randFloat(-1, 1)], ); } - }, [target]); + }, [target, props.position, api]); return ( Date: Sun, 11 Aug 2024 15:55:11 +0900 Subject: [PATCH 15/15] refactoring --- src/pages/yatai/index.tsx | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/pages/yatai/index.tsx b/src/pages/yatai/index.tsx index 0378c10..f43b213 100644 --- a/src/pages/yatai/index.tsx +++ b/src/pages/yatai/index.tsx @@ -49,10 +49,12 @@ const YataiStage = memo(() => { // 的 const Target = (props: ThreeElements["mesh"]) => { + const position = props.position as [number, number, number]; + const args: [number, number, number] = [0.7, 2, 0.7]; const [ref, api] = useBox(() => ({ mass: 1, - position: props.position as [number, number, number], + position: position, args: args, })); @@ -81,21 +83,17 @@ const YataiStage = memo(() => { useEffect(() => { if (!target) return; if ( - target.x * 2 > - (props.position as [number, number, number])[0] - args[0] / 2 && - target.x * 2 < - (props.position as [number, number, number])[0] + args[0] / 2 && - target.y * 2 > - (props.position as [number, number, number])[1] - args[1] / 2 - 2 && - target.y * 2 < - (props.position as [number, number, number])[1] + args[1] / 2 - 2 + target.x * 2 > position[0] - args[0] / 2 && + target.x * 2 < position[0] + args[0] / 2 && + target.y * 2 > position[1] - args[1] / 2 - 2 && + target.y * 2 < position[1] + args[1] / 2 - 2 ) { api.applyImpulse( [randFloat(-2, 2), 4, 8], [randFloat(-1, 1), randFloat(-1, 1), randFloat(-1, 1)], ); } - }, [target, props.position, api]); + }, [target, position, api]); return (