From 59d4a691d6e600198f948a43f3f92caf8cdc01be Mon Sep 17 00:00:00 2001
From: Redsandy <34872843+Redsandyg@users.noreply.github.com>
Date: Wed, 12 Aug 2026 11:27:07 +0300
Subject: [PATCH] Initialize Vyryi front-end project with React, Vite, and
TypeScript. Add essential files including configuration, environment
variables, and basic structure. Implement authentication, routing, and API
interaction for a Telegram Mini App UI. Include README and styling for a
cohesive user experience.
---
.env.example | 1 +
.gitignore | 26 +
.oxlintrc.json | 8 +
README.md | 32 +
index.html | 14 +
package-lock.json | 2076 +++++++++++++++++++++++++++++++
package.json | 32 +
public/favicon.svg | 1 +
public/icons.svg | 24 +
public/logo.png | Bin 0 -> 192871 bytes
src/App.tsx | 53 +
src/api.ts | 83 ++
src/assets/hero.png | Bin 0 -> 13057 bytes
src/auth.tsx | 83 ++
src/index.css | 618 +++++++++
src/legal.ts | 23 +
src/main.tsx | 10 +
src/pages/AgreementPage.tsx | 93 ++
src/pages/GamePage.tsx | 41 +
src/pages/HomePage.tsx | 118 ++
src/pages/LegalDocumentPage.tsx | 22 +
src/pages/RootRedirect.tsx | 12 +
src/types.ts | 33 +
src/vfx/GateTransitProvider.tsx | 323 +++++
src/vfx/gateCaps.ts | 14 +
src/vfx/gateTimeline.ts | 130 ++
tsconfig.app.json | 26 +
tsconfig.json | 7 +
tsconfig.node.json | 23 +
vite.config.ts | 7 +
30 files changed, 3933 insertions(+)
create mode 100644 .env.example
create mode 100644 .gitignore
create mode 100644 .oxlintrc.json
create mode 100644 README.md
create mode 100644 index.html
create mode 100644 package-lock.json
create mode 100644 package.json
create mode 100644 public/favicon.svg
create mode 100644 public/icons.svg
create mode 100644 public/logo.png
create mode 100644 src/App.tsx
create mode 100644 src/api.ts
create mode 100644 src/assets/hero.png
create mode 100644 src/auth.tsx
create mode 100644 src/index.css
create mode 100644 src/legal.ts
create mode 100644 src/main.tsx
create mode 100644 src/pages/AgreementPage.tsx
create mode 100644 src/pages/GamePage.tsx
create mode 100644 src/pages/HomePage.tsx
create mode 100644 src/pages/LegalDocumentPage.tsx
create mode 100644 src/pages/RootRedirect.tsx
create mode 100644 src/types.ts
create mode 100644 src/vfx/GateTransitProvider.tsx
create mode 100644 src/vfx/gateCaps.ts
create mode 100644 src/vfx/gateTimeline.ts
create mode 100644 tsconfig.app.json
create mode 100644 tsconfig.json
create mode 100644 tsconfig.node.json
create mode 100644 vite.config.ts
diff --git a/.env.example b/.env.example
new file mode 100644
index 0000000..ad82eb2
--- /dev/null
+++ b/.env.example
@@ -0,0 +1 @@
+VITE_API_URL=http://127.0.0.1:8000
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..7c3d27f
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,26 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+.env
+.env.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/.oxlintrc.json b/.oxlintrc.json
new file mode 100644
index 0000000..6fa991d
--- /dev/null
+++ b/.oxlintrc.json
@@ -0,0 +1,8 @@
+{
+ "$schema": "./node_modules/oxlint/configuration_schema.json",
+ "plugins": ["react", "typescript", "oxc"],
+ "rules": {
+ "react/rules-of-hooks": "error",
+ "react/only-export-components": ["warn", { "allowConstantExport": true }]
+ }
+}
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..06b016d
--- /dev/null
+++ b/README.md
@@ -0,0 +1,32 @@
+# Vyryi Front
+
+React (Vite + TypeScript) Telegram Mini App UI for **Vyryi**.
+
+## Stack
+
+- React 19 + React Router
+- Local auth via backend `POST /auth/dev-login`
+- Dark folk visual style matching the project logo
+
+## Screens
+
+1. `/` — logo + user agreement gate
+2. `/home` — balance, stub deposit, slot stubs
+3. `/games/:slug` — game placeholder
+
+## Quick start
+
+```bash
+cd vyryi-front
+npm install
+copy .env.example .env
+npm run dev
+```
+
+Open http://127.0.0.1:5173 — backend must be running on port 8000.
+
+## Env
+
+```
+VITE_API_URL=http://127.0.0.1:8000
+```
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..75ffd3d
--- /dev/null
+++ b/index.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+ Vyryi
+
+
+
+
+
+
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..31d2450
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,2076 @@
+{
+ "name": "vyryi-front",
+ "version": "0.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "vyryi-front",
+ "version": "0.0.0",
+ "dependencies": {
+ "@react-three/drei": "^10.7.8",
+ "@react-three/fiber": "^9.7.0",
+ "@react-three/postprocessing": "^3.0.5",
+ "gsap": "^3.15.0",
+ "react": "^19.2.8",
+ "react-dom": "^19.2.8",
+ "react-router-dom": "^7.18.2",
+ "three": "^0.185.1"
+ },
+ "devDependencies": {
+ "@types/node": "^24.13.3",
+ "@types/react": "^19.2.17",
+ "@types/react-dom": "^19.2.3",
+ "@types/three": "^0.185.4",
+ "@vitejs/plugin-react": "^6.0.4",
+ "oxlint": "^1.75.0",
+ "typescript": "~6.0.2",
+ "vite": "^8.2.0"
+ }
+ },
+ "node_modules/@babel/runtime": {
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz",
+ "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@dimforge/rapier3d-compat": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/@dimforge/rapier3d-compat/-/rapier3d-compat-0.12.0.tgz",
+ "integrity": "sha512-uekIGetywIgopfD97oDL5PfeezkFpNhwlzlaEYNOA0N6ghdsOvh/HYjSMek5Q2O1PYvRSDFcqFVJl4r4ZBwOow==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/@mediapipe/tasks-vision": {
+ "version": "0.10.17",
+ "resolved": "https://registry.npmjs.org/@mediapipe/tasks-vision/-/tasks-vision-0.10.17.tgz",
+ "integrity": "sha512-CZWV/q6TTe8ta61cZXjfnnHsfWIdFhms03M9T7Cnd5y2mdpylJM0rF1qRq+wsQVRMLz1OYPVEBU9ph2Bx8cxrg==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/@monogrid/gainmap-js": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/@monogrid/gainmap-js/-/gainmap-js-3.4.0.tgz",
+ "integrity": "sha512-2Z0FATFHaoYJ8b+Y4y4Hgfn3FRFwuU5zRrk+9dFWp4uGAdHGqVEdP7HP+gLA3X469KXHmfupJaUbKo1b/aDKIg==",
+ "license": "MIT",
+ "dependencies": {
+ "promise-worker-transferable": "^1.0.4"
+ },
+ "peerDependencies": {
+ "three": ">= 0.159.0"
+ }
+ },
+ "node_modules/@oxc-project/types": {
+ "version": "0.143.0",
+ "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.143.0.tgz",
+ "integrity": "sha512-u6JZdLBTLotrNC9Vd6vPssINdzcCzleKAH6EJKImQb7GtYvX5keN2dxkoK44stCc4tffE6QQRtZTXVSzsLUlWA==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/Boshen"
+ }
+ },
+ "node_modules/@oxlint/binding-android-arm-eabi": {
+ "version": "1.78.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm-eabi/-/binding-android-arm-eabi-1.78.0.tgz",
+ "integrity": "sha512-Bu819lmAfZMUHErrpe0cEWj3iaefuUODHSU8+UbXy67V/r7/7f4K3FL0NmbD85E+wiFLDYuhP8Zlv0XnVeXshw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxlint/binding-android-arm64": {
+ "version": "1.78.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm64/-/binding-android-arm64-1.78.0.tgz",
+ "integrity": "sha512-CDfxZgB61B7buRdY2FJoAYYPPXCZ1EoC1LKscnC5dg3kjobdxiconvAvvN1BmHyW4PyFT3jRLDag/BY/roSNBQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxlint/binding-darwin-arm64": {
+ "version": "1.78.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-arm64/-/binding-darwin-arm64-1.78.0.tgz",
+ "integrity": "sha512-2Y2U9Ahrz+OO0Ej88f9SJYq51/jUBp1Mc7iZu0ukrbeeZ3gpRGfzIFnoqfHDY96xr0GEfNrPUBFEy0nN5aD7HA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxlint/binding-darwin-x64": {
+ "version": "1.78.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-x64/-/binding-darwin-x64-1.78.0.tgz",
+ "integrity": "sha512-rpych6eJq6m9jDRypTEaPD1xysaEW5h9+xuxhGK/QhOg+/xaqPZrCrTNoIl/f3nEjuJeCEmstNDlrE9rJi/3/g==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxlint/binding-freebsd-x64": {
+ "version": "1.78.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-freebsd-x64/-/binding-freebsd-x64-1.78.0.tgz",
+ "integrity": "sha512-IcMGrQT3QizkOESUJd5et+rOhVqSkNDfNik1cvrKDqIbzqx9KMtRswpFgkCuNTSwylCFLKhGUu8KmqY1ZnC0Dg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxlint/binding-linux-arm-gnueabihf": {
+ "version": "1.78.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.78.0.tgz",
+ "integrity": "sha512-/uLdoJ0IXE6vo/0f0LKjinQAp+re+VMaCWaNT8ENIv2EOCkSsc8SGaflXAuW0Jua2dq5+GLVWm1NQK7P3UFSNQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxlint/binding-linux-arm-musleabihf": {
+ "version": "1.78.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-1.78.0.tgz",
+ "integrity": "sha512-7xi4Wb/O8NRJhLoUXmDJMUVpNYvB5kefdhFU1Jb8rtae4QoXlTiLwI14X4YvAXVZLNZChP8m5qO9SQAlWQTbkQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxlint/binding-linux-arm64-gnu": {
+ "version": "1.78.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.78.0.tgz",
+ "integrity": "sha512-4hFW0+fVXa3OIh1Y4A5SPkmvI4wuuBSrCVKzOyE7PTjhc7yEqZ1pmvEEeS5Lj/MaqvegFxXyF33N+6jkehxdyg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxlint/binding-linux-arm64-musl": {
+ "version": "1.78.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.78.0.tgz",
+ "integrity": "sha512-oC0mvsgBJjlMijSDEhx9KuvR9zYeHXceA9MjbuXB1F8NSR78Yj2unOBrstEvTVaq+pko+kuue6DajC00eqvTdg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxlint/binding-linux-ppc64-gnu": {
+ "version": "1.78.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.78.0.tgz",
+ "integrity": "sha512-XAllT5SUZS+ohjuZ3/5S0cwe0r7eboiuigeStCZ5DXRYx/2KVM2UvQXvAfyzXEimtQjAB7cDQ2YxDe2Zl2WNQQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxlint/binding-linux-riscv64-gnu": {
+ "version": "1.78.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-1.78.0.tgz",
+ "integrity": "sha512-trucMER/0QtecoXvc1y/UVqE3kwJipDwrx4oHfj+nNm3dq2zjP44WT0CfHNDPM3G1DXIkx/gY6lAD21NSCZVhA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxlint/binding-linux-riscv64-musl": {
+ "version": "1.78.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-1.78.0.tgz",
+ "integrity": "sha512-cm3O4F/HQbdzOUX5mKHqG5KDL6E5w0pnlZ+fbBy2rmLryPOowkuLagFHTopQsEIpjcaZoPOrL+BmmAytAG9HFg==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxlint/binding-linux-s390x-gnu": {
+ "version": "1.78.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.78.0.tgz",
+ "integrity": "sha512-33wRf6HqGNsybJ3qX4cGaQN2ODPxNmc1rMa0mrTmx3eFq1VzOnvQooi9bIGVYakW8a/wmqVx1mgsUm8R2xfTiw==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxlint/binding-linux-x64-gnu": {
+ "version": "1.78.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.78.0.tgz",
+ "integrity": "sha512-rRdISSYegj6VganMZ9tjRjijowfHJ09IZU01i0toBAqr6n5LEtwHq2IeS4FjW2RoskOHlb6efB26H5izYb3GEQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxlint/binding-linux-x64-musl": {
+ "version": "1.78.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-musl/-/binding-linux-x64-musl-1.78.0.tgz",
+ "integrity": "sha512-GmsP4rW0xTL6u5CVdcDsaN5Fbc7hBc382Wmar1kttbnwSEviM+rSINKOMQ+UQ6iH+AGwC+8gaAiwu134Tgh6Lg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxlint/binding-openharmony-arm64": {
+ "version": "1.78.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-openharmony-arm64/-/binding-openharmony-arm64-1.78.0.tgz",
+ "integrity": "sha512-sy9yeYuADc8a+n4TLBayzMCZiHPW78DcIFVpOXTmdKHWQeM9xe5uzkqIIZmi326D5hY9XVwacipEB1p7tQjPAg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxlint/binding-win32-arm64-msvc": {
+ "version": "1.78.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.78.0.tgz",
+ "integrity": "sha512-rjc2hF1KfMi8fZj1X/m3AmnHbdsF3rL0v6KQg0Uc880Yb2khjz+3U14sfdZ7jWTpRnN1m1NQa/TT7uU9lJWPrA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxlint/binding-win32-ia32-msvc": {
+ "version": "1.78.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.78.0.tgz",
+ "integrity": "sha512-zcuXFVrEFHIafRfkCQT8w/Xe41o07ozl/vwHq7p94vB29xVzsB0sZGYORU1jhcYKv3Lr0J3HbJ2T4fHH5rWmvA==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@oxlint/binding-win32-x64-msvc": {
+ "version": "1.78.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.78.0.tgz",
+ "integrity": "sha512-Sb5ocmLSuYeOuXd+CFOToGKp/gjXUEWDnvIGwhnh8aq8wY4TMmEnKnvbogSW7RdMZv77JSARduS7/gv+khYEjA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@react-three/drei": {
+ "version": "10.7.8",
+ "resolved": "https://registry.npmjs.org/@react-three/drei/-/drei-10.7.8.tgz",
+ "integrity": "sha512-rJXyuzLm2Xq0kafHuR47ajDGbOe/pEhzIr4m8E8zwzQs0iNjloFDqBwRhrXmP/w+onLeYyN3EYPFW/cwWK/4yA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.26.0",
+ "@mediapipe/tasks-vision": "0.10.17",
+ "@monogrid/gainmap-js": "^3.0.6",
+ "@use-gesture/react": "^10.3.1",
+ "camera-controls": "^3.1.0",
+ "cross-env": "^7.0.3",
+ "detect-gpu": "^5.0.56",
+ "glsl-noise": "^0.0.0",
+ "hls.js": "^1.5.17",
+ "maath": "^0.10.8",
+ "meshline": "^3.3.1",
+ "stats-gl": "^2.2.8",
+ "stats.js": "^0.17.0",
+ "suspend-react": "^0.1.3",
+ "three-mesh-bvh": "^0.8.3",
+ "three-stdlib": "^2.35.6",
+ "troika-three-text": "^0.52.4",
+ "tunnel-rat": "^0.1.2",
+ "use-sync-external-store": "^1.4.0",
+ "utility-types": "^3.11.0",
+ "zustand": "^5.0.1"
+ },
+ "peerDependencies": {
+ "@react-three/fiber": "^9.0.0",
+ "react": "^19",
+ "react-dom": "^19",
+ "three": ">=0.159"
+ },
+ "peerDependenciesMeta": {
+ "react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@react-three/fiber": {
+ "version": "9.7.0",
+ "resolved": "https://registry.npmjs.org/@react-three/fiber/-/fiber-9.7.0.tgz",
+ "integrity": "sha512-EWm9FwcaOZQu/ExFW5rggoCMM1NJet5YbxVxKaOE+KSncrjU0Wx7017qSyGFvupviK89nMYGCWU3BIK4dI1clw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@babel/runtime": "^7.17.8",
+ "@types/webxr": "*",
+ "base64-js": "^1.5.1",
+ "buffer": "^6.0.3",
+ "its-fine": "^2.0.0",
+ "react-use-measure": "^2.1.7",
+ "scheduler": "^0.27.0",
+ "suspend-react": "^0.1.3",
+ "use-sync-external-store": "^1.4.0",
+ "zustand": "^5.0.3"
+ },
+ "peerDependencies": {
+ "expo": ">=43.0",
+ "expo-asset": ">=8.4",
+ "expo-file-system": ">=11.0",
+ "expo-gl": ">=11.0",
+ "react": ">=19 <19.3",
+ "react-dom": ">=19 <19.3",
+ "react-native": ">=0.78",
+ "three": ">=0.156"
+ },
+ "peerDependenciesMeta": {
+ "expo": {
+ "optional": true
+ },
+ "expo-asset": {
+ "optional": true
+ },
+ "expo-file-system": {
+ "optional": true
+ },
+ "expo-gl": {
+ "optional": true
+ },
+ "react-dom": {
+ "optional": true
+ },
+ "react-native": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@react-three/postprocessing": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@react-three/postprocessing/-/postprocessing-3.0.5.tgz",
+ "integrity": "sha512-rqxoH8cjq51w5yZ7Re3WNPVVDdSsuVwEYA+Nl90/nFLv0MIxYGjMkqhc6akp5+VLNwZD2aqOd8KcwuZW7NeUKQ==",
+ "license": "MIT",
+ "dependencies": {
+ "maath": "^0.10.8",
+ "n8ao": "^2.0.0"
+ },
+ "peerDependencies": {
+ "@react-three/fiber": ">=9.7.0",
+ "postprocessing": "^6.36.0",
+ "react": "^19.2.0",
+ "three": ">= 0.182.0"
+ }
+ },
+ "node_modules/@rolldown/binding-android-arm64": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.3.tgz",
+ "integrity": "sha512-zrJtHDcaZJ1Fp7xf4hNl+7seH9Cn/N5TwLYkhgXREtBwAd/jaqW3uqeHxpDugJLVICWg4eW44kOQEGJ1r6jCGw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-darwin-arm64": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.3.tgz",
+ "integrity": "sha512-ieIiibVCp0tX7TLu2cafoNPv8wJyYi01ekXpbf8q2j7F4rGAhhXb/eQh7ge9DRBY78GwmRQtvjZDux7EDbA8kA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-darwin-x64": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.3.tgz",
+ "integrity": "sha512-Zh9tCon19eDXJoihx0rqKhMUlMYqzwj3aPsSuHmI4RWZh62dWUL+DJN4C5YQya5TcQBJU/Fe8+rY0jhXTQITqA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-freebsd-x64": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.3.tgz",
+ "integrity": "sha512-nGbJWewA1wrXXZiQhjAT5rhibGfns5ZNkDVqxsO6zJ3f3YvpoDNNmGMSbbhLuXKjNScaBJVOAboztAWVespQMg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-linux-arm-gnueabihf": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.3.tgz",
+ "integrity": "sha512-QNniJr5Kml0kDEB98jiDOJjXNroxIIi0IXIbdYzY26Xt1pVbeP62+KnoIZLwirOymX/0jDk/2gI/bNUv7A7OIw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-linux-arm64-gnu": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.3.tgz",
+ "integrity": "sha512-TkqEAcmmvH3I/q4114NB4RVt6241Dao48pF45uLcFGrwAaIn0iITgTAKP/dLjbN0R4buJjGb91+UHSoFmpgIWw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-linux-arm64-musl": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.3.tgz",
+ "integrity": "sha512-NHqjnxpsndf4MPymxteFAWHHfkTL8HjWh1KB7z23ofZ6QO2euONuxDXjat69dKZRALnGypg8k8SsK8vZJoXv1Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-linux-ppc64-gnu": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.3.tgz",
+ "integrity": "sha512-6tbrbwfz5GB9DQ4Jwo6hy9v+vR31xZlvzZ6n5Xut6Hhx5PvrA9q/HsK8KMaYQp063iqZGXwNvZtYNLD7EM/x0w==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-linux-s390x-gnu": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.3.tgz",
+ "integrity": "sha512-oyuXxXmoZHjXC917IAPFAAv4wWAa0cM9afk8nx1+9/jNNOX1uPf8yDA6p7G0RypOfw/X0PQt5IfoquY1um+zSg==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-linux-x64-gnu": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.3.tgz",
+ "integrity": "sha512-TytMwF2KVGqP2tgd0I1OY0PAv78dZRAYcF5ssDzjM34SUXCED3uXvSd5+lHoC0bTD6eEdFz7LdQNCO1y0oVk9w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-linux-x64-musl": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.3.tgz",
+ "integrity": "sha512-/E9m3qstrJFVPoULV25mVQblSNExY2+kBsYe4sy0Tn0yOOgJ8wZbZt3KnRbF/XeU2Gl1STKUQnDNTqhIE5MD4A==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-openharmony-arm64": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.3.tgz",
+ "integrity": "sha512-Kr0OcsoQI816i6HOl3vFHpd1K0eZyh76zgfj4c1nTyaTsd5r2Mj1lwM4R90y/qaCfmTn9eHy0SKwi98eitRxug==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-win32-arm64-msvc": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.3.tgz",
+ "integrity": "sha512-hOtMwTqnME+/gJcH/PCZ0wn0zPUjiWOgkHpxbSJpfGKMezHltx1S7/k1SitzVa7Ww2cqrDDaFbZEhcJZO8o+Jw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-win32-x64-msvc": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.3.tgz",
+ "integrity": "sha512-ekcqMMkI2PlhYnfzQnB/cEdYUVVJViWvoUyLrbzgDoi3Snfc1mVBwdnc306ufA5ejy8JSPjT2RlW1nQSjW7efg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/pluginutils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz",
+ "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@tweenjs/tween.js": {
+ "version": "23.1.3",
+ "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-23.1.3.tgz",
+ "integrity": "sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/draco3d": {
+ "version": "1.4.10",
+ "resolved": "https://registry.npmjs.org/@types/draco3d/-/draco3d-1.4.10.tgz",
+ "integrity": "sha512-AX22jp8Y7wwaBgAixaSvkoG4M/+PlAcm3Qs4OW8yT9DM4xUpWKeFhLueTAyZF39pviAdcDdeJoACapiAceqNcw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/node": {
+ "version": "24.13.3",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-24.13.3.tgz",
+ "integrity": "sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "undici-types": "~7.18.0"
+ }
+ },
+ "node_modules/@types/offscreencanvas": {
+ "version": "2019.7.3",
+ "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.3.tgz",
+ "integrity": "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==",
+ "license": "MIT"
+ },
+ "node_modules/@types/react": {
+ "version": "19.2.18",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.18.tgz",
+ "integrity": "sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "csstype": "^3.2.2"
+ }
+ },
+ "node_modules/@types/react-dom": {
+ "version": "19.2.4",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.4.tgz",
+ "integrity": "sha512-Bsc+QHgp+P/F02XDzNCY9jnZNCUuLki36KT7VKrTXXLdHf+vHMNZnW1rVu5DNW/rCK+fya3DATySbLM4yhtKUw==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "^19.2.0"
+ }
+ },
+ "node_modules/@types/react-reconciler": {
+ "version": "0.28.9",
+ "resolved": "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.28.9.tgz",
+ "integrity": "sha512-HHM3nxyUZ3zAylX8ZEyrDNd2XZOnQ0D5XfunJF5FLQnZbHHYq4UWvW1QfelQNXv1ICNkwYhfxjwfnqivYB6bFg==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*"
+ }
+ },
+ "node_modules/@types/stats.js": {
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@types/stats.js/-/stats.js-0.17.4.tgz",
+ "integrity": "sha512-jIBvWWShCvlBqBNIZt0KAshWpvSjhkwkEu4ZUcASoAvhmrgAUI2t1dXrjSL4xXVLB4FznPrIsX3nKXFl/Dt4vA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/three": {
+ "version": "0.185.4",
+ "resolved": "https://registry.npmjs.org/@types/three/-/three-0.185.4.tgz",
+ "integrity": "sha512-gAsBIC07NIFrxjbf7tH2t71c38uulFfk/RFoC7FNBSjMRAQ8J1x/RBvusX0N5PJouaYFJawXQqfCQ0RKUx/1nA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@dimforge/rapier3d-compat": "~0.12.0",
+ "@tweenjs/tween.js": "~23.1.3",
+ "@types/stats.js": "*",
+ "@types/webxr": ">=0.5.17",
+ "fflate": "~0.8.2",
+ "meshoptimizer": "~1.1.1"
+ }
+ },
+ "node_modules/@types/webxr": {
+ "version": "0.5.24",
+ "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.24.tgz",
+ "integrity": "sha512-h8fgEd/DpoS9CBrjEQXR+dIDraopAEfu4wYVNY2tEPwk60stPWhvZMf4Foo5FakuQ7HFZoa8WceaWFervK2Ovg==",
+ "license": "MIT"
+ },
+ "node_modules/@use-gesture/core": {
+ "version": "10.3.1",
+ "resolved": "https://registry.npmjs.org/@use-gesture/core/-/core-10.3.1.tgz",
+ "integrity": "sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw==",
+ "license": "MIT"
+ },
+ "node_modules/@use-gesture/react": {
+ "version": "10.3.1",
+ "resolved": "https://registry.npmjs.org/@use-gesture/react/-/react-10.3.1.tgz",
+ "integrity": "sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g==",
+ "license": "MIT",
+ "dependencies": {
+ "@use-gesture/core": "10.3.1"
+ },
+ "peerDependencies": {
+ "react": ">= 16.8.0"
+ }
+ },
+ "node_modules/@vitejs/plugin-react": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.5.tgz",
+ "integrity": "sha512-BOVzne/NL162sMdResB25mUv+vWMF5NoAjNf09TeGlE7ZpszZWSD3winycicLJw72yeVsoCn/2kOhEuCvEShMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@rolldown/pluginutils": "^1.0.1"
+ },
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "peerDependencies": {
+ "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0",
+ "babel-plugin-react-compiler": "^1.0.0",
+ "vite": "^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@rolldown/plugin-babel": {
+ "optional": true
+ },
+ "babel-plugin-react-compiler": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/bidi-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz",
+ "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==",
+ "license": "MIT",
+ "dependencies": {
+ "require-from-string": "^2.0.2"
+ }
+ },
+ "node_modules/buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
+ },
+ "node_modules/camera-controls": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/camera-controls/-/camera-controls-3.1.2.tgz",
+ "integrity": "sha512-xkxfpG2ECZ6Ww5/9+kf4mfg1VEYAoe9aDSY+IwF0UEs7qEzwy0aVRfs2grImIECs/PoBtWFrh7RXsQkwG922JA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=22.0.0",
+ "npm": ">=10.5.1"
+ },
+ "peerDependencies": {
+ "three": ">=0.126.1"
+ }
+ },
+ "node_modules/cookie": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz",
+ "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/cross-env": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz",
+ "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==",
+ "license": "MIT",
+ "dependencies": {
+ "cross-spawn": "^7.0.1"
+ },
+ "bin": {
+ "cross-env": "src/bin/cross-env.js",
+ "cross-env-shell": "src/bin/cross-env-shell.js"
+ },
+ "engines": {
+ "node": ">=10.14",
+ "npm": ">=6",
+ "yarn": ">=1"
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/csstype": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
+ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
+ "license": "MIT"
+ },
+ "node_modules/detect-gpu": {
+ "version": "5.0.70",
+ "resolved": "https://registry.npmjs.org/detect-gpu/-/detect-gpu-5.0.70.tgz",
+ "integrity": "sha512-bqerEP1Ese6nt3rFkwPnGbsUF9a4q+gMmpTVVOEzoCyeCc+y7/RvJnQZJx1JwhgQI5Ntg0Kgat8Uu7XpBqnz1w==",
+ "license": "MIT",
+ "dependencies": {
+ "webgl-constants": "^1.1.1"
+ }
+ },
+ "node_modules/detect-libc": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
+ "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/draco3d": {
+ "version": "1.5.7",
+ "resolved": "https://registry.npmjs.org/draco3d/-/draco3d-1.5.7.tgz",
+ "integrity": "sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/fflate": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.3.tgz",
+ "integrity": "sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==",
+ "license": "MIT"
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/glsl-noise": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/glsl-noise/-/glsl-noise-0.0.0.tgz",
+ "integrity": "sha512-b/ZCF6amfAUb7dJM/MxRs7AetQEahYzJ8PtgfrmEdtw6uyGOr+ZSGtgjFm6mfsBkxJ4d2W7kg+Nlqzqvn3Bc0w==",
+ "license": "MIT"
+ },
+ "node_modules/gsap": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/gsap/-/gsap-3.15.0.tgz",
+ "integrity": "sha512-dMW4CWBTUK1AEEDeZc1g4xpPGIrSf9fJF960qbTZmN/QwZIWY5wgliS6JWl9/25fpTGJrMRtSjGtOmPnfjZB+A==",
+ "license": "Standard 'no charge' license: https://gsap.com/standard-license."
+ },
+ "node_modules/hls.js": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.6.18.tgz",
+ "integrity": "sha512-Rtovq9oJt9HWBqFJF9wZrZM7dRvdGHYNdMMv+wSDGDE2+FIybgs8RPJpR3kya1TZKBHVv2NOgLmn/M0MFjrQ3g==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/immediate": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
+ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
+ "license": "MIT"
+ },
+ "node_modules/is-promise": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
+ "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==",
+ "license": "MIT"
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "license": "ISC"
+ },
+ "node_modules/its-fine": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/its-fine/-/its-fine-2.0.0.tgz",
+ "integrity": "sha512-KLViCmWx94zOvpLwSlsx6yOCeMhZYaxrJV87Po5k/FoZzcPSahvK5qJ7fYhS61sZi5ikmh2S3Hz55A2l3U69ng==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/react-reconciler": "^0.28.9"
+ },
+ "peerDependencies": {
+ "react": "^19.0.0"
+ }
+ },
+ "node_modules/lie": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
+ "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
+ "license": "MIT",
+ "dependencies": {
+ "immediate": "~3.0.5"
+ }
+ },
+ "node_modules/lightningcss": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz",
+ "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==",
+ "dev": true,
+ "license": "MPL-2.0",
+ "dependencies": {
+ "detect-libc": "^2.0.3"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "lightningcss-android-arm64": "1.33.0",
+ "lightningcss-darwin-arm64": "1.33.0",
+ "lightningcss-darwin-x64": "1.33.0",
+ "lightningcss-freebsd-x64": "1.33.0",
+ "lightningcss-linux-arm-gnueabihf": "1.33.0",
+ "lightningcss-linux-arm64-gnu": "1.33.0",
+ "lightningcss-linux-arm64-musl": "1.33.0",
+ "lightningcss-linux-x64-gnu": "1.33.0",
+ "lightningcss-linux-x64-musl": "1.33.0",
+ "lightningcss-win32-arm64-msvc": "1.33.0",
+ "lightningcss-win32-x64-msvc": "1.33.0"
+ }
+ },
+ "node_modules/lightningcss-android-arm64": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz",
+ "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-darwin-arm64": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz",
+ "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-darwin-x64": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz",
+ "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-freebsd-x64": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz",
+ "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm-gnueabihf": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz",
+ "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-gnu": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz",
+ "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-musl": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz",
+ "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-gnu": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz",
+ "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-musl": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz",
+ "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-win32-arm64-msvc": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz",
+ "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-win32-x64-msvc": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz",
+ "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/maath": {
+ "version": "0.10.8",
+ "resolved": "https://registry.npmjs.org/maath/-/maath-0.10.8.tgz",
+ "integrity": "sha512-tRvbDF0Pgqz+9XUa4jjfgAQ8/aPKmQdWXilFu2tMy4GWj4NOsx99HlULO4IeREfbO3a0sA145DZYyvXPkybm0g==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/three": ">=0.134.0",
+ "three": ">=0.134.0"
+ }
+ },
+ "node_modules/meshline": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/meshline/-/meshline-3.3.1.tgz",
+ "integrity": "sha512-/TQj+JdZkeSUOl5Mk2J7eLcYTLiQm2IDzmlSvYm7ov15anEcDJ92GHqqazxTSreeNgfnYu24kiEvvv0WlbCdFQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "three": ">=0.137"
+ }
+ },
+ "node_modules/meshoptimizer": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-1.1.1.tgz",
+ "integrity": "sha512-oRFNWJRDA/WTrVj7NWvqa5HqE1t9MYDj2VaWirQCzCCrAd2GHrqR/sQezCxiWATPNlKTcRaPRHPJwIRoPBAp5g==",
+ "license": "MIT"
+ },
+ "node_modules/n8ao": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/n8ao/-/n8ao-2.0.1.tgz",
+ "integrity": "sha512-MoP1QKUdj4/3cKEnhFl917t0eQwWGER1l43ckz5mNOPyYWGRDGQbVoTOQz/VBvy01in6QVNG+AL6Xxx5AjZBYA==",
+ "license": "ISC",
+ "peerDependencies": {
+ "postprocessing": ">=6.30.0",
+ "three": ">=0.137"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.18",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz",
+ "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/oxlint": {
+ "version": "1.78.0",
+ "resolved": "https://registry.npmjs.org/oxlint/-/oxlint-1.78.0.tgz",
+ "integrity": "sha512-QgQePuxIqKOzo1KSjG2EnITEeWvWnKAm77eq8nrMtf6AGoA+zyGc4PFYtDNJSD25g/ibOwfQ851hZ4/SPkMVoA==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "oxlint": "bin/oxlint"
+ },
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/Boshen"
+ },
+ "optionalDependencies": {
+ "@oxlint/binding-android-arm-eabi": "1.78.0",
+ "@oxlint/binding-android-arm64": "1.78.0",
+ "@oxlint/binding-darwin-arm64": "1.78.0",
+ "@oxlint/binding-darwin-x64": "1.78.0",
+ "@oxlint/binding-freebsd-x64": "1.78.0",
+ "@oxlint/binding-linux-arm-gnueabihf": "1.78.0",
+ "@oxlint/binding-linux-arm-musleabihf": "1.78.0",
+ "@oxlint/binding-linux-arm64-gnu": "1.78.0",
+ "@oxlint/binding-linux-arm64-musl": "1.78.0",
+ "@oxlint/binding-linux-ppc64-gnu": "1.78.0",
+ "@oxlint/binding-linux-riscv64-gnu": "1.78.0",
+ "@oxlint/binding-linux-riscv64-musl": "1.78.0",
+ "@oxlint/binding-linux-s390x-gnu": "1.78.0",
+ "@oxlint/binding-linux-x64-gnu": "1.78.0",
+ "@oxlint/binding-linux-x64-musl": "1.78.0",
+ "@oxlint/binding-openharmony-arm64": "1.78.0",
+ "@oxlint/binding-win32-arm64-msvc": "1.78.0",
+ "@oxlint/binding-win32-ia32-msvc": "1.78.0",
+ "@oxlint/binding-win32-x64-msvc": "1.78.0"
+ },
+ "peerDependencies": {
+ "oxlint-tsgolint": ">=7.0.2001",
+ "vite-plus": "*"
+ },
+ "peerDependenciesMeta": {
+ "oxlint-tsgolint": {
+ "optional": true
+ },
+ "vite-plus": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/picomatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz",
+ "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.5.26",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz",
+ "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.17",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/postprocessing": {
+ "version": "6.39.4",
+ "resolved": "https://registry.npmjs.org/postprocessing/-/postprocessing-6.39.4.tgz",
+ "integrity": "sha512-oAS/PjAbc/xT3OzjUrGsorJ4J064XwhVD2t0OwKLP/E8QwDMUJ0oOv6ZI1SYMtLchv4g0ySEx+JcLy92+48vlA==",
+ "license": "Zlib",
+ "peer": true,
+ "peerDependencies": {
+ "three": ">= 0.168.0 < 0.186.0"
+ }
+ },
+ "node_modules/potpack": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz",
+ "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==",
+ "license": "ISC"
+ },
+ "node_modules/promise-worker-transferable": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/promise-worker-transferable/-/promise-worker-transferable-1.0.4.tgz",
+ "integrity": "sha512-bN+0ehEnrXfxV2ZQvU2PetO0n4gqBD4ulq3MI1WOPLgr7/Mg9yRQkX5+0v1vagr74ZTsl7XtzlaYDo2EuCeYJw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "is-promise": "^2.1.0",
+ "lie": "^3.0.2"
+ }
+ },
+ "node_modules/react": {
+ "version": "19.2.8",
+ "resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz",
+ "integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-dom": {
+ "version": "19.2.8",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz",
+ "integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "scheduler": "^0.27.0"
+ },
+ "peerDependencies": {
+ "react": "^19.2.8"
+ }
+ },
+ "node_modules/react-router": {
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.18.2.tgz",
+ "integrity": "sha512-aUVMjFm3GAPTTZL7oYr5E7ETiqfQCHRLH+B+5afnICvf0r7kkK4eR6SMuwbSTJw/7t+12khT/Kahij49fqOCIg==",
+ "license": "MIT",
+ "dependencies": {
+ "cookie": "^1.0.1",
+ "set-cookie-parser": "^2.6.0"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=18",
+ "react-dom": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/react-router-dom": {
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.18.2.tgz",
+ "integrity": "sha512-AIKJ/jgGlFb3EbfCXk5Gzshiwt+l3mqbCrNjmEWMMjqQxNJ3svBa6bgzFyCC2Sw3RA0VWF1kg3uQf2OFhxb8hw==",
+ "license": "MIT",
+ "dependencies": {
+ "react-router": "7.18.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=18",
+ "react-dom": ">=18"
+ }
+ },
+ "node_modules/react-use-measure": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/react-use-measure/-/react-use-measure-2.1.7.tgz",
+ "integrity": "sha512-KrvcAo13I/60HpwGO5jpW7E9DfusKyLPLvuHlUyP5zqnmAPhNc6qTRjUQrdTADl0lpPpDVU2/Gg51UlOGHXbdg==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": ">=16.13",
+ "react-dom": ">=16.13"
+ },
+ "peerDependenciesMeta": {
+ "react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rolldown": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.3.tgz",
+ "integrity": "sha512-rn9wpmxplLf7NLNyCk9FyWh3FM43DbY8jOzCdEPzH7uflhTftRbCEpqi6Ly2osgoU8OwObtmavMbWLaWy4LX7A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@oxc-project/types": "=0.143.0",
+ "@rolldown/pluginutils": "^1.0.0"
+ },
+ "bin": {
+ "rolldown": "bin/cli.mjs"
+ },
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "optionalDependencies": {
+ "@rolldown/binding-android-arm64": "1.2.3",
+ "@rolldown/binding-darwin-arm64": "1.2.3",
+ "@rolldown/binding-darwin-x64": "1.2.3",
+ "@rolldown/binding-freebsd-x64": "1.2.3",
+ "@rolldown/binding-linux-arm-gnueabihf": "1.2.3",
+ "@rolldown/binding-linux-arm64-gnu": "1.2.3",
+ "@rolldown/binding-linux-arm64-musl": "1.2.3",
+ "@rolldown/binding-linux-ppc64-gnu": "1.2.3",
+ "@rolldown/binding-linux-s390x-gnu": "1.2.3",
+ "@rolldown/binding-linux-x64-gnu": "1.2.3",
+ "@rolldown/binding-linux-x64-musl": "1.2.3",
+ "@rolldown/binding-openharmony-arm64": "1.2.3",
+ "@rolldown/binding-win32-arm64-msvc": "1.2.3",
+ "@rolldown/binding-win32-x64-msvc": "1.2.3"
+ }
+ },
+ "node_modules/scheduler": {
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz",
+ "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==",
+ "license": "MIT"
+ },
+ "node_modules/set-cookie-parser": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz",
+ "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==",
+ "license": "MIT"
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/stats-gl": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/stats-gl/-/stats-gl-2.4.2.tgz",
+ "integrity": "sha512-g5O9B0hm9CvnM36+v7SFl39T7hmAlv541tU81ME8YeSb3i1CIP5/QdDeSB3A0la0bKNHpxpwxOVRo2wFTYEosQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/three": "*",
+ "three": "^0.170.0"
+ },
+ "peerDependencies": {
+ "@types/three": "*",
+ "three": "*"
+ }
+ },
+ "node_modules/stats-gl/node_modules/three": {
+ "version": "0.170.0",
+ "resolved": "https://registry.npmjs.org/three/-/three-0.170.0.tgz",
+ "integrity": "sha512-FQK+LEpYc0fBD+J8g6oSEyyNzjp+Q7Ks1C568WWaoMRLW+TkNNWmenWeGgJjV105Gd+p/2ql1ZcjYvNiPZBhuQ==",
+ "license": "MIT"
+ },
+ "node_modules/stats.js": {
+ "version": "0.17.0",
+ "resolved": "https://registry.npmjs.org/stats.js/-/stats.js-0.17.0.tgz",
+ "integrity": "sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw==",
+ "license": "MIT"
+ },
+ "node_modules/suspend-react": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/suspend-react/-/suspend-react-0.1.3.tgz",
+ "integrity": "sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": ">=17.0"
+ }
+ },
+ "node_modules/three": {
+ "version": "0.185.1",
+ "resolved": "https://registry.npmjs.org/three/-/three-0.185.1.tgz",
+ "integrity": "sha512-5aojFCXKwnjBRZvUnt3WFfEcvUJgkN5LlijRFN95hMy8WVkG4I0QNcJE+OuWvuJ0bOdStrbfXn0pkd6/QyiAlg==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/three-mesh-bvh": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/three-mesh-bvh/-/three-mesh-bvh-0.8.3.tgz",
+ "integrity": "sha512-4G5lBaF+g2auKX3P0yqx+MJC6oVt6sB5k+CchS6Ob0qvH0YIhuUk1eYr7ktsIpY+albCqE80/FVQGV190PmiAg==",
+ "license": "MIT",
+ "peerDependencies": {
+ "three": ">= 0.159.0"
+ }
+ },
+ "node_modules/three-stdlib": {
+ "version": "2.36.1",
+ "resolved": "https://registry.npmjs.org/three-stdlib/-/three-stdlib-2.36.1.tgz",
+ "integrity": "sha512-XyGQrFmNQ5O/IoKm556ftwKsBg11TIb301MB5dWNicziQBEs2g3gtOYIf7pFiLa0zI2gUwhtCjv9fmjnxKZ1Cg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/draco3d": "^1.4.0",
+ "@types/offscreencanvas": "^2019.6.4",
+ "@types/webxr": "^0.5.2",
+ "draco3d": "^1.4.1",
+ "fflate": "^0.6.9",
+ "potpack": "^1.0.1"
+ },
+ "peerDependencies": {
+ "three": ">=0.128.0"
+ }
+ },
+ "node_modules/three-stdlib/node_modules/fflate": {
+ "version": "0.6.11",
+ "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.6.11.tgz",
+ "integrity": "sha512-3JyEFWGjFn7zHmoa9+zG1BmW7X2okcmAB+0Cnu9UFbVs/jCBnl2A8o065ZlXiw145K3eBM3uLuzrYXC0RK7eDg==",
+ "license": "MIT"
+ },
+ "node_modules/tinyglobby": {
+ "version": "0.2.17",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz",
+ "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/SuperchupuDev"
+ }
+ },
+ "node_modules/troika-three-text": {
+ "version": "0.52.5",
+ "resolved": "https://registry.npmjs.org/troika-three-text/-/troika-three-text-0.52.5.tgz",
+ "integrity": "sha512-Ry3jRhic9pzcY4JduSvRRyDmVOSqEW19gT4vtK+aCiPNVcDlmkxvGG0YbFd36RTDq1wExOupXnvNF/j1oiHHDA==",
+ "license": "MIT",
+ "dependencies": {
+ "bidi-js": "^1.0.2",
+ "troika-three-utils": "^0.52.5",
+ "troika-worker-utils": "^0.52.0",
+ "webgl-sdf-generator": "1.1.1"
+ },
+ "peerDependencies": {
+ "three": ">=0.125.0"
+ }
+ },
+ "node_modules/troika-three-utils": {
+ "version": "0.52.5",
+ "resolved": "https://registry.npmjs.org/troika-three-utils/-/troika-three-utils-0.52.5.tgz",
+ "integrity": "sha512-WsePbcX8RtfidRfsxK1eCZCjF81ZDzAKHH/evLs0hdV2wpoCb0vArGZHdzdOJrSS3k4zfdtbKDaBh8+phkrYnw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "three": ">=0.125.0"
+ }
+ },
+ "node_modules/troika-worker-utils": {
+ "version": "0.52.0",
+ "resolved": "https://registry.npmjs.org/troika-worker-utils/-/troika-worker-utils-0.52.0.tgz",
+ "integrity": "sha512-W1CpvTHykaPH5brv5VHLfQo9D1OYuo0cSBEUQFFT/nBUzM8iD6Lq2/tgG/f1OelbAS1WtaTPQzE5uM49egnngw==",
+ "license": "MIT"
+ },
+ "node_modules/tunnel-rat": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/tunnel-rat/-/tunnel-rat-0.1.2.tgz",
+ "integrity": "sha512-lR5VHmkPhzdhrM092lI2nACsLO4QubF0/yoOhzX7c+wIpbN1GjHNzCc91QlpxBi+cnx8vVJ+Ur6vL5cEoQPFpQ==",
+ "license": "MIT",
+ "dependencies": {
+ "zustand": "^4.3.2"
+ }
+ },
+ "node_modules/tunnel-rat/node_modules/zustand": {
+ "version": "4.5.7",
+ "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.7.tgz",
+ "integrity": "sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==",
+ "license": "MIT",
+ "dependencies": {
+ "use-sync-external-store": "^1.2.2"
+ },
+ "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
+ }
+ }
+ },
+ "node_modules/typescript": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz",
+ "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/undici-types": {
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz",
+ "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/use-sync-external-store": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz",
+ "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/utility-types": {
+ "version": "3.11.0",
+ "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz",
+ "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/vite": {
+ "version": "8.2.1",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.1.tgz",
+ "integrity": "sha512-EU/eS7BH3XROHh2YnBefjM6DBKA6ZeMZEYQbj7NLWg5wHYlhB8B/Mayd5XsgWq+NFYccDOTemRpdETWR6Ka/lw==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "lightningcss": "^1.33.0",
+ "picomatch": "^4.0.5",
+ "postcss": "^8.5.25",
+ "rolldown": "~1.2.1",
+ "tinyglobby": "^0.2.17"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^20.19.0 || >=22.12.0",
+ "@vitejs/devtools": "^0.4.0",
+ "esbuild": "^0.27.0 || ^0.28.0",
+ "jiti": ">=1.21.0",
+ "less": "^4.0.0",
+ "sass": "^1.70.0",
+ "sass-embedded": "^1.70.0",
+ "stylus": ">=0.54.8",
+ "sugarss": "^5.0.0",
+ "terser": "^5.16.0",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "@vitejs/devtools": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ },
+ "jiti": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ },
+ "tsx": {
+ "optional": true
+ },
+ "yaml": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webgl-constants": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/webgl-constants/-/webgl-constants-1.1.1.tgz",
+ "integrity": "sha512-LkBXKjU5r9vAW7Gcu3T5u+5cvSvh5WwINdr0C+9jpzVB41cjQAP5ePArDtk/WHYdVj0GefCgM73BA7FlIiNtdg=="
+ },
+ "node_modules/webgl-sdf-generator": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/webgl-sdf-generator/-/webgl-sdf-generator-1.1.1.tgz",
+ "integrity": "sha512-9Z0JcMTFxeE+b2x1LJTdnaT8rT8aEp7MVxkNwoycNmJWwPdzoXzMh0BjJSh/AEFP+KPYZUli814h8bJZFIZ2jA==",
+ "license": "MIT"
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/zustand": {
+ "version": "5.0.14",
+ "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.14.tgz",
+ "integrity": "sha512-/8tAspM5LMPr28b3fwLYrtdj77ECpfZviaP75CMTnwO8ISyaE4GDIG/9rDDYq/cH9D2Xw2A2RXglLInmVBQB/g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.20.0"
+ },
+ "peerDependencies": {
+ "@types/react": ">=18.0.0",
+ "immer": ">=9.0.6",
+ "react": ">=18.0.0",
+ "use-sync-external-store": ">=1.2.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "immer": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "use-sync-external-store": {
+ "optional": true
+ }
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..aa33987
--- /dev/null
+++ b/package.json
@@ -0,0 +1,32 @@
+{
+ "name": "vyryi-front",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "tsc -b && vite build",
+ "lint": "oxlint",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "@react-three/drei": "^10.7.8",
+ "@react-three/fiber": "^9.7.0",
+ "@react-three/postprocessing": "^3.0.5",
+ "gsap": "^3.15.0",
+ "react": "^19.2.8",
+ "react-dom": "^19.2.8",
+ "react-router-dom": "^7.18.2",
+ "three": "^0.185.1"
+ },
+ "devDependencies": {
+ "@types/node": "^24.13.3",
+ "@types/react": "^19.2.17",
+ "@types/react-dom": "^19.2.3",
+ "@types/three": "^0.185.4",
+ "@vitejs/plugin-react": "^6.0.4",
+ "oxlint": "^1.75.0",
+ "typescript": "~6.0.2",
+ "vite": "^8.2.0"
+ }
+}
diff --git a/public/favicon.svg b/public/favicon.svg
new file mode 100644
index 0000000..6893eb1
--- /dev/null
+++ b/public/favicon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons.svg b/public/icons.svg
new file mode 100644
index 0000000..e952219
--- /dev/null
+++ b/public/icons.svg
@@ -0,0 +1,24 @@
+
diff --git a/public/logo.png b/public/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..b036856bff1a726224ef3763867fb6c20974bfc8
GIT binary patch
literal 192871
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 |