├── src
├── vite-env.d.ts
├── index.css
├── main.tsx
├── ModelView.css
├── util
│ └── fetch.ts
├── App.tsx
├── App.css
├── components
│ └── VrmLibrary.tsx
├── ModelView.tsx
└── vrm.ts
├── src-tauri
├── build.rs
├── icons
│ ├── 32x32.png
│ ├── icon.icns
│ ├── icon.ico
│ ├── icon.png
│ ├── 128x128.png
│ ├── 128x128@2x.png
│ ├── StoreLogo.png
│ ├── Square30x30Logo.png
│ ├── Square44x44Logo.png
│ ├── Square71x71Logo.png
│ ├── Square89x89Logo.png
│ ├── Square107x107Logo.png
│ ├── Square142x142Logo.png
│ ├── Square150x150Logo.png
│ ├── Square284x284Logo.png
│ └── Square310x310Logo.png
├── .gitignore
├── Cargo.toml
├── tauri.conf.json
└── src
│ └── main.rs
├── postcss.config.js
├── tsconfig.json
├── tailwind.config.js
├── vite.config.ts
├── index.html
├── .gitignore
├── README.md
├── tsconfig.node.json
├── tsconfig.app.json
├── eslint.config.js
├── LICENSE
├── package.json
├── .github
└── workflows
│ └── build.yaml
└── pnpm-lock.yaml
/src/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/src-tauri/build.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | tauri_build::build()
3 | }
4 |
--------------------------------------------------------------------------------
/src-tauri/icons/32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cordx56/deskvrm/HEAD/src-tauri/icons/32x32.png
--------------------------------------------------------------------------------
/src-tauri/icons/icon.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cordx56/deskvrm/HEAD/src-tauri/icons/icon.icns
--------------------------------------------------------------------------------
/src-tauri/icons/icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cordx56/deskvrm/HEAD/src-tauri/icons/icon.ico
--------------------------------------------------------------------------------
/src-tauri/icons/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cordx56/deskvrm/HEAD/src-tauri/icons/icon.png
--------------------------------------------------------------------------------
/src-tauri/.gitignore:
--------------------------------------------------------------------------------
1 | # Generated by Cargo
2 | # will have compiled files and executables
3 | /target/
4 |
--------------------------------------------------------------------------------
/src-tauri/icons/128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cordx56/deskvrm/HEAD/src-tauri/icons/128x128.png
--------------------------------------------------------------------------------
/src-tauri/icons/128x128@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cordx56/deskvrm/HEAD/src-tauri/icons/128x128@2x.png
--------------------------------------------------------------------------------
/src-tauri/icons/StoreLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cordx56/deskvrm/HEAD/src-tauri/icons/StoreLogo.png
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | export default {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/src-tauri/icons/Square30x30Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cordx56/deskvrm/HEAD/src-tauri/icons/Square30x30Logo.png
--------------------------------------------------------------------------------
/src-tauri/icons/Square44x44Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cordx56/deskvrm/HEAD/src-tauri/icons/Square44x44Logo.png
--------------------------------------------------------------------------------
/src-tauri/icons/Square71x71Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cordx56/deskvrm/HEAD/src-tauri/icons/Square71x71Logo.png
--------------------------------------------------------------------------------
/src-tauri/icons/Square89x89Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cordx56/deskvrm/HEAD/src-tauri/icons/Square89x89Logo.png
--------------------------------------------------------------------------------
/src-tauri/icons/Square107x107Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cordx56/deskvrm/HEAD/src-tauri/icons/Square107x107Logo.png
--------------------------------------------------------------------------------
/src-tauri/icons/Square142x142Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cordx56/deskvrm/HEAD/src-tauri/icons/Square142x142Logo.png
--------------------------------------------------------------------------------
/src-tauri/icons/Square150x150Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cordx56/deskvrm/HEAD/src-tauri/icons/Square150x150Logo.png
--------------------------------------------------------------------------------
/src-tauri/icons/Square284x284Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cordx56/deskvrm/HEAD/src-tauri/icons/Square284x284Logo.png
--------------------------------------------------------------------------------
/src-tauri/icons/Square310x310Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cordx56/deskvrm/HEAD/src-tauri/icons/Square310x310Logo.png
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "files": [],
3 | "references": [
4 | { "path": "./tsconfig.app.json" },
5 | { "path": "./tsconfig.node.json" }
6 | ]
7 | }
8 |
--------------------------------------------------------------------------------
/tailwind.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('tailwindcss').Config} */
2 | export default {
3 | content: ["./src/**/*.{js,ts,jsx,tsx}"],
4 | theme: {
5 | extend: {},
6 | },
7 | plugins: [],
8 | };
9 |
--------------------------------------------------------------------------------
/src/index.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 | html,
6 | body {
7 | @apply w-full h-full;
8 | }
9 | #root {
10 | @apply w-full h-full;
11 | }
12 |
13 | * {
14 | @apply box-border;
15 | }
16 |
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "vite";
2 | import react from "@vitejs/plugin-react";
3 | import tsconfigPaths from "vite-tsconfig-paths";
4 |
5 | // https://vite.dev/config/
6 | export default defineConfig({
7 | server: {
8 | port: 3000,
9 | },
10 | plugins: [react(), tsconfigPaths()],
11 | });
12 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | deskvrm
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
--------------------------------------------------------------------------------
/src/main.tsx:
--------------------------------------------------------------------------------
1 | import { StrictMode } from "react";
2 | import { createRoot } from "react-dom/client";
3 | import { BrowserRouter, Routes, Route } from "react-router-dom";
4 | import "./index.css";
5 | import App from "./App.tsx";
6 | import ModelView from "./ModelView.tsx";
7 |
8 | createRoot(document.getElementById("root")!).render(
9 |
10 |
11 |
12 | } />
13 | } />
14 |
15 |
16 | ,
17 | );
18 |
--------------------------------------------------------------------------------
/src/ModelView.css:
--------------------------------------------------------------------------------
1 | .render {
2 | width: 100%;
3 | height: 100%;
4 | position: absolute;
5 | top: 0;
6 | left: 0;
7 | overflow: hidden;
8 | border: none;
9 | }
10 |
11 | .white {
12 | color: #fff;
13 | }
14 |
15 | /*
16 | .file {
17 | width: 100%;
18 | height: 100%;
19 | position: absolute;
20 | background-color: #fff;
21 | }
22 | .file .file-selector {
23 | position: relative;
24 | padding: 2em 1em;
25 | }
26 | .file input::file-selector-button {
27 | width: 100%;
28 | height: 100%;
29 | opacity: 0;
30 | position: absolute;
31 | top: 0;
32 | left: 0;
33 | }
34 | */
35 |
36 | canvas {
37 | border: none;
38 | }
39 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # deskvrm
2 |
3 | 画面上に小さなVRMモデルを表示するアプリケーションです。
4 | Windows、macOSに対応。
5 |
6 | ダウンロードは[リリースページ](https://github.com/cordx56/deskvrm/releases)よりどうぞ。
7 | Windowsは `.msi` 、macOSは `dmg` が使えます。
8 |
9 | ## 実装状況
10 |
11 | 優先度順
12 |
13 | - [x] VRM表示
14 | - [x] 影の導入
15 | - [ ] モーションの導入
16 | - [ ] キャラクターがユーザの操作に反応する
17 | - [x] マウス追従
18 |
19 | ## 使い方
20 |
21 | 起動したらメニューでファイル選択をしてください。
22 | ファイル選択後、自動で起動します。
23 |
24 | ファイル選択後、少ししたらVRMが読み込まれ、マウスで掴むことで動かせます。
25 | モデルをダブルクリックして掴むと回転、スクロールで拡大・縮小。
26 | 3回クリックでメニューに戻ります。
27 |
28 | ## macOSでアプリが壊れる場合
29 |
30 | dmgファイルからアプリをApplicationsに移して実行しようとすると、「壊れている」という趣旨のメッセージが表示されることがあります。
31 | 以下のコマンドを実行することで、正しく実行することができます。
32 |
33 | ```bash
34 | sudo xattr -rd com.apple.quarantine /Applications/deskvrm.app
35 | ```
36 |
--------------------------------------------------------------------------------
/src/util/fetch.ts:
--------------------------------------------------------------------------------
1 | export const listModel = async (): Promise => {
2 | const resp = await fetch(new URL(`http://localhost:8108/vrm`));
3 | if (resp.ok) {
4 | return (await resp.json()).models;
5 | } else {
6 | return [];
7 | }
8 | };
9 |
10 | export const readModel = async (name: string): Promise => {
11 | const resp = await fetch(new URL(`http://localhost:8108/vrm/${name}`));
12 | if (resp.ok) {
13 | return new Uint8Array(await resp.arrayBuffer());
14 | } else {
15 | return null;
16 | }
17 | };
18 |
19 | export const writeModel = async (name: string, body: ArrayBufferLike) => {
20 | await fetch(new URL(`http://localhost:8108/vrm/${name}`), {
21 | method: "POST",
22 | body,
23 | });
24 | };
25 |
--------------------------------------------------------------------------------
/tsconfig.node.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
4 | "target": "ES2022",
5 | "lib": ["ES2023"],
6 | "module": "ESNext",
7 | "skipLibCheck": true,
8 |
9 | /* Bundler mode */
10 | "moduleResolution": "bundler",
11 | "allowImportingTsExtensions": true,
12 | "isolatedModules": true,
13 | "moduleDetection": "force",
14 | "noEmit": true,
15 |
16 | /* Linting */
17 | "strict": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "noFallthroughCasesInSwitch": true,
21 | "noUncheckedSideEffectImports": true,
22 |
23 | "paths": {
24 | "@/*": ["./src/*"]
25 | }
26 | },
27 | "include": ["vite.config.ts"]
28 | }
29 |
--------------------------------------------------------------------------------
/src/App.tsx:
--------------------------------------------------------------------------------
1 | import { appWindow } from "@tauri-apps/api/window";
2 | import { emit } from "@tauri-apps/api/event";
3 | import { exit } from "@tauri-apps/api/process";
4 | import VrmLibrary from "@/components/VrmLibrary";
5 | import "@/App.css";
6 |
7 | export default () => {
8 | const onVrmSelect = async (name: string) => {
9 | emit("modelView", { vrm: encodeURIComponent(name) });
10 | await appWindow.hide();
11 | };
12 | return (
13 |
14 |
VRMモデル一覧
15 |
16 |
17 |
25 |
26 |
27 | );
28 | };
29 |
--------------------------------------------------------------------------------
/src/App.css:
--------------------------------------------------------------------------------
1 | .color {
2 | @apply bg-white dark:bg-neutral-900 text-black dark:text-neutral-300;
3 | }
4 |
5 | .ui {
6 | @apply p-4 w-full h-full overflow-hidden border-0 color;
7 | }
8 |
9 | .ui button {
10 | @apply my-1 px-4 py-1 border border-sky-500 bg-transparent hover:bg-sky-500/50 rounded-lg transition-all;
11 | }
12 | .ui input {
13 | @apply my-1 px-4 py-1 border border-sky-500 bg-transparent hover:bg-sky-500/50 rounded-lg transition-all;
14 | }
15 | .ui input[type="file"] {
16 | @apply px-2 py-0;
17 | }
18 | .ui ::file-selector-button {
19 | @apply pr-3 py-1 color bg-transparent border-y-0 border-l-0 border-r border-sky-500;
20 | }
21 |
22 | .ui a {
23 | @apply text-sky-500 cursor-pointer;
24 | }
25 | .ui p {
26 | @apply my-3;
27 | }
28 |
29 | .ui h3 {
30 | @apply my-1 text-xl;
31 | }
32 |
--------------------------------------------------------------------------------
/tsconfig.app.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
4 | "target": "ES2020",
5 | "useDefineForClassFields": true,
6 | "lib": ["ES2020", "DOM", "DOM.Iterable"],
7 | "module": "ESNext",
8 | "skipLibCheck": true,
9 |
10 | /* Bundler mode */
11 | "moduleResolution": "bundler",
12 | "allowImportingTsExtensions": true,
13 | "isolatedModules": true,
14 | "moduleDetection": "force",
15 | "noEmit": true,
16 | "jsx": "react-jsx",
17 |
18 | /* Linting */
19 | "strict": true,
20 | "noUnusedLocals": true,
21 | "noUnusedParameters": true,
22 | "noFallthroughCasesInSwitch": true,
23 | "noUncheckedSideEffectImports": true,
24 |
25 |
26 | "paths": {
27 | "@/*": ["./src/*"]
28 | }
29 | },
30 | "include": ["src"]
31 | }
32 |
--------------------------------------------------------------------------------
/eslint.config.js:
--------------------------------------------------------------------------------
1 | import js from '@eslint/js'
2 | import globals from 'globals'
3 | import reactHooks from 'eslint-plugin-react-hooks'
4 | import reactRefresh from 'eslint-plugin-react-refresh'
5 | import tseslint from 'typescript-eslint'
6 |
7 | export default tseslint.config(
8 | { ignores: ['dist'] },
9 | {
10 | extends: [js.configs.recommended, ...tseslint.configs.recommended],
11 | files: ['**/*.{ts,tsx}'],
12 | languageOptions: {
13 | ecmaVersion: 2020,
14 | globals: globals.browser,
15 | },
16 | plugins: {
17 | 'react-hooks': reactHooks,
18 | 'react-refresh': reactRefresh,
19 | },
20 | rules: {
21 | ...reactHooks.configs.recommended.rules,
22 | 'react-refresh/only-export-components': [
23 | 'warn',
24 | { allowConstantExport: true },
25 | ],
26 | },
27 | },
28 | )
29 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2025 cordx56
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/src-tauri/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "app"
3 | version = "0.1.0"
4 | description = "A Tauri App"
5 | authors = ["you"]
6 | license = ""
7 | repository = ""
8 | default-run = "app"
9 | edition = "2021"
10 | rust-version = "1.60"
11 |
12 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
13 |
14 | [build-dependencies]
15 | tauri-build = { version = "1.5.5", features = [] }
16 |
17 | [dependencies]
18 | serde_json = "1.0"
19 | serde = { version = "1.0", features = ["derive"] }
20 | tauri = { version = "1.8.1", features = [ "macos-private-api", "api-all"] }
21 | window-shadows = "0.2.2"
22 | mouse_position = "0.1.4"
23 | axum = { version = "0.8.2", features = ["tokio", "http1"] }
24 | tokio = { version = "1.29.1", features = ["full"] }
25 | tower-http = { version = "0.6.2", features = ["cors"] }
26 | log = "0.4.25"
27 | simple_logger = "5.0.0"
28 |
29 | [features]
30 | # this feature is used for production builds or when `devPath` points to the filesystem and the built-in dev server is disabled.
31 | # If you use cargo directly instead of tauri's cli you can use this feature flag to switch between tauri's `dev` and `build` modes.
32 | # DO NOT REMOVE!!
33 | custom-protocol = [ "tauri/custom-protocol" ]
34 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "deskvrm",
3 | "private": true,
4 | "version": "0.0.0",
5 | "type": "module",
6 | "scripts": {
7 | "dev": "vite",
8 | "build": "tsc -b && vite build",
9 | "lint": "eslint .",
10 | "preview": "vite preview",
11 | "tauri": "tauri",
12 | "fmt": "prettier -w src/**/* src/*"
13 | },
14 | "dependencies": {
15 | "@pixiv/three-vrm": "^3.3.2",
16 | "@pixiv/three-vrm-animation": "^3.3.3",
17 | "@tauri-apps/api": "^1.6.0",
18 | "autoprefixer": "^10.4.20",
19 | "postcss": "^8.5.1",
20 | "react": "^18.3.1",
21 | "react-dom": "^18.3.1",
22 | "react-router-dom": "^7.1.3",
23 | "tailwindcss": "^3.4.17",
24 | "three": "^0.172.0"
25 | },
26 | "devDependencies": {
27 | "@eslint/js": "^9.17.0",
28 | "@tauri-apps/cli": "^1.6.0",
29 | "@types/react": "^18.3.18",
30 | "@types/react-dom": "^18.3.5",
31 | "@types/three": "^0.172.0",
32 | "@vitejs/plugin-react": "^4.3.4",
33 | "eslint": "^9.17.0",
34 | "eslint-plugin-react-hooks": "^5.0.0",
35 | "eslint-plugin-react-refresh": "^0.4.16",
36 | "globals": "^15.14.0",
37 | "prettier": "^3.4.2",
38 | "typescript": "~5.6.2",
39 | "typescript-eslint": "^8.18.2",
40 | "vite": "^6.0.5",
41 | "vite-tsconfig-paths": "^5.1.4"
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src-tauri/tauri.conf.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "../node_modules/@tauri-apps/cli/schema.json",
3 | "build": {
4 | "beforeBuildCommand": "npm run build",
5 | "beforeDevCommand": "npm run dev",
6 | "devPath": "http://localhost:3000",
7 | "distDir": "../dist"
8 | },
9 | "package": {
10 | "productName": "deskvrm",
11 | "version": "0.0.3"
12 | },
13 | "tauri": {
14 | "allowlist": {
15 | "all": true
16 | },
17 | "bundle": {
18 | "active": true,
19 | "category": "DeveloperTool",
20 | "copyright": "2025 cordx56",
21 | "deb": {
22 | "depends": []
23 | },
24 | "externalBin": [],
25 | "icon": [
26 | "icons/32x32.png",
27 | "icons/128x128.png",
28 | "icons/128x128@2x.png",
29 | "icons/icon.icns",
30 | "icons/icon.ico"
31 | ],
32 | "identifier": "cx.cordx.deskvrm",
33 | "longDescription": "",
34 | "macOS": {
35 | "entitlements": null,
36 | "exceptionDomain": "",
37 | "frameworks": [],
38 | "providerShortName": null,
39 | "signingIdentity": null
40 | },
41 | "resources": [],
42 | "shortDescription": "",
43 | "targets": "all",
44 | "windows": {
45 | "certificateThumbprint": null,
46 | "digestAlgorithm": "sha256",
47 | "timestampUrl": ""
48 | }
49 | },
50 | "security": {
51 | "csp": null
52 | },
53 | "updater": {
54 | "active": false
55 | },
56 | "windows": [
57 | {
58 | "label": "config",
59 | "fullscreen": false,
60 | "width": 500,
61 | "height": 500,
62 | "resizable": true,
63 | "title": "deskvrm config",
64 | "alwaysOnTop": true
65 | }
66 | ],
67 | "macOSPrivateApi": true
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/src/components/VrmLibrary.tsx:
--------------------------------------------------------------------------------
1 | import { useState, useEffect, ChangeEventHandler } from "react";
2 | import { listModel, writeModel } from "@/util/fetch";
3 |
4 | type Props = {
5 | onSelect: (path: string) => any;
6 | };
7 |
8 | export default ({ onSelect }: Props) => {
9 | const [models, setModels] = useState([]);
10 | const [processing, setProcessing] = useState(false);
11 | const readModels = async () => {
12 | const models = await listModel();
13 | setModels(models);
14 | };
15 | useEffect(() => {
16 | readModels();
17 | }, []);
18 |
19 | const onFileChange: ChangeEventHandler = async (e) => {
20 | if (e.target instanceof HTMLInputElement) {
21 | let files = e.target.files;
22 | if (files && files.length === 1) {
23 | const file = files[0];
24 | if (file.name.endsWith(".vrm")) {
25 | setProcessing(true);
26 | (async () => {
27 | await writeModel(file.name, await file.arrayBuffer());
28 | e.target.files = null;
29 | await readModels();
30 | setProcessing(false);
31 | })();
32 | return;
33 | }
34 | }
35 | }
36 | alert("VRMモデルを選択してください");
37 | };
38 | return (
39 |
40 | {processing ? (
41 |
処理中
42 | ) : (
43 | <>
44 |
57 |
58 | VRMモデルをインポート:
59 |
60 |
61 | >
62 | )}
63 |
64 | );
65 | };
66 |
--------------------------------------------------------------------------------
/.github/workflows/build.yaml:
--------------------------------------------------------------------------------
1 | on:
2 | push:
3 | tags:
4 | - v*
5 |
6 | permissions:
7 | contents: write
8 |
9 | jobs:
10 | build-for-macos:
11 | runs-on: macos-latest
12 | steps:
13 | - uses: actions/checkout@v4
14 |
15 | - uses: mozilla-actions/sccache-action@v0.0.7
16 | - uses: actions/checkout@v4
17 | with:
18 | repository: cordx56/secret-dotfiles
19 | path: secret-dotfiles
20 | token: ${{ secrets.PAT }}
21 | - run: |
22 | cat secret-dotfiles/env/sccache >> $GITHUB_ENV
23 | echo RUSTC_WRAPPER=sccache >> $GITHUB_ENV
24 |
25 | - uses: pnpm/action-setup@v4
26 | with:
27 | version: 9
28 | - run: |
29 | rustup toolchain install --profile=minimal stable
30 | rustup target add aarch64-apple-darwin
31 | - run: pnpm install
32 | - run: pnpm tauri build --bundles dmg
33 | - uses: actions/upload-artifact@v4
34 | with:
35 | name: deskvrm-release-dmg
36 | path: src-tauri/target/**/*.dmg
37 | build-for-windows:
38 | runs-on: windows-latest
39 | steps:
40 | - uses: actions/checkout@v4
41 |
42 | - uses: mozilla-actions/sccache-action@v0.0.7
43 | - uses: actions/checkout@v4
44 | with:
45 | repository: cordx56/secret-dotfiles
46 | path: secret-dotfiles
47 | token: ${{ secrets.PAT }}
48 | - run: |
49 | cat secret-dotfiles/env/sccache >> $GITHUB_ENV
50 | echo RUSTC_WRAPPER=sccache >> $GITHUB_ENV
51 |
52 | - uses: pnpm/action-setup@v4
53 | with:
54 | version: 9
55 | - shell: pwsh
56 | run: |
57 | rustup toolchain install --profile=minimal stable
58 | rustup target add x86_64-pc-windows-msvc
59 | - shell: pwsh
60 | run: pnpm install
61 | - shell: pwsh
62 | run: pnpm tauri build --bundles msi
63 | - uses: actions/upload-artifact@v4
64 | with:
65 | name: deskvrm-release-msi
66 | path: src-tauri/target/**/*.msi
67 | release:
68 | runs-on: ubuntu-latest
69 | needs:
70 | - build-for-macos
71 | - build-for-windows
72 | steps:
73 | - uses: actions/download-artifact@v4
74 | - name: Release
75 | uses: softprops/action-gh-release@v2
76 | with:
77 | body: auto deskvrm release
78 | draft: true
79 | files: |
80 | ./**/*.dmg
81 | ./**/*.msi
82 |
--------------------------------------------------------------------------------
/src/ModelView.tsx:
--------------------------------------------------------------------------------
1 | import { useRef, useState, useEffect, MouseEventHandler } from "react";
2 | import { useParams } from "react-router-dom";
3 | import { listen } from "@tauri-apps/api/event";
4 | import {
5 | appWindow,
6 | currentMonitor,
7 | getAll,
8 | LogicalPosition,
9 | } from "@tauri-apps/api/window";
10 | import { VRM, VRMHumanBoneName } from "@pixiv/three-vrm";
11 | import "@/ModelView.css";
12 | import { loadModel } from "./vrm";
13 | import { readModel } from "@/util/fetch";
14 |
15 | function App() {
16 | const render = useRef(null);
17 | const { vrm } = useParams<{ vrm: string }>();
18 |
19 | const [clickCount, setClickCount] = useState(0);
20 |
21 | const [mouseX, setMouseX] = useState(0);
22 | const [mouseY, setMouseY] = useState(0);
23 | const [moveOffset, setMoveOffset] = useState<{ x: number; y: number } | null>(
24 | null,
25 | );
26 |
27 | const onUpdateRef = useRef((_vrm: VRM | null) => {});
28 | useEffect(() => {
29 | onUpdateRef.current = async (vrm: VRM | null) => {
30 | if (vrm) {
31 | const monitor = await currentMonitor();
32 | if (monitor) {
33 | const windowPosition = await appWindow.outerPosition();
34 | const rotationY = Math.max(
35 | Math.min(
36 | ((Math.PI / 4) * (mouseX - windowPosition.x)) /
37 | (monitor.position.x + monitor.size.width),
38 | Math.PI / 4,
39 | ),
40 | Math.PI / -4,
41 | );
42 | const rotationX = Math.max(
43 | Math.min(
44 | ((Math.PI / 4) * (windowPosition.y - mouseY)) /
45 | (monitor.position.y + monitor.size.height),
46 | Math.PI / 4,
47 | ),
48 | Math.PI / -4,
49 | );
50 | let head = vrm.humanoid.getRawBoneNode(VRMHumanBoneName.Head);
51 | if (head) {
52 | head.rotation.x = rotationX;
53 | head.rotation.y = rotationY;
54 | }
55 | }
56 | }
57 | };
58 |
59 | if (moveOffset) {
60 | appWindow.setPosition(
61 | new LogicalPosition(mouseX - moveOffset.x, mouseY - moveOffset.y),
62 | );
63 | }
64 | }, [mouseX, mouseY]);
65 |
66 | const onClick: MouseEventHandler = async (e) => {
67 | e.preventDefault();
68 | if (clickCount === 2) {
69 | const configWindow = getAll().find((v) => v.label === "config");
70 | if (configWindow) {
71 | await configWindow.show();
72 | await appWindow.close();
73 | }
74 | }
75 | };
76 | const onMouseDown: MouseEventHandler = async () => {
77 | setTimeout(() => {
78 | setClickCount(0);
79 | }, 600);
80 | setClickCount((prev) => prev + 1);
81 | const pos = (await appWindow.outerPosition()).toLogical(
82 | await appWindow.scaleFactor(),
83 | );
84 | if (clickCount == 0) {
85 | setMoveOffset({ x: mouseX - pos.x, y: mouseY - pos.y });
86 | }
87 | };
88 |
89 | useEffect(() => {
90 | (async () => {
91 | if (vrm) {
92 | const model = await readModel(vrm);
93 | if (model) {
94 | loadModel(render.current!, model.buffer, 2, onUpdateRef);
95 | }
96 | } else {
97 | appWindow.close();
98 | }
99 | })();
100 | listen("mouse_position", (event: any) => {
101 | setMouseX(event.payload.x);
102 | setMouseY(event.payload.y);
103 | });
104 | }, []);
105 |
106 | return (
107 | <>
108 | {
113 | setMoveOffset(null);
114 | }}
115 | className="render"
116 | >
117 | >
118 | );
119 | }
120 |
121 | export default App;
122 |
--------------------------------------------------------------------------------
/src/vrm.ts:
--------------------------------------------------------------------------------
1 | import * as Three from "three";
2 | // @ts-ignore
3 | import { GLTFLoader } from "three/addons/loaders/GLTFLoader";
4 | // @ts-ignore
5 | import { OrbitControls } from "three/addons/controls/OrbitControls";
6 | import { VRM, VRMLoaderPlugin, VRMHumanBoneName } from "@pixiv/three-vrm";
7 | import { VRMAnimationLoaderPlugin } from "@pixiv/three-vrm-animation";
8 | import { MutableRefObject } from "react";
9 |
10 | import { appWindow, LogicalSize } from "@tauri-apps/api/window";
11 | import { emit } from "@tauri-apps/api/event";
12 |
13 | export const loadModel = (
14 | render: HTMLDivElement,
15 | model: ArrayBuffer,
16 | lightP: number,
17 | onUpdate: MutableRefObject,
18 | ) => {
19 | const scene = new Three.Scene();
20 |
21 | const renderer = new Three.WebGLRenderer({
22 | antialias: true,
23 | alpha: true,
24 | });
25 | renderer.setPixelRatio(window.devicePixelRatio);
26 | renderer.setSize(render.clientWidth, render.clientHeight);
27 | renderer.setClearAlpha(0);
28 | renderer.shadowMap.enabled = true;
29 | const elem = renderer.domElement;
30 |
31 | if (render.hasChildNodes()) {
32 | return;
33 | }
34 | render.appendChild(elem);
35 |
36 | const camera = new Three.PerspectiveCamera(
37 | 30.0,
38 | render.clientWidth / render.clientHeight,
39 | 0.1,
40 | 20.0,
41 | );
42 | camera.position.set(0.0, 0.0, -2.8);
43 | camera.rotation.set(0, Math.PI, 0);
44 |
45 | const light = new Three.DirectionalLight(0xffffff, lightP);
46 | light.position.set(0.0, 0.0, -1).normalize();
47 | scene.add(light);
48 | const shadowLight = new Three.DirectionalLight(0xffffff, 1);
49 | shadowLight.position.set(-0.5, -3.0, -10.0).normalize();
50 | shadowLight.castShadow = true;
51 | shadowLight.shadow.mapSize.width = 2048;
52 | shadowLight.shadow.mapSize.height = 2048;
53 | //shadowLight.shadow.radius = 5;
54 | scene.add(shadowLight);
55 |
56 | let vrm: VRM | null = null;
57 | let mixer: Three.AnimationMixer | null = null;
58 |
59 | const loader = new GLTFLoader();
60 | loader.register((parser: any) => {
61 | return new VRMLoaderPlugin(parser);
62 | });
63 | loader.register((parser: any) => {
64 | return new VRMAnimationLoaderPlugin(parser);
65 | });
66 | loader.parse(
67 | model,
68 | "test.vrm",
69 | (gltf: any) => {
70 | vrm = gltf.userData.vrm;
71 |
72 | if (vrm) {
73 | scene.add(vrm.scene);
74 |
75 | vrm.humanoid
76 | .getRawBoneNode(VRMHumanBoneName.LeftUpperArm)
77 | ?.rotateZ(Math.PI / 2.6);
78 | vrm.humanoid
79 | .getRawBoneNode(VRMHumanBoneName.RightUpperArm)
80 | ?.rotateZ(Math.PI / -2.6);
81 | vrm.scene.traverse((object) => {
82 | object.castShadow = true;
83 | });
84 |
85 | /*
86 | loader.load("/ashi_batabata.vrma", (gltf: any) => {
87 | if (vrm) {
88 | const vrmAnimations = gltf.userData.vrmAnimations;
89 | if (vrmAnimations == null) {
90 | return;
91 | }
92 | animation = vrmAnimations[0] ?? null;
93 | // animation
94 | //mixer = new Three.AnimationMixer(vrm.scene);
95 | //const clip = createVRMAnimationClip(animation, vrm);
96 | //mixer.clipAction(clip).play();
97 | }
98 | });
99 | */
100 | }
101 | },
102 | (progress: any) => {
103 | console.log("loading: ", (100.0 * progress.loaded) / progress.total, "%");
104 | },
105 | (error: any) => {
106 | console.error(error);
107 | },
108 | );
109 |
110 | const back = new Three.Mesh(
111 | new Three.BoxGeometry(100, 100, 1),
112 | new Three.ShadowMaterial({ opacity: 0.5 }),
113 | );
114 | back.position.set(0, 0, 2);
115 | back.receiveShadow = true;
116 | scene.add(back);
117 |
118 | const clock = new Three.Clock();
119 | clock.start();
120 |
121 | // mouse events
122 | let mouseWheel = 0;
123 | elem.addEventListener("wheel", (e) => {
124 | mouseWheel -= e.deltaY / 10;
125 | });
126 | let mouseDownTime = 0;
127 | let mouseDownCount = 0;
128 | elem.addEventListener("mousedown", () => {
129 | mouseDownTime = new Date().getTime();
130 | mouseDownCount += 1;
131 | });
132 | elem.addEventListener("mouseleave", () => {
133 | emit("cursor_grab", { grab: false });
134 | });
135 | elem.addEventListener("mouseup", () => {
136 | emit("cursor_grab", { grab: false });
137 | if (new Date().getTime() - mouseDownTime < 500) {
138 | if (mouseDownCount === 2) {
139 | // show menu
140 | }
141 | } else {
142 | mouseDownCount = 0;
143 | }
144 | });
145 | elem.addEventListener("mousemove", (e) => {
146 | if (mouseDownCount === 2) {
147 | if (vrm) {
148 | emit("cursor_grab", { grab: true });
149 | vrm.scene.rotation.x -= e.movementY / 100 / Math.PI / 2;
150 | vrm.scene.rotation.y += e.movementX / 100 / Math.PI / 2;
151 | }
152 | }
153 | });
154 |
155 | const update = async () => {
156 | requestAnimationFrame(update);
157 |
158 | //const delta = clock.getDelta();
159 | if (mixer) {
160 | // animation
161 | //mixer.update(delta);
162 | }
163 | if (vrm) {
164 | //vrm.update(delta);
165 | }
166 |
167 | if (vrm) {
168 | vrm.scene.position.x = 0;
169 | vrm.scene.position.y = 0;
170 | vrm.scene.position.z = 0;
171 | const currentBounding = new Three.Box3().setFromObject(vrm.scene);
172 | vrm.scene.position.x =
173 | (currentBounding.max.x + currentBounding.min.x) / -2;
174 | vrm.scene.position.y =
175 | (currentBounding.max.y + currentBounding.min.y) / -2;
176 | vrm.scene.position.z =
177 | (currentBounding.max.z + currentBounding.min.z) / -2;
178 | const vrmBounding = new Three.Box3().setFromObject(vrm.scene);
179 |
180 | back.position.z = vrmBounding.max.z + 1;
181 |
182 | const vFOV = (camera.fov * Math.PI) / 180;
183 | const tan = Math.tan(vFOV / 2);
184 | camera.position.z =
185 | (vrmBounding.max.y - vrmBounding.min.y + 0.1) / -2 / tan;
186 |
187 | const aspect =
188 | (vrmBounding.max.x - vrmBounding.min.x) /
189 | (vrmBounding.max.y - vrmBounding.min.y);
190 | const width = (500 + mouseWheel) * aspect;
191 | const height = 500 + mouseWheel;
192 | appWindow.setSize(new LogicalSize(width, height));
193 | renderer.setSize(width, height);
194 | renderer.setPixelRatio(window.devicePixelRatio);
195 | camera.aspect = aspect;
196 | camera.updateProjectionMatrix();
197 | }
198 |
199 | if (onUpdate.current) {
200 | onUpdate.current(vrm);
201 | }
202 |
203 | renderer.render(scene, camera);
204 | };
205 | update();
206 | };
207 |
--------------------------------------------------------------------------------
/src-tauri/src/main.rs:
--------------------------------------------------------------------------------
1 | // Prevents additional console window on Windows in release, DO NOT REMOVE!!
2 | #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
3 | use mouse_position::mouse_position::Mouse;
4 | use std::path::PathBuf;
5 | use tauri::Manager;
6 |
7 | #[derive(serde::Serialize, Clone)]
8 | struct MousePosition {
9 | x: i32,
10 | y: i32,
11 | }
12 | #[derive(serde::Deserialize, Clone)]
13 | struct CursorGrab {
14 | grab: bool,
15 | }
16 | #[derive(serde::Deserialize, Clone)]
17 | struct ModelViewParam {
18 | vrm: String,
19 | }
20 | #[derive(serde::Serialize, Clone)]
21 | struct ModelList {
22 | models: Vec,
23 | }
24 |
25 | fn main() {
26 | simple_logger::init_with_env().unwrap();
27 | tauri::Builder::default()
28 | .setup(|app| {
29 | let app_handle = app.app_handle();
30 | tauri::async_runtime::spawn(async move {
31 | let handle = app_handle.clone();
32 | app_handle.listen_global("cursor_grab", move |ev| {
33 | if let Some(payload) = ev.payload() {
34 | if let Ok(data) = serde_json::from_str::(payload) {
35 | if let Some(win) = handle.get_focused_window() {
36 | let _ = win.set_cursor_grab(data.grab);
37 | }
38 | }
39 | }
40 | });
41 |
42 | let handle = app_handle.clone();
43 | app_handle.listen_global("modelView", move |ev| {
44 | if let Some(payload) = ev.payload() {
45 | if let Ok(data) = serde_json::from_str::(payload) {
46 | if let Ok(window) = tauri::WindowBuilder::new(
47 | &handle,
48 | "modelView",
49 | tauri::WindowUrl::App(format!("/model-view/{}", data.vrm).into()),
50 | )
51 | .title("deskvrm")
52 | .inner_size(300.0, 500.0)
53 | .resizable(false)
54 | .decorations(false)
55 | .transparent(true)
56 | .always_on_top(true)
57 | .build()
58 | {
59 | let _ = window.show();
60 | //#[cfg(any(windows, target_os = "macos"))]
61 | //let _ = set_shadow(&window, false);
62 | }
63 | }
64 | }
65 | });
66 |
67 | loop {
68 | match Mouse::get_mouse_position() {
69 | Mouse::Position { x, y } => {
70 | let _ = app_handle.emit_all("mouse_position", MousePosition { x, y });
71 | }
72 | _ => {}
73 | }
74 | std::thread::sleep(std::time::Duration::from_millis(10));
75 | }
76 | });
77 |
78 | let app_handle = app.app_handle();
79 | tauri::async_runtime::spawn(async move {
80 | use axum::{
81 | http::StatusCode,
82 | routing::{get, post},
83 | Json,
84 | };
85 | use tower_http::cors::{AllowMethods, Any, CorsLayer};
86 |
87 | let data_dir = app_handle.path_resolver().app_data_dir().unwrap();
88 | let data_dir2 = data_dir.clone();
89 | let data_dir3 = data_dir.clone();
90 |
91 | let app = axum::Router::new()
92 | .route(
93 | "/vrm",
94 | get(|| async move {
95 | let vrm_dir = data_dir3.join("vrm");
96 | if let Ok(mut files) = tokio::fs::read_dir(&vrm_dir).await {
97 | let mut models = Vec::new();
98 | while let Ok(Some(file)) = files.next_entry().await {
99 | let filename = file.file_name().to_string_lossy().to_string();
100 | if filename.ends_with(".vrm") {
101 | models.push(filename);
102 | }
103 | }
104 | (StatusCode::OK, Json(ModelList { models }))
105 | } else {
106 | let _ = tokio::fs::create_dir_all(&vrm_dir).await;
107 | (StatusCode::OK, Json(ModelList { models: Vec::new() }))
108 | }
109 | }),
110 | )
111 | .route(
112 | "/vrm/{vrm}",
113 | get(|p: axum::extract::Path| async move {
114 | if let Ok(data) = tokio::fs::read(
115 | data_dir
116 | .join("vrm")
117 | .join(PathBuf::from(&p.0).file_name().unwrap()),
118 | )
119 | .await
120 | {
121 | (axum::http::StatusCode::OK, data)
122 | } else {
123 | (axum::http::StatusCode::NOT_FOUND, Vec::new())
124 | }
125 | }),
126 | )
127 | .route(
128 | "/vrm/{vrm}",
129 | post(
130 | |p: axum::extract::Path, body: axum::body::Bytes| async move {
131 | if let Ok(_) = tokio::fs::write(
132 | data_dir2
133 | .join("vrm")
134 | .join(PathBuf::from(&p.0).file_name().unwrap()),
135 | body,
136 | )
137 | .await
138 | {
139 | (axum::http::StatusCode::OK, Vec::new())
140 | } else {
141 | (axum::http::StatusCode::INTERNAL_SERVER_ERROR, Vec::new())
142 | }
143 | },
144 | ),
145 | )
146 | .layer(
147 | CorsLayer::new()
148 | .allow_origin(Any)
149 | .allow_methods(AllowMethods::any()),
150 | )
151 | .layer(axum::extract::DefaultBodyLimit::max(1024 * 1024 * 1024));
152 | axum::serve(
153 | tokio::net::TcpListener::bind(
154 | "127.0.0.1:8108".parse::().unwrap(),
155 | )
156 | .await
157 | .unwrap(),
158 | app,
159 | )
160 | .await
161 | .unwrap();
162 | });
163 |
164 | Ok(())
165 | })
166 | .run(tauri::generate_context!())
167 | .expect("error while running tauri application");
168 | }
169 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '9.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | importers:
8 |
9 | .:
10 | dependencies:
11 | '@pixiv/three-vrm':
12 | specifier: ^3.3.2
13 | version: 3.3.2(three@0.172.0)
14 | '@pixiv/three-vrm-animation':
15 | specifier: ^3.3.3
16 | version: 3.3.3(three@0.172.0)
17 | '@tauri-apps/api':
18 | specifier: ^1.6.0
19 | version: 1.6.0
20 | autoprefixer:
21 | specifier: ^10.4.20
22 | version: 10.4.20(postcss@8.5.1)
23 | postcss:
24 | specifier: ^8.5.1
25 | version: 8.5.1
26 | react:
27 | specifier: ^18.3.1
28 | version: 18.3.1
29 | react-dom:
30 | specifier: ^18.3.1
31 | version: 18.3.1(react@18.3.1)
32 | react-router-dom:
33 | specifier: ^7.1.3
34 | version: 7.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
35 | tailwindcss:
36 | specifier: ^3.4.17
37 | version: 3.4.17
38 | three:
39 | specifier: ^0.172.0
40 | version: 0.172.0
41 | devDependencies:
42 | '@eslint/js':
43 | specifier: ^9.17.0
44 | version: 9.18.0
45 | '@tauri-apps/cli':
46 | specifier: ^1.6.0
47 | version: 1.6.3
48 | '@types/react':
49 | specifier: ^18.3.18
50 | version: 18.3.18
51 | '@types/react-dom':
52 | specifier: ^18.3.5
53 | version: 18.3.5(@types/react@18.3.18)
54 | '@types/three':
55 | specifier: ^0.172.0
56 | version: 0.172.0
57 | '@vitejs/plugin-react':
58 | specifier: ^4.3.4
59 | version: 4.3.4(vite@6.0.7(jiti@1.21.7)(yaml@2.7.0))
60 | eslint:
61 | specifier: ^9.17.0
62 | version: 9.18.0(jiti@1.21.7)
63 | eslint-plugin-react-hooks:
64 | specifier: ^5.0.0
65 | version: 5.1.0(eslint@9.18.0(jiti@1.21.7))
66 | eslint-plugin-react-refresh:
67 | specifier: ^0.4.16
68 | version: 0.4.18(eslint@9.18.0(jiti@1.21.7))
69 | globals:
70 | specifier: ^15.14.0
71 | version: 15.14.0
72 | prettier:
73 | specifier: ^3.4.2
74 | version: 3.4.2
75 | typescript:
76 | specifier: ~5.6.2
77 | version: 5.6.3
78 | typescript-eslint:
79 | specifier: ^8.18.2
80 | version: 8.19.1(eslint@9.18.0(jiti@1.21.7))(typescript@5.6.3)
81 | vite:
82 | specifier: ^6.0.5
83 | version: 6.0.7(jiti@1.21.7)(yaml@2.7.0)
84 | vite-tsconfig-paths:
85 | specifier: ^5.1.4
86 | version: 5.1.4(typescript@5.6.3)(vite@6.0.7(jiti@1.21.7)(yaml@2.7.0))
87 |
88 | packages:
89 |
90 | '@alloc/quick-lru@5.2.0':
91 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
92 | engines: {node: '>=10'}
93 |
94 | '@ampproject/remapping@2.3.0':
95 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
96 | engines: {node: '>=6.0.0'}
97 |
98 | '@babel/code-frame@7.26.2':
99 | resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
100 | engines: {node: '>=6.9.0'}
101 |
102 | '@babel/compat-data@7.26.5':
103 | resolution: {integrity: sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==}
104 | engines: {node: '>=6.9.0'}
105 |
106 | '@babel/core@7.26.0':
107 | resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==}
108 | engines: {node: '>=6.9.0'}
109 |
110 | '@babel/generator@7.26.5':
111 | resolution: {integrity: sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==}
112 | engines: {node: '>=6.9.0'}
113 |
114 | '@babel/helper-compilation-targets@7.26.5':
115 | resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==}
116 | engines: {node: '>=6.9.0'}
117 |
118 | '@babel/helper-module-imports@7.25.9':
119 | resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==}
120 | engines: {node: '>=6.9.0'}
121 |
122 | '@babel/helper-module-transforms@7.26.0':
123 | resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==}
124 | engines: {node: '>=6.9.0'}
125 | peerDependencies:
126 | '@babel/core': ^7.0.0
127 |
128 | '@babel/helper-plugin-utils@7.26.5':
129 | resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==}
130 | engines: {node: '>=6.9.0'}
131 |
132 | '@babel/helper-string-parser@7.25.9':
133 | resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
134 | engines: {node: '>=6.9.0'}
135 |
136 | '@babel/helper-validator-identifier@7.25.9':
137 | resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
138 | engines: {node: '>=6.9.0'}
139 |
140 | '@babel/helper-validator-option@7.25.9':
141 | resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==}
142 | engines: {node: '>=6.9.0'}
143 |
144 | '@babel/helpers@7.26.0':
145 | resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==}
146 | engines: {node: '>=6.9.0'}
147 |
148 | '@babel/parser@7.26.5':
149 | resolution: {integrity: sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==}
150 | engines: {node: '>=6.0.0'}
151 | hasBin: true
152 |
153 | '@babel/plugin-transform-react-jsx-self@7.25.9':
154 | resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==}
155 | engines: {node: '>=6.9.0'}
156 | peerDependencies:
157 | '@babel/core': ^7.0.0-0
158 |
159 | '@babel/plugin-transform-react-jsx-source@7.25.9':
160 | resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==}
161 | engines: {node: '>=6.9.0'}
162 | peerDependencies:
163 | '@babel/core': ^7.0.0-0
164 |
165 | '@babel/template@7.25.9':
166 | resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==}
167 | engines: {node: '>=6.9.0'}
168 |
169 | '@babel/traverse@7.26.5':
170 | resolution: {integrity: sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==}
171 | engines: {node: '>=6.9.0'}
172 |
173 | '@babel/types@7.26.5':
174 | resolution: {integrity: sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==}
175 | engines: {node: '>=6.9.0'}
176 |
177 | '@esbuild/aix-ppc64@0.24.2':
178 | resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==}
179 | engines: {node: '>=18'}
180 | cpu: [ppc64]
181 | os: [aix]
182 |
183 | '@esbuild/android-arm64@0.24.2':
184 | resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==}
185 | engines: {node: '>=18'}
186 | cpu: [arm64]
187 | os: [android]
188 |
189 | '@esbuild/android-arm@0.24.2':
190 | resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==}
191 | engines: {node: '>=18'}
192 | cpu: [arm]
193 | os: [android]
194 |
195 | '@esbuild/android-x64@0.24.2':
196 | resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==}
197 | engines: {node: '>=18'}
198 | cpu: [x64]
199 | os: [android]
200 |
201 | '@esbuild/darwin-arm64@0.24.2':
202 | resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==}
203 | engines: {node: '>=18'}
204 | cpu: [arm64]
205 | os: [darwin]
206 |
207 | '@esbuild/darwin-x64@0.24.2':
208 | resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==}
209 | engines: {node: '>=18'}
210 | cpu: [x64]
211 | os: [darwin]
212 |
213 | '@esbuild/freebsd-arm64@0.24.2':
214 | resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==}
215 | engines: {node: '>=18'}
216 | cpu: [arm64]
217 | os: [freebsd]
218 |
219 | '@esbuild/freebsd-x64@0.24.2':
220 | resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==}
221 | engines: {node: '>=18'}
222 | cpu: [x64]
223 | os: [freebsd]
224 |
225 | '@esbuild/linux-arm64@0.24.2':
226 | resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==}
227 | engines: {node: '>=18'}
228 | cpu: [arm64]
229 | os: [linux]
230 |
231 | '@esbuild/linux-arm@0.24.2':
232 | resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==}
233 | engines: {node: '>=18'}
234 | cpu: [arm]
235 | os: [linux]
236 |
237 | '@esbuild/linux-ia32@0.24.2':
238 | resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==}
239 | engines: {node: '>=18'}
240 | cpu: [ia32]
241 | os: [linux]
242 |
243 | '@esbuild/linux-loong64@0.24.2':
244 | resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==}
245 | engines: {node: '>=18'}
246 | cpu: [loong64]
247 | os: [linux]
248 |
249 | '@esbuild/linux-mips64el@0.24.2':
250 | resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==}
251 | engines: {node: '>=18'}
252 | cpu: [mips64el]
253 | os: [linux]
254 |
255 | '@esbuild/linux-ppc64@0.24.2':
256 | resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==}
257 | engines: {node: '>=18'}
258 | cpu: [ppc64]
259 | os: [linux]
260 |
261 | '@esbuild/linux-riscv64@0.24.2':
262 | resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==}
263 | engines: {node: '>=18'}
264 | cpu: [riscv64]
265 | os: [linux]
266 |
267 | '@esbuild/linux-s390x@0.24.2':
268 | resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==}
269 | engines: {node: '>=18'}
270 | cpu: [s390x]
271 | os: [linux]
272 |
273 | '@esbuild/linux-x64@0.24.2':
274 | resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==}
275 | engines: {node: '>=18'}
276 | cpu: [x64]
277 | os: [linux]
278 |
279 | '@esbuild/netbsd-arm64@0.24.2':
280 | resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==}
281 | engines: {node: '>=18'}
282 | cpu: [arm64]
283 | os: [netbsd]
284 |
285 | '@esbuild/netbsd-x64@0.24.2':
286 | resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==}
287 | engines: {node: '>=18'}
288 | cpu: [x64]
289 | os: [netbsd]
290 |
291 | '@esbuild/openbsd-arm64@0.24.2':
292 | resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==}
293 | engines: {node: '>=18'}
294 | cpu: [arm64]
295 | os: [openbsd]
296 |
297 | '@esbuild/openbsd-x64@0.24.2':
298 | resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==}
299 | engines: {node: '>=18'}
300 | cpu: [x64]
301 | os: [openbsd]
302 |
303 | '@esbuild/sunos-x64@0.24.2':
304 | resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==}
305 | engines: {node: '>=18'}
306 | cpu: [x64]
307 | os: [sunos]
308 |
309 | '@esbuild/win32-arm64@0.24.2':
310 | resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==}
311 | engines: {node: '>=18'}
312 | cpu: [arm64]
313 | os: [win32]
314 |
315 | '@esbuild/win32-ia32@0.24.2':
316 | resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==}
317 | engines: {node: '>=18'}
318 | cpu: [ia32]
319 | os: [win32]
320 |
321 | '@esbuild/win32-x64@0.24.2':
322 | resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==}
323 | engines: {node: '>=18'}
324 | cpu: [x64]
325 | os: [win32]
326 |
327 | '@eslint-community/eslint-utils@4.4.1':
328 | resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==}
329 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
330 | peerDependencies:
331 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
332 |
333 | '@eslint-community/regexpp@4.12.1':
334 | resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
335 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
336 |
337 | '@eslint/config-array@0.19.1':
338 | resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==}
339 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
340 |
341 | '@eslint/core@0.10.0':
342 | resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==}
343 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
344 |
345 | '@eslint/eslintrc@3.2.0':
346 | resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==}
347 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
348 |
349 | '@eslint/js@9.18.0':
350 | resolution: {integrity: sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==}
351 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
352 |
353 | '@eslint/object-schema@2.1.5':
354 | resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==}
355 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
356 |
357 | '@eslint/plugin-kit@0.2.5':
358 | resolution: {integrity: sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==}
359 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
360 |
361 | '@humanfs/core@0.19.1':
362 | resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
363 | engines: {node: '>=18.18.0'}
364 |
365 | '@humanfs/node@0.16.6':
366 | resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==}
367 | engines: {node: '>=18.18.0'}
368 |
369 | '@humanwhocodes/module-importer@1.0.1':
370 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
371 | engines: {node: '>=12.22'}
372 |
373 | '@humanwhocodes/retry@0.3.1':
374 | resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
375 | engines: {node: '>=18.18'}
376 |
377 | '@humanwhocodes/retry@0.4.1':
378 | resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==}
379 | engines: {node: '>=18.18'}
380 |
381 | '@isaacs/cliui@8.0.2':
382 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
383 | engines: {node: '>=12'}
384 |
385 | '@jridgewell/gen-mapping@0.3.8':
386 | resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
387 | engines: {node: '>=6.0.0'}
388 |
389 | '@jridgewell/resolve-uri@3.1.2':
390 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
391 | engines: {node: '>=6.0.0'}
392 |
393 | '@jridgewell/set-array@1.2.1':
394 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
395 | engines: {node: '>=6.0.0'}
396 |
397 | '@jridgewell/sourcemap-codec@1.5.0':
398 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
399 |
400 | '@jridgewell/trace-mapping@0.3.25':
401 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
402 |
403 | '@nodelib/fs.scandir@2.1.5':
404 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
405 | engines: {node: '>= 8'}
406 |
407 | '@nodelib/fs.stat@2.0.5':
408 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
409 | engines: {node: '>= 8'}
410 |
411 | '@nodelib/fs.walk@1.2.8':
412 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
413 | engines: {node: '>= 8'}
414 |
415 | '@pixiv/three-vrm-animation@3.3.3':
416 | resolution: {integrity: sha512-epIqsoRf2Rc1hCwuVWTk5HZc2elr58gZSNFNb4SVKzQ1ntxd+DDeFJ3ktjXE3K2aWjXmVe6AyeDLBGKCGfmcpw==}
417 | peerDependencies:
418 | three: '>=0.137'
419 |
420 | '@pixiv/three-vrm-core@3.3.2':
421 | resolution: {integrity: sha512-vDxRVVPzxXjTIl/XrWQZff+3rwNZ+P1F//njLhQslj83aZ9xu8QVsGpBs6u00infeGXzX1f98S3ibY/Gjpj3Sg==}
422 | peerDependencies:
423 | three: '>=0.137'
424 |
425 | '@pixiv/three-vrm-core@3.3.3':
426 | resolution: {integrity: sha512-5I5Q0DhdnBAg6W0jBFAIn7NBQ7XIpmylZ6GcX3oGUhiYw44mTxfONIHTl6C7XedESJ8lpKGy0jZZIA7QMWE2Lg==}
427 | peerDependencies:
428 | three: '>=0.137'
429 |
430 | '@pixiv/three-vrm-materials-hdr-emissive-multiplier@3.3.2':
431 | resolution: {integrity: sha512-wKsv/Goom6kelMh2bOJ8Ungk48mOkBaZrKGuLOzODWS0Vj5pAj04etpaXKxWp+BKyHDcS93ttkYMUWi1/5MVeg==}
432 | peerDependencies:
433 | three: '>=0.137'
434 |
435 | '@pixiv/three-vrm-materials-mtoon@3.3.2':
436 | resolution: {integrity: sha512-0Z/Mx2zKtKYaz+pntsSq8bHEo6NcDZHUJ55Yq7F3V/BxqkuhhSMaY+9wauXuNk5ifcnY1eQtqJ2xaFAao6ndAg==}
437 | peerDependencies:
438 | three: '>=0.137'
439 |
440 | '@pixiv/three-vrm-materials-v0compat@3.3.2':
441 | resolution: {integrity: sha512-8L+ILx18GFaPmY/hcptW32JFp1Tvuyo26V7prq8jq6xkqLgjhYFpOLmRB4qE2fMveNITtYpXAC3nF93a4IgqfA==}
442 | peerDependencies:
443 | three: '>=0.137'
444 |
445 | '@pixiv/three-vrm-node-constraint@3.3.2':
446 | resolution: {integrity: sha512-Gt7b2aWmX9elcucMa4A0WIfmDb5aKvX8/XoHajWwlfqWRO/TLKwuI0WpC9UQ7S1vz10Pax79TMfZri8VMRf/GQ==}
447 | peerDependencies:
448 | three: '>=0.137'
449 |
450 | '@pixiv/three-vrm-springbone@3.3.2':
451 | resolution: {integrity: sha512-GxgjXUOewgEjxlysK2csyGwNR7nYGTJNqsMlg8qOXI6Xz2CwrLZKFp5yQUQinEjTWf0NVlwktAM4JN5Jkh75/w==}
452 | peerDependencies:
453 | three: '>=0.137'
454 |
455 | '@pixiv/three-vrm@3.3.2':
456 | resolution: {integrity: sha512-c2Z7kj91/pwZCjX2LT2sPhQ3gkzGKA1eE8F5AZp8JHpZF6yn+GpWPQ3g9kBbwnTgpuJSC62IGjg4KnKHa7ctwQ==}
457 | peerDependencies:
458 | three: '>=0.137'
459 |
460 | '@pixiv/types-vrm-0.0@3.3.2':
461 | resolution: {integrity: sha512-PXvYXGxP3n8TTOLCYiblLCsWc9AWUWiy5V8AeEm5ADDD5yaMa02Z8zw5/eoHDSPl/Byf/OpNLgeO1wReLE31iw==}
462 |
463 | '@pixiv/types-vrm-0.0@3.3.3':
464 | resolution: {integrity: sha512-+nqVpgwwwDsy2UiQd+r6vaziqvpzWwYVGw04ry2yKJ5RjRC36t+KQ8YhLLgSr9xDG5wC/JJk/r19Q3bBKeGJKA==}
465 |
466 | '@pixiv/types-vrmc-materials-hdr-emissive-multiplier-1.0@3.3.2':
467 | resolution: {integrity: sha512-PLmNZ2ae91Va+Ye8dvfpJl2MBI7WRVlwNpHebJKgXUbg9qppWdNO8CHNIk5WF1XhQMIFuwbnB/ys496LutHQTA==}
468 |
469 | '@pixiv/types-vrmc-materials-mtoon-1.0@3.3.2':
470 | resolution: {integrity: sha512-X3IV31N6CJ/LUGzfgBbLYujPePhtmorqan8OPzuVSDoQ1IdJwWsSYmjWKqMUZuyxJYk+0ls5iVeNabOnBM2bpA==}
471 |
472 | '@pixiv/types-vrmc-node-constraint-1.0@3.3.2':
473 | resolution: {integrity: sha512-ncpM3Ok4EtjZ+2T+bbTavmk+qpXqEaee1zdWZZr+I7pzJgpoH2ghwJ77Ri75XQhPpTaPCA//etpRAnUyZkMoJg==}
474 |
475 | '@pixiv/types-vrmc-springbone-1.0@3.3.2':
476 | resolution: {integrity: sha512-C7a7UYq943JiF9K7JTuLvsdRLR7ZcURwLD0JaGn/3vHkoWJPkm/rrDB3txKtD3oGtlkmynIi0MgRuwDL80z10w==}
477 |
478 | '@pixiv/types-vrmc-springbone-extended-collider-1.0@3.3.2':
479 | resolution: {integrity: sha512-6pVCndF+09s14PKmqoRpA01rYjpWh/clnP6Q/d6q2IUPDtjrxor4m696eN8yU7qNJmqkCdrLODOoFxBftcCEKQ==}
480 |
481 | '@pixiv/types-vrmc-vrm-1.0@2.0.3':
482 | resolution: {integrity: sha512-RMP34Bk1qLFQv/CRB1Zqvn2qMFfWQfP2Hms5QrrfoBsW9XroZdEe0zPLNbGmUPYh4F7VtBb+B7+RCuymRtpehA==}
483 |
484 | '@pixiv/types-vrmc-vrm-1.0@3.3.2':
485 | resolution: {integrity: sha512-FGvu2a6txJ9W/S8yIujFY9a8YMgKmSfIxHPnXj2aNFCaPhdnLb7LkG5b1bkxITUE5oHseLhSnEBv0Ni3nCKbzw==}
486 |
487 | '@pixiv/types-vrmc-vrm-1.0@3.3.3':
488 | resolution: {integrity: sha512-/EqTI0MakfG4J2tMHLHS0lYmH3NjjyV2mFTEEbb9qkCO1yM31bsmwUSE3lY/BWuN3+r03+YQJQbIErj+sLxXDQ==}
489 |
490 | '@pixiv/types-vrmc-vrm-animation-1.0@3.3.3':
491 | resolution: {integrity: sha512-6R8pgWLEyqXHNgrun/RJo+fdKO2w5gURpRTClQK8C5Iqh1FUYil6lC/EkMU+w06t5aFEx6JX1f/OEqBiih8vZQ==}
492 |
493 | '@pkgjs/parseargs@0.11.0':
494 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
495 | engines: {node: '>=14'}
496 |
497 | '@rollup/rollup-android-arm-eabi@4.30.1':
498 | resolution: {integrity: sha512-pSWY+EVt3rJ9fQ3IqlrEUtXh3cGqGtPDH1FQlNZehO2yYxCHEX1SPsz1M//NXwYfbTlcKr9WObLnJX9FsS9K1Q==}
499 | cpu: [arm]
500 | os: [android]
501 |
502 | '@rollup/rollup-android-arm64@4.30.1':
503 | resolution: {integrity: sha512-/NA2qXxE3D/BRjOJM8wQblmArQq1YoBVJjrjoTSBS09jgUisq7bqxNHJ8kjCHeV21W/9WDGwJEWSN0KQ2mtD/w==}
504 | cpu: [arm64]
505 | os: [android]
506 |
507 | '@rollup/rollup-darwin-arm64@4.30.1':
508 | resolution: {integrity: sha512-r7FQIXD7gB0WJ5mokTUgUWPl0eYIH0wnxqeSAhuIwvnnpjdVB8cRRClyKLQr7lgzjctkbp5KmswWszlwYln03Q==}
509 | cpu: [arm64]
510 | os: [darwin]
511 |
512 | '@rollup/rollup-darwin-x64@4.30.1':
513 | resolution: {integrity: sha512-x78BavIwSH6sqfP2xeI1hd1GpHL8J4W2BXcVM/5KYKoAD3nNsfitQhvWSw+TFtQTLZ9OmlF+FEInEHyubut2OA==}
514 | cpu: [x64]
515 | os: [darwin]
516 |
517 | '@rollup/rollup-freebsd-arm64@4.30.1':
518 | resolution: {integrity: sha512-HYTlUAjbO1z8ywxsDFWADfTRfTIIy/oUlfIDmlHYmjUP2QRDTzBuWXc9O4CXM+bo9qfiCclmHk1x4ogBjOUpUQ==}
519 | cpu: [arm64]
520 | os: [freebsd]
521 |
522 | '@rollup/rollup-freebsd-x64@4.30.1':
523 | resolution: {integrity: sha512-1MEdGqogQLccphhX5myCJqeGNYTNcmTyaic9S7CG3JhwuIByJ7J05vGbZxsizQthP1xpVx7kd3o31eOogfEirw==}
524 | cpu: [x64]
525 | os: [freebsd]
526 |
527 | '@rollup/rollup-linux-arm-gnueabihf@4.30.1':
528 | resolution: {integrity: sha512-PaMRNBSqCx7K3Wc9QZkFx5+CX27WFpAMxJNiYGAXfmMIKC7jstlr32UhTgK6T07OtqR+wYlWm9IxzennjnvdJg==}
529 | cpu: [arm]
530 | os: [linux]
531 |
532 | '@rollup/rollup-linux-arm-musleabihf@4.30.1':
533 | resolution: {integrity: sha512-B8Rcyj9AV7ZlEFqvB5BubG5iO6ANDsRKlhIxySXcF1axXYUyqwBok+XZPgIYGBgs7LDXfWfifxhw0Ik57T0Yug==}
534 | cpu: [arm]
535 | os: [linux]
536 |
537 | '@rollup/rollup-linux-arm64-gnu@4.30.1':
538 | resolution: {integrity: sha512-hqVyueGxAj3cBKrAI4aFHLV+h0Lv5VgWZs9CUGqr1z0fZtlADVV1YPOij6AhcK5An33EXaxnDLmJdQikcn5NEw==}
539 | cpu: [arm64]
540 | os: [linux]
541 |
542 | '@rollup/rollup-linux-arm64-musl@4.30.1':
543 | resolution: {integrity: sha512-i4Ab2vnvS1AE1PyOIGp2kXni69gU2DAUVt6FSXeIqUCPIR3ZlheMW3oP2JkukDfu3PsexYRbOiJrY+yVNSk9oA==}
544 | cpu: [arm64]
545 | os: [linux]
546 |
547 | '@rollup/rollup-linux-loongarch64-gnu@4.30.1':
548 | resolution: {integrity: sha512-fARcF5g296snX0oLGkVxPmysetwUk2zmHcca+e9ObOovBR++9ZPOhqFUM61UUZ2EYpXVPN1redgqVoBB34nTpQ==}
549 | cpu: [loong64]
550 | os: [linux]
551 |
552 | '@rollup/rollup-linux-powerpc64le-gnu@4.30.1':
553 | resolution: {integrity: sha512-GLrZraoO3wVT4uFXh67ElpwQY0DIygxdv0BNW9Hkm3X34wu+BkqrDrkcsIapAY+N2ATEbvak0XQ9gxZtCIA5Rw==}
554 | cpu: [ppc64]
555 | os: [linux]
556 |
557 | '@rollup/rollup-linux-riscv64-gnu@4.30.1':
558 | resolution: {integrity: sha512-0WKLaAUUHKBtll0wvOmh6yh3S0wSU9+yas923JIChfxOaaBarmb/lBKPF0w/+jTVozFnOXJeRGZ8NvOxvk/jcw==}
559 | cpu: [riscv64]
560 | os: [linux]
561 |
562 | '@rollup/rollup-linux-s390x-gnu@4.30.1':
563 | resolution: {integrity: sha512-GWFs97Ruxo5Bt+cvVTQkOJ6TIx0xJDD/bMAOXWJg8TCSTEK8RnFeOeiFTxKniTc4vMIaWvCplMAFBt9miGxgkA==}
564 | cpu: [s390x]
565 | os: [linux]
566 |
567 | '@rollup/rollup-linux-x64-gnu@4.30.1':
568 | resolution: {integrity: sha512-UtgGb7QGgXDIO+tqqJ5oZRGHsDLO8SlpE4MhqpY9Llpzi5rJMvrK6ZGhsRCST2abZdBqIBeXW6WPD5fGK5SDwg==}
569 | cpu: [x64]
570 | os: [linux]
571 |
572 | '@rollup/rollup-linux-x64-musl@4.30.1':
573 | resolution: {integrity: sha512-V9U8Ey2UqmQsBT+xTOeMzPzwDzyXmnAoO4edZhL7INkwQcaW1Ckv3WJX3qrrp/VHaDkEWIBWhRwP47r8cdrOow==}
574 | cpu: [x64]
575 | os: [linux]
576 |
577 | '@rollup/rollup-win32-arm64-msvc@4.30.1':
578 | resolution: {integrity: sha512-WabtHWiPaFF47W3PkHnjbmWawnX/aE57K47ZDT1BXTS5GgrBUEpvOzq0FI0V/UYzQJgdb8XlhVNH8/fwV8xDjw==}
579 | cpu: [arm64]
580 | os: [win32]
581 |
582 | '@rollup/rollup-win32-ia32-msvc@4.30.1':
583 | resolution: {integrity: sha512-pxHAU+Zv39hLUTdQQHUVHf4P+0C47y/ZloorHpzs2SXMRqeAWmGghzAhfOlzFHHwjvgokdFAhC4V+6kC1lRRfw==}
584 | cpu: [ia32]
585 | os: [win32]
586 |
587 | '@rollup/rollup-win32-x64-msvc@4.30.1':
588 | resolution: {integrity: sha512-D6qjsXGcvhTjv0kI4fU8tUuBDF/Ueee4SVX79VfNDXZa64TfCW1Slkb6Z7O1p7vflqZjcmOVdZlqf8gvJxc6og==}
589 | cpu: [x64]
590 | os: [win32]
591 |
592 | '@tauri-apps/api@1.6.0':
593 | resolution: {integrity: sha512-rqI++FWClU5I2UBp4HXFvl+sBWkdigBkxnpJDQUWttNyG7IZP4FwQGhTNL5EOw0vI8i6eSAJ5frLqO7n7jbJdg==}
594 | engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'}
595 |
596 | '@tauri-apps/cli-darwin-arm64@1.6.3':
597 | resolution: {integrity: sha512-fQN6IYSL8bG4NvkdKE4sAGF4dF/QqqQq4hOAU+t8ksOzHJr0hUlJYfncFeJYutr/MMkdF7hYKadSb0j5EE9r0A==}
598 | engines: {node: '>= 10'}
599 | cpu: [arm64]
600 | os: [darwin]
601 |
602 | '@tauri-apps/cli-darwin-x64@1.6.3':
603 | resolution: {integrity: sha512-1yTXZzLajKAYINJOJhZfmMhCzweHSgKQ3bEgJSn6t+1vFkOgY8Yx4oFgWcybrrWI5J1ZLZAl47+LPOY81dLcyA==}
604 | engines: {node: '>= 10'}
605 | cpu: [x64]
606 | os: [darwin]
607 |
608 | '@tauri-apps/cli-linux-arm-gnueabihf@1.6.3':
609 | resolution: {integrity: sha512-CjTEr9r9xgjcvos09AQw8QMRPuH152B1jvlZt4PfAsyJNPFigzuwed5/SF7XAd8bFikA7zArP4UT12RdBxrx7w==}
610 | engines: {node: '>= 10'}
611 | cpu: [arm]
612 | os: [linux]
613 |
614 | '@tauri-apps/cli-linux-arm64-gnu@1.6.3':
615 | resolution: {integrity: sha512-G9EUUS4M8M/Jz1UKZqvJmQQCKOzgTb8/0jZKvfBuGfh5AjFBu8LHvlFpwkKVm1l4951Xg4ulUp6P9Q7WRJ9XSA==}
616 | engines: {node: '>= 10'}
617 | cpu: [arm64]
618 | os: [linux]
619 |
620 | '@tauri-apps/cli-linux-arm64-musl@1.6.3':
621 | resolution: {integrity: sha512-MuBTHJyNpZRbPVG8IZBN8+Zs7aKqwD22tkWVBcL1yOGL4zNNTJlkfL+zs5qxRnHlUsn6YAlbW/5HKocfpxVwBw==}
622 | engines: {node: '>= 10'}
623 | cpu: [arm64]
624 | os: [linux]
625 |
626 | '@tauri-apps/cli-linux-x64-gnu@1.6.3':
627 | resolution: {integrity: sha512-Uvi7M+NK3tAjCZEY1WGel+dFlzJmqcvu3KND+nqa22762NFmOuBIZ4KJR/IQHfpEYqKFNUhJfCGnpUDfiC3Oxg==}
628 | engines: {node: '>= 10'}
629 | cpu: [x64]
630 | os: [linux]
631 |
632 | '@tauri-apps/cli-linux-x64-musl@1.6.3':
633 | resolution: {integrity: sha512-rc6B342C0ra8VezB/OJom9j/N+9oW4VRA4qMxS2f4bHY2B/z3J9NPOe6GOILeg4v/CV62ojkLsC3/K/CeF3fqQ==}
634 | engines: {node: '>= 10'}
635 | cpu: [x64]
636 | os: [linux]
637 |
638 | '@tauri-apps/cli-win32-arm64-msvc@1.6.3':
639 | resolution: {integrity: sha512-cSH2qOBYuYC4UVIFtrc1YsGfc5tfYrotoHrpTvRjUGu0VywvmyNk82+ZsHEnWZ2UHmu3l3lXIGRqSWveLln0xg==}
640 | engines: {node: '>= 10'}
641 | cpu: [arm64]
642 | os: [win32]
643 |
644 | '@tauri-apps/cli-win32-ia32-msvc@1.6.3':
645 | resolution: {integrity: sha512-T8V6SJQqE4PSWmYBl0ChQVmS6AR2hXFHURH2DwAhgSGSQ6uBXgwlYFcfIeQpBQA727K2Eq8X2hGfvmoySyHMRw==}
646 | engines: {node: '>= 10'}
647 | cpu: [ia32]
648 | os: [win32]
649 |
650 | '@tauri-apps/cli-win32-x64-msvc@1.6.3':
651 | resolution: {integrity: sha512-HUkWZ+lYHI/Gjkh2QjHD/OBDpqLVmvjZGpLK9losur1Eg974Jip6k+vsoTUxQBCBDfj30eDBct9E1FvXOspWeg==}
652 | engines: {node: '>= 10'}
653 | cpu: [x64]
654 | os: [win32]
655 |
656 | '@tauri-apps/cli@1.6.3':
657 | resolution: {integrity: sha512-q46umd6QLRKDd4Gg6WyZBGa2fWvk0pbeUA5vFomm4uOs1/17LIciHv2iQ4UD+2Yv5H7AO8YiE1t50V0POiEGEw==}
658 | engines: {node: '>= 10'}
659 | hasBin: true
660 |
661 | '@tweenjs/tween.js@23.1.3':
662 | resolution: {integrity: sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==}
663 |
664 | '@types/babel__core@7.20.5':
665 | resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
666 |
667 | '@types/babel__generator@7.6.8':
668 | resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
669 |
670 | '@types/babel__template@7.4.4':
671 | resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
672 |
673 | '@types/babel__traverse@7.20.6':
674 | resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==}
675 |
676 | '@types/cookie@0.6.0':
677 | resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==}
678 |
679 | '@types/estree@1.0.6':
680 | resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
681 |
682 | '@types/json-schema@7.0.15':
683 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
684 |
685 | '@types/prop-types@15.7.14':
686 | resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==}
687 |
688 | '@types/react-dom@18.3.5':
689 | resolution: {integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==}
690 | peerDependencies:
691 | '@types/react': ^18.0.0
692 |
693 | '@types/react@18.3.18':
694 | resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==}
695 |
696 | '@types/stats.js@0.17.3':
697 | resolution: {integrity: sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==}
698 |
699 | '@types/three@0.172.0':
700 | resolution: {integrity: sha512-LrUtP3FEG26Zg5WiF0nbg8VoXiKokBLTcqM2iLvM9vzcfEiYmmBAPGdBgV0OYx9fvWlY3R/3ERTZcD9X5sc0NA==}
701 |
702 | '@types/webxr@0.5.20':
703 | resolution: {integrity: sha512-JGpU6qiIJQKUuVSKx1GtQnHJGxRjtfGIhzO2ilq43VZZS//f1h1Sgexbdk+Lq+7569a6EYhOWrUpIruR/1Enmg==}
704 |
705 | '@typescript-eslint/eslint-plugin@8.19.1':
706 | resolution: {integrity: sha512-tJzcVyvvb9h/PB96g30MpxACd9IrunT7GF9wfA9/0TJ1LxGOJx1TdPzSbBBnNED7K9Ka8ybJsnEpiXPktolTLg==}
707 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
708 | peerDependencies:
709 | '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
710 | eslint: ^8.57.0 || ^9.0.0
711 | typescript: '>=4.8.4 <5.8.0'
712 |
713 | '@typescript-eslint/parser@8.19.1':
714 | resolution: {integrity: sha512-67gbfv8rAwawjYx3fYArwldTQKoYfezNUT4D5ioWetr/xCrxXxvleo3uuiFuKfejipvq+og7mjz3b0G2bVyUCw==}
715 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
716 | peerDependencies:
717 | eslint: ^8.57.0 || ^9.0.0
718 | typescript: '>=4.8.4 <5.8.0'
719 |
720 | '@typescript-eslint/scope-manager@8.19.1':
721 | resolution: {integrity: sha512-60L9KIuN/xgmsINzonOcMDSB8p82h95hoBfSBtXuO4jlR1R9L1xSkmVZKgCPVfavDlXihh4ARNjXhh1gGnLC7Q==}
722 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
723 |
724 | '@typescript-eslint/type-utils@8.19.1':
725 | resolution: {integrity: sha512-Rp7k9lhDKBMRJB/nM9Ksp1zs4796wVNyihG9/TU9R6KCJDNkQbc2EOKjrBtLYh3396ZdpXLtr/MkaSEmNMtykw==}
726 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
727 | peerDependencies:
728 | eslint: ^8.57.0 || ^9.0.0
729 | typescript: '>=4.8.4 <5.8.0'
730 |
731 | '@typescript-eslint/types@8.19.1':
732 | resolution: {integrity: sha512-JBVHMLj7B1K1v1051ZaMMgLW4Q/jre5qGK0Ew6UgXz1Rqh+/xPzV1aW581OM00X6iOfyr1be+QyW8LOUf19BbA==}
733 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
734 |
735 | '@typescript-eslint/typescript-estree@8.19.1':
736 | resolution: {integrity: sha512-jk/TZwSMJlxlNnqhy0Eod1PNEvCkpY6MXOXE/WLlblZ6ibb32i2We4uByoKPv1d0OD2xebDv4hbs3fm11SMw8Q==}
737 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
738 | peerDependencies:
739 | typescript: '>=4.8.4 <5.8.0'
740 |
741 | '@typescript-eslint/utils@8.19.1':
742 | resolution: {integrity: sha512-IxG5gLO0Ne+KaUc8iW1A+XuKLd63o4wlbI1Zp692n1xojCl/THvgIKXJXBZixTh5dd5+yTJ/VXH7GJaaw21qXA==}
743 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
744 | peerDependencies:
745 | eslint: ^8.57.0 || ^9.0.0
746 | typescript: '>=4.8.4 <5.8.0'
747 |
748 | '@typescript-eslint/visitor-keys@8.19.1':
749 | resolution: {integrity: sha512-fzmjU8CHK853V/avYZAvuVut3ZTfwN5YtMaoi+X9Y9MA9keaWNHC3zEQ9zvyX/7Hj+5JkNyK1l7TOR2hevHB6Q==}
750 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
751 |
752 | '@vitejs/plugin-react@4.3.4':
753 | resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==}
754 | engines: {node: ^14.18.0 || >=16.0.0}
755 | peerDependencies:
756 | vite: ^4.2.0 || ^5.0.0 || ^6.0.0
757 |
758 | '@webgpu/types@0.1.52':
759 | resolution: {integrity: sha512-eI883Nlag2hGIkhXxAnq8s4APpqXWuPL3Gbn2ghiU12UjLvfCbVqHK4XfXl3eLRTatqcMmeK7jws7IwWsGfbzw==}
760 |
761 | acorn-jsx@5.3.2:
762 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
763 | peerDependencies:
764 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
765 |
766 | acorn@8.14.0:
767 | resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
768 | engines: {node: '>=0.4.0'}
769 | hasBin: true
770 |
771 | ajv@6.12.6:
772 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
773 |
774 | ansi-regex@5.0.1:
775 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
776 | engines: {node: '>=8'}
777 |
778 | ansi-regex@6.1.0:
779 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==}
780 | engines: {node: '>=12'}
781 |
782 | ansi-styles@4.3.0:
783 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
784 | engines: {node: '>=8'}
785 |
786 | ansi-styles@6.2.1:
787 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
788 | engines: {node: '>=12'}
789 |
790 | any-promise@1.3.0:
791 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
792 |
793 | anymatch@3.1.3:
794 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
795 | engines: {node: '>= 8'}
796 |
797 | arg@5.0.2:
798 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
799 |
800 | argparse@2.0.1:
801 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
802 |
803 | autoprefixer@10.4.20:
804 | resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==}
805 | engines: {node: ^10 || ^12 || >=14}
806 | hasBin: true
807 | peerDependencies:
808 | postcss: ^8.1.0
809 |
810 | balanced-match@1.0.2:
811 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
812 |
813 | binary-extensions@2.3.0:
814 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
815 | engines: {node: '>=8'}
816 |
817 | brace-expansion@1.1.11:
818 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
819 |
820 | brace-expansion@2.0.1:
821 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
822 |
823 | braces@3.0.3:
824 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
825 | engines: {node: '>=8'}
826 |
827 | browserslist@4.24.4:
828 | resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==}
829 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
830 | hasBin: true
831 |
832 | callsites@3.1.0:
833 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
834 | engines: {node: '>=6'}
835 |
836 | camelcase-css@2.0.1:
837 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
838 | engines: {node: '>= 6'}
839 |
840 | caniuse-lite@1.0.30001692:
841 | resolution: {integrity: sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A==}
842 |
843 | chalk@4.1.2:
844 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
845 | engines: {node: '>=10'}
846 |
847 | chokidar@3.6.0:
848 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
849 | engines: {node: '>= 8.10.0'}
850 |
851 | color-convert@2.0.1:
852 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
853 | engines: {node: '>=7.0.0'}
854 |
855 | color-name@1.1.4:
856 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
857 |
858 | commander@4.1.1:
859 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
860 | engines: {node: '>= 6'}
861 |
862 | concat-map@0.0.1:
863 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
864 |
865 | convert-source-map@2.0.0:
866 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
867 |
868 | cookie@1.0.2:
869 | resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==}
870 | engines: {node: '>=18'}
871 |
872 | cross-spawn@7.0.6:
873 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
874 | engines: {node: '>= 8'}
875 |
876 | cssesc@3.0.0:
877 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
878 | engines: {node: '>=4'}
879 | hasBin: true
880 |
881 | csstype@3.1.3:
882 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
883 |
884 | debug@4.4.0:
885 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
886 | engines: {node: '>=6.0'}
887 | peerDependencies:
888 | supports-color: '*'
889 | peerDependenciesMeta:
890 | supports-color:
891 | optional: true
892 |
893 | deep-is@0.1.4:
894 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
895 |
896 | didyoumean@1.2.2:
897 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
898 |
899 | dlv@1.1.3:
900 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
901 |
902 | eastasianwidth@0.2.0:
903 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
904 |
905 | electron-to-chromium@1.5.80:
906 | resolution: {integrity: sha512-LTrKpW0AqIuHwmlVNV+cjFYTnXtM9K37OGhpe0ZI10ScPSxqVSryZHIY3WnCS5NSYbBODRTZyhRMS2h5FAEqAw==}
907 |
908 | emoji-regex@8.0.0:
909 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
910 |
911 | emoji-regex@9.2.2:
912 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
913 |
914 | esbuild@0.24.2:
915 | resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==}
916 | engines: {node: '>=18'}
917 | hasBin: true
918 |
919 | escalade@3.2.0:
920 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
921 | engines: {node: '>=6'}
922 |
923 | escape-string-regexp@4.0.0:
924 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
925 | engines: {node: '>=10'}
926 |
927 | eslint-plugin-react-hooks@5.1.0:
928 | resolution: {integrity: sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==}
929 | engines: {node: '>=10'}
930 | peerDependencies:
931 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0
932 |
933 | eslint-plugin-react-refresh@0.4.18:
934 | resolution: {integrity: sha512-IRGEoFn3OKalm3hjfolEWGqoF/jPqeEYFp+C8B0WMzwGwBMvlRDQd06kghDhF0C61uJ6WfSDhEZE/sAQjduKgw==}
935 | peerDependencies:
936 | eslint: '>=8.40'
937 |
938 | eslint-scope@8.2.0:
939 | resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==}
940 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
941 |
942 | eslint-visitor-keys@3.4.3:
943 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
944 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
945 |
946 | eslint-visitor-keys@4.2.0:
947 | resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
948 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
949 |
950 | eslint@9.18.0:
951 | resolution: {integrity: sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==}
952 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
953 | hasBin: true
954 | peerDependencies:
955 | jiti: '*'
956 | peerDependenciesMeta:
957 | jiti:
958 | optional: true
959 |
960 | espree@10.3.0:
961 | resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==}
962 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
963 |
964 | esquery@1.6.0:
965 | resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
966 | engines: {node: '>=0.10'}
967 |
968 | esrecurse@4.3.0:
969 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
970 | engines: {node: '>=4.0'}
971 |
972 | estraverse@5.3.0:
973 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
974 | engines: {node: '>=4.0'}
975 |
976 | esutils@2.0.3:
977 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
978 | engines: {node: '>=0.10.0'}
979 |
980 | fast-deep-equal@3.1.3:
981 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
982 |
983 | fast-glob@3.3.3:
984 | resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
985 | engines: {node: '>=8.6.0'}
986 |
987 | fast-json-stable-stringify@2.1.0:
988 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
989 |
990 | fast-levenshtein@2.0.6:
991 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
992 |
993 | fastq@1.18.0:
994 | resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==}
995 |
996 | fflate@0.8.2:
997 | resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==}
998 |
999 | file-entry-cache@8.0.0:
1000 | resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
1001 | engines: {node: '>=16.0.0'}
1002 |
1003 | fill-range@7.1.1:
1004 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
1005 | engines: {node: '>=8'}
1006 |
1007 | find-up@5.0.0:
1008 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
1009 | engines: {node: '>=10'}
1010 |
1011 | flat-cache@4.0.1:
1012 | resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
1013 | engines: {node: '>=16'}
1014 |
1015 | flatted@3.3.2:
1016 | resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==}
1017 |
1018 | foreground-child@3.3.0:
1019 | resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
1020 | engines: {node: '>=14'}
1021 |
1022 | fraction.js@4.3.7:
1023 | resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
1024 |
1025 | fsevents@2.3.3:
1026 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
1027 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
1028 | os: [darwin]
1029 |
1030 | function-bind@1.1.2:
1031 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
1032 |
1033 | gensync@1.0.0-beta.2:
1034 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
1035 | engines: {node: '>=6.9.0'}
1036 |
1037 | glob-parent@5.1.2:
1038 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
1039 | engines: {node: '>= 6'}
1040 |
1041 | glob-parent@6.0.2:
1042 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
1043 | engines: {node: '>=10.13.0'}
1044 |
1045 | glob@10.4.5:
1046 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
1047 | hasBin: true
1048 |
1049 | globals@11.12.0:
1050 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
1051 | engines: {node: '>=4'}
1052 |
1053 | globals@14.0.0:
1054 | resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
1055 | engines: {node: '>=18'}
1056 |
1057 | globals@15.14.0:
1058 | resolution: {integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==}
1059 | engines: {node: '>=18'}
1060 |
1061 | globrex@0.1.2:
1062 | resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
1063 |
1064 | graphemer@1.4.0:
1065 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
1066 |
1067 | has-flag@4.0.0:
1068 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
1069 | engines: {node: '>=8'}
1070 |
1071 | hasown@2.0.2:
1072 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
1073 | engines: {node: '>= 0.4'}
1074 |
1075 | ignore@5.3.2:
1076 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
1077 | engines: {node: '>= 4'}
1078 |
1079 | import-fresh@3.3.0:
1080 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
1081 | engines: {node: '>=6'}
1082 |
1083 | imurmurhash@0.1.4:
1084 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
1085 | engines: {node: '>=0.8.19'}
1086 |
1087 | is-binary-path@2.1.0:
1088 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
1089 | engines: {node: '>=8'}
1090 |
1091 | is-core-module@2.16.1:
1092 | resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
1093 | engines: {node: '>= 0.4'}
1094 |
1095 | is-extglob@2.1.1:
1096 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
1097 | engines: {node: '>=0.10.0'}
1098 |
1099 | is-fullwidth-code-point@3.0.0:
1100 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
1101 | engines: {node: '>=8'}
1102 |
1103 | is-glob@4.0.3:
1104 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
1105 | engines: {node: '>=0.10.0'}
1106 |
1107 | is-number@7.0.0:
1108 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1109 | engines: {node: '>=0.12.0'}
1110 |
1111 | isexe@2.0.0:
1112 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
1113 |
1114 | jackspeak@3.4.3:
1115 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
1116 |
1117 | jiti@1.21.7:
1118 | resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==}
1119 | hasBin: true
1120 |
1121 | js-tokens@4.0.0:
1122 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
1123 |
1124 | js-yaml@4.1.0:
1125 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
1126 | hasBin: true
1127 |
1128 | jsesc@3.1.0:
1129 | resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
1130 | engines: {node: '>=6'}
1131 | hasBin: true
1132 |
1133 | json-buffer@3.0.1:
1134 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
1135 |
1136 | json-schema-traverse@0.4.1:
1137 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
1138 |
1139 | json-stable-stringify-without-jsonify@1.0.1:
1140 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
1141 |
1142 | json5@2.2.3:
1143 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
1144 | engines: {node: '>=6'}
1145 | hasBin: true
1146 |
1147 | keyv@4.5.4:
1148 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
1149 |
1150 | levn@0.4.1:
1151 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
1152 | engines: {node: '>= 0.8.0'}
1153 |
1154 | lilconfig@3.1.3:
1155 | resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
1156 | engines: {node: '>=14'}
1157 |
1158 | lines-and-columns@1.2.4:
1159 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
1160 |
1161 | locate-path@6.0.0:
1162 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
1163 | engines: {node: '>=10'}
1164 |
1165 | lodash.merge@4.6.2:
1166 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
1167 |
1168 | loose-envify@1.4.0:
1169 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
1170 | hasBin: true
1171 |
1172 | lru-cache@10.4.3:
1173 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
1174 |
1175 | lru-cache@5.1.1:
1176 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
1177 |
1178 | merge2@1.4.1:
1179 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
1180 | engines: {node: '>= 8'}
1181 |
1182 | meshoptimizer@0.18.1:
1183 | resolution: {integrity: sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==}
1184 |
1185 | micromatch@4.0.8:
1186 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
1187 | engines: {node: '>=8.6'}
1188 |
1189 | minimatch@3.1.2:
1190 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
1191 |
1192 | minimatch@9.0.5:
1193 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
1194 | engines: {node: '>=16 || 14 >=14.17'}
1195 |
1196 | minipass@7.1.2:
1197 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
1198 | engines: {node: '>=16 || 14 >=14.17'}
1199 |
1200 | ms@2.1.3:
1201 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
1202 |
1203 | mz@2.7.0:
1204 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
1205 |
1206 | nanoid@3.3.8:
1207 | resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
1208 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
1209 | hasBin: true
1210 |
1211 | natural-compare@1.4.0:
1212 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
1213 |
1214 | node-releases@2.0.19:
1215 | resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
1216 |
1217 | normalize-path@3.0.0:
1218 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
1219 | engines: {node: '>=0.10.0'}
1220 |
1221 | normalize-range@0.1.2:
1222 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
1223 | engines: {node: '>=0.10.0'}
1224 |
1225 | object-assign@4.1.1:
1226 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
1227 | engines: {node: '>=0.10.0'}
1228 |
1229 | object-hash@3.0.0:
1230 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
1231 | engines: {node: '>= 6'}
1232 |
1233 | optionator@0.9.4:
1234 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
1235 | engines: {node: '>= 0.8.0'}
1236 |
1237 | p-limit@3.1.0:
1238 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
1239 | engines: {node: '>=10'}
1240 |
1241 | p-locate@5.0.0:
1242 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
1243 | engines: {node: '>=10'}
1244 |
1245 | package-json-from-dist@1.0.1:
1246 | resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
1247 |
1248 | parent-module@1.0.1:
1249 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
1250 | engines: {node: '>=6'}
1251 |
1252 | path-exists@4.0.0:
1253 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
1254 | engines: {node: '>=8'}
1255 |
1256 | path-key@3.1.1:
1257 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
1258 | engines: {node: '>=8'}
1259 |
1260 | path-parse@1.0.7:
1261 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
1262 |
1263 | path-scurry@1.11.1:
1264 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
1265 | engines: {node: '>=16 || 14 >=14.18'}
1266 |
1267 | picocolors@1.1.1:
1268 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
1269 |
1270 | picomatch@2.3.1:
1271 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
1272 | engines: {node: '>=8.6'}
1273 |
1274 | pify@2.3.0:
1275 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
1276 | engines: {node: '>=0.10.0'}
1277 |
1278 | pirates@4.0.6:
1279 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
1280 | engines: {node: '>= 6'}
1281 |
1282 | postcss-import@15.1.0:
1283 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
1284 | engines: {node: '>=14.0.0'}
1285 | peerDependencies:
1286 | postcss: ^8.0.0
1287 |
1288 | postcss-js@4.0.1:
1289 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
1290 | engines: {node: ^12 || ^14 || >= 16}
1291 | peerDependencies:
1292 | postcss: ^8.4.21
1293 |
1294 | postcss-load-config@4.0.2:
1295 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
1296 | engines: {node: '>= 14'}
1297 | peerDependencies:
1298 | postcss: '>=8.0.9'
1299 | ts-node: '>=9.0.0'
1300 | peerDependenciesMeta:
1301 | postcss:
1302 | optional: true
1303 | ts-node:
1304 | optional: true
1305 |
1306 | postcss-nested@6.2.0:
1307 | resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
1308 | engines: {node: '>=12.0'}
1309 | peerDependencies:
1310 | postcss: ^8.2.14
1311 |
1312 | postcss-selector-parser@6.1.2:
1313 | resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==}
1314 | engines: {node: '>=4'}
1315 |
1316 | postcss-value-parser@4.2.0:
1317 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
1318 |
1319 | postcss@8.5.1:
1320 | resolution: {integrity: sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==}
1321 | engines: {node: ^10 || ^12 || >=14}
1322 |
1323 | prelude-ls@1.2.1:
1324 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
1325 | engines: {node: '>= 0.8.0'}
1326 |
1327 | prettier@3.4.2:
1328 | resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==}
1329 | engines: {node: '>=14'}
1330 | hasBin: true
1331 |
1332 | punycode@2.3.1:
1333 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
1334 | engines: {node: '>=6'}
1335 |
1336 | queue-microtask@1.2.3:
1337 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1338 |
1339 | react-dom@18.3.1:
1340 | resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
1341 | peerDependencies:
1342 | react: ^18.3.1
1343 |
1344 | react-refresh@0.14.2:
1345 | resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
1346 | engines: {node: '>=0.10.0'}
1347 |
1348 | react-router-dom@7.1.3:
1349 | resolution: {integrity: sha512-qQGTE+77hleBzv9SIUIkGRvuFBQGagW+TQKy53UTZAO/3+YFNBYvRsNIZ1GT17yHbc63FylMOdS+m3oUriF1GA==}
1350 | engines: {node: '>=20.0.0'}
1351 | peerDependencies:
1352 | react: '>=18'
1353 | react-dom: '>=18'
1354 |
1355 | react-router@7.1.3:
1356 | resolution: {integrity: sha512-EezYymLY6Guk/zLQ2vRA8WvdUhWFEj5fcE3RfWihhxXBW7+cd1LsIiA3lmx+KCmneAGQuyBv820o44L2+TtkSA==}
1357 | engines: {node: '>=20.0.0'}
1358 | peerDependencies:
1359 | react: '>=18'
1360 | react-dom: '>=18'
1361 | peerDependenciesMeta:
1362 | react-dom:
1363 | optional: true
1364 |
1365 | react@18.3.1:
1366 | resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
1367 | engines: {node: '>=0.10.0'}
1368 |
1369 | read-cache@1.0.0:
1370 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
1371 |
1372 | readdirp@3.6.0:
1373 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
1374 | engines: {node: '>=8.10.0'}
1375 |
1376 | resolve-from@4.0.0:
1377 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
1378 | engines: {node: '>=4'}
1379 |
1380 | resolve@1.22.10:
1381 | resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==}
1382 | engines: {node: '>= 0.4'}
1383 | hasBin: true
1384 |
1385 | reusify@1.0.4:
1386 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
1387 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
1388 |
1389 | rollup@4.30.1:
1390 | resolution: {integrity: sha512-mlJ4glW020fPuLi7DkM/lN97mYEZGWeqBnrljzN0gs7GLctqX3lNWxKQ7Gl712UAX+6fog/L3jh4gb7R6aVi3w==}
1391 | engines: {node: '>=18.0.0', npm: '>=8.0.0'}
1392 | hasBin: true
1393 |
1394 | run-parallel@1.2.0:
1395 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1396 |
1397 | scheduler@0.23.2:
1398 | resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
1399 |
1400 | semver@6.3.1:
1401 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
1402 | hasBin: true
1403 |
1404 | semver@7.6.3:
1405 | resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==}
1406 | engines: {node: '>=10'}
1407 | hasBin: true
1408 |
1409 | set-cookie-parser@2.7.1:
1410 | resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==}
1411 |
1412 | shebang-command@2.0.0:
1413 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
1414 | engines: {node: '>=8'}
1415 |
1416 | shebang-regex@3.0.0:
1417 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
1418 | engines: {node: '>=8'}
1419 |
1420 | signal-exit@4.1.0:
1421 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
1422 | engines: {node: '>=14'}
1423 |
1424 | source-map-js@1.2.1:
1425 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
1426 | engines: {node: '>=0.10.0'}
1427 |
1428 | string-width@4.2.3:
1429 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
1430 | engines: {node: '>=8'}
1431 |
1432 | string-width@5.1.2:
1433 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
1434 | engines: {node: '>=12'}
1435 |
1436 | strip-ansi@6.0.1:
1437 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
1438 | engines: {node: '>=8'}
1439 |
1440 | strip-ansi@7.1.0:
1441 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
1442 | engines: {node: '>=12'}
1443 |
1444 | strip-json-comments@3.1.1:
1445 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
1446 | engines: {node: '>=8'}
1447 |
1448 | sucrase@3.35.0:
1449 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
1450 | engines: {node: '>=16 || 14 >=14.17'}
1451 | hasBin: true
1452 |
1453 | supports-color@7.2.0:
1454 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
1455 | engines: {node: '>=8'}
1456 |
1457 | supports-preserve-symlinks-flag@1.0.0:
1458 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
1459 | engines: {node: '>= 0.4'}
1460 |
1461 | tailwindcss@3.4.17:
1462 | resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==}
1463 | engines: {node: '>=14.0.0'}
1464 | hasBin: true
1465 |
1466 | thenify-all@1.6.0:
1467 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
1468 | engines: {node: '>=0.8'}
1469 |
1470 | thenify@3.3.1:
1471 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
1472 |
1473 | three@0.172.0:
1474 | resolution: {integrity: sha512-6HMgMlzU97MsV7D/tY8Va38b83kz8YJX+BefKjspMNAv0Vx6dxMogHOrnRl/sbMIs3BPUKijPqDqJ/+UwJbIow==}
1475 |
1476 | to-regex-range@5.0.1:
1477 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1478 | engines: {node: '>=8.0'}
1479 |
1480 | ts-api-utils@2.0.0:
1481 | resolution: {integrity: sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==}
1482 | engines: {node: '>=18.12'}
1483 | peerDependencies:
1484 | typescript: '>=4.8.4'
1485 |
1486 | ts-interface-checker@0.1.13:
1487 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
1488 |
1489 | tsconfck@3.1.4:
1490 | resolution: {integrity: sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==}
1491 | engines: {node: ^18 || >=20}
1492 | hasBin: true
1493 | peerDependencies:
1494 | typescript: ^5.0.0
1495 | peerDependenciesMeta:
1496 | typescript:
1497 | optional: true
1498 |
1499 | turbo-stream@2.4.0:
1500 | resolution: {integrity: sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==}
1501 |
1502 | type-check@0.4.0:
1503 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
1504 | engines: {node: '>= 0.8.0'}
1505 |
1506 | typescript-eslint@8.19.1:
1507 | resolution: {integrity: sha512-LKPUQpdEMVOeKluHi8md7rwLcoXHhwvWp3x+sJkMuq3gGm9yaYJtPo8sRZSblMFJ5pcOGCAak/scKf1mvZDlQw==}
1508 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1509 | peerDependencies:
1510 | eslint: ^8.57.0 || ^9.0.0
1511 | typescript: '>=4.8.4 <5.8.0'
1512 |
1513 | typescript@5.6.3:
1514 | resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==}
1515 | engines: {node: '>=14.17'}
1516 | hasBin: true
1517 |
1518 | update-browserslist-db@1.1.2:
1519 | resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==}
1520 | hasBin: true
1521 | peerDependencies:
1522 | browserslist: '>= 4.21.0'
1523 |
1524 | uri-js@4.4.1:
1525 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
1526 |
1527 | util-deprecate@1.0.2:
1528 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
1529 |
1530 | vite-tsconfig-paths@5.1.4:
1531 | resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==}
1532 | peerDependencies:
1533 | vite: '*'
1534 | peerDependenciesMeta:
1535 | vite:
1536 | optional: true
1537 |
1538 | vite@6.0.7:
1539 | resolution: {integrity: sha512-RDt8r/7qx9940f8FcOIAH9PTViRrghKaK2K1jY3RaAURrEUbm9Du1mJ72G+jlhtG3WwodnfzY8ORQZbBavZEAQ==}
1540 | engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
1541 | hasBin: true
1542 | peerDependencies:
1543 | '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
1544 | jiti: '>=1.21.0'
1545 | less: '*'
1546 | lightningcss: ^1.21.0
1547 | sass: '*'
1548 | sass-embedded: '*'
1549 | stylus: '*'
1550 | sugarss: '*'
1551 | terser: ^5.16.0
1552 | tsx: ^4.8.1
1553 | yaml: ^2.4.2
1554 | peerDependenciesMeta:
1555 | '@types/node':
1556 | optional: true
1557 | jiti:
1558 | optional: true
1559 | less:
1560 | optional: true
1561 | lightningcss:
1562 | optional: true
1563 | sass:
1564 | optional: true
1565 | sass-embedded:
1566 | optional: true
1567 | stylus:
1568 | optional: true
1569 | sugarss:
1570 | optional: true
1571 | terser:
1572 | optional: true
1573 | tsx:
1574 | optional: true
1575 | yaml:
1576 | optional: true
1577 |
1578 | which@2.0.2:
1579 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
1580 | engines: {node: '>= 8'}
1581 | hasBin: true
1582 |
1583 | word-wrap@1.2.5:
1584 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
1585 | engines: {node: '>=0.10.0'}
1586 |
1587 | wrap-ansi@7.0.0:
1588 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
1589 | engines: {node: '>=10'}
1590 |
1591 | wrap-ansi@8.1.0:
1592 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
1593 | engines: {node: '>=12'}
1594 |
1595 | yallist@3.1.1:
1596 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
1597 |
1598 | yaml@2.7.0:
1599 | resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==}
1600 | engines: {node: '>= 14'}
1601 | hasBin: true
1602 |
1603 | yocto-queue@0.1.0:
1604 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
1605 | engines: {node: '>=10'}
1606 |
1607 | snapshots:
1608 |
1609 | '@alloc/quick-lru@5.2.0': {}
1610 |
1611 | '@ampproject/remapping@2.3.0':
1612 | dependencies:
1613 | '@jridgewell/gen-mapping': 0.3.8
1614 | '@jridgewell/trace-mapping': 0.3.25
1615 |
1616 | '@babel/code-frame@7.26.2':
1617 | dependencies:
1618 | '@babel/helper-validator-identifier': 7.25.9
1619 | js-tokens: 4.0.0
1620 | picocolors: 1.1.1
1621 |
1622 | '@babel/compat-data@7.26.5': {}
1623 |
1624 | '@babel/core@7.26.0':
1625 | dependencies:
1626 | '@ampproject/remapping': 2.3.0
1627 | '@babel/code-frame': 7.26.2
1628 | '@babel/generator': 7.26.5
1629 | '@babel/helper-compilation-targets': 7.26.5
1630 | '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0)
1631 | '@babel/helpers': 7.26.0
1632 | '@babel/parser': 7.26.5
1633 | '@babel/template': 7.25.9
1634 | '@babel/traverse': 7.26.5
1635 | '@babel/types': 7.26.5
1636 | convert-source-map: 2.0.0
1637 | debug: 4.4.0
1638 | gensync: 1.0.0-beta.2
1639 | json5: 2.2.3
1640 | semver: 6.3.1
1641 | transitivePeerDependencies:
1642 | - supports-color
1643 |
1644 | '@babel/generator@7.26.5':
1645 | dependencies:
1646 | '@babel/parser': 7.26.5
1647 | '@babel/types': 7.26.5
1648 | '@jridgewell/gen-mapping': 0.3.8
1649 | '@jridgewell/trace-mapping': 0.3.25
1650 | jsesc: 3.1.0
1651 |
1652 | '@babel/helper-compilation-targets@7.26.5':
1653 | dependencies:
1654 | '@babel/compat-data': 7.26.5
1655 | '@babel/helper-validator-option': 7.25.9
1656 | browserslist: 4.24.4
1657 | lru-cache: 5.1.1
1658 | semver: 6.3.1
1659 |
1660 | '@babel/helper-module-imports@7.25.9':
1661 | dependencies:
1662 | '@babel/traverse': 7.26.5
1663 | '@babel/types': 7.26.5
1664 | transitivePeerDependencies:
1665 | - supports-color
1666 |
1667 | '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)':
1668 | dependencies:
1669 | '@babel/core': 7.26.0
1670 | '@babel/helper-module-imports': 7.25.9
1671 | '@babel/helper-validator-identifier': 7.25.9
1672 | '@babel/traverse': 7.26.5
1673 | transitivePeerDependencies:
1674 | - supports-color
1675 |
1676 | '@babel/helper-plugin-utils@7.26.5': {}
1677 |
1678 | '@babel/helper-string-parser@7.25.9': {}
1679 |
1680 | '@babel/helper-validator-identifier@7.25.9': {}
1681 |
1682 | '@babel/helper-validator-option@7.25.9': {}
1683 |
1684 | '@babel/helpers@7.26.0':
1685 | dependencies:
1686 | '@babel/template': 7.25.9
1687 | '@babel/types': 7.26.5
1688 |
1689 | '@babel/parser@7.26.5':
1690 | dependencies:
1691 | '@babel/types': 7.26.5
1692 |
1693 | '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.0)':
1694 | dependencies:
1695 | '@babel/core': 7.26.0
1696 | '@babel/helper-plugin-utils': 7.26.5
1697 |
1698 | '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.0)':
1699 | dependencies:
1700 | '@babel/core': 7.26.0
1701 | '@babel/helper-plugin-utils': 7.26.5
1702 |
1703 | '@babel/template@7.25.9':
1704 | dependencies:
1705 | '@babel/code-frame': 7.26.2
1706 | '@babel/parser': 7.26.5
1707 | '@babel/types': 7.26.5
1708 |
1709 | '@babel/traverse@7.26.5':
1710 | dependencies:
1711 | '@babel/code-frame': 7.26.2
1712 | '@babel/generator': 7.26.5
1713 | '@babel/parser': 7.26.5
1714 | '@babel/template': 7.25.9
1715 | '@babel/types': 7.26.5
1716 | debug: 4.4.0
1717 | globals: 11.12.0
1718 | transitivePeerDependencies:
1719 | - supports-color
1720 |
1721 | '@babel/types@7.26.5':
1722 | dependencies:
1723 | '@babel/helper-string-parser': 7.25.9
1724 | '@babel/helper-validator-identifier': 7.25.9
1725 |
1726 | '@esbuild/aix-ppc64@0.24.2':
1727 | optional: true
1728 |
1729 | '@esbuild/android-arm64@0.24.2':
1730 | optional: true
1731 |
1732 | '@esbuild/android-arm@0.24.2':
1733 | optional: true
1734 |
1735 | '@esbuild/android-x64@0.24.2':
1736 | optional: true
1737 |
1738 | '@esbuild/darwin-arm64@0.24.2':
1739 | optional: true
1740 |
1741 | '@esbuild/darwin-x64@0.24.2':
1742 | optional: true
1743 |
1744 | '@esbuild/freebsd-arm64@0.24.2':
1745 | optional: true
1746 |
1747 | '@esbuild/freebsd-x64@0.24.2':
1748 | optional: true
1749 |
1750 | '@esbuild/linux-arm64@0.24.2':
1751 | optional: true
1752 |
1753 | '@esbuild/linux-arm@0.24.2':
1754 | optional: true
1755 |
1756 | '@esbuild/linux-ia32@0.24.2':
1757 | optional: true
1758 |
1759 | '@esbuild/linux-loong64@0.24.2':
1760 | optional: true
1761 |
1762 | '@esbuild/linux-mips64el@0.24.2':
1763 | optional: true
1764 |
1765 | '@esbuild/linux-ppc64@0.24.2':
1766 | optional: true
1767 |
1768 | '@esbuild/linux-riscv64@0.24.2':
1769 | optional: true
1770 |
1771 | '@esbuild/linux-s390x@0.24.2':
1772 | optional: true
1773 |
1774 | '@esbuild/linux-x64@0.24.2':
1775 | optional: true
1776 |
1777 | '@esbuild/netbsd-arm64@0.24.2':
1778 | optional: true
1779 |
1780 | '@esbuild/netbsd-x64@0.24.2':
1781 | optional: true
1782 |
1783 | '@esbuild/openbsd-arm64@0.24.2':
1784 | optional: true
1785 |
1786 | '@esbuild/openbsd-x64@0.24.2':
1787 | optional: true
1788 |
1789 | '@esbuild/sunos-x64@0.24.2':
1790 | optional: true
1791 |
1792 | '@esbuild/win32-arm64@0.24.2':
1793 | optional: true
1794 |
1795 | '@esbuild/win32-ia32@0.24.2':
1796 | optional: true
1797 |
1798 | '@esbuild/win32-x64@0.24.2':
1799 | optional: true
1800 |
1801 | '@eslint-community/eslint-utils@4.4.1(eslint@9.18.0(jiti@1.21.7))':
1802 | dependencies:
1803 | eslint: 9.18.0(jiti@1.21.7)
1804 | eslint-visitor-keys: 3.4.3
1805 |
1806 | '@eslint-community/regexpp@4.12.1': {}
1807 |
1808 | '@eslint/config-array@0.19.1':
1809 | dependencies:
1810 | '@eslint/object-schema': 2.1.5
1811 | debug: 4.4.0
1812 | minimatch: 3.1.2
1813 | transitivePeerDependencies:
1814 | - supports-color
1815 |
1816 | '@eslint/core@0.10.0':
1817 | dependencies:
1818 | '@types/json-schema': 7.0.15
1819 |
1820 | '@eslint/eslintrc@3.2.0':
1821 | dependencies:
1822 | ajv: 6.12.6
1823 | debug: 4.4.0
1824 | espree: 10.3.0
1825 | globals: 14.0.0
1826 | ignore: 5.3.2
1827 | import-fresh: 3.3.0
1828 | js-yaml: 4.1.0
1829 | minimatch: 3.1.2
1830 | strip-json-comments: 3.1.1
1831 | transitivePeerDependencies:
1832 | - supports-color
1833 |
1834 | '@eslint/js@9.18.0': {}
1835 |
1836 | '@eslint/object-schema@2.1.5': {}
1837 |
1838 | '@eslint/plugin-kit@0.2.5':
1839 | dependencies:
1840 | '@eslint/core': 0.10.0
1841 | levn: 0.4.1
1842 |
1843 | '@humanfs/core@0.19.1': {}
1844 |
1845 | '@humanfs/node@0.16.6':
1846 | dependencies:
1847 | '@humanfs/core': 0.19.1
1848 | '@humanwhocodes/retry': 0.3.1
1849 |
1850 | '@humanwhocodes/module-importer@1.0.1': {}
1851 |
1852 | '@humanwhocodes/retry@0.3.1': {}
1853 |
1854 | '@humanwhocodes/retry@0.4.1': {}
1855 |
1856 | '@isaacs/cliui@8.0.2':
1857 | dependencies:
1858 | string-width: 5.1.2
1859 | string-width-cjs: string-width@4.2.3
1860 | strip-ansi: 7.1.0
1861 | strip-ansi-cjs: strip-ansi@6.0.1
1862 | wrap-ansi: 8.1.0
1863 | wrap-ansi-cjs: wrap-ansi@7.0.0
1864 |
1865 | '@jridgewell/gen-mapping@0.3.8':
1866 | dependencies:
1867 | '@jridgewell/set-array': 1.2.1
1868 | '@jridgewell/sourcemap-codec': 1.5.0
1869 | '@jridgewell/trace-mapping': 0.3.25
1870 |
1871 | '@jridgewell/resolve-uri@3.1.2': {}
1872 |
1873 | '@jridgewell/set-array@1.2.1': {}
1874 |
1875 | '@jridgewell/sourcemap-codec@1.5.0': {}
1876 |
1877 | '@jridgewell/trace-mapping@0.3.25':
1878 | dependencies:
1879 | '@jridgewell/resolve-uri': 3.1.2
1880 | '@jridgewell/sourcemap-codec': 1.5.0
1881 |
1882 | '@nodelib/fs.scandir@2.1.5':
1883 | dependencies:
1884 | '@nodelib/fs.stat': 2.0.5
1885 | run-parallel: 1.2.0
1886 |
1887 | '@nodelib/fs.stat@2.0.5': {}
1888 |
1889 | '@nodelib/fs.walk@1.2.8':
1890 | dependencies:
1891 | '@nodelib/fs.scandir': 2.1.5
1892 | fastq: 1.18.0
1893 |
1894 | '@pixiv/three-vrm-animation@3.3.3(three@0.172.0)':
1895 | dependencies:
1896 | '@pixiv/three-vrm-core': 3.3.3(three@0.172.0)
1897 | '@pixiv/types-vrmc-vrm-1.0': 3.3.3
1898 | '@pixiv/types-vrmc-vrm-animation-1.0': 3.3.3
1899 | three: 0.172.0
1900 |
1901 | '@pixiv/three-vrm-core@3.3.2(three@0.172.0)':
1902 | dependencies:
1903 | '@pixiv/types-vrm-0.0': 3.3.2
1904 | '@pixiv/types-vrmc-vrm-1.0': 3.3.2
1905 | three: 0.172.0
1906 |
1907 | '@pixiv/three-vrm-core@3.3.3(three@0.172.0)':
1908 | dependencies:
1909 | '@pixiv/types-vrm-0.0': 3.3.3
1910 | '@pixiv/types-vrmc-vrm-1.0': 3.3.3
1911 | three: 0.172.0
1912 |
1913 | '@pixiv/three-vrm-materials-hdr-emissive-multiplier@3.3.2(three@0.172.0)':
1914 | dependencies:
1915 | '@pixiv/types-vrmc-materials-hdr-emissive-multiplier-1.0': 3.3.2
1916 | three: 0.172.0
1917 |
1918 | '@pixiv/three-vrm-materials-mtoon@3.3.2(three@0.172.0)':
1919 | dependencies:
1920 | '@pixiv/types-vrm-0.0': 3.3.2
1921 | '@pixiv/types-vrmc-materials-mtoon-1.0': 3.3.2
1922 | three: 0.172.0
1923 |
1924 | '@pixiv/three-vrm-materials-v0compat@3.3.2(three@0.172.0)':
1925 | dependencies:
1926 | '@pixiv/types-vrm-0.0': 3.3.2
1927 | '@pixiv/types-vrmc-materials-mtoon-1.0': 3.3.2
1928 | three: 0.172.0
1929 |
1930 | '@pixiv/three-vrm-node-constraint@3.3.2(three@0.172.0)':
1931 | dependencies:
1932 | '@pixiv/types-vrmc-node-constraint-1.0': 3.3.2
1933 | three: 0.172.0
1934 |
1935 | '@pixiv/three-vrm-springbone@3.3.2(three@0.172.0)':
1936 | dependencies:
1937 | '@pixiv/types-vrm-0.0': 3.3.2
1938 | '@pixiv/types-vrmc-springbone-1.0': 3.3.2
1939 | '@pixiv/types-vrmc-springbone-extended-collider-1.0': 3.3.2
1940 | three: 0.172.0
1941 |
1942 | '@pixiv/three-vrm@3.3.2(three@0.172.0)':
1943 | dependencies:
1944 | '@pixiv/three-vrm-core': 3.3.2(three@0.172.0)
1945 | '@pixiv/three-vrm-materials-hdr-emissive-multiplier': 3.3.2(three@0.172.0)
1946 | '@pixiv/three-vrm-materials-mtoon': 3.3.2(three@0.172.0)
1947 | '@pixiv/three-vrm-materials-v0compat': 3.3.2(three@0.172.0)
1948 | '@pixiv/three-vrm-node-constraint': 3.3.2(three@0.172.0)
1949 | '@pixiv/three-vrm-springbone': 3.3.2(three@0.172.0)
1950 | three: 0.172.0
1951 |
1952 | '@pixiv/types-vrm-0.0@3.3.2': {}
1953 |
1954 | '@pixiv/types-vrm-0.0@3.3.3': {}
1955 |
1956 | '@pixiv/types-vrmc-materials-hdr-emissive-multiplier-1.0@3.3.2': {}
1957 |
1958 | '@pixiv/types-vrmc-materials-mtoon-1.0@3.3.2': {}
1959 |
1960 | '@pixiv/types-vrmc-node-constraint-1.0@3.3.2': {}
1961 |
1962 | '@pixiv/types-vrmc-springbone-1.0@3.3.2': {}
1963 |
1964 | '@pixiv/types-vrmc-springbone-extended-collider-1.0@3.3.2': {}
1965 |
1966 | '@pixiv/types-vrmc-vrm-1.0@2.0.3': {}
1967 |
1968 | '@pixiv/types-vrmc-vrm-1.0@3.3.2': {}
1969 |
1970 | '@pixiv/types-vrmc-vrm-1.0@3.3.3': {}
1971 |
1972 | '@pixiv/types-vrmc-vrm-animation-1.0@3.3.3':
1973 | dependencies:
1974 | '@pixiv/types-vrmc-vrm-1.0': 2.0.3
1975 |
1976 | '@pkgjs/parseargs@0.11.0':
1977 | optional: true
1978 |
1979 | '@rollup/rollup-android-arm-eabi@4.30.1':
1980 | optional: true
1981 |
1982 | '@rollup/rollup-android-arm64@4.30.1':
1983 | optional: true
1984 |
1985 | '@rollup/rollup-darwin-arm64@4.30.1':
1986 | optional: true
1987 |
1988 | '@rollup/rollup-darwin-x64@4.30.1':
1989 | optional: true
1990 |
1991 | '@rollup/rollup-freebsd-arm64@4.30.1':
1992 | optional: true
1993 |
1994 | '@rollup/rollup-freebsd-x64@4.30.1':
1995 | optional: true
1996 |
1997 | '@rollup/rollup-linux-arm-gnueabihf@4.30.1':
1998 | optional: true
1999 |
2000 | '@rollup/rollup-linux-arm-musleabihf@4.30.1':
2001 | optional: true
2002 |
2003 | '@rollup/rollup-linux-arm64-gnu@4.30.1':
2004 | optional: true
2005 |
2006 | '@rollup/rollup-linux-arm64-musl@4.30.1':
2007 | optional: true
2008 |
2009 | '@rollup/rollup-linux-loongarch64-gnu@4.30.1':
2010 | optional: true
2011 |
2012 | '@rollup/rollup-linux-powerpc64le-gnu@4.30.1':
2013 | optional: true
2014 |
2015 | '@rollup/rollup-linux-riscv64-gnu@4.30.1':
2016 | optional: true
2017 |
2018 | '@rollup/rollup-linux-s390x-gnu@4.30.1':
2019 | optional: true
2020 |
2021 | '@rollup/rollup-linux-x64-gnu@4.30.1':
2022 | optional: true
2023 |
2024 | '@rollup/rollup-linux-x64-musl@4.30.1':
2025 | optional: true
2026 |
2027 | '@rollup/rollup-win32-arm64-msvc@4.30.1':
2028 | optional: true
2029 |
2030 | '@rollup/rollup-win32-ia32-msvc@4.30.1':
2031 | optional: true
2032 |
2033 | '@rollup/rollup-win32-x64-msvc@4.30.1':
2034 | optional: true
2035 |
2036 | '@tauri-apps/api@1.6.0': {}
2037 |
2038 | '@tauri-apps/cli-darwin-arm64@1.6.3':
2039 | optional: true
2040 |
2041 | '@tauri-apps/cli-darwin-x64@1.6.3':
2042 | optional: true
2043 |
2044 | '@tauri-apps/cli-linux-arm-gnueabihf@1.6.3':
2045 | optional: true
2046 |
2047 | '@tauri-apps/cli-linux-arm64-gnu@1.6.3':
2048 | optional: true
2049 |
2050 | '@tauri-apps/cli-linux-arm64-musl@1.6.3':
2051 | optional: true
2052 |
2053 | '@tauri-apps/cli-linux-x64-gnu@1.6.3':
2054 | optional: true
2055 |
2056 | '@tauri-apps/cli-linux-x64-musl@1.6.3':
2057 | optional: true
2058 |
2059 | '@tauri-apps/cli-win32-arm64-msvc@1.6.3':
2060 | optional: true
2061 |
2062 | '@tauri-apps/cli-win32-ia32-msvc@1.6.3':
2063 | optional: true
2064 |
2065 | '@tauri-apps/cli-win32-x64-msvc@1.6.3':
2066 | optional: true
2067 |
2068 | '@tauri-apps/cli@1.6.3':
2069 | dependencies:
2070 | semver: 7.6.3
2071 | optionalDependencies:
2072 | '@tauri-apps/cli-darwin-arm64': 1.6.3
2073 | '@tauri-apps/cli-darwin-x64': 1.6.3
2074 | '@tauri-apps/cli-linux-arm-gnueabihf': 1.6.3
2075 | '@tauri-apps/cli-linux-arm64-gnu': 1.6.3
2076 | '@tauri-apps/cli-linux-arm64-musl': 1.6.3
2077 | '@tauri-apps/cli-linux-x64-gnu': 1.6.3
2078 | '@tauri-apps/cli-linux-x64-musl': 1.6.3
2079 | '@tauri-apps/cli-win32-arm64-msvc': 1.6.3
2080 | '@tauri-apps/cli-win32-ia32-msvc': 1.6.3
2081 | '@tauri-apps/cli-win32-x64-msvc': 1.6.3
2082 |
2083 | '@tweenjs/tween.js@23.1.3': {}
2084 |
2085 | '@types/babel__core@7.20.5':
2086 | dependencies:
2087 | '@babel/parser': 7.26.5
2088 | '@babel/types': 7.26.5
2089 | '@types/babel__generator': 7.6.8
2090 | '@types/babel__template': 7.4.4
2091 | '@types/babel__traverse': 7.20.6
2092 |
2093 | '@types/babel__generator@7.6.8':
2094 | dependencies:
2095 | '@babel/types': 7.26.5
2096 |
2097 | '@types/babel__template@7.4.4':
2098 | dependencies:
2099 | '@babel/parser': 7.26.5
2100 | '@babel/types': 7.26.5
2101 |
2102 | '@types/babel__traverse@7.20.6':
2103 | dependencies:
2104 | '@babel/types': 7.26.5
2105 |
2106 | '@types/cookie@0.6.0': {}
2107 |
2108 | '@types/estree@1.0.6': {}
2109 |
2110 | '@types/json-schema@7.0.15': {}
2111 |
2112 | '@types/prop-types@15.7.14': {}
2113 |
2114 | '@types/react-dom@18.3.5(@types/react@18.3.18)':
2115 | dependencies:
2116 | '@types/react': 18.3.18
2117 |
2118 | '@types/react@18.3.18':
2119 | dependencies:
2120 | '@types/prop-types': 15.7.14
2121 | csstype: 3.1.3
2122 |
2123 | '@types/stats.js@0.17.3': {}
2124 |
2125 | '@types/three@0.172.0':
2126 | dependencies:
2127 | '@tweenjs/tween.js': 23.1.3
2128 | '@types/stats.js': 0.17.3
2129 | '@types/webxr': 0.5.20
2130 | '@webgpu/types': 0.1.52
2131 | fflate: 0.8.2
2132 | meshoptimizer: 0.18.1
2133 |
2134 | '@types/webxr@0.5.20': {}
2135 |
2136 | '@typescript-eslint/eslint-plugin@8.19.1(@typescript-eslint/parser@8.19.1(eslint@9.18.0(jiti@1.21.7))(typescript@5.6.3))(eslint@9.18.0(jiti@1.21.7))(typescript@5.6.3)':
2137 | dependencies:
2138 | '@eslint-community/regexpp': 4.12.1
2139 | '@typescript-eslint/parser': 8.19.1(eslint@9.18.0(jiti@1.21.7))(typescript@5.6.3)
2140 | '@typescript-eslint/scope-manager': 8.19.1
2141 | '@typescript-eslint/type-utils': 8.19.1(eslint@9.18.0(jiti@1.21.7))(typescript@5.6.3)
2142 | '@typescript-eslint/utils': 8.19.1(eslint@9.18.0(jiti@1.21.7))(typescript@5.6.3)
2143 | '@typescript-eslint/visitor-keys': 8.19.1
2144 | eslint: 9.18.0(jiti@1.21.7)
2145 | graphemer: 1.4.0
2146 | ignore: 5.3.2
2147 | natural-compare: 1.4.0
2148 | ts-api-utils: 2.0.0(typescript@5.6.3)
2149 | typescript: 5.6.3
2150 | transitivePeerDependencies:
2151 | - supports-color
2152 |
2153 | '@typescript-eslint/parser@8.19.1(eslint@9.18.0(jiti@1.21.7))(typescript@5.6.3)':
2154 | dependencies:
2155 | '@typescript-eslint/scope-manager': 8.19.1
2156 | '@typescript-eslint/types': 8.19.1
2157 | '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.6.3)
2158 | '@typescript-eslint/visitor-keys': 8.19.1
2159 | debug: 4.4.0
2160 | eslint: 9.18.0(jiti@1.21.7)
2161 | typescript: 5.6.3
2162 | transitivePeerDependencies:
2163 | - supports-color
2164 |
2165 | '@typescript-eslint/scope-manager@8.19.1':
2166 | dependencies:
2167 | '@typescript-eslint/types': 8.19.1
2168 | '@typescript-eslint/visitor-keys': 8.19.1
2169 |
2170 | '@typescript-eslint/type-utils@8.19.1(eslint@9.18.0(jiti@1.21.7))(typescript@5.6.3)':
2171 | dependencies:
2172 | '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.6.3)
2173 | '@typescript-eslint/utils': 8.19.1(eslint@9.18.0(jiti@1.21.7))(typescript@5.6.3)
2174 | debug: 4.4.0
2175 | eslint: 9.18.0(jiti@1.21.7)
2176 | ts-api-utils: 2.0.0(typescript@5.6.3)
2177 | typescript: 5.6.3
2178 | transitivePeerDependencies:
2179 | - supports-color
2180 |
2181 | '@typescript-eslint/types@8.19.1': {}
2182 |
2183 | '@typescript-eslint/typescript-estree@8.19.1(typescript@5.6.3)':
2184 | dependencies:
2185 | '@typescript-eslint/types': 8.19.1
2186 | '@typescript-eslint/visitor-keys': 8.19.1
2187 | debug: 4.4.0
2188 | fast-glob: 3.3.3
2189 | is-glob: 4.0.3
2190 | minimatch: 9.0.5
2191 | semver: 7.6.3
2192 | ts-api-utils: 2.0.0(typescript@5.6.3)
2193 | typescript: 5.6.3
2194 | transitivePeerDependencies:
2195 | - supports-color
2196 |
2197 | '@typescript-eslint/utils@8.19.1(eslint@9.18.0(jiti@1.21.7))(typescript@5.6.3)':
2198 | dependencies:
2199 | '@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0(jiti@1.21.7))
2200 | '@typescript-eslint/scope-manager': 8.19.1
2201 | '@typescript-eslint/types': 8.19.1
2202 | '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.6.3)
2203 | eslint: 9.18.0(jiti@1.21.7)
2204 | typescript: 5.6.3
2205 | transitivePeerDependencies:
2206 | - supports-color
2207 |
2208 | '@typescript-eslint/visitor-keys@8.19.1':
2209 | dependencies:
2210 | '@typescript-eslint/types': 8.19.1
2211 | eslint-visitor-keys: 4.2.0
2212 |
2213 | '@vitejs/plugin-react@4.3.4(vite@6.0.7(jiti@1.21.7)(yaml@2.7.0))':
2214 | dependencies:
2215 | '@babel/core': 7.26.0
2216 | '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0)
2217 | '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0)
2218 | '@types/babel__core': 7.20.5
2219 | react-refresh: 0.14.2
2220 | vite: 6.0.7(jiti@1.21.7)(yaml@2.7.0)
2221 | transitivePeerDependencies:
2222 | - supports-color
2223 |
2224 | '@webgpu/types@0.1.52': {}
2225 |
2226 | acorn-jsx@5.3.2(acorn@8.14.0):
2227 | dependencies:
2228 | acorn: 8.14.0
2229 |
2230 | acorn@8.14.0: {}
2231 |
2232 | ajv@6.12.6:
2233 | dependencies:
2234 | fast-deep-equal: 3.1.3
2235 | fast-json-stable-stringify: 2.1.0
2236 | json-schema-traverse: 0.4.1
2237 | uri-js: 4.4.1
2238 |
2239 | ansi-regex@5.0.1: {}
2240 |
2241 | ansi-regex@6.1.0: {}
2242 |
2243 | ansi-styles@4.3.0:
2244 | dependencies:
2245 | color-convert: 2.0.1
2246 |
2247 | ansi-styles@6.2.1: {}
2248 |
2249 | any-promise@1.3.0: {}
2250 |
2251 | anymatch@3.1.3:
2252 | dependencies:
2253 | normalize-path: 3.0.0
2254 | picomatch: 2.3.1
2255 |
2256 | arg@5.0.2: {}
2257 |
2258 | argparse@2.0.1: {}
2259 |
2260 | autoprefixer@10.4.20(postcss@8.5.1):
2261 | dependencies:
2262 | browserslist: 4.24.4
2263 | caniuse-lite: 1.0.30001692
2264 | fraction.js: 4.3.7
2265 | normalize-range: 0.1.2
2266 | picocolors: 1.1.1
2267 | postcss: 8.5.1
2268 | postcss-value-parser: 4.2.0
2269 |
2270 | balanced-match@1.0.2: {}
2271 |
2272 | binary-extensions@2.3.0: {}
2273 |
2274 | brace-expansion@1.1.11:
2275 | dependencies:
2276 | balanced-match: 1.0.2
2277 | concat-map: 0.0.1
2278 |
2279 | brace-expansion@2.0.1:
2280 | dependencies:
2281 | balanced-match: 1.0.2
2282 |
2283 | braces@3.0.3:
2284 | dependencies:
2285 | fill-range: 7.1.1
2286 |
2287 | browserslist@4.24.4:
2288 | dependencies:
2289 | caniuse-lite: 1.0.30001692
2290 | electron-to-chromium: 1.5.80
2291 | node-releases: 2.0.19
2292 | update-browserslist-db: 1.1.2(browserslist@4.24.4)
2293 |
2294 | callsites@3.1.0: {}
2295 |
2296 | camelcase-css@2.0.1: {}
2297 |
2298 | caniuse-lite@1.0.30001692: {}
2299 |
2300 | chalk@4.1.2:
2301 | dependencies:
2302 | ansi-styles: 4.3.0
2303 | supports-color: 7.2.0
2304 |
2305 | chokidar@3.6.0:
2306 | dependencies:
2307 | anymatch: 3.1.3
2308 | braces: 3.0.3
2309 | glob-parent: 5.1.2
2310 | is-binary-path: 2.1.0
2311 | is-glob: 4.0.3
2312 | normalize-path: 3.0.0
2313 | readdirp: 3.6.0
2314 | optionalDependencies:
2315 | fsevents: 2.3.3
2316 |
2317 | color-convert@2.0.1:
2318 | dependencies:
2319 | color-name: 1.1.4
2320 |
2321 | color-name@1.1.4: {}
2322 |
2323 | commander@4.1.1: {}
2324 |
2325 | concat-map@0.0.1: {}
2326 |
2327 | convert-source-map@2.0.0: {}
2328 |
2329 | cookie@1.0.2: {}
2330 |
2331 | cross-spawn@7.0.6:
2332 | dependencies:
2333 | path-key: 3.1.1
2334 | shebang-command: 2.0.0
2335 | which: 2.0.2
2336 |
2337 | cssesc@3.0.0: {}
2338 |
2339 | csstype@3.1.3: {}
2340 |
2341 | debug@4.4.0:
2342 | dependencies:
2343 | ms: 2.1.3
2344 |
2345 | deep-is@0.1.4: {}
2346 |
2347 | didyoumean@1.2.2: {}
2348 |
2349 | dlv@1.1.3: {}
2350 |
2351 | eastasianwidth@0.2.0: {}
2352 |
2353 | electron-to-chromium@1.5.80: {}
2354 |
2355 | emoji-regex@8.0.0: {}
2356 |
2357 | emoji-regex@9.2.2: {}
2358 |
2359 | esbuild@0.24.2:
2360 | optionalDependencies:
2361 | '@esbuild/aix-ppc64': 0.24.2
2362 | '@esbuild/android-arm': 0.24.2
2363 | '@esbuild/android-arm64': 0.24.2
2364 | '@esbuild/android-x64': 0.24.2
2365 | '@esbuild/darwin-arm64': 0.24.2
2366 | '@esbuild/darwin-x64': 0.24.2
2367 | '@esbuild/freebsd-arm64': 0.24.2
2368 | '@esbuild/freebsd-x64': 0.24.2
2369 | '@esbuild/linux-arm': 0.24.2
2370 | '@esbuild/linux-arm64': 0.24.2
2371 | '@esbuild/linux-ia32': 0.24.2
2372 | '@esbuild/linux-loong64': 0.24.2
2373 | '@esbuild/linux-mips64el': 0.24.2
2374 | '@esbuild/linux-ppc64': 0.24.2
2375 | '@esbuild/linux-riscv64': 0.24.2
2376 | '@esbuild/linux-s390x': 0.24.2
2377 | '@esbuild/linux-x64': 0.24.2
2378 | '@esbuild/netbsd-arm64': 0.24.2
2379 | '@esbuild/netbsd-x64': 0.24.2
2380 | '@esbuild/openbsd-arm64': 0.24.2
2381 | '@esbuild/openbsd-x64': 0.24.2
2382 | '@esbuild/sunos-x64': 0.24.2
2383 | '@esbuild/win32-arm64': 0.24.2
2384 | '@esbuild/win32-ia32': 0.24.2
2385 | '@esbuild/win32-x64': 0.24.2
2386 |
2387 | escalade@3.2.0: {}
2388 |
2389 | escape-string-regexp@4.0.0: {}
2390 |
2391 | eslint-plugin-react-hooks@5.1.0(eslint@9.18.0(jiti@1.21.7)):
2392 | dependencies:
2393 | eslint: 9.18.0(jiti@1.21.7)
2394 |
2395 | eslint-plugin-react-refresh@0.4.18(eslint@9.18.0(jiti@1.21.7)):
2396 | dependencies:
2397 | eslint: 9.18.0(jiti@1.21.7)
2398 |
2399 | eslint-scope@8.2.0:
2400 | dependencies:
2401 | esrecurse: 4.3.0
2402 | estraverse: 5.3.0
2403 |
2404 | eslint-visitor-keys@3.4.3: {}
2405 |
2406 | eslint-visitor-keys@4.2.0: {}
2407 |
2408 | eslint@9.18.0(jiti@1.21.7):
2409 | dependencies:
2410 | '@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0(jiti@1.21.7))
2411 | '@eslint-community/regexpp': 4.12.1
2412 | '@eslint/config-array': 0.19.1
2413 | '@eslint/core': 0.10.0
2414 | '@eslint/eslintrc': 3.2.0
2415 | '@eslint/js': 9.18.0
2416 | '@eslint/plugin-kit': 0.2.5
2417 | '@humanfs/node': 0.16.6
2418 | '@humanwhocodes/module-importer': 1.0.1
2419 | '@humanwhocodes/retry': 0.4.1
2420 | '@types/estree': 1.0.6
2421 | '@types/json-schema': 7.0.15
2422 | ajv: 6.12.6
2423 | chalk: 4.1.2
2424 | cross-spawn: 7.0.6
2425 | debug: 4.4.0
2426 | escape-string-regexp: 4.0.0
2427 | eslint-scope: 8.2.0
2428 | eslint-visitor-keys: 4.2.0
2429 | espree: 10.3.0
2430 | esquery: 1.6.0
2431 | esutils: 2.0.3
2432 | fast-deep-equal: 3.1.3
2433 | file-entry-cache: 8.0.0
2434 | find-up: 5.0.0
2435 | glob-parent: 6.0.2
2436 | ignore: 5.3.2
2437 | imurmurhash: 0.1.4
2438 | is-glob: 4.0.3
2439 | json-stable-stringify-without-jsonify: 1.0.1
2440 | lodash.merge: 4.6.2
2441 | minimatch: 3.1.2
2442 | natural-compare: 1.4.0
2443 | optionator: 0.9.4
2444 | optionalDependencies:
2445 | jiti: 1.21.7
2446 | transitivePeerDependencies:
2447 | - supports-color
2448 |
2449 | espree@10.3.0:
2450 | dependencies:
2451 | acorn: 8.14.0
2452 | acorn-jsx: 5.3.2(acorn@8.14.0)
2453 | eslint-visitor-keys: 4.2.0
2454 |
2455 | esquery@1.6.0:
2456 | dependencies:
2457 | estraverse: 5.3.0
2458 |
2459 | esrecurse@4.3.0:
2460 | dependencies:
2461 | estraverse: 5.3.0
2462 |
2463 | estraverse@5.3.0: {}
2464 |
2465 | esutils@2.0.3: {}
2466 |
2467 | fast-deep-equal@3.1.3: {}
2468 |
2469 | fast-glob@3.3.3:
2470 | dependencies:
2471 | '@nodelib/fs.stat': 2.0.5
2472 | '@nodelib/fs.walk': 1.2.8
2473 | glob-parent: 5.1.2
2474 | merge2: 1.4.1
2475 | micromatch: 4.0.8
2476 |
2477 | fast-json-stable-stringify@2.1.0: {}
2478 |
2479 | fast-levenshtein@2.0.6: {}
2480 |
2481 | fastq@1.18.0:
2482 | dependencies:
2483 | reusify: 1.0.4
2484 |
2485 | fflate@0.8.2: {}
2486 |
2487 | file-entry-cache@8.0.0:
2488 | dependencies:
2489 | flat-cache: 4.0.1
2490 |
2491 | fill-range@7.1.1:
2492 | dependencies:
2493 | to-regex-range: 5.0.1
2494 |
2495 | find-up@5.0.0:
2496 | dependencies:
2497 | locate-path: 6.0.0
2498 | path-exists: 4.0.0
2499 |
2500 | flat-cache@4.0.1:
2501 | dependencies:
2502 | flatted: 3.3.2
2503 | keyv: 4.5.4
2504 |
2505 | flatted@3.3.2: {}
2506 |
2507 | foreground-child@3.3.0:
2508 | dependencies:
2509 | cross-spawn: 7.0.6
2510 | signal-exit: 4.1.0
2511 |
2512 | fraction.js@4.3.7: {}
2513 |
2514 | fsevents@2.3.3:
2515 | optional: true
2516 |
2517 | function-bind@1.1.2: {}
2518 |
2519 | gensync@1.0.0-beta.2: {}
2520 |
2521 | glob-parent@5.1.2:
2522 | dependencies:
2523 | is-glob: 4.0.3
2524 |
2525 | glob-parent@6.0.2:
2526 | dependencies:
2527 | is-glob: 4.0.3
2528 |
2529 | glob@10.4.5:
2530 | dependencies:
2531 | foreground-child: 3.3.0
2532 | jackspeak: 3.4.3
2533 | minimatch: 9.0.5
2534 | minipass: 7.1.2
2535 | package-json-from-dist: 1.0.1
2536 | path-scurry: 1.11.1
2537 |
2538 | globals@11.12.0: {}
2539 |
2540 | globals@14.0.0: {}
2541 |
2542 | globals@15.14.0: {}
2543 |
2544 | globrex@0.1.2: {}
2545 |
2546 | graphemer@1.4.0: {}
2547 |
2548 | has-flag@4.0.0: {}
2549 |
2550 | hasown@2.0.2:
2551 | dependencies:
2552 | function-bind: 1.1.2
2553 |
2554 | ignore@5.3.2: {}
2555 |
2556 | import-fresh@3.3.0:
2557 | dependencies:
2558 | parent-module: 1.0.1
2559 | resolve-from: 4.0.0
2560 |
2561 | imurmurhash@0.1.4: {}
2562 |
2563 | is-binary-path@2.1.0:
2564 | dependencies:
2565 | binary-extensions: 2.3.0
2566 |
2567 | is-core-module@2.16.1:
2568 | dependencies:
2569 | hasown: 2.0.2
2570 |
2571 | is-extglob@2.1.1: {}
2572 |
2573 | is-fullwidth-code-point@3.0.0: {}
2574 |
2575 | is-glob@4.0.3:
2576 | dependencies:
2577 | is-extglob: 2.1.1
2578 |
2579 | is-number@7.0.0: {}
2580 |
2581 | isexe@2.0.0: {}
2582 |
2583 | jackspeak@3.4.3:
2584 | dependencies:
2585 | '@isaacs/cliui': 8.0.2
2586 | optionalDependencies:
2587 | '@pkgjs/parseargs': 0.11.0
2588 |
2589 | jiti@1.21.7: {}
2590 |
2591 | js-tokens@4.0.0: {}
2592 |
2593 | js-yaml@4.1.0:
2594 | dependencies:
2595 | argparse: 2.0.1
2596 |
2597 | jsesc@3.1.0: {}
2598 |
2599 | json-buffer@3.0.1: {}
2600 |
2601 | json-schema-traverse@0.4.1: {}
2602 |
2603 | json-stable-stringify-without-jsonify@1.0.1: {}
2604 |
2605 | json5@2.2.3: {}
2606 |
2607 | keyv@4.5.4:
2608 | dependencies:
2609 | json-buffer: 3.0.1
2610 |
2611 | levn@0.4.1:
2612 | dependencies:
2613 | prelude-ls: 1.2.1
2614 | type-check: 0.4.0
2615 |
2616 | lilconfig@3.1.3: {}
2617 |
2618 | lines-and-columns@1.2.4: {}
2619 |
2620 | locate-path@6.0.0:
2621 | dependencies:
2622 | p-locate: 5.0.0
2623 |
2624 | lodash.merge@4.6.2: {}
2625 |
2626 | loose-envify@1.4.0:
2627 | dependencies:
2628 | js-tokens: 4.0.0
2629 |
2630 | lru-cache@10.4.3: {}
2631 |
2632 | lru-cache@5.1.1:
2633 | dependencies:
2634 | yallist: 3.1.1
2635 |
2636 | merge2@1.4.1: {}
2637 |
2638 | meshoptimizer@0.18.1: {}
2639 |
2640 | micromatch@4.0.8:
2641 | dependencies:
2642 | braces: 3.0.3
2643 | picomatch: 2.3.1
2644 |
2645 | minimatch@3.1.2:
2646 | dependencies:
2647 | brace-expansion: 1.1.11
2648 |
2649 | minimatch@9.0.5:
2650 | dependencies:
2651 | brace-expansion: 2.0.1
2652 |
2653 | minipass@7.1.2: {}
2654 |
2655 | ms@2.1.3: {}
2656 |
2657 | mz@2.7.0:
2658 | dependencies:
2659 | any-promise: 1.3.0
2660 | object-assign: 4.1.1
2661 | thenify-all: 1.6.0
2662 |
2663 | nanoid@3.3.8: {}
2664 |
2665 | natural-compare@1.4.0: {}
2666 |
2667 | node-releases@2.0.19: {}
2668 |
2669 | normalize-path@3.0.0: {}
2670 |
2671 | normalize-range@0.1.2: {}
2672 |
2673 | object-assign@4.1.1: {}
2674 |
2675 | object-hash@3.0.0: {}
2676 |
2677 | optionator@0.9.4:
2678 | dependencies:
2679 | deep-is: 0.1.4
2680 | fast-levenshtein: 2.0.6
2681 | levn: 0.4.1
2682 | prelude-ls: 1.2.1
2683 | type-check: 0.4.0
2684 | word-wrap: 1.2.5
2685 |
2686 | p-limit@3.1.0:
2687 | dependencies:
2688 | yocto-queue: 0.1.0
2689 |
2690 | p-locate@5.0.0:
2691 | dependencies:
2692 | p-limit: 3.1.0
2693 |
2694 | package-json-from-dist@1.0.1: {}
2695 |
2696 | parent-module@1.0.1:
2697 | dependencies:
2698 | callsites: 3.1.0
2699 |
2700 | path-exists@4.0.0: {}
2701 |
2702 | path-key@3.1.1: {}
2703 |
2704 | path-parse@1.0.7: {}
2705 |
2706 | path-scurry@1.11.1:
2707 | dependencies:
2708 | lru-cache: 10.4.3
2709 | minipass: 7.1.2
2710 |
2711 | picocolors@1.1.1: {}
2712 |
2713 | picomatch@2.3.1: {}
2714 |
2715 | pify@2.3.0: {}
2716 |
2717 | pirates@4.0.6: {}
2718 |
2719 | postcss-import@15.1.0(postcss@8.5.1):
2720 | dependencies:
2721 | postcss: 8.5.1
2722 | postcss-value-parser: 4.2.0
2723 | read-cache: 1.0.0
2724 | resolve: 1.22.10
2725 |
2726 | postcss-js@4.0.1(postcss@8.5.1):
2727 | dependencies:
2728 | camelcase-css: 2.0.1
2729 | postcss: 8.5.1
2730 |
2731 | postcss-load-config@4.0.2(postcss@8.5.1):
2732 | dependencies:
2733 | lilconfig: 3.1.3
2734 | yaml: 2.7.0
2735 | optionalDependencies:
2736 | postcss: 8.5.1
2737 |
2738 | postcss-nested@6.2.0(postcss@8.5.1):
2739 | dependencies:
2740 | postcss: 8.5.1
2741 | postcss-selector-parser: 6.1.2
2742 |
2743 | postcss-selector-parser@6.1.2:
2744 | dependencies:
2745 | cssesc: 3.0.0
2746 | util-deprecate: 1.0.2
2747 |
2748 | postcss-value-parser@4.2.0: {}
2749 |
2750 | postcss@8.5.1:
2751 | dependencies:
2752 | nanoid: 3.3.8
2753 | picocolors: 1.1.1
2754 | source-map-js: 1.2.1
2755 |
2756 | prelude-ls@1.2.1: {}
2757 |
2758 | prettier@3.4.2: {}
2759 |
2760 | punycode@2.3.1: {}
2761 |
2762 | queue-microtask@1.2.3: {}
2763 |
2764 | react-dom@18.3.1(react@18.3.1):
2765 | dependencies:
2766 | loose-envify: 1.4.0
2767 | react: 18.3.1
2768 | scheduler: 0.23.2
2769 |
2770 | react-refresh@0.14.2: {}
2771 |
2772 | react-router-dom@7.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
2773 | dependencies:
2774 | react: 18.3.1
2775 | react-dom: 18.3.1(react@18.3.1)
2776 | react-router: 7.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
2777 |
2778 | react-router@7.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
2779 | dependencies:
2780 | '@types/cookie': 0.6.0
2781 | cookie: 1.0.2
2782 | react: 18.3.1
2783 | set-cookie-parser: 2.7.1
2784 | turbo-stream: 2.4.0
2785 | optionalDependencies:
2786 | react-dom: 18.3.1(react@18.3.1)
2787 |
2788 | react@18.3.1:
2789 | dependencies:
2790 | loose-envify: 1.4.0
2791 |
2792 | read-cache@1.0.0:
2793 | dependencies:
2794 | pify: 2.3.0
2795 |
2796 | readdirp@3.6.0:
2797 | dependencies:
2798 | picomatch: 2.3.1
2799 |
2800 | resolve-from@4.0.0: {}
2801 |
2802 | resolve@1.22.10:
2803 | dependencies:
2804 | is-core-module: 2.16.1
2805 | path-parse: 1.0.7
2806 | supports-preserve-symlinks-flag: 1.0.0
2807 |
2808 | reusify@1.0.4: {}
2809 |
2810 | rollup@4.30.1:
2811 | dependencies:
2812 | '@types/estree': 1.0.6
2813 | optionalDependencies:
2814 | '@rollup/rollup-android-arm-eabi': 4.30.1
2815 | '@rollup/rollup-android-arm64': 4.30.1
2816 | '@rollup/rollup-darwin-arm64': 4.30.1
2817 | '@rollup/rollup-darwin-x64': 4.30.1
2818 | '@rollup/rollup-freebsd-arm64': 4.30.1
2819 | '@rollup/rollup-freebsd-x64': 4.30.1
2820 | '@rollup/rollup-linux-arm-gnueabihf': 4.30.1
2821 | '@rollup/rollup-linux-arm-musleabihf': 4.30.1
2822 | '@rollup/rollup-linux-arm64-gnu': 4.30.1
2823 | '@rollup/rollup-linux-arm64-musl': 4.30.1
2824 | '@rollup/rollup-linux-loongarch64-gnu': 4.30.1
2825 | '@rollup/rollup-linux-powerpc64le-gnu': 4.30.1
2826 | '@rollup/rollup-linux-riscv64-gnu': 4.30.1
2827 | '@rollup/rollup-linux-s390x-gnu': 4.30.1
2828 | '@rollup/rollup-linux-x64-gnu': 4.30.1
2829 | '@rollup/rollup-linux-x64-musl': 4.30.1
2830 | '@rollup/rollup-win32-arm64-msvc': 4.30.1
2831 | '@rollup/rollup-win32-ia32-msvc': 4.30.1
2832 | '@rollup/rollup-win32-x64-msvc': 4.30.1
2833 | fsevents: 2.3.3
2834 |
2835 | run-parallel@1.2.0:
2836 | dependencies:
2837 | queue-microtask: 1.2.3
2838 |
2839 | scheduler@0.23.2:
2840 | dependencies:
2841 | loose-envify: 1.4.0
2842 |
2843 | semver@6.3.1: {}
2844 |
2845 | semver@7.6.3: {}
2846 |
2847 | set-cookie-parser@2.7.1: {}
2848 |
2849 | shebang-command@2.0.0:
2850 | dependencies:
2851 | shebang-regex: 3.0.0
2852 |
2853 | shebang-regex@3.0.0: {}
2854 |
2855 | signal-exit@4.1.0: {}
2856 |
2857 | source-map-js@1.2.1: {}
2858 |
2859 | string-width@4.2.3:
2860 | dependencies:
2861 | emoji-regex: 8.0.0
2862 | is-fullwidth-code-point: 3.0.0
2863 | strip-ansi: 6.0.1
2864 |
2865 | string-width@5.1.2:
2866 | dependencies:
2867 | eastasianwidth: 0.2.0
2868 | emoji-regex: 9.2.2
2869 | strip-ansi: 7.1.0
2870 |
2871 | strip-ansi@6.0.1:
2872 | dependencies:
2873 | ansi-regex: 5.0.1
2874 |
2875 | strip-ansi@7.1.0:
2876 | dependencies:
2877 | ansi-regex: 6.1.0
2878 |
2879 | strip-json-comments@3.1.1: {}
2880 |
2881 | sucrase@3.35.0:
2882 | dependencies:
2883 | '@jridgewell/gen-mapping': 0.3.8
2884 | commander: 4.1.1
2885 | glob: 10.4.5
2886 | lines-and-columns: 1.2.4
2887 | mz: 2.7.0
2888 | pirates: 4.0.6
2889 | ts-interface-checker: 0.1.13
2890 |
2891 | supports-color@7.2.0:
2892 | dependencies:
2893 | has-flag: 4.0.0
2894 |
2895 | supports-preserve-symlinks-flag@1.0.0: {}
2896 |
2897 | tailwindcss@3.4.17:
2898 | dependencies:
2899 | '@alloc/quick-lru': 5.2.0
2900 | arg: 5.0.2
2901 | chokidar: 3.6.0
2902 | didyoumean: 1.2.2
2903 | dlv: 1.1.3
2904 | fast-glob: 3.3.3
2905 | glob-parent: 6.0.2
2906 | is-glob: 4.0.3
2907 | jiti: 1.21.7
2908 | lilconfig: 3.1.3
2909 | micromatch: 4.0.8
2910 | normalize-path: 3.0.0
2911 | object-hash: 3.0.0
2912 | picocolors: 1.1.1
2913 | postcss: 8.5.1
2914 | postcss-import: 15.1.0(postcss@8.5.1)
2915 | postcss-js: 4.0.1(postcss@8.5.1)
2916 | postcss-load-config: 4.0.2(postcss@8.5.1)
2917 | postcss-nested: 6.2.0(postcss@8.5.1)
2918 | postcss-selector-parser: 6.1.2
2919 | resolve: 1.22.10
2920 | sucrase: 3.35.0
2921 | transitivePeerDependencies:
2922 | - ts-node
2923 |
2924 | thenify-all@1.6.0:
2925 | dependencies:
2926 | thenify: 3.3.1
2927 |
2928 | thenify@3.3.1:
2929 | dependencies:
2930 | any-promise: 1.3.0
2931 |
2932 | three@0.172.0: {}
2933 |
2934 | to-regex-range@5.0.1:
2935 | dependencies:
2936 | is-number: 7.0.0
2937 |
2938 | ts-api-utils@2.0.0(typescript@5.6.3):
2939 | dependencies:
2940 | typescript: 5.6.3
2941 |
2942 | ts-interface-checker@0.1.13: {}
2943 |
2944 | tsconfck@3.1.4(typescript@5.6.3):
2945 | optionalDependencies:
2946 | typescript: 5.6.3
2947 |
2948 | turbo-stream@2.4.0: {}
2949 |
2950 | type-check@0.4.0:
2951 | dependencies:
2952 | prelude-ls: 1.2.1
2953 |
2954 | typescript-eslint@8.19.1(eslint@9.18.0(jiti@1.21.7))(typescript@5.6.3):
2955 | dependencies:
2956 | '@typescript-eslint/eslint-plugin': 8.19.1(@typescript-eslint/parser@8.19.1(eslint@9.18.0(jiti@1.21.7))(typescript@5.6.3))(eslint@9.18.0(jiti@1.21.7))(typescript@5.6.3)
2957 | '@typescript-eslint/parser': 8.19.1(eslint@9.18.0(jiti@1.21.7))(typescript@5.6.3)
2958 | '@typescript-eslint/utils': 8.19.1(eslint@9.18.0(jiti@1.21.7))(typescript@5.6.3)
2959 | eslint: 9.18.0(jiti@1.21.7)
2960 | typescript: 5.6.3
2961 | transitivePeerDependencies:
2962 | - supports-color
2963 |
2964 | typescript@5.6.3: {}
2965 |
2966 | update-browserslist-db@1.1.2(browserslist@4.24.4):
2967 | dependencies:
2968 | browserslist: 4.24.4
2969 | escalade: 3.2.0
2970 | picocolors: 1.1.1
2971 |
2972 | uri-js@4.4.1:
2973 | dependencies:
2974 | punycode: 2.3.1
2975 |
2976 | util-deprecate@1.0.2: {}
2977 |
2978 | vite-tsconfig-paths@5.1.4(typescript@5.6.3)(vite@6.0.7(jiti@1.21.7)(yaml@2.7.0)):
2979 | dependencies:
2980 | debug: 4.4.0
2981 | globrex: 0.1.2
2982 | tsconfck: 3.1.4(typescript@5.6.3)
2983 | optionalDependencies:
2984 | vite: 6.0.7(jiti@1.21.7)(yaml@2.7.0)
2985 | transitivePeerDependencies:
2986 | - supports-color
2987 | - typescript
2988 |
2989 | vite@6.0.7(jiti@1.21.7)(yaml@2.7.0):
2990 | dependencies:
2991 | esbuild: 0.24.2
2992 | postcss: 8.5.1
2993 | rollup: 4.30.1
2994 | optionalDependencies:
2995 | fsevents: 2.3.3
2996 | jiti: 1.21.7
2997 | yaml: 2.7.0
2998 |
2999 | which@2.0.2:
3000 | dependencies:
3001 | isexe: 2.0.0
3002 |
3003 | word-wrap@1.2.5: {}
3004 |
3005 | wrap-ansi@7.0.0:
3006 | dependencies:
3007 | ansi-styles: 4.3.0
3008 | string-width: 4.2.3
3009 | strip-ansi: 6.0.1
3010 |
3011 | wrap-ansi@8.1.0:
3012 | dependencies:
3013 | ansi-styles: 6.2.1
3014 | string-width: 5.1.2
3015 | strip-ansi: 7.1.0
3016 |
3017 | yallist@3.1.1: {}
3018 |
3019 | yaml@2.7.0: {}
3020 |
3021 | yocto-queue@0.1.0: {}
3022 |
--------------------------------------------------------------------------------