├── .gitignore
├── .prettierrc
├── LICENSE.md
├── README.md
├── assets
└── hero-screenshot.png
├── example
├── README.md
├── index.html
├── package.json
├── public
│ ├── game_boy_classic.glb
│ ├── textures
│ │ ├── wood_cabinet_worn_long_ao_2k.jpg
│ │ ├── wood_cabinet_worn_long_diff_2k.jpg
│ │ ├── wood_cabinet_worn_long_nor_gl_2k.jpg
│ │ └── wood_cabinet_worn_long_rough_2k.jpg
│ └── vite.svg
├── src
│ ├── App.tsx
│ ├── Controls.js
│ ├── Model.jsx
│ ├── Tag.jsx
│ ├── index.css
│ ├── index.js
│ ├── main.tsx
│ └── vite-env.d.ts
├── tsconfig.json
└── vite.config.ts
├── package.json
├── package
├── package.json
├── src
│ ├── Pass.ts
│ ├── Pathtracer.tsx
│ ├── index.ts
│ └── types.ts
├── tsconfig.json
└── vite.config.ts
├── tsconfig.json
└── yarn.lock
/.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 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "trailingComma": "none",
3 | "tabWidth": 2,
4 | "semi": true,
5 | "singleQuote": false
6 | }
7 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2024 Poimandres
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 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
react-three-gpu-pathtracer
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | This demo is real, you can click it! It contains full code, too. 📦
13 |
14 |
15 | GameBoy model by
16 | (@kleingeo)
17 |
18 | on Sketchfab
19 |
20 | . GameBoy Cartridge by
21 | (@MeBob)
22 |
23 | on Sketchfab
24 |
25 | .
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 | `react-three-gpu-pathtracer` lets you render your `react-three-fiber` scenes using Path Tracing! It is as simple as
48 |
49 | ```jsx
50 | import { Pathtracer } from "@react-three/gpu-pathtracer";
51 |
52 | function GradientSphere() {
53 | return (
54 |
55 | {/* Your scene */}
56 |
57 | );
58 | }
59 | ```
60 |
61 | The ` ` component wraps your scene. The scene is then rendered using Path Tracing.
62 |
63 | #### Props
64 |
65 | | Prop | Type | Default | Description |
66 | | ------------ | ---------------------------------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------- |
67 | | `minSamples` | `number` | `1` | Default: 5. Min number of samples before blending the base scene with the pathtraced one. |
68 | | `samples` | `number` | `1` | Max number of samples before the pathtracer stops. |
69 | | `frames` | `number` | `Infinity` | Number of frames to path trace. Will pause rendering once this number is reached. |
70 | | `tiles` | `[number, number] / THREE.Vector2 / { x: number; y: number } / number` | `2` | Number of tiles. Can be used to improve the responsiveness of a page while still rendering a high resolution target. |
71 | | `bounces` | `number` | `1` | The number of ray bounces to test. Higher is better quality but slower performance. |
72 | | `enabled` | `boolean` | `true` | Wether to enable pathtracing. |
73 |
74 | ### Env maps
75 |
76 | Env maps can be added using [Drei's ` `](https://github.com/pmndrs/drei#environment) component just like in a regular scene.
77 |
78 | ```jsx
79 |
80 |
86 |
87 | ```
88 |
89 | ### `usePathtracer`
90 |
91 | This hook provides access to useful functions in the internal renderer. Can only be used within the ` ` component.
92 |
93 | ```ts
94 | const { renderer, update, reset } = usePathtracer();
95 | ```
96 |
97 | | Return value | Type | Description |
98 | | -------------- | ----------------- | ------------------------------------------------------------------------------------------- |
99 | | `pathtracer` | `WebGLPathTracer` | Internal renderer. Can be used to access/edit internal properties |
100 | | ~~`renderer`~~ | `WebGLPathTracer` | DEPRECIATED: use `pathtracer` to not get confused with raster renderer |
101 | | `reset` | `() => void` | Flushes the rendered scene and resets the samples count. |
102 | | `update` | `() => void` | Tells the pathtracer that the scene has been updated. Everything is managed internally now. |
103 |
104 | ### Note on controls
105 |
106 | When you set controls be sure to use `makeDefault` and it's best to import the `OrbitControls` [from drei](https://drei.docs.pmnd.rs/controls/introduction)
107 |
108 | ```jsx
109 |
110 | // ...
111 | ```
112 |
113 | ### Development
114 |
115 | #### Dev
116 |
117 | ```bash
118 | cd project-root
119 | yarn
120 | yarn dev
121 | ```
122 |
123 | #### Build
124 |
125 | ```bash
126 | yarn build
127 | ```
128 |
129 | #### Publish
130 |
131 | ```bash
132 | cd package
133 | npm run release
134 | ```
135 |
--------------------------------------------------------------------------------
/assets/hero-screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmndrs/react-three-gpu-pathtracer/967420805c238da5a1d5cd7d4b9c886cee65beef/assets/hero-screenshot.png
--------------------------------------------------------------------------------
/example/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | react-three-gpu-pathtracer
4 |
5 |
6 | ---
7 |
8 | Example
9 |
--------------------------------------------------------------------------------
/example/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
10 |
11 | @react-three/gpu-pathtracer | Example
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/example/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@react-three/gpu-pathtracer-example",
3 | "private": true,
4 | "version": "0.0.0",
5 | "type": "module",
6 | "scripts": {
7 | "dev": "vite",
8 | "build": "tsc -b && vite build",
9 | "preview": "vite preview"
10 | },
11 | "dependencies": {
12 | "@pmndrs/branding": "^0.0.8",
13 | "@react-three/drei": "^9.114.0",
14 | "@react-three/fiber": "^8.17.8",
15 | "@react-three/gpu-pathtracer": "^0.1.1",
16 | "leva": "^0.9.35",
17 | "react": "^18.3.1",
18 | "react-dom": "^18.3.1",
19 | "react-icons": "^5.3.0",
20 | "three": "^0.169.0"
21 | },
22 | "devDependencies": {
23 | "@types/node": "^22.5.5",
24 | "@types/react": "^18.3.3",
25 | "@types/react-dom": "^18.3.0",
26 | "@vitejs/plugin-react": "^4.3.1",
27 | "globals": "^15.9.0",
28 | "typescript": "^5.5.3",
29 | "vite": "^5.4.1"
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/example/public/game_boy_classic.glb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmndrs/react-three-gpu-pathtracer/967420805c238da5a1d5cd7d4b9c886cee65beef/example/public/game_boy_classic.glb
--------------------------------------------------------------------------------
/example/public/textures/wood_cabinet_worn_long_ao_2k.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmndrs/react-three-gpu-pathtracer/967420805c238da5a1d5cd7d4b9c886cee65beef/example/public/textures/wood_cabinet_worn_long_ao_2k.jpg
--------------------------------------------------------------------------------
/example/public/textures/wood_cabinet_worn_long_diff_2k.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmndrs/react-three-gpu-pathtracer/967420805c238da5a1d5cd7d4b9c886cee65beef/example/public/textures/wood_cabinet_worn_long_diff_2k.jpg
--------------------------------------------------------------------------------
/example/public/textures/wood_cabinet_worn_long_nor_gl_2k.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmndrs/react-three-gpu-pathtracer/967420805c238da5a1d5cd7d4b9c886cee65beef/example/public/textures/wood_cabinet_worn_long_nor_gl_2k.jpg
--------------------------------------------------------------------------------
/example/public/textures/wood_cabinet_worn_long_rough_2k.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmndrs/react-three-gpu-pathtracer/967420805c238da5a1d5cd7d4b9c886cee65beef/example/public/textures/wood_cabinet_worn_long_rough_2k.jpg
--------------------------------------------------------------------------------
/example/public/vite.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/example/src/App.tsx:
--------------------------------------------------------------------------------
1 | import {
2 | Bounds,
3 | Center,
4 | Circle,
5 | Environment,
6 | OrbitControls,
7 | PerspectiveCamera,
8 | Stats,
9 | useTexture
10 | } from "@react-three/drei";
11 | import { Canvas, useFrame } from "@react-three/fiber";
12 | import { Pathtracer, usePathtracer } from "@react-three/gpu-pathtracer";
13 | import { Leva } from "leva";
14 | import { useEffect, useRef } from "react";
15 |
16 | import Controls from "./Controls";
17 |
18 | import { ACESFilmicToneMapping, MathUtils } from "three";
19 | import Model from "./Model";
20 | import Tag from "./Tag";
21 |
22 | const baseURL = import.meta.env.BASE_URL;
23 |
24 | function Floor() {
25 | const [aoMap, diffMap, norMap, roughMap] = useTexture([
26 | baseURL + "/textures/wood_cabinet_worn_long_ao_2k.jpg",
27 | baseURL + "/textures/wood_cabinet_worn_long_diff_2k.jpg",
28 | baseURL + "/textures/wood_cabinet_worn_long_nor_gl_2k.jpg",
29 | baseURL + "/textures/wood_cabinet_worn_long_rough_2k.jpg"
30 | ]);
31 |
32 | return (
33 | <>
34 |
35 |
36 |
37 | >
38 | );
39 | }
40 |
41 | function UI({ infoRef }) {
42 | const { pathtracer } = usePathtracer();
43 | const opts = Controls();
44 |
45 | useFrame(() => {
46 | if (pathtracer && infoRef.current) {
47 | infoRef.current.children[0].textContent = `Samples: ${Math.ceil(
48 | // @ts-ignore
49 | pathtracer.samples
50 | )}/${opts.Rendering_Samples}`;
51 |
52 | // @ts-ignore
53 | infoRef.current.children[1].textContent = pathtracer.isCompiling
54 | ? `Initializing...`
55 | : "";
56 | }
57 | });
58 |
59 | return null;
60 | }
61 |
62 | function Thing() {
63 | const { reset, update } = usePathtracer();
64 | const opts = Controls();
65 |
66 | // Trigger updates when envmap stuff changes
67 | useEffect(() => {
68 | update();
69 | }, [
70 | opts.Environment_Visible,
71 | opts.Environment_Preset,
72 | opts.Environment_Intensity,
73 | opts.Environment_Blur
74 | ]);
75 |
76 | return (
77 | <>
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 | >
89 | );
90 | }
91 |
92 | export default function App() {
93 | const infoRef = useRef();
94 | const opts = Controls();
95 |
96 | return (
97 | <>
98 |
104 |
109 |
110 |
111 |
112 |
119 | {opts.Environment_Visible ? (
120 |
126 | ) : (
127 |
128 | )}
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
Samples: 0
137 |
Initializing...
138 |
139 |
140 | >
141 | );
142 | }
143 |
--------------------------------------------------------------------------------
/example/src/Controls.js:
--------------------------------------------------------------------------------
1 | import { presetsObj } from "@react-three/drei/helpers/environment-assets";
2 | import { folder, useControls } from "leva";
3 |
4 | export default function Controls() {
5 | return useControls({
6 | Rendering: folder({
7 | Rendering_Factor: {
8 | value: 1,
9 | max: 1,
10 | min: 0,
11 | step: 0.01,
12 | label: "Resolution Factor"
13 | },
14 | Rendering_Samples: {
15 | value: 128,
16 | max: 512,
17 | min: 1,
18 | step: 1,
19 | label: "Samples"
20 | },
21 | Rendering_Bounces: {
22 | value: 8,
23 | max: 20,
24 | min: 1,
25 | step: 1,
26 | label: "Bounces"
27 | },
28 | Rendering_Tiles: {
29 | value: {
30 | x: 2,
31 | y: 2
32 | },
33 | max: 20,
34 | min: 1,
35 | step: 1,
36 | label: "Tiles",
37 | joystick: false
38 | },
39 | Rendering_Enabled: {
40 | value: true,
41 | label: "Enabled"
42 | }
43 | }),
44 | Environment: folder({
45 | Environment_Visible: {
46 | value: true,
47 | label: "Enabled"
48 | },
49 | Environment_Preset: {
50 | options: Object.keys(presetsObj),
51 | value: "apartment",
52 | label: "Preset"
53 | },
54 | Environment_Intensity: {
55 | value: 1.2,
56 | max: 10,
57 | min: 0,
58 | step: 0.01,
59 | label: "Intensity"
60 | },
61 | Environment_Blur: {
62 | value: 0.3,
63 | max: 1,
64 | min: 0,
65 | step: 0.01,
66 | label: "Blur"
67 | }
68 | })
69 | });
70 | }
71 |
--------------------------------------------------------------------------------
/example/src/Model.jsx:
--------------------------------------------------------------------------------
1 | /*
2 | Auto-generated by: https://github.com/pmndrs/gltfjsx
3 | */
4 |
5 | import { useGLTF } from "@react-three/drei";
6 | import { useLayoutEffect } from "react";
7 | import { MeshPhysicalMaterial } from "three";
8 |
9 | export default function Model(props) {
10 | const { scene } = useGLTF(import.meta.env.BASE_URL + "game_boy_classic.glb");
11 |
12 | useLayoutEffect(() => {
13 | convertOpacityToTransmission(scene);
14 | }, []);
15 |
16 | return ;
17 | }
18 |
19 | function convertOpacityToTransmission(model) {
20 | model.traverse((c) => {
21 | if (c.material) {
22 | const material = c.material;
23 | if (material.opacity < 0.65 && material.opacity > 0.2) {
24 | const newMaterial = new MeshPhysicalMaterial();
25 | for (const key in material) {
26 | if (key in material) {
27 | if (material[key] === null) {
28 | continue;
29 | }
30 |
31 | if (material[key].isTexture) {
32 | newMaterial[key] = material[key];
33 | } else if (
34 | material[key].copy &&
35 | material[key].constructor === newMaterial[key].constructor
36 | ) {
37 | newMaterial[key].copy(material[key]);
38 | } else if (typeof material[key] === "number") {
39 | newMaterial[key] = material[key];
40 | }
41 | }
42 | }
43 |
44 | newMaterial.opacity = 1.0;
45 | newMaterial.transmission = 1.0;
46 | c.material = newMaterial;
47 | }
48 | }
49 | });
50 | }
51 |
--------------------------------------------------------------------------------
/example/src/Tag.jsx:
--------------------------------------------------------------------------------
1 | import { Logo } from "@pmndrs/branding";
2 | import { FaGithub } from "react-icons/fa";
3 |
4 | export default function Tag() {
5 | return (
6 |
91 | );
92 | }
93 |
--------------------------------------------------------------------------------
/example/src/index.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen",
4 | "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
5 | sans-serif;
6 | -webkit-font-smoothing: antialiased;
7 | -moz-osx-font-smoothing: grayscale;
8 | }
9 |
10 | code {
11 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New",
12 | monospace;
13 | }
14 |
15 | #root,
16 | body,
17 | canvas {
18 | width: 100vw;
19 | height: 100vh;
20 | overflow: hidden;
21 | margin: 0;
22 | background: linear-gradient(180deg, #2a1303 0%, #000000 100%);
23 | }
24 |
25 | canvas {
26 | cursor: grab;
27 | cursor: -moz-grab;
28 | cursor: -webkit-grab;
29 | }
30 |
31 | canvas:active {
32 | cursor: grabbing;
33 | cursor: -moz-grabbing;
34 | cursor: -webkit-grabbing;
35 | }
36 |
37 | .copy {
38 | position: absolute;
39 | bottom: 0;
40 | right: 0;
41 | width: 100%;
42 | box-sizing: border-box;
43 | padding: 32px;
44 | color: white;
45 | text-align: center;
46 |
47 | display: flex;
48 | flex-direction: column;
49 | justify-content: center;
50 | align-items: center;
51 | gap: 0.25rem;
52 |
53 | pointer-events: none;
54 |
55 | background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, #000000 80%);
56 | }
57 |
58 | .copy > div {
59 | width: 100%;
60 | display: flex;
61 | flex-direction: row;
62 | justify-content: space-between;
63 | align-items: center;
64 | gap: 1rem;
65 | }
66 |
67 | .copy svg {
68 | width: 1.5rem;
69 | fill: white;
70 | }
71 |
72 | a {
73 | font-style: italic;
74 | color: #ffbe33;
75 | font-weight: bold;
76 | text-decoration: none;
77 | pointer-events: all;
78 | }
79 |
80 | /* .copy span a svg {
81 | margin-right: 16px;
82 | } */
83 |
84 | .info {
85 | position: absolute;
86 | top: 50px;
87 | left: 0;
88 |
89 | padding: 0.25rem;
90 |
91 | color: white;
92 | font-family: monospace;
93 | }
94 |
95 | .info p {
96 | margin: 0;
97 | }
98 |
--------------------------------------------------------------------------------
/example/src/index.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import ReactDOM from "react-dom/client";
3 | import "./index.css";
4 | import App from "./App";
5 |
6 | const root = ReactDOM.createRoot(document.getElementById("root"));
7 | root.render(
8 |
9 |
10 |
11 | );
12 |
--------------------------------------------------------------------------------
/example/src/main.tsx:
--------------------------------------------------------------------------------
1 | import { StrictMode } from "react";
2 | import { createRoot } from "react-dom/client";
3 | import App from "./App.tsx";
4 | import "./index.css";
5 |
6 | createRoot(document.getElementById("root")!).render(
7 |
8 |
9 |
10 | );
11 |
--------------------------------------------------------------------------------
/example/src/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/example/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES2020",
4 | "useDefineForClassFields": true,
5 | "lib": ["ES2020", "DOM", "DOM.Iterable"],
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 | "jsx": "react-jsx",
16 |
17 | /* Linting */
18 | "strict": false,
19 | "allowJs": true,
20 |
21 | "preserveSymlinks": true,
22 | "paths": {
23 | "@react-three/gpu-pathtracer": ["../package/src"]
24 | }
25 | },
26 | "include": ["src"]
27 | }
28 |
--------------------------------------------------------------------------------
/example/vite.config.ts:
--------------------------------------------------------------------------------
1 | import react from "@vitejs/plugin-react";
2 | import path from "path";
3 | import { defineConfig } from "vite";
4 |
5 | // https://vitejs.dev/config/
6 | export default defineConfig({
7 | base: "/react-three-gpu-pathtracer/",
8 | plugins: [react()],
9 | resolve: {
10 | alias: {
11 | "@react-three/gpu-pathtracer": path.resolve(
12 | __dirname,
13 | "../package/src/index.ts"
14 | )
15 | }
16 | }
17 | });
18 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@react-three/gpu-pathtracer-monorepo",
3 | "description": "Monorepo for @react-three/gpu-pathtracer-monorepo and its examples",
4 | "version": "1.0.0",
5 | "private": true,
6 | "repository": "https://github.com/pmndrs/react-three-gpu-pathtracer",
7 | "author": "Faraz Shaikh (https://twitter.com/CantBeFaraz)",
8 | "contributors": [
9 | "Dennis Smolek (https://twitter.com/DennisSmolek)"
10 | ],
11 | "license": "MIT",
12 | "homepage": "https://github.com/pmndrs/react-three-gpu-pathtracer",
13 | "workspaces": [
14 | "package",
15 | "example"
16 | ],
17 | "scripts": {
18 | "build:package": "yarn --cwd package build",
19 | "build": "yarn --cwd example build",
20 | "preview": "yarn --cwd example preview",
21 | "dev": "yarn --cwd example dev",
22 | "release": "yarn --cwd package release"
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/package/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@react-three/gpu-pathtracer",
3 | "private": false,
4 | "version": "0.2.0",
5 | "description": "⚡️ A React abstraction for the popular three-gpu-pathtracer.",
6 | "type": "module",
7 | "files": [
8 | "./**/*"
9 | ],
10 | "repository": {
11 | "type": "git",
12 | "url": "git+https://github.com/pmndrs/react-three-gpu-pathtracer"
13 | },
14 | "bugs": {
15 | "url": "https://github.com/pmndrs/react-three-gpu-pathtracer/issues"
16 | },
17 | "author": "Faraz Shaikh (https://twitter.com/CantBeFaraz)",
18 | "contributors": [
19 | "Dennis Smolek (https://twitter.com/DennisSmolek)"
20 | ],
21 | "license": "MIT",
22 | "homepage": "https://github.com/pmndrs/react-three-gpu-pathtracer",
23 | "keywords": [
24 | "react",
25 | "webgl",
26 | "three",
27 | "path",
28 | "tracing",
29 | "pathtracing",
30 | "raytracing"
31 | ],
32 | "main": "react-three-gpu-pathtracer.cjs.js",
33 | "module": "react-three-gpu-pathtracer.es.js",
34 | "types": "index.d.ts",
35 | "scripts": {
36 | "build": "tsc && vite build",
37 | "release": "yarn build && cp ./package.json ./dist/package.json && cd ./dist && npm publish"
38 | },
39 | "devDependencies": {
40 | "@types/node": "^22.7.4",
41 | "@types/react": "^18.3.3",
42 | "@types/react-dom": "^18.3.0",
43 | "@types/three": "^0.168.0",
44 | "@vitejs/plugin-react": "^4.3.1",
45 | "globals": "^15.9.0",
46 | "typescript": "^5.5.3",
47 | "typescript-eslint": "^8.0.1",
48 | "vite": "^5.4.1",
49 | "vite-plugin-dts": "^4.2.1"
50 | },
51 | "peerDependencies": {
52 | "@react-three/fiber": ">=8.0",
53 | "react": ">=18.0",
54 | "three": ">=0.149"
55 | },
56 | "dependencies": {
57 | "three-gpu-pathtracer": "^0.0.23"
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/package/src/Pass.ts:
--------------------------------------------------------------------------------
1 | import {
2 | OrthographicCamera,
3 | PlaneGeometry,
4 | Mesh,
5 | Material,
6 | Renderer,
7 | WebGLRenderer,
8 | WebGLRenderTarget
9 | } from "three";
10 |
11 | class Pass {
12 | // if set to true, the pass is processed by the composer
13 | public enabled = true;
14 |
15 | // if set to true, the pass indicates to swap read and write buffer after rendering
16 | public needsSwap = true;
17 |
18 | // if set to true, the pass clears its buffer before rendering
19 | public clear = false;
20 |
21 | // if set to true, the result of the pass is rendered to screen. This is set automatically by EffectComposer.
22 | public renderToScreen = false;
23 |
24 | public setSize(
25 | /* eslint-disable @typescript-eslint/no-unused-vars */
26 | /* eslint-disable no-unused-vars */
27 | width: number,
28 | height: number
29 | ): void {}
30 |
31 | public render(
32 | /* eslint-disable @typescript-eslint/no-unused-vars */
33 | /* eslint-disable no-unused-vars */
34 | renderer: WebGLRenderer,
35 | writeBuffer: WebGLRenderTarget,
36 | readBuffer: WebGLRenderTarget,
37 | deltaTime: number,
38 | maskActive?: unknown
39 | ): void {
40 | console.error("THREE.Pass: .render() must be implemented in derived pass.");
41 | }
42 | }
43 |
44 | // Helper for passes that need to fill the viewport with a single quad.
45 | class FullScreenQuad {
46 | public camera = new OrthographicCamera(-1, 1, 1, -1, 0, 1);
47 | public geometry = new PlaneGeometry(2, 2);
48 | private mesh: Mesh;
49 |
50 | constructor(material: TMaterial) {
51 | this.mesh = new Mesh(this.geometry, material);
52 | }
53 |
54 | public get material(): TMaterial {
55 | return this.mesh.material;
56 | }
57 |
58 | public set material(value: TMaterial) {
59 | this.mesh.material = value;
60 | }
61 |
62 | public dispose(): void {
63 | this.mesh.geometry.dispose();
64 | }
65 |
66 | public render(renderer: Renderer): void {
67 | renderer.render(this.mesh, this.camera);
68 | }
69 | }
70 |
71 | export { Pass, FullScreenQuad };
72 |
--------------------------------------------------------------------------------
/package/src/Pathtracer.tsx:
--------------------------------------------------------------------------------
1 | import { useFrame, useThree } from "@react-three/fiber";
2 | import React, { useMemo } from "react";
3 | import * as THREE from "three";
4 | import { WebGLPathTracer } from "three-gpu-pathtracer";
5 |
6 | type TilesType =
7 | | [number, number]
8 | | THREE.Vector2
9 | | { x: number; y: number }
10 | | number;
11 |
12 | interface PathtracerProps {
13 | minSamples?: number;
14 | samples?: number;
15 | tiles?: TilesType;
16 | bounces?: number;
17 | enabled?: boolean;
18 | resolutionFactor?: number;
19 | }
20 |
21 | interface PathtracerAPI {
22 | update: () => void;
23 | reset: () => void;
24 | renderer: typeof WebGLPathTracer;
25 | pathtracer: typeof WebGLPathTracer;
26 | }
27 |
28 | const context = React.createContext(null as any);
29 |
30 | //* Helper Function to convert TilesType to [number, number]
31 | function fiberVec2ToArr(vec: TilesType): [number, number] {
32 | if (Array.isArray(vec)) return vec;
33 | if (vec instanceof THREE.Vector2) return [vec.x, vec.y];
34 | if (typeof vec === "number") return [vec, vec];
35 | return [vec.x, vec.y];
36 | }
37 |
38 | export const Pathtracer = React.forwardRef<
39 | InstanceType,
40 | React.PropsWithChildren
41 | >(({ enabled = true, children, ...props }, ref) => {
42 | // state objects
43 | const { gl, size, viewport, camera, scene, controls } = useThree();
44 |
45 | const pathtracer = useMemo(() => {
46 | const pt = new WebGLPathTracer(gl);
47 | pt.synchronizeRenderSize = true;
48 | // This might not be needed as we arent using setSceneAsync
49 | //pt.setBVHWorker(new ParallelMeshBVHWorker())
50 | return pt;
51 | }, [gl]);
52 |
53 | // Expose the pathtracer instance via ref
54 | React.useImperativeHandle(ref, () => pathtracer, [pathtracer]);
55 |
56 | //* Single handler for all props
57 | React.useEffect(() => {
58 | const {
59 | minSamples = 5,
60 | tiles = 2,
61 | bounces = 4,
62 | resolutionFactor = 1
63 | } = props;
64 |
65 | pathtracer.bounces = bounces;
66 | pathtracer.minSamples = minSamples;
67 | pathtracer.renderScale = resolutionFactor;
68 | const t = fiberVec2ToArr(tiles);
69 | pathtracer.tiles.set(t[0], t[1]);
70 | }, [props, pathtracer]);
71 |
72 | React.useEffect(() => {
73 | if (enabled) pathtracer.reset();
74 | }, [enabled]);
75 |
76 | const api = React.useMemo(
77 | () => ({
78 | /**
79 | * Update the pathtracer scene. Call this after adding or removing objects from the scene
80 | */
81 | update: () => {
82 | pathtracer.setScene(scene, camera);
83 | },
84 | /**
85 | * Reset the pathtracer. Call this after changing any pathtracing properties
86 | */
87 | reset: () => {
88 | pathtracer.reset();
89 | },
90 | /**
91 | * @deprecated Use `pathtracer` instead
92 | */
93 | renderer: pathtracer,
94 | pathtracer: pathtracer // Use this instead. Keeps base three renderer seperate mentally
95 | }),
96 | [pathtracer, scene, camera]
97 | );
98 |
99 | //* Initialize the pathtracer
100 | React.useEffect(() => {
101 | // scene.updateMatrixWorld()
102 | pathtracer.setScene(scene, camera);
103 | }, [scene, camera]);
104 |
105 | // Bind control listeners
106 | React.useEffect(() => {
107 | // setup control listeners
108 |
109 | const controlListener = () => {
110 | pathtracer.updateCamera();
111 | };
112 |
113 | // @ts-ignore
114 | if (controls) controls.addEventListener("change", controlListener);
115 |
116 | return () => {
117 | // @ts-ignore
118 | if (controls) controls.removeEventListener("change", controlListener);
119 | };
120 | }, [controls, pathtracer]);
121 |
122 | useFrame(({ camera, gl, scene }) => {
123 | if (enabled && pathtracer.samples < (props.samples ?? Infinity))
124 | pathtracer.renderSample();
125 | if (!enabled) gl.render(scene, camera);
126 | }, 1);
127 |
128 | return {children} ;
129 | });
130 |
131 | export function usePathtracer() {
132 | const ctx = React.useContext(context);
133 | if (!ctx) throw new Error("usePathtracer must be used within a Pathtracer");
134 |
135 | return ctx;
136 | }
137 |
--------------------------------------------------------------------------------
/package/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./Pathtracer";
2 |
--------------------------------------------------------------------------------
/package/src/types.ts:
--------------------------------------------------------------------------------
1 | declare module "three-gpu-pathtracer";
2 |
--------------------------------------------------------------------------------
/package/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "noEmit": true,
4 | "allowSyntheticDefaultImports": true,
5 | "jsx": "react-jsx",
6 | "strict": true,
7 | "moduleResolution": "Node",
8 | "skipLibCheck": true,
9 | "allowJs": true,
10 | "lib": ["esnext", "dom"]
11 | },
12 | "include": ["src/**/*"],
13 | "exclude": ["node_modules", "dist"]
14 | }
15 |
--------------------------------------------------------------------------------
/package/vite.config.ts:
--------------------------------------------------------------------------------
1 | import react from "@vitejs/plugin-react";
2 | import fs from "fs/promises";
3 | import path from "path";
4 | import { defineConfig } from "vite";
5 | import dts from "vite-plugin-dts";
6 |
7 | function copyFiles() {
8 | return {
9 | name: "copy-license",
10 | closeBundle: async () => {
11 | await fs.copyFile("../LICENSE.md", "./dist/LICENSE.md");
12 | await fs.copyFile("../README.md", "./dist/README.md");
13 | }
14 | };
15 | }
16 |
17 | export default defineConfig({
18 | build: {
19 | outDir: "dist",
20 | lib: {
21 | entry: path.resolve(__dirname, "src/index.ts"),
22 | name: "react-three-gpu-pathtracer",
23 | formats: ["es", "cjs"],
24 | fileName: (format) => `react-three-gpu-pathtracer.${format}.js`
25 | },
26 | rollupOptions: {
27 | external: ["react", "three", "@react-three/fiber"]
28 | },
29 | sourcemap: true,
30 | emptyOutDir: true
31 | },
32 | plugins: [react(), dts(), copyFiles()]
33 | });
34 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "esnext",
4 | "target": "es2018",
5 | "allowSyntheticDefaultImports": true,
6 | "jsx": "react",
7 | "strict": true,
8 | "preserveSymlinks": true,
9 | "moduleResolution": "Node",
10 | "esModuleInterop": true,
11 | "declaration": true,
12 | "skipLibCheck": true,
13 | "removeComments": false
14 | },
15 | "include": ["package/src/**/*"],
16 | "exclude": ["node_modules", "package/dist/**/*"]
17 | }
18 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@ampproject/remapping@^2.2.0":
6 | "integrity" "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="
7 | "resolved" "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz"
8 | "version" "2.3.0"
9 | dependencies:
10 | "@jridgewell/gen-mapping" "^0.3.5"
11 | "@jridgewell/trace-mapping" "^0.3.24"
12 |
13 | "@babel/code-frame@^7.24.7":
14 | "integrity" "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA=="
15 | "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz"
16 | "version" "7.24.7"
17 | dependencies:
18 | "@babel/highlight" "^7.24.7"
19 | "picocolors" "^1.0.0"
20 |
21 | "@babel/compat-data@^7.25.2":
22 | "integrity" "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ=="
23 | "resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.4.tgz"
24 | "version" "7.25.4"
25 |
26 | "@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.24.5":
27 | "integrity" "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA=="
28 | "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz"
29 | "version" "7.25.2"
30 | dependencies:
31 | "@ampproject/remapping" "^2.2.0"
32 | "@babel/code-frame" "^7.24.7"
33 | "@babel/generator" "^7.25.0"
34 | "@babel/helper-compilation-targets" "^7.25.2"
35 | "@babel/helper-module-transforms" "^7.25.2"
36 | "@babel/helpers" "^7.25.0"
37 | "@babel/parser" "^7.25.0"
38 | "@babel/template" "^7.25.0"
39 | "@babel/traverse" "^7.25.2"
40 | "@babel/types" "^7.25.2"
41 | "convert-source-map" "^2.0.0"
42 | "debug" "^4.1.0"
43 | "gensync" "^1.0.0-beta.2"
44 | "json5" "^2.2.3"
45 | "semver" "^6.3.1"
46 |
47 | "@babel/generator@^7.25.0", "@babel/generator@^7.25.6":
48 | "integrity" "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw=="
49 | "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.25.6.tgz"
50 | "version" "7.25.6"
51 | dependencies:
52 | "@babel/types" "^7.25.6"
53 | "@jridgewell/gen-mapping" "^0.3.5"
54 | "@jridgewell/trace-mapping" "^0.3.25"
55 | "jsesc" "^2.5.1"
56 |
57 | "@babel/helper-compilation-targets@^7.25.2":
58 | "integrity" "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw=="
59 | "resolved" "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz"
60 | "version" "7.25.2"
61 | dependencies:
62 | "@babel/compat-data" "^7.25.2"
63 | "@babel/helper-validator-option" "^7.24.8"
64 | "browserslist" "^4.23.1"
65 | "lru-cache" "^5.1.1"
66 | "semver" "^6.3.1"
67 |
68 | "@babel/helper-module-imports@^7.24.7":
69 | "integrity" "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA=="
70 | "resolved" "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz"
71 | "version" "7.24.7"
72 | dependencies:
73 | "@babel/traverse" "^7.24.7"
74 | "@babel/types" "^7.24.7"
75 |
76 | "@babel/helper-module-transforms@^7.25.2":
77 | "integrity" "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ=="
78 | "resolved" "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz"
79 | "version" "7.25.2"
80 | dependencies:
81 | "@babel/helper-module-imports" "^7.24.7"
82 | "@babel/helper-simple-access" "^7.24.7"
83 | "@babel/helper-validator-identifier" "^7.24.7"
84 | "@babel/traverse" "^7.25.2"
85 |
86 | "@babel/helper-plugin-utils@^7.24.7":
87 | "integrity" "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg=="
88 | "resolved" "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz"
89 | "version" "7.24.8"
90 |
91 | "@babel/helper-simple-access@^7.24.7":
92 | "integrity" "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg=="
93 | "resolved" "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz"
94 | "version" "7.24.7"
95 | dependencies:
96 | "@babel/traverse" "^7.24.7"
97 | "@babel/types" "^7.24.7"
98 |
99 | "@babel/helper-string-parser@^7.24.8":
100 | "integrity" "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ=="
101 | "resolved" "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz"
102 | "version" "7.24.8"
103 |
104 | "@babel/helper-validator-identifier@^7.24.7":
105 | "integrity" "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w=="
106 | "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz"
107 | "version" "7.24.7"
108 |
109 | "@babel/helper-validator-option@^7.24.8":
110 | "integrity" "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q=="
111 | "resolved" "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz"
112 | "version" "7.24.8"
113 |
114 | "@babel/helpers@^7.25.0":
115 | "integrity" "sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q=="
116 | "resolved" "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.6.tgz"
117 | "version" "7.25.6"
118 | dependencies:
119 | "@babel/template" "^7.25.0"
120 | "@babel/types" "^7.25.6"
121 |
122 | "@babel/highlight@^7.24.7":
123 | "integrity" "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw=="
124 | "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz"
125 | "version" "7.24.7"
126 | dependencies:
127 | "@babel/helper-validator-identifier" "^7.24.7"
128 | "chalk" "^2.4.2"
129 | "js-tokens" "^4.0.0"
130 | "picocolors" "^1.0.0"
131 |
132 | "@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.25.0", "@babel/parser@^7.25.3", "@babel/parser@^7.25.6":
133 | "integrity" "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q=="
134 | "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz"
135 | "version" "7.25.6"
136 | dependencies:
137 | "@babel/types" "^7.25.6"
138 |
139 | "@babel/plugin-transform-react-jsx-self@^7.24.5":
140 | "integrity" "sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw=="
141 | "resolved" "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.7.tgz"
142 | "version" "7.24.7"
143 | dependencies:
144 | "@babel/helper-plugin-utils" "^7.24.7"
145 |
146 | "@babel/plugin-transform-react-jsx-source@^7.24.1":
147 | "integrity" "sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ=="
148 | "resolved" "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.7.tgz"
149 | "version" "7.24.7"
150 | dependencies:
151 | "@babel/helper-plugin-utils" "^7.24.7"
152 |
153 | "@babel/runtime@^7.11.2", "@babel/runtime@^7.17.8":
154 | "integrity" "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ=="
155 | "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz"
156 | "version" "7.25.6"
157 | dependencies:
158 | "regenerator-runtime" "^0.14.0"
159 |
160 | "@babel/template@^7.25.0":
161 | "integrity" "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q=="
162 | "resolved" "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz"
163 | "version" "7.25.0"
164 | dependencies:
165 | "@babel/code-frame" "^7.24.7"
166 | "@babel/parser" "^7.25.0"
167 | "@babel/types" "^7.25.0"
168 |
169 | "@babel/traverse@^7.24.7", "@babel/traverse@^7.25.2":
170 | "integrity" "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ=="
171 | "resolved" "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.6.tgz"
172 | "version" "7.25.6"
173 | dependencies:
174 | "@babel/code-frame" "^7.24.7"
175 | "@babel/generator" "^7.25.6"
176 | "@babel/parser" "^7.25.6"
177 | "@babel/template" "^7.25.0"
178 | "@babel/types" "^7.25.6"
179 | "debug" "^4.3.1"
180 | "globals" "^11.1.0"
181 |
182 | "@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.25.0", "@babel/types@^7.25.2", "@babel/types@^7.25.6":
183 | "integrity" "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw=="
184 | "resolved" "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz"
185 | "version" "7.25.6"
186 | dependencies:
187 | "@babel/helper-string-parser" "^7.24.8"
188 | "@babel/helper-validator-identifier" "^7.24.7"
189 | "to-fast-properties" "^2.0.0"
190 |
191 | "@esbuild/win32-x64@0.21.5":
192 | "integrity" "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw=="
193 | "resolved" "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz"
194 | "version" "0.21.5"
195 |
196 | "@eslint-community/eslint-utils@^4.4.0":
197 | "integrity" "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA=="
198 | "resolved" "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz"
199 | "version" "4.4.0"
200 | dependencies:
201 | "eslint-visitor-keys" "^3.3.0"
202 |
203 | "@eslint-community/regexpp@^4.10.0":
204 | "integrity" "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q=="
205 | "resolved" "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz"
206 | "version" "4.11.1"
207 |
208 | "@floating-ui/core@^1.6.0":
209 | "integrity" "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA=="
210 | "resolved" "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz"
211 | "version" "1.6.8"
212 | dependencies:
213 | "@floating-ui/utils" "^0.2.8"
214 |
215 | "@floating-ui/dom@^1.0.0":
216 | "integrity" "sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ=="
217 | "resolved" "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.11.tgz"
218 | "version" "1.6.11"
219 | dependencies:
220 | "@floating-ui/core" "^1.6.0"
221 | "@floating-ui/utils" "^0.2.8"
222 |
223 | "@floating-ui/react-dom@^2.0.0":
224 | "integrity" "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A=="
225 | "resolved" "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz"
226 | "version" "2.1.2"
227 | dependencies:
228 | "@floating-ui/dom" "^1.0.0"
229 |
230 | "@floating-ui/utils@^0.2.8":
231 | "integrity" "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig=="
232 | "resolved" "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz"
233 | "version" "0.2.8"
234 |
235 | "@jridgewell/gen-mapping@^0.3.5":
236 | "integrity" "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg=="
237 | "resolved" "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz"
238 | "version" "0.3.5"
239 | dependencies:
240 | "@jridgewell/set-array" "^1.2.1"
241 | "@jridgewell/sourcemap-codec" "^1.4.10"
242 | "@jridgewell/trace-mapping" "^0.3.24"
243 |
244 | "@jridgewell/resolve-uri@^3.1.0":
245 | "integrity" "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="
246 | "resolved" "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz"
247 | "version" "3.1.2"
248 |
249 | "@jridgewell/set-array@^1.2.1":
250 | "integrity" "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A=="
251 | "resolved" "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz"
252 | "version" "1.2.1"
253 |
254 | "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0":
255 | "integrity" "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="
256 | "resolved" "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz"
257 | "version" "1.5.0"
258 |
259 | "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25":
260 | "integrity" "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ=="
261 | "resolved" "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz"
262 | "version" "0.3.25"
263 | dependencies:
264 | "@jridgewell/resolve-uri" "^3.1.0"
265 | "@jridgewell/sourcemap-codec" "^1.4.14"
266 |
267 | "@mediapipe/tasks-vision@0.10.8":
268 | "integrity" "sha512-Rp7ll8BHrKB3wXaRFKhrltwZl1CiXGdibPxuWXvqGnKTnv8fqa/nvftYNuSbf+pbJWKYCXdBtYTITdAUTGGh0Q=="
269 | "resolved" "https://registry.npmjs.org/@mediapipe/tasks-vision/-/tasks-vision-0.10.8.tgz"
270 | "version" "0.10.8"
271 |
272 | "@microsoft/api-extractor-model@7.29.6":
273 | "integrity" "sha512-gC0KGtrZvxzf/Rt9oMYD2dHvtN/1KPEYsrQPyMKhLHnlVuO/f4AFN3E4toqZzD2pt4LhkKoYmL2H9tX3yCOyRw=="
274 | "resolved" "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.29.6.tgz"
275 | "version" "7.29.6"
276 | dependencies:
277 | "@microsoft/tsdoc" "~0.15.0"
278 | "@microsoft/tsdoc-config" "~0.17.0"
279 | "@rushstack/node-core-library" "5.7.0"
280 |
281 | "@microsoft/api-extractor@7.47.7":
282 | "integrity" "sha512-fNiD3G55ZJGhPOBPMKD/enozj8yxJSYyVJWxRWdcUtw842rvthDHJgUWq9gXQTensFlMHv2wGuCjjivPv53j0A=="
283 | "resolved" "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.47.7.tgz"
284 | "version" "7.47.7"
285 | dependencies:
286 | "@microsoft/api-extractor-model" "7.29.6"
287 | "@microsoft/tsdoc" "~0.15.0"
288 | "@microsoft/tsdoc-config" "~0.17.0"
289 | "@rushstack/node-core-library" "5.7.0"
290 | "@rushstack/rig-package" "0.5.3"
291 | "@rushstack/terminal" "0.14.0"
292 | "@rushstack/ts-command-line" "4.22.6"
293 | "lodash" "~4.17.15"
294 | "minimatch" "~3.0.3"
295 | "resolve" "~1.22.1"
296 | "semver" "~7.5.4"
297 | "source-map" "~0.6.1"
298 | "typescript" "5.4.2"
299 |
300 | "@microsoft/tsdoc-config@~0.17.0":
301 | "integrity" "sha512-v/EYRXnCAIHxOHW+Plb6OWuUoMotxTN0GLatnpOb1xq0KuTNw/WI3pamJx/UbsoJP5k9MCw1QxvvhPcF9pH3Zg=="
302 | "resolved" "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.17.0.tgz"
303 | "version" "0.17.0"
304 | dependencies:
305 | "@microsoft/tsdoc" "0.15.0"
306 | "ajv" "~8.12.0"
307 | "jju" "~1.4.0"
308 | "resolve" "~1.22.2"
309 |
310 | "@microsoft/tsdoc@~0.15.0", "@microsoft/tsdoc@0.15.0":
311 | "integrity" "sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA=="
312 | "resolved" "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.0.tgz"
313 | "version" "0.15.0"
314 |
315 | "@monogrid/gainmap-js@^3.0.5":
316 | "integrity" "sha512-ireqJg7cw0tUn/JePDG8rAL7RyXgUKSDbjYdiygkrnye1WuKGLAWDBwF/ICwCwJ9iZBAF5caU8gSu+c34HLGdQ=="
317 | "resolved" "https://registry.npmjs.org/@monogrid/gainmap-js/-/gainmap-js-3.0.6.tgz"
318 | "version" "3.0.6"
319 | dependencies:
320 | "promise-worker-transferable" "^1.0.4"
321 |
322 | "@nodelib/fs.scandir@2.1.5":
323 | "integrity" "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="
324 | "resolved" "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
325 | "version" "2.1.5"
326 | dependencies:
327 | "@nodelib/fs.stat" "2.0.5"
328 | "run-parallel" "^1.1.9"
329 |
330 | "@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5":
331 | "integrity" "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="
332 | "resolved" "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
333 | "version" "2.0.5"
334 |
335 | "@nodelib/fs.walk@^1.2.3":
336 | "integrity" "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="
337 | "resolved" "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz"
338 | "version" "1.2.8"
339 | dependencies:
340 | "@nodelib/fs.scandir" "2.1.5"
341 | "fastq" "^1.6.0"
342 |
343 | "@pmndrs/branding@^0.0.8":
344 | "integrity" "sha512-AIWJJDiUhIWNJqhN+bz1FIlQRURqQDIaJ2FokEIHAJ/k0XIYI6VM5UgVBRupS4YkMXtvdBAYnfsDpFx8C7N4Xw=="
345 | "resolved" "https://registry.npmjs.org/@pmndrs/branding/-/branding-0.0.8.tgz"
346 | "version" "0.0.8"
347 |
348 | "@radix-ui/primitive@1.1.0":
349 | "integrity" "sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA=="
350 | "resolved" "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.0.tgz"
351 | "version" "1.1.0"
352 |
353 | "@radix-ui/react-arrow@1.1.0":
354 | "integrity" "sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw=="
355 | "resolved" "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz"
356 | "version" "1.1.0"
357 | dependencies:
358 | "@radix-ui/react-primitive" "2.0.0"
359 |
360 | "@radix-ui/react-compose-refs@1.1.0":
361 | "integrity" "sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw=="
362 | "resolved" "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz"
363 | "version" "1.1.0"
364 |
365 | "@radix-ui/react-context@1.1.0":
366 | "integrity" "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A=="
367 | "resolved" "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz"
368 | "version" "1.1.0"
369 |
370 | "@radix-ui/react-dismissable-layer@1.1.0":
371 | "integrity" "sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig=="
372 | "resolved" "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.0.tgz"
373 | "version" "1.1.0"
374 | dependencies:
375 | "@radix-ui/primitive" "1.1.0"
376 | "@radix-ui/react-compose-refs" "1.1.0"
377 | "@radix-ui/react-primitive" "2.0.0"
378 | "@radix-ui/react-use-callback-ref" "1.1.0"
379 | "@radix-ui/react-use-escape-keydown" "1.1.0"
380 |
381 | "@radix-ui/react-id@1.1.0":
382 | "integrity" "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA=="
383 | "resolved" "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz"
384 | "version" "1.1.0"
385 | dependencies:
386 | "@radix-ui/react-use-layout-effect" "1.1.0"
387 |
388 | "@radix-ui/react-popper@1.2.0":
389 | "integrity" "sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg=="
390 | "resolved" "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.0.tgz"
391 | "version" "1.2.0"
392 | dependencies:
393 | "@floating-ui/react-dom" "^2.0.0"
394 | "@radix-ui/react-arrow" "1.1.0"
395 | "@radix-ui/react-compose-refs" "1.1.0"
396 | "@radix-ui/react-context" "1.1.0"
397 | "@radix-ui/react-primitive" "2.0.0"
398 | "@radix-ui/react-use-callback-ref" "1.1.0"
399 | "@radix-ui/react-use-layout-effect" "1.1.0"
400 | "@radix-ui/react-use-rect" "1.1.0"
401 | "@radix-ui/react-use-size" "1.1.0"
402 | "@radix-ui/rect" "1.1.0"
403 |
404 | "@radix-ui/react-portal@^1.0.2", "@radix-ui/react-portal@1.1.1":
405 | "integrity" "sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g=="
406 | "resolved" "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.1.tgz"
407 | "version" "1.1.1"
408 | dependencies:
409 | "@radix-ui/react-primitive" "2.0.0"
410 | "@radix-ui/react-use-layout-effect" "1.1.0"
411 |
412 | "@radix-ui/react-presence@1.1.0":
413 | "integrity" "sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ=="
414 | "resolved" "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.0.tgz"
415 | "version" "1.1.0"
416 | dependencies:
417 | "@radix-ui/react-compose-refs" "1.1.0"
418 | "@radix-ui/react-use-layout-effect" "1.1.0"
419 |
420 | "@radix-ui/react-primitive@2.0.0":
421 | "integrity" "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw=="
422 | "resolved" "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz"
423 | "version" "2.0.0"
424 | dependencies:
425 | "@radix-ui/react-slot" "1.1.0"
426 |
427 | "@radix-ui/react-slot@1.1.0":
428 | "integrity" "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw=="
429 | "resolved" "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz"
430 | "version" "1.1.0"
431 | dependencies:
432 | "@radix-ui/react-compose-refs" "1.1.0"
433 |
434 | "@radix-ui/react-tooltip@^1.0.5":
435 | "integrity" "sha512-9XRsLwe6Yb9B/tlnYCPVUd/TFS4J7HuOZW345DCeC6vKIxQGMZdx21RK4VoZauPD5frgkXTYVS5y90L+3YBn4w=="
436 | "resolved" "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.2.tgz"
437 | "version" "1.1.2"
438 | dependencies:
439 | "@radix-ui/primitive" "1.1.0"
440 | "@radix-ui/react-compose-refs" "1.1.0"
441 | "@radix-ui/react-context" "1.1.0"
442 | "@radix-ui/react-dismissable-layer" "1.1.0"
443 | "@radix-ui/react-id" "1.1.0"
444 | "@radix-ui/react-popper" "1.2.0"
445 | "@radix-ui/react-portal" "1.1.1"
446 | "@radix-ui/react-presence" "1.1.0"
447 | "@radix-ui/react-primitive" "2.0.0"
448 | "@radix-ui/react-slot" "1.1.0"
449 | "@radix-ui/react-use-controllable-state" "1.1.0"
450 | "@radix-ui/react-visually-hidden" "1.1.0"
451 |
452 | "@radix-ui/react-use-callback-ref@1.1.0":
453 | "integrity" "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw=="
454 | "resolved" "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz"
455 | "version" "1.1.0"
456 |
457 | "@radix-ui/react-use-controllable-state@1.1.0":
458 | "integrity" "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw=="
459 | "resolved" "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz"
460 | "version" "1.1.0"
461 | dependencies:
462 | "@radix-ui/react-use-callback-ref" "1.1.0"
463 |
464 | "@radix-ui/react-use-escape-keydown@1.1.0":
465 | "integrity" "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw=="
466 | "resolved" "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz"
467 | "version" "1.1.0"
468 | dependencies:
469 | "@radix-ui/react-use-callback-ref" "1.1.0"
470 |
471 | "@radix-ui/react-use-layout-effect@1.1.0":
472 | "integrity" "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w=="
473 | "resolved" "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz"
474 | "version" "1.1.0"
475 |
476 | "@radix-ui/react-use-rect@1.1.0":
477 | "integrity" "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ=="
478 | "resolved" "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz"
479 | "version" "1.1.0"
480 | dependencies:
481 | "@radix-ui/rect" "1.1.0"
482 |
483 | "@radix-ui/react-use-size@1.1.0":
484 | "integrity" "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw=="
485 | "resolved" "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz"
486 | "version" "1.1.0"
487 | dependencies:
488 | "@radix-ui/react-use-layout-effect" "1.1.0"
489 |
490 | "@radix-ui/react-visually-hidden@1.1.0":
491 | "integrity" "sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ=="
492 | "resolved" "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz"
493 | "version" "1.1.0"
494 | dependencies:
495 | "@radix-ui/react-primitive" "2.0.0"
496 |
497 | "@radix-ui/rect@1.1.0":
498 | "integrity" "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg=="
499 | "resolved" "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz"
500 | "version" "1.1.0"
501 |
502 | "@react-spring/animated@~9.6.1":
503 | "integrity" "sha512-ls/rJBrAqiAYozjLo5EPPLLOb1LM0lNVQcXODTC1SMtS6DbuBCPaKco5svFUQFMP2dso3O+qcC4k9FsKc0KxMQ=="
504 | "resolved" "https://registry.npmjs.org/@react-spring/animated/-/animated-9.6.1.tgz"
505 | "version" "9.6.1"
506 | dependencies:
507 | "@react-spring/shared" "~9.6.1"
508 | "@react-spring/types" "~9.6.1"
509 |
510 | "@react-spring/core@~9.6.1":
511 | "integrity" "sha512-3HAAinAyCPessyQNNXe5W0OHzRfa8Yo5P748paPcmMowZ/4sMfaZ2ZB6e5x5khQI8NusOHj8nquoutd6FRY5WQ=="
512 | "resolved" "https://registry.npmjs.org/@react-spring/core/-/core-9.6.1.tgz"
513 | "version" "9.6.1"
514 | dependencies:
515 | "@react-spring/animated" "~9.6.1"
516 | "@react-spring/rafz" "~9.6.1"
517 | "@react-spring/shared" "~9.6.1"
518 | "@react-spring/types" "~9.6.1"
519 |
520 | "@react-spring/rafz@~9.6.1":
521 | "integrity" "sha512-v6qbgNRpztJFFfSE3e2W1Uz+g8KnIBs6SmzCzcVVF61GdGfGOuBrbjIcp+nUz301awVmREKi4eMQb2Ab2gGgyQ=="
522 | "resolved" "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.6.1.tgz"
523 | "version" "9.6.1"
524 |
525 | "@react-spring/shared@~9.6.1":
526 | "integrity" "sha512-PBFBXabxFEuF8enNLkVqMC9h5uLRBo6GQhRMQT/nRTnemVENimgRd+0ZT4yFnAQ0AxWNiJfX3qux+bW2LbG6Bw=="
527 | "resolved" "https://registry.npmjs.org/@react-spring/shared/-/shared-9.6.1.tgz"
528 | "version" "9.6.1"
529 | dependencies:
530 | "@react-spring/rafz" "~9.6.1"
531 | "@react-spring/types" "~9.6.1"
532 |
533 | "@react-spring/three@~9.6.1":
534 | "integrity" "sha512-Tyw2YhZPKJAX3t2FcqvpLRb71CyTe1GvT3V+i+xJzfALgpk10uPGdGaQQ5Xrzmok1340DAeg2pR/MCfaW7b8AA=="
535 | "resolved" "https://registry.npmjs.org/@react-spring/three/-/three-9.6.1.tgz"
536 | "version" "9.6.1"
537 | dependencies:
538 | "@react-spring/animated" "~9.6.1"
539 | "@react-spring/core" "~9.6.1"
540 | "@react-spring/shared" "~9.6.1"
541 | "@react-spring/types" "~9.6.1"
542 |
543 | "@react-spring/types@~9.6.1":
544 | "integrity" "sha512-POu8Mk0hIU3lRXB3bGIGe4VHIwwDsQyoD1F394OK7STTiX9w4dG3cTLljjYswkQN+hDSHRrj4O36kuVa7KPU8Q=="
545 | "resolved" "https://registry.npmjs.org/@react-spring/types/-/types-9.6.1.tgz"
546 | "version" "9.6.1"
547 |
548 | "@react-three/drei@^9.114.0":
549 | "integrity" "sha512-+3EjUS47DEInY3LoTabA0t2AC62hgJvhZmQggZC1iTTZNrnyGQ9EQVYKP3e4kYyq2cnRAYptRnonSRF3RZkStA=="
550 | "resolved" "https://registry.npmjs.org/@react-three/drei/-/drei-9.114.0.tgz"
551 | "version" "9.114.0"
552 | dependencies:
553 | "@babel/runtime" "^7.11.2"
554 | "@mediapipe/tasks-vision" "0.10.8"
555 | "@monogrid/gainmap-js" "^3.0.5"
556 | "@react-spring/three" "~9.6.1"
557 | "@use-gesture/react" "^10.2.24"
558 | "camera-controls" "^2.4.2"
559 | "cross-env" "^7.0.3"
560 | "detect-gpu" "^5.0.28"
561 | "glsl-noise" "^0.0.0"
562 | "hls.js" "1.3.5"
563 | "maath" "^0.10.7"
564 | "meshline" "^3.1.6"
565 | "react-composer" "^5.0.3"
566 | "stats-gl" "^2.0.0"
567 | "stats.js" "^0.17.0"
568 | "suspend-react" "^0.1.3"
569 | "three-mesh-bvh" "^0.7.8"
570 | "three-stdlib" "^2.29.9"
571 | "troika-three-text" "^0.49.0"
572 | "tunnel-rat" "^0.1.2"
573 | "utility-types" "^3.10.0"
574 | "uuid" "^9.0.1"
575 | "zustand" "^3.7.1"
576 |
577 | "@react-three/fiber@^8.17.8", "@react-three/fiber@>=6.0", "@react-three/fiber@>=8.0":
578 | "integrity" "sha512-L2r8n4Ebg7YMTMaPHx1soxplgfia7SpAJUA1bS4C1ApRG9KKAjK8Kjhx3ODX3f6fyYfQZju2JyE8Q7OJHv1DNA=="
579 | "resolved" "https://registry.npmjs.org/@react-three/fiber/-/fiber-8.17.8.tgz"
580 | "version" "8.17.8"
581 | dependencies:
582 | "@babel/runtime" "^7.17.8"
583 | "@types/debounce" "^1.2.1"
584 | "@types/react-reconciler" "^0.26.7"
585 | "@types/webxr" "*"
586 | "base64-js" "^1.5.1"
587 | "buffer" "^6.0.3"
588 | "debounce" "^1.2.1"
589 | "its-fine" "^1.0.6"
590 | "react-reconciler" "^0.27.0"
591 | "scheduler" "^0.21.0"
592 | "suspend-react" "^0.1.3"
593 | "zustand" "^3.7.1"
594 |
595 | "@react-three/gpu-pathtracer-example@file:C:\\Users\\Faraz\\Documents\\work\\pmndrs\\react-three-gpu-pathtracer\\example":
596 | "resolved" "file:example"
597 | "version" "0.0.0"
598 | dependencies:
599 | "@pmndrs/branding" "^0.0.8"
600 | "@react-three/drei" "^9.114.0"
601 | "@react-three/fiber" "^8.17.8"
602 | "@react-three/gpu-pathtracer" "^0.1.1"
603 | "leva" "^0.9.35"
604 | "react" "^18.3.1"
605 | "react-dom" "^18.3.1"
606 | "react-icons" "^5.3.0"
607 | "three" "^0.169.0"
608 |
609 | "@react-three/gpu-pathtracer@^0.1.1":
610 | "integrity" "sha512-AaH/Xx6xBWvv9aPVupQn+WiVdI5wrj+NkvWyQ/P2ZkZjT23e4nzwVexPh9Ta4CPUHMz5ZhN777jqV9z/hRPbFA=="
611 | "resolved" "https://registry.npmjs.org/@react-three/gpu-pathtracer/-/gpu-pathtracer-0.1.1.tgz"
612 | "version" "0.1.1"
613 | dependencies:
614 | "three-gpu-pathtracer" "^0.0.13"
615 |
616 | "@react-three/gpu-pathtracer@file:C:\\Users\\Faraz\\Documents\\work\\pmndrs\\react-three-gpu-pathtracer\\package":
617 | "resolved" "file:package"
618 | "version" "0.2.0"
619 | dependencies:
620 | "three-gpu-pathtracer" "^0.0.23"
621 |
622 | "@rollup/pluginutils@^5.1.0":
623 | "integrity" "sha512-/FIdS3PyZ39bjZlwqFnWqCOVnW7o963LtKMwQOD0NhQqw22gSr2YY1afu3FxRip4ZCZNsD5jq6Aaz6QV3D/Njw=="
624 | "resolved" "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.2.tgz"
625 | "version" "5.1.2"
626 | dependencies:
627 | "@types/estree" "^1.0.0"
628 | "estree-walker" "^2.0.2"
629 | "picomatch" "^2.3.1"
630 |
631 | "@rollup/rollup-win32-x64-msvc@4.22.5":
632 | "integrity" "sha512-+lvL/4mQxSV8MukpkKyyvfwhH266COcWlXE/1qxwN08ajovta3459zrjLghYMgDerlzNwLAcFpvU+WWE5y6nAQ=="
633 | "resolved" "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.5.tgz"
634 | "version" "4.22.5"
635 |
636 | "@rushstack/node-core-library@5.7.0":
637 | "integrity" "sha512-Ff9Cz/YlWu9ce4dmqNBZpA45AEya04XaBFIjV7xTVeEf+y/kTjEasmozqFELXlNG4ROdevss75JrrZ5WgufDkQ=="
638 | "resolved" "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.7.0.tgz"
639 | "version" "5.7.0"
640 | dependencies:
641 | "ajv" "~8.13.0"
642 | "ajv-draft-04" "~1.0.0"
643 | "ajv-formats" "~3.0.1"
644 | "fs-extra" "~7.0.1"
645 | "import-lazy" "~4.0.0"
646 | "jju" "~1.4.0"
647 | "resolve" "~1.22.1"
648 | "semver" "~7.5.4"
649 |
650 | "@rushstack/rig-package@0.5.3":
651 | "integrity" "sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow=="
652 | "resolved" "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.5.3.tgz"
653 | "version" "0.5.3"
654 | dependencies:
655 | "resolve" "~1.22.1"
656 | "strip-json-comments" "~3.1.1"
657 |
658 | "@rushstack/terminal@0.14.0":
659 | "integrity" "sha512-juTKMAMpTIJKudeFkG5slD8Z/LHwNwGZLtU441l/u82XdTBfsP+LbGKJLCNwP5se+DMCT55GB8x9p6+C4UL7jw=="
660 | "resolved" "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.14.0.tgz"
661 | "version" "0.14.0"
662 | dependencies:
663 | "@rushstack/node-core-library" "5.7.0"
664 | "supports-color" "~8.1.1"
665 |
666 | "@rushstack/ts-command-line@4.22.6":
667 | "integrity" "sha512-QSRqHT/IfoC5nk9zn6+fgyqOPXHME0BfchII9EUPR19pocsNp/xSbeBCbD3PIR2Lg+Q5qk7OFqk1VhWPMdKHJg=="
668 | "resolved" "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.22.6.tgz"
669 | "version" "4.22.6"
670 | dependencies:
671 | "@rushstack/terminal" "0.14.0"
672 | "@types/argparse" "1.0.38"
673 | "argparse" "~1.0.9"
674 | "string-argv" "~0.3.1"
675 |
676 | "@stitches/react@^1.2.8":
677 | "integrity" "sha512-9g9dWI4gsSVe8bNLlb+lMkBYsnIKCZTmvqvDG+Avnn69XfmHZKiaMrx7cgTaddq7aTPPmXiTsbFcUy0xgI4+wA=="
678 | "resolved" "https://registry.npmjs.org/@stitches/react/-/react-1.2.8.tgz"
679 | "version" "1.2.8"
680 |
681 | "@tweenjs/tween.js@~23.1.1", "@tweenjs/tween.js@~23.1.3":
682 | "integrity" "sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA=="
683 | "resolved" "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-23.1.3.tgz"
684 | "version" "23.1.3"
685 |
686 | "@types/argparse@1.0.38":
687 | "integrity" "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA=="
688 | "resolved" "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz"
689 | "version" "1.0.38"
690 |
691 | "@types/babel__core@^7.20.5":
692 | "integrity" "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="
693 | "resolved" "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz"
694 | "version" "7.20.5"
695 | dependencies:
696 | "@babel/parser" "^7.20.7"
697 | "@babel/types" "^7.20.7"
698 | "@types/babel__generator" "*"
699 | "@types/babel__template" "*"
700 | "@types/babel__traverse" "*"
701 |
702 | "@types/babel__generator@*":
703 | "integrity" "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw=="
704 | "resolved" "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz"
705 | "version" "7.6.8"
706 | dependencies:
707 | "@babel/types" "^7.0.0"
708 |
709 | "@types/babel__template@*":
710 | "integrity" "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A=="
711 | "resolved" "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz"
712 | "version" "7.4.4"
713 | dependencies:
714 | "@babel/parser" "^7.1.0"
715 | "@babel/types" "^7.0.0"
716 |
717 | "@types/babel__traverse@*":
718 | "integrity" "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg=="
719 | "resolved" "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz"
720 | "version" "7.20.6"
721 | dependencies:
722 | "@babel/types" "^7.20.7"
723 |
724 | "@types/debounce@^1.2.1":
725 | "integrity" "sha512-jBqiORIzKDOToaF63Fm//haOCHuwQuLa2202RK4MozpA6lh93eCBc+/8+wZn5OzjJt3ySdc+74SXWXB55Ewtyw=="
726 | "resolved" "https://registry.npmjs.org/@types/debounce/-/debounce-1.2.4.tgz"
727 | "version" "1.2.4"
728 |
729 | "@types/draco3d@^1.4.0":
730 | "integrity" "sha512-AX22jp8Y7wwaBgAixaSvkoG4M/+PlAcm3Qs4OW8yT9DM4xUpWKeFhLueTAyZF39pviAdcDdeJoACapiAceqNcw=="
731 | "resolved" "https://registry.npmjs.org/@types/draco3d/-/draco3d-1.4.10.tgz"
732 | "version" "1.4.10"
733 |
734 | "@types/estree@^1.0.0", "@types/estree@1.0.6":
735 | "integrity" "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw=="
736 | "resolved" "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz"
737 | "version" "1.0.6"
738 |
739 | "@types/node@*", "@types/node@^18.0.0 || >=20.0.0", "@types/node@^22.5.5", "@types/node@^22.7.4":
740 | "integrity" "sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg=="
741 | "resolved" "https://registry.npmjs.org/@types/node/-/node-22.7.4.tgz"
742 | "version" "22.7.4"
743 | dependencies:
744 | "undici-types" "~6.19.2"
745 |
746 | "@types/offscreencanvas@^2019.6.4":
747 | "integrity" "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A=="
748 | "resolved" "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.3.tgz"
749 | "version" "2019.7.3"
750 |
751 | "@types/prop-types@*":
752 | "integrity" "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA=="
753 | "resolved" "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz"
754 | "version" "15.7.13"
755 |
756 | "@types/react-dom@*", "@types/react-dom@^18.3.0":
757 | "integrity" "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg=="
758 | "resolved" "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz"
759 | "version" "18.3.0"
760 | dependencies:
761 | "@types/react" "*"
762 |
763 | "@types/react-reconciler@^0.26.7":
764 | "integrity" "sha512-mBDYl8x+oyPX/VBb3E638N0B7xG+SPk/EAMcVPeexqus/5aTpTphQi0curhhshOqRrc9t6OPoJfEUkbymse/lQ=="
765 | "resolved" "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.26.7.tgz"
766 | "version" "0.26.7"
767 | dependencies:
768 | "@types/react" "*"
769 |
770 | "@types/react-reconciler@^0.28.0":
771 | "integrity" "sha512-SN9c4kxXZonFhbX4hJrZy37yw9e7EIxcpHCxQv5JUS18wDE5ovkQKlqQEkufdJCCMfuI9BnjUJvhYeJ9x5Ra7g=="
772 | "resolved" "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.28.8.tgz"
773 | "version" "0.28.8"
774 | dependencies:
775 | "@types/react" "*"
776 |
777 | "@types/react@*", "@types/react@^18.3.3", "@types/react@>=16.8":
778 | "integrity" "sha512-02sAAlBnP39JgXwkAq3PeU9DVaaGpZyF3MGcC0MKgQVkZor5IiiDAipVaxQHtDJAmO4GIy/rVBy/LzVj76Cyqg=="
779 | "resolved" "https://registry.npmjs.org/@types/react/-/react-18.3.10.tgz"
780 | "version" "18.3.10"
781 | dependencies:
782 | "@types/prop-types" "*"
783 | "csstype" "^3.0.2"
784 |
785 | "@types/stats.js@*":
786 | "integrity" "sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ=="
787 | "resolved" "https://registry.npmjs.org/@types/stats.js/-/stats.js-0.17.3.tgz"
788 | "version" "0.17.3"
789 |
790 | "@types/three@^0.163.0":
791 | "integrity" "sha512-uIdDhsXRpQiBUkflBS/i1l3JX14fW6Ot9csed60nfbZNXHDTRsnV2xnTVwXcgbvTiboAR4IW+t+lTL5f1rqIqA=="
792 | "resolved" "https://registry.npmjs.org/@types/three/-/three-0.163.0.tgz"
793 | "version" "0.163.0"
794 | dependencies:
795 | "@tweenjs/tween.js" "~23.1.1"
796 | "@types/stats.js" "*"
797 | "@types/webxr" "*"
798 | "fflate" "~0.8.2"
799 | "meshoptimizer" "~0.18.1"
800 |
801 | "@types/three@^0.168.0", "@types/three@>=0.134.0":
802 | "integrity" "sha512-qAGLGzbaYgkkonOBfwOr+TZpOskPfFjrDAj801WQSVkUz0/D9zwir4vhruJ/CC/GteywzR9pqeVVfs5th/2oKw=="
803 | "resolved" "https://registry.npmjs.org/@types/three/-/three-0.168.0.tgz"
804 | "version" "0.168.0"
805 | dependencies:
806 | "@tweenjs/tween.js" "~23.1.3"
807 | "@types/stats.js" "*"
808 | "@types/webxr" "*"
809 | "@webgpu/types" "*"
810 | "fflate" "~0.8.2"
811 | "meshoptimizer" "~0.18.1"
812 |
813 | "@types/webxr@*", "@types/webxr@^0.5.2":
814 | "integrity" "sha512-JGpU6qiIJQKUuVSKx1GtQnHJGxRjtfGIhzO2ilq43VZZS//f1h1Sgexbdk+Lq+7569a6EYhOWrUpIruR/1Enmg=="
815 | "resolved" "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.20.tgz"
816 | "version" "0.5.20"
817 |
818 | "@typescript-eslint/eslint-plugin@8.7.0":
819 | "integrity" "sha512-RIHOoznhA3CCfSTFiB6kBGLQtB/sox+pJ6jeFu6FxJvqL8qRxq/FfGO/UhsGgQM9oGdXkV4xUgli+dt26biB6A=="
820 | "resolved" "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.7.0.tgz"
821 | "version" "8.7.0"
822 | dependencies:
823 | "@eslint-community/regexpp" "^4.10.0"
824 | "@typescript-eslint/scope-manager" "8.7.0"
825 | "@typescript-eslint/type-utils" "8.7.0"
826 | "@typescript-eslint/utils" "8.7.0"
827 | "@typescript-eslint/visitor-keys" "8.7.0"
828 | "graphemer" "^1.4.0"
829 | "ignore" "^5.3.1"
830 | "natural-compare" "^1.4.0"
831 | "ts-api-utils" "^1.3.0"
832 |
833 | "@typescript-eslint/parser@^8.0.0 || ^8.0.0-alpha.0", "@typescript-eslint/parser@8.7.0":
834 | "integrity" "sha512-lN0btVpj2unxHlNYLI//BQ7nzbMJYBVQX5+pbNXvGYazdlgYonMn4AhhHifQ+J4fGRYA/m1DjaQjx+fDetqBOQ=="
835 | "resolved" "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.7.0.tgz"
836 | "version" "8.7.0"
837 | dependencies:
838 | "@typescript-eslint/scope-manager" "8.7.0"
839 | "@typescript-eslint/types" "8.7.0"
840 | "@typescript-eslint/typescript-estree" "8.7.0"
841 | "@typescript-eslint/visitor-keys" "8.7.0"
842 | "debug" "^4.3.4"
843 |
844 | "@typescript-eslint/scope-manager@8.7.0":
845 | "integrity" "sha512-87rC0k3ZlDOuz82zzXRtQ7Akv3GKhHs0ti4YcbAJtaomllXoSO8hi7Ix3ccEvCd824dy9aIX+j3d2UMAfCtVpg=="
846 | "resolved" "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.7.0.tgz"
847 | "version" "8.7.0"
848 | dependencies:
849 | "@typescript-eslint/types" "8.7.0"
850 | "@typescript-eslint/visitor-keys" "8.7.0"
851 |
852 | "@typescript-eslint/type-utils@8.7.0":
853 | "integrity" "sha512-tl0N0Mj3hMSkEYhLkjREp54OSb/FI6qyCzfiiclvJvOqre6hsZTGSnHtmFLDU8TIM62G7ygEa1bI08lcuRwEnQ=="
854 | "resolved" "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.7.0.tgz"
855 | "version" "8.7.0"
856 | dependencies:
857 | "@typescript-eslint/typescript-estree" "8.7.0"
858 | "@typescript-eslint/utils" "8.7.0"
859 | "debug" "^4.3.4"
860 | "ts-api-utils" "^1.3.0"
861 |
862 | "@typescript-eslint/types@8.7.0":
863 | "integrity" "sha512-LLt4BLHFwSfASHSF2K29SZ+ZCsbQOM+LuarPjRUuHm+Qd09hSe3GCeaQbcCr+Mik+0QFRmep/FyZBO6fJ64U3w=="
864 | "resolved" "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.7.0.tgz"
865 | "version" "8.7.0"
866 |
867 | "@typescript-eslint/typescript-estree@8.7.0":
868 | "integrity" "sha512-MC8nmcGHsmfAKxwnluTQpNqceniT8SteVwd2voYlmiSWGOtjvGXdPl17dYu2797GVscK30Z04WRM28CrKS9WOg=="
869 | "resolved" "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.7.0.tgz"
870 | "version" "8.7.0"
871 | dependencies:
872 | "@typescript-eslint/types" "8.7.0"
873 | "@typescript-eslint/visitor-keys" "8.7.0"
874 | "debug" "^4.3.4"
875 | "fast-glob" "^3.3.2"
876 | "is-glob" "^4.0.3"
877 | "minimatch" "^9.0.4"
878 | "semver" "^7.6.0"
879 | "ts-api-utils" "^1.3.0"
880 |
881 | "@typescript-eslint/utils@8.7.0":
882 | "integrity" "sha512-ZbdUdwsl2X/s3CiyAu3gOlfQzpbuG3nTWKPoIvAu1pu5r8viiJvv2NPN2AqArL35NCYtw/lrPPfM4gxrMLNLPw=="
883 | "resolved" "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.7.0.tgz"
884 | "version" "8.7.0"
885 | dependencies:
886 | "@eslint-community/eslint-utils" "^4.4.0"
887 | "@typescript-eslint/scope-manager" "8.7.0"
888 | "@typescript-eslint/types" "8.7.0"
889 | "@typescript-eslint/typescript-estree" "8.7.0"
890 |
891 | "@typescript-eslint/visitor-keys@8.7.0":
892 | "integrity" "sha512-b1tx0orFCCh/THWPQa2ZwWzvOeyzzp36vkJYOpVg0u8UVOIsfVrnuC9FqAw9gRKn+rG2VmWQ/zDJZzkxUnj/XQ=="
893 | "resolved" "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.7.0.tgz"
894 | "version" "8.7.0"
895 | dependencies:
896 | "@typescript-eslint/types" "8.7.0"
897 | "eslint-visitor-keys" "^3.4.3"
898 |
899 | "@use-gesture/core@10.3.1":
900 | "integrity" "sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw=="
901 | "resolved" "https://registry.npmjs.org/@use-gesture/core/-/core-10.3.1.tgz"
902 | "version" "10.3.1"
903 |
904 | "@use-gesture/react@^10.2.24", "@use-gesture/react@^10.2.5":
905 | "integrity" "sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g=="
906 | "resolved" "https://registry.npmjs.org/@use-gesture/react/-/react-10.3.1.tgz"
907 | "version" "10.3.1"
908 | dependencies:
909 | "@use-gesture/core" "10.3.1"
910 |
911 | "@vitejs/plugin-react@^4.3.1":
912 | "integrity" "sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg=="
913 | "resolved" "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz"
914 | "version" "4.3.1"
915 | dependencies:
916 | "@babel/core" "^7.24.5"
917 | "@babel/plugin-transform-react-jsx-self" "^7.24.5"
918 | "@babel/plugin-transform-react-jsx-source" "^7.24.1"
919 | "@types/babel__core" "^7.20.5"
920 | "react-refresh" "^0.14.2"
921 |
922 | "@volar/language-core@~2.4.1", "@volar/language-core@2.4.5":
923 | "integrity" "sha512-F4tA0DCO5Q1F5mScHmca0umsi2ufKULAnMOVBfMsZdT4myhVl4WdKRwCaKcfOkIEuyrAVvtq1ESBdZ+rSyLVww=="
924 | "resolved" "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.5.tgz"
925 | "version" "2.4.5"
926 | dependencies:
927 | "@volar/source-map" "2.4.5"
928 |
929 | "@volar/source-map@2.4.5":
930 | "integrity" "sha512-varwD7RaKE2J/Z+Zu6j3mNNJbNT394qIxXwdvz/4ao/vxOfyClZpSDtLKkwWmecinkOVos5+PWkWraelfMLfpw=="
931 | "resolved" "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.5.tgz"
932 | "version" "2.4.5"
933 |
934 | "@volar/typescript@^2.4.4":
935 | "integrity" "sha512-mcT1mHvLljAEtHviVcBuOyAwwMKz1ibXTi5uYtP/pf4XxoAzpdkQ+Br2IC0NPCvLCbjPZmbf3I0udndkfB1CDg=="
936 | "resolved" "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.5.tgz"
937 | "version" "2.4.5"
938 | dependencies:
939 | "@volar/language-core" "2.4.5"
940 | "path-browserify" "^1.0.1"
941 | "vscode-uri" "^3.0.8"
942 |
943 | "@vue/compiler-core@3.5.10":
944 | "integrity" "sha512-iXWlk+Cg/ag7gLvY0SfVucU8Kh2CjysYZjhhP70w9qI4MvSox4frrP+vDGvtQuzIcgD8+sxM6lZvCtdxGunTAA=="
945 | "resolved" "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.10.tgz"
946 | "version" "3.5.10"
947 | dependencies:
948 | "@babel/parser" "^7.25.3"
949 | "@vue/shared" "3.5.10"
950 | "entities" "^4.5.0"
951 | "estree-walker" "^2.0.2"
952 | "source-map-js" "^1.2.0"
953 |
954 | "@vue/compiler-dom@^3.4.0":
955 | "integrity" "sha512-DyxHC6qPcktwYGKOIy3XqnHRrrXyWR2u91AjP+nLkADko380srsC2DC3s7Y1Rk6YfOlxOlvEQKa9XXmLI+W4ZA=="
956 | "resolved" "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.10.tgz"
957 | "version" "3.5.10"
958 | dependencies:
959 | "@vue/compiler-core" "3.5.10"
960 | "@vue/shared" "3.5.10"
961 |
962 | "@vue/compiler-vue2@^2.7.16":
963 | "integrity" "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A=="
964 | "resolved" "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz"
965 | "version" "2.7.16"
966 | dependencies:
967 | "de-indent" "^1.0.2"
968 | "he" "^1.2.0"
969 |
970 | "@vue/language-core@2.1.6":
971 | "integrity" "sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg=="
972 | "resolved" "https://registry.npmjs.org/@vue/language-core/-/language-core-2.1.6.tgz"
973 | "version" "2.1.6"
974 | dependencies:
975 | "@volar/language-core" "~2.4.1"
976 | "@vue/compiler-dom" "^3.4.0"
977 | "@vue/compiler-vue2" "^2.7.16"
978 | "@vue/shared" "^3.4.0"
979 | "computeds" "^0.0.1"
980 | "minimatch" "^9.0.3"
981 | "muggle-string" "^0.4.1"
982 | "path-browserify" "^1.0.1"
983 |
984 | "@vue/shared@^3.4.0", "@vue/shared@3.5.10":
985 | "integrity" "sha512-VkkBhU97Ki+XJ0xvl4C9YJsIZ2uIlQ7HqPpZOS3m9VCvmROPaChZU6DexdMJqvz9tbgG+4EtFVrSuailUq5KGQ=="
986 | "resolved" "https://registry.npmjs.org/@vue/shared/-/shared-3.5.10.tgz"
987 | "version" "3.5.10"
988 |
989 | "@webgpu/types@*":
990 | "integrity" "sha512-2iogO6Zh0pTbKLGZuuGWEmJpF/fTABGs7G9wXxpn7s24XSJchSUIiMqIJHURi5zsMZRRTuXrV/3GLOkmOFjq5w=="
991 | "resolved" "https://registry.npmjs.org/@webgpu/types/-/types-0.1.46.tgz"
992 | "version" "0.1.46"
993 |
994 | "acorn@^8.11.3":
995 | "integrity" "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg=="
996 | "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz"
997 | "version" "8.12.1"
998 |
999 | "ajv-draft-04@~1.0.0":
1000 | "integrity" "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw=="
1001 | "resolved" "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz"
1002 | "version" "1.0.0"
1003 |
1004 | "ajv-formats@~3.0.1":
1005 | "integrity" "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ=="
1006 | "resolved" "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz"
1007 | "version" "3.0.1"
1008 | dependencies:
1009 | "ajv" "^8.0.0"
1010 |
1011 | "ajv@^8.0.0", "ajv@^8.5.0", "ajv@~8.13.0":
1012 | "integrity" "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA=="
1013 | "resolved" "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz"
1014 | "version" "8.13.0"
1015 | dependencies:
1016 | "fast-deep-equal" "^3.1.3"
1017 | "json-schema-traverse" "^1.0.0"
1018 | "require-from-string" "^2.0.2"
1019 | "uri-js" "^4.4.1"
1020 |
1021 | "ajv@~8.12.0":
1022 | "integrity" "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA=="
1023 | "resolved" "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz"
1024 | "version" "8.12.0"
1025 | dependencies:
1026 | "fast-deep-equal" "^3.1.1"
1027 | "json-schema-traverse" "^1.0.0"
1028 | "require-from-string" "^2.0.2"
1029 | "uri-js" "^4.2.2"
1030 |
1031 | "ansi-styles@^3.2.1":
1032 | "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="
1033 | "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
1034 | "version" "3.2.1"
1035 | dependencies:
1036 | "color-convert" "^1.9.0"
1037 |
1038 | "argparse@~1.0.9":
1039 | "integrity" "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="
1040 | "resolved" "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz"
1041 | "version" "1.0.10"
1042 | dependencies:
1043 | "sprintf-js" "~1.0.2"
1044 |
1045 | "assign-symbols@^1.0.0":
1046 | "integrity" "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw=="
1047 | "resolved" "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz"
1048 | "version" "1.0.0"
1049 |
1050 | "attr-accept@^2.2.2":
1051 | "integrity" "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg=="
1052 | "resolved" "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz"
1053 | "version" "2.2.2"
1054 |
1055 | "balanced-match@^1.0.0":
1056 | "integrity" "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
1057 | "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
1058 | "version" "1.0.2"
1059 |
1060 | "base64-js@^1.3.1", "base64-js@^1.5.1":
1061 | "integrity" "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
1062 | "resolved" "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
1063 | "version" "1.5.1"
1064 |
1065 | "bidi-js@^1.0.2":
1066 | "integrity" "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw=="
1067 | "resolved" "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz"
1068 | "version" "1.0.3"
1069 | dependencies:
1070 | "require-from-string" "^2.0.2"
1071 |
1072 | "brace-expansion@^1.1.7":
1073 | "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="
1074 | "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
1075 | "version" "1.1.11"
1076 | dependencies:
1077 | "balanced-match" "^1.0.0"
1078 | "concat-map" "0.0.1"
1079 |
1080 | "brace-expansion@^2.0.1":
1081 | "integrity" "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="
1082 | "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz"
1083 | "version" "2.0.1"
1084 | dependencies:
1085 | "balanced-match" "^1.0.0"
1086 |
1087 | "braces@^3.0.3":
1088 | "integrity" "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="
1089 | "resolved" "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz"
1090 | "version" "3.0.3"
1091 | dependencies:
1092 | "fill-range" "^7.1.1"
1093 |
1094 | "browserslist@^4.23.1", "browserslist@>= 4.21.0":
1095 | "integrity" "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A=="
1096 | "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz"
1097 | "version" "4.24.0"
1098 | dependencies:
1099 | "caniuse-lite" "^1.0.30001663"
1100 | "electron-to-chromium" "^1.5.28"
1101 | "node-releases" "^2.0.18"
1102 | "update-browserslist-db" "^1.1.0"
1103 |
1104 | "buffer@^6.0.3":
1105 | "integrity" "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA=="
1106 | "resolved" "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz"
1107 | "version" "6.0.3"
1108 | dependencies:
1109 | "base64-js" "^1.3.1"
1110 | "ieee754" "^1.2.1"
1111 |
1112 | "camera-controls@^2.4.2":
1113 | "integrity" "sha512-TpCujnP0vqPppTXXJRYpvIy0xq9Tro6jQf2iYUxlDpPCNxkvE/XGaTuwIxnhINOkVP/ob2CRYXtY3iVYXeMEzA=="
1114 | "resolved" "https://registry.npmjs.org/camera-controls/-/camera-controls-2.9.0.tgz"
1115 | "version" "2.9.0"
1116 |
1117 | "caniuse-lite@^1.0.30001663":
1118 | "integrity" "sha512-AmE7k4dXiNKQipgn7a2xg558IRqPN3jMQY/rOsbxDhrd0tyChwbITBfiwtnqz8bi2M5mIWbxAYBvk7W7QBUS2g=="
1119 | "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001664.tgz"
1120 | "version" "1.0.30001664"
1121 |
1122 | "chalk@^2.4.2":
1123 | "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="
1124 | "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
1125 | "version" "2.4.2"
1126 | dependencies:
1127 | "ansi-styles" "^3.2.1"
1128 | "escape-string-regexp" "^1.0.5"
1129 | "supports-color" "^5.3.0"
1130 |
1131 | "color-convert@^1.9.0":
1132 | "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="
1133 | "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
1134 | "version" "1.9.3"
1135 | dependencies:
1136 | "color-name" "1.1.3"
1137 |
1138 | "color-name@1.1.3":
1139 | "integrity" "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
1140 | "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
1141 | "version" "1.1.3"
1142 |
1143 | "colord@^2.9.2":
1144 | "integrity" "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw=="
1145 | "resolved" "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz"
1146 | "version" "2.9.3"
1147 |
1148 | "compare-versions@^6.1.1":
1149 | "integrity" "sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg=="
1150 | "resolved" "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz"
1151 | "version" "6.1.1"
1152 |
1153 | "computeds@^0.0.1":
1154 | "integrity" "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q=="
1155 | "resolved" "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz"
1156 | "version" "0.0.1"
1157 |
1158 | "concat-map@0.0.1":
1159 | "integrity" "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
1160 | "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
1161 | "version" "0.0.1"
1162 |
1163 | "confbox@^0.1.7":
1164 | "integrity" "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA=="
1165 | "resolved" "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz"
1166 | "version" "0.1.7"
1167 |
1168 | "convert-source-map@^2.0.0":
1169 | "integrity" "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="
1170 | "resolved" "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz"
1171 | "version" "2.0.0"
1172 |
1173 | "cross-env@^7.0.3":
1174 | "integrity" "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw=="
1175 | "resolved" "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz"
1176 | "version" "7.0.3"
1177 | dependencies:
1178 | "cross-spawn" "^7.0.1"
1179 |
1180 | "cross-spawn@^7.0.1":
1181 | "integrity" "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w=="
1182 | "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz"
1183 | "version" "7.0.3"
1184 | dependencies:
1185 | "path-key" "^3.1.0"
1186 | "shebang-command" "^2.0.0"
1187 | "which" "^2.0.1"
1188 |
1189 | "csstype@^3.0.2":
1190 | "integrity" "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
1191 | "resolved" "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz"
1192 | "version" "3.1.3"
1193 |
1194 | "de-indent@^1.0.2":
1195 | "integrity" "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg=="
1196 | "resolved" "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz"
1197 | "version" "1.0.2"
1198 |
1199 | "debounce@^1.2.1":
1200 | "integrity" "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug=="
1201 | "resolved" "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz"
1202 | "version" "1.2.1"
1203 |
1204 | "debug@^4.1.0", "debug@^4.3.1", "debug@^4.3.4", "debug@^4.3.6":
1205 | "integrity" "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ=="
1206 | "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz"
1207 | "version" "4.3.7"
1208 | dependencies:
1209 | "ms" "^2.1.3"
1210 |
1211 | "dequal@^2.0.2":
1212 | "integrity" "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="
1213 | "resolved" "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz"
1214 | "version" "2.0.3"
1215 |
1216 | "detect-gpu@^5.0.28":
1217 | "integrity" "sha512-Bzuv0ZTC9AqIVwoWqtBJW91rNR9vT5F5DeIEb6x82WZC55848i9FFyRR+kswCuW3IfCtMNyiIxRuL2EWlF4Ihw=="
1218 | "resolved" "https://registry.npmjs.org/detect-gpu/-/detect-gpu-5.0.50.tgz"
1219 | "version" "5.0.50"
1220 | dependencies:
1221 | "webgl-constants" "^1.1.1"
1222 |
1223 | "draco3d@^1.4.1":
1224 | "integrity" "sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ=="
1225 | "resolved" "https://registry.npmjs.org/draco3d/-/draco3d-1.5.7.tgz"
1226 | "version" "1.5.7"
1227 |
1228 | "electron-to-chromium@^1.5.28":
1229 | "integrity" "sha512-PF8n2AlIhCKXQ+gTpiJi0VhcHDb69kYX4MtCiivctc2QD3XuNZ/XIOlbGzt7WAjjEev0TtaH6Cu3arZExm5DOw=="
1230 | "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.29.tgz"
1231 | "version" "1.5.29"
1232 |
1233 | "entities@^4.5.0":
1234 | "integrity" "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="
1235 | "resolved" "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz"
1236 | "version" "4.5.0"
1237 |
1238 | "esbuild@^0.21.3":
1239 | "integrity" "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw=="
1240 | "resolved" "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz"
1241 | "version" "0.21.5"
1242 | optionalDependencies:
1243 | "@esbuild/aix-ppc64" "0.21.5"
1244 | "@esbuild/android-arm" "0.21.5"
1245 | "@esbuild/android-arm64" "0.21.5"
1246 | "@esbuild/android-x64" "0.21.5"
1247 | "@esbuild/darwin-arm64" "0.21.5"
1248 | "@esbuild/darwin-x64" "0.21.5"
1249 | "@esbuild/freebsd-arm64" "0.21.5"
1250 | "@esbuild/freebsd-x64" "0.21.5"
1251 | "@esbuild/linux-arm" "0.21.5"
1252 | "@esbuild/linux-arm64" "0.21.5"
1253 | "@esbuild/linux-ia32" "0.21.5"
1254 | "@esbuild/linux-loong64" "0.21.5"
1255 | "@esbuild/linux-mips64el" "0.21.5"
1256 | "@esbuild/linux-ppc64" "0.21.5"
1257 | "@esbuild/linux-riscv64" "0.21.5"
1258 | "@esbuild/linux-s390x" "0.21.5"
1259 | "@esbuild/linux-x64" "0.21.5"
1260 | "@esbuild/netbsd-x64" "0.21.5"
1261 | "@esbuild/openbsd-x64" "0.21.5"
1262 | "@esbuild/sunos-x64" "0.21.5"
1263 | "@esbuild/win32-arm64" "0.21.5"
1264 | "@esbuild/win32-ia32" "0.21.5"
1265 | "@esbuild/win32-x64" "0.21.5"
1266 |
1267 | "escalade@^3.2.0":
1268 | "integrity" "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="
1269 | "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz"
1270 | "version" "3.2.0"
1271 |
1272 | "escape-string-regexp@^1.0.5":
1273 | "integrity" "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
1274 | "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
1275 | "version" "1.0.5"
1276 |
1277 | "eslint-visitor-keys@^3.3.0", "eslint-visitor-keys@^3.4.3":
1278 | "integrity" "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="
1279 | "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz"
1280 | "version" "3.4.3"
1281 |
1282 | "estree-walker@^2.0.2":
1283 | "integrity" "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
1284 | "resolved" "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz"
1285 | "version" "2.0.2"
1286 |
1287 | "extend-shallow@^2.0.1":
1288 | "integrity" "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug=="
1289 | "resolved" "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz"
1290 | "version" "2.0.1"
1291 | dependencies:
1292 | "is-extendable" "^0.1.0"
1293 |
1294 | "extend-shallow@^3.0.0":
1295 | "integrity" "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q=="
1296 | "resolved" "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz"
1297 | "version" "3.0.2"
1298 | dependencies:
1299 | "assign-symbols" "^1.0.0"
1300 | "is-extendable" "^1.0.1"
1301 |
1302 | "fast-deep-equal@^3.1.1", "fast-deep-equal@^3.1.3":
1303 | "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
1304 | "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
1305 | "version" "3.1.3"
1306 |
1307 | "fast-glob@^3.3.2":
1308 | "integrity" "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow=="
1309 | "resolved" "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz"
1310 | "version" "3.3.2"
1311 | dependencies:
1312 | "@nodelib/fs.stat" "^2.0.2"
1313 | "@nodelib/fs.walk" "^1.2.3"
1314 | "glob-parent" "^5.1.2"
1315 | "merge2" "^1.3.0"
1316 | "micromatch" "^4.0.4"
1317 |
1318 | "fastq@^1.6.0":
1319 | "integrity" "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w=="
1320 | "resolved" "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz"
1321 | "version" "1.17.1"
1322 | dependencies:
1323 | "reusify" "^1.0.4"
1324 |
1325 | "fflate@^0.6.9":
1326 | "integrity" "sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg=="
1327 | "resolved" "https://registry.npmjs.org/fflate/-/fflate-0.6.10.tgz"
1328 | "version" "0.6.10"
1329 |
1330 | "fflate@~0.8.2":
1331 | "integrity" "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A=="
1332 | "resolved" "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz"
1333 | "version" "0.8.2"
1334 |
1335 | "file-selector@^0.5.0":
1336 | "integrity" "sha512-s8KNnmIDTBoD0p9uJ9uD0XY38SCeBOtj0UMXyQSLg1Ypfrfj8+dAvwsLjYQkQ2GjhVtp2HrnF5cJzMhBjfD8HA=="
1337 | "resolved" "https://registry.npmjs.org/file-selector/-/file-selector-0.5.0.tgz"
1338 | "version" "0.5.0"
1339 | dependencies:
1340 | "tslib" "^2.0.3"
1341 |
1342 | "fill-range@^7.1.1":
1343 | "integrity" "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="
1344 | "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz"
1345 | "version" "7.1.1"
1346 | dependencies:
1347 | "to-regex-range" "^5.0.1"
1348 |
1349 | "for-in@^1.0.2":
1350 | "integrity" "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ=="
1351 | "resolved" "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz"
1352 | "version" "1.0.2"
1353 |
1354 | "fs-extra@~7.0.1":
1355 | "integrity" "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw=="
1356 | "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz"
1357 | "version" "7.0.1"
1358 | dependencies:
1359 | "graceful-fs" "^4.1.2"
1360 | "jsonfile" "^4.0.0"
1361 | "universalify" "^0.1.0"
1362 |
1363 | "function-bind@^1.1.2":
1364 | "integrity" "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="
1365 | "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz"
1366 | "version" "1.1.2"
1367 |
1368 | "gensync@^1.0.0-beta.2":
1369 | "integrity" "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="
1370 | "resolved" "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz"
1371 | "version" "1.0.0-beta.2"
1372 |
1373 | "get-value@^2.0.6":
1374 | "integrity" "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA=="
1375 | "resolved" "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz"
1376 | "version" "2.0.6"
1377 |
1378 | "glob-parent@^5.1.2":
1379 | "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="
1380 | "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
1381 | "version" "5.1.2"
1382 | dependencies:
1383 | "is-glob" "^4.0.1"
1384 |
1385 | "globals@^11.1.0":
1386 | "integrity" "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
1387 | "resolved" "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz"
1388 | "version" "11.12.0"
1389 |
1390 | "globals@^15.9.0":
1391 | "integrity" "sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA=="
1392 | "resolved" "https://registry.npmjs.org/globals/-/globals-15.9.0.tgz"
1393 | "version" "15.9.0"
1394 |
1395 | "glsl-noise@^0.0.0":
1396 | "integrity" "sha512-b/ZCF6amfAUb7dJM/MxRs7AetQEahYzJ8PtgfrmEdtw6uyGOr+ZSGtgjFm6mfsBkxJ4d2W7kg+Nlqzqvn3Bc0w=="
1397 | "resolved" "https://registry.npmjs.org/glsl-noise/-/glsl-noise-0.0.0.tgz"
1398 | "version" "0.0.0"
1399 |
1400 | "graceful-fs@^4.1.2", "graceful-fs@^4.1.6":
1401 | "integrity" "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
1402 | "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz"
1403 | "version" "4.2.11"
1404 |
1405 | "graphemer@^1.4.0":
1406 | "integrity" "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="
1407 | "resolved" "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz"
1408 | "version" "1.4.0"
1409 |
1410 | "has-flag@^3.0.0":
1411 | "integrity" "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
1412 | "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
1413 | "version" "3.0.0"
1414 |
1415 | "has-flag@^4.0.0":
1416 | "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
1417 | "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
1418 | "version" "4.0.0"
1419 |
1420 | "hasown@^2.0.2":
1421 | "integrity" "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="
1422 | "resolved" "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz"
1423 | "version" "2.0.2"
1424 | dependencies:
1425 | "function-bind" "^1.1.2"
1426 |
1427 | "he@^1.2.0":
1428 | "integrity" "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
1429 | "resolved" "https://registry.npmjs.org/he/-/he-1.2.0.tgz"
1430 | "version" "1.2.0"
1431 |
1432 | "hls.js@1.3.5":
1433 | "integrity" "sha512-uybAvKS6uDe0MnWNEPnO0krWVr+8m2R0hJ/viql8H3MVK+itq8gGQuIYoFHL3rECkIpNH98Lw8YuuWMKZxp3Ew=="
1434 | "resolved" "https://registry.npmjs.org/hls.js/-/hls.js-1.3.5.tgz"
1435 | "version" "1.3.5"
1436 |
1437 | "ieee754@^1.2.1":
1438 | "integrity" "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
1439 | "resolved" "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"
1440 | "version" "1.2.1"
1441 |
1442 | "ignore@^5.3.1":
1443 | "integrity" "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="
1444 | "resolved" "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz"
1445 | "version" "5.3.2"
1446 |
1447 | "immediate@~3.0.5":
1448 | "integrity" "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="
1449 | "resolved" "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz"
1450 | "version" "3.0.6"
1451 |
1452 | "import-lazy@~4.0.0":
1453 | "integrity" "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw=="
1454 | "resolved" "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz"
1455 | "version" "4.0.0"
1456 |
1457 | "is-core-module@^2.13.0":
1458 | "integrity" "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ=="
1459 | "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz"
1460 | "version" "2.15.1"
1461 | dependencies:
1462 | "hasown" "^2.0.2"
1463 |
1464 | "is-extendable@^0.1.0":
1465 | "integrity" "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw=="
1466 | "resolved" "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz"
1467 | "version" "0.1.1"
1468 |
1469 | "is-extendable@^0.1.1":
1470 | "integrity" "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw=="
1471 | "resolved" "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz"
1472 | "version" "0.1.1"
1473 |
1474 | "is-extendable@^1.0.0", "is-extendable@^1.0.1":
1475 | "integrity" "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA=="
1476 | "resolved" "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz"
1477 | "version" "1.0.1"
1478 | dependencies:
1479 | "is-plain-object" "^2.0.4"
1480 |
1481 | "is-extglob@^2.1.1":
1482 | "integrity" "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
1483 | "resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
1484 | "version" "2.1.1"
1485 |
1486 | "is-glob@^4.0.1", "is-glob@^4.0.3":
1487 | "integrity" "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="
1488 | "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
1489 | "version" "4.0.3"
1490 | dependencies:
1491 | "is-extglob" "^2.1.1"
1492 |
1493 | "is-number@^7.0.0":
1494 | "integrity" "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
1495 | "resolved" "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
1496 | "version" "7.0.0"
1497 |
1498 | "is-plain-object@^2.0.3", "is-plain-object@^2.0.4":
1499 | "integrity" "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og=="
1500 | "resolved" "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz"
1501 | "version" "2.0.4"
1502 | dependencies:
1503 | "isobject" "^3.0.1"
1504 |
1505 | "is-promise@^2.1.0":
1506 | "integrity" "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="
1507 | "resolved" "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz"
1508 | "version" "2.2.2"
1509 |
1510 | "isexe@^2.0.0":
1511 | "integrity" "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
1512 | "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
1513 | "version" "2.0.0"
1514 |
1515 | "isobject@^3.0.1":
1516 | "integrity" "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg=="
1517 | "resolved" "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz"
1518 | "version" "3.0.1"
1519 |
1520 | "its-fine@^1.0.6":
1521 | "integrity" "sha512-fXtDA0X0t0eBYAGLVM5YsgJGsJ5jEmqZEPrGbzdf5awjv0xE7nqv3TVnvtUF060Tkes15DbDAKW/I48vsb6SyA=="
1522 | "resolved" "https://registry.npmjs.org/its-fine/-/its-fine-1.2.5.tgz"
1523 | "version" "1.2.5"
1524 | dependencies:
1525 | "@types/react-reconciler" "^0.28.0"
1526 |
1527 | "jju@~1.4.0":
1528 | "integrity" "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA=="
1529 | "resolved" "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz"
1530 | "version" "1.4.0"
1531 |
1532 | "js-tokens@^3.0.0 || ^4.0.0", "js-tokens@^4.0.0":
1533 | "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
1534 | "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
1535 | "version" "4.0.0"
1536 |
1537 | "jsesc@^2.5.1":
1538 | "integrity" "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
1539 | "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz"
1540 | "version" "2.5.2"
1541 |
1542 | "json-schema-traverse@^1.0.0":
1543 | "integrity" "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
1544 | "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz"
1545 | "version" "1.0.0"
1546 |
1547 | "json5@^2.2.3":
1548 | "integrity" "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="
1549 | "resolved" "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz"
1550 | "version" "2.2.3"
1551 |
1552 | "jsonfile@^4.0.0":
1553 | "integrity" "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg=="
1554 | "resolved" "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz"
1555 | "version" "4.0.0"
1556 | optionalDependencies:
1557 | "graceful-fs" "^4.1.6"
1558 |
1559 | "kolorist@^1.8.0":
1560 | "integrity" "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ=="
1561 | "resolved" "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz"
1562 | "version" "1.8.0"
1563 |
1564 | "leva@^0.9.35":
1565 | "integrity" "sha512-sp/ZbHGrrzM+eq+wIAc9X7C5qFagNERYkwaulKI/xy0XrDPV67jLUSSqTCFSoSc0Uk96j3oephYoO/6I8mZNuw=="
1566 | "resolved" "https://registry.npmjs.org/leva/-/leva-0.9.35.tgz"
1567 | "version" "0.9.35"
1568 | dependencies:
1569 | "@radix-ui/react-portal" "^1.0.2"
1570 | "@radix-ui/react-tooltip" "^1.0.5"
1571 | "@stitches/react" "^1.2.8"
1572 | "@use-gesture/react" "^10.2.5"
1573 | "colord" "^2.9.2"
1574 | "dequal" "^2.0.2"
1575 | "merge-value" "^1.0.0"
1576 | "react-colorful" "^5.5.1"
1577 | "react-dropzone" "^12.0.0"
1578 | "v8n" "^1.3.3"
1579 | "zustand" "^3.6.9"
1580 |
1581 | "lie@^3.0.2":
1582 | "integrity" "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ=="
1583 | "resolved" "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz"
1584 | "version" "3.3.0"
1585 | dependencies:
1586 | "immediate" "~3.0.5"
1587 |
1588 | "local-pkg@^0.5.0":
1589 | "integrity" "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg=="
1590 | "resolved" "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz"
1591 | "version" "0.5.0"
1592 | dependencies:
1593 | "mlly" "^1.4.2"
1594 | "pkg-types" "^1.0.3"
1595 |
1596 | "lodash@~4.17.15":
1597 | "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
1598 | "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
1599 | "version" "4.17.21"
1600 |
1601 | "loose-envify@^1.1.0", "loose-envify@^1.4.0":
1602 | "integrity" "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="
1603 | "resolved" "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz"
1604 | "version" "1.4.0"
1605 | dependencies:
1606 | "js-tokens" "^3.0.0 || ^4.0.0"
1607 |
1608 | "lru-cache@^5.1.1":
1609 | "integrity" "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="
1610 | "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz"
1611 | "version" "5.1.1"
1612 | dependencies:
1613 | "yallist" "^3.0.2"
1614 |
1615 | "lru-cache@^6.0.0":
1616 | "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA=="
1617 | "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz"
1618 | "version" "6.0.0"
1619 | dependencies:
1620 | "yallist" "^4.0.0"
1621 |
1622 | "maath@^0.10.7":
1623 | "integrity" "sha512-tRvbDF0Pgqz+9XUa4jjfgAQ8/aPKmQdWXilFu2tMy4GWj4NOsx99HlULO4IeREfbO3a0sA145DZYyvXPkybm0g=="
1624 | "resolved" "https://registry.npmjs.org/maath/-/maath-0.10.8.tgz"
1625 | "version" "0.10.8"
1626 |
1627 | "magic-string@^0.30.11":
1628 | "integrity" "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A=="
1629 | "resolved" "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz"
1630 | "version" "0.30.11"
1631 | dependencies:
1632 | "@jridgewell/sourcemap-codec" "^1.5.0"
1633 |
1634 | "merge-value@^1.0.0":
1635 | "integrity" "sha512-fJMmvat4NeKz63Uv9iHWcPDjCWcCkoiRoajRTEO8hlhUC6rwaHg0QCF9hBOTjZmm4JuglPckPSTtcuJL5kp0TQ=="
1636 | "resolved" "https://registry.npmjs.org/merge-value/-/merge-value-1.0.0.tgz"
1637 | "version" "1.0.0"
1638 | dependencies:
1639 | "get-value" "^2.0.6"
1640 | "is-extendable" "^1.0.0"
1641 | "mixin-deep" "^1.2.0"
1642 | "set-value" "^2.0.0"
1643 |
1644 | "merge2@^1.3.0":
1645 | "integrity" "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
1646 | "resolved" "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
1647 | "version" "1.4.1"
1648 |
1649 | "meshline@^3.1.6":
1650 | "integrity" "sha512-/TQj+JdZkeSUOl5Mk2J7eLcYTLiQm2IDzmlSvYm7ov15anEcDJ92GHqqazxTSreeNgfnYu24kiEvvv0WlbCdFQ=="
1651 | "resolved" "https://registry.npmjs.org/meshline/-/meshline-3.3.1.tgz"
1652 | "version" "3.3.1"
1653 |
1654 | "meshoptimizer@~0.18.1":
1655 | "integrity" "sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw=="
1656 | "resolved" "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.18.1.tgz"
1657 | "version" "0.18.1"
1658 |
1659 | "micromatch@^4.0.4":
1660 | "integrity" "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="
1661 | "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz"
1662 | "version" "4.0.8"
1663 | dependencies:
1664 | "braces" "^3.0.3"
1665 | "picomatch" "^2.3.1"
1666 |
1667 | "minimatch@^9.0.3", "minimatch@^9.0.4":
1668 | "integrity" "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="
1669 | "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz"
1670 | "version" "9.0.5"
1671 | dependencies:
1672 | "brace-expansion" "^2.0.1"
1673 |
1674 | "minimatch@~3.0.3":
1675 | "integrity" "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q=="
1676 | "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz"
1677 | "version" "3.0.8"
1678 | dependencies:
1679 | "brace-expansion" "^1.1.7"
1680 |
1681 | "mixin-deep@^1.2.0":
1682 | "integrity" "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA=="
1683 | "resolved" "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz"
1684 | "version" "1.3.2"
1685 | dependencies:
1686 | "for-in" "^1.0.2"
1687 | "is-extendable" "^1.0.1"
1688 |
1689 | "mlly@^1.4.2", "mlly@^1.7.1":
1690 | "integrity" "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA=="
1691 | "resolved" "https://registry.npmjs.org/mlly/-/mlly-1.7.1.tgz"
1692 | "version" "1.7.1"
1693 | dependencies:
1694 | "acorn" "^8.11.3"
1695 | "pathe" "^1.1.2"
1696 | "pkg-types" "^1.1.1"
1697 | "ufo" "^1.5.3"
1698 |
1699 | "ms@^2.1.3":
1700 | "integrity" "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
1701 | "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
1702 | "version" "2.1.3"
1703 |
1704 | "muggle-string@^0.4.1":
1705 | "integrity" "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ=="
1706 | "resolved" "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz"
1707 | "version" "0.4.1"
1708 |
1709 | "nanoid@^3.3.7":
1710 | "integrity" "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g=="
1711 | "resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz"
1712 | "version" "3.3.7"
1713 |
1714 | "natural-compare@^1.4.0":
1715 | "integrity" "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
1716 | "resolved" "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"
1717 | "version" "1.4.0"
1718 |
1719 | "node-releases@^2.0.18":
1720 | "integrity" "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g=="
1721 | "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz"
1722 | "version" "2.0.18"
1723 |
1724 | "object-assign@^4.1.1":
1725 | "integrity" "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
1726 | "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
1727 | "version" "4.1.1"
1728 |
1729 | "path-browserify@^1.0.1":
1730 | "integrity" "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g=="
1731 | "resolved" "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz"
1732 | "version" "1.0.1"
1733 |
1734 | "path-key@^3.1.0":
1735 | "integrity" "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
1736 | "resolved" "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"
1737 | "version" "3.1.1"
1738 |
1739 | "path-parse@^1.0.7":
1740 | "integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
1741 | "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz"
1742 | "version" "1.0.7"
1743 |
1744 | "pathe@^1.1.2":
1745 | "integrity" "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ=="
1746 | "resolved" "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz"
1747 | "version" "1.1.2"
1748 |
1749 | "picocolors@^1.0.0", "picocolors@^1.1.0":
1750 | "integrity" "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw=="
1751 | "resolved" "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz"
1752 | "version" "1.1.0"
1753 |
1754 | "picomatch@^2.3.1":
1755 | "integrity" "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
1756 | "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
1757 | "version" "2.3.1"
1758 |
1759 | "pkg-types@^1.0.3", "pkg-types@^1.1.1":
1760 | "integrity" "sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA=="
1761 | "resolved" "https://registry.npmjs.org/pkg-types/-/pkg-types-1.2.0.tgz"
1762 | "version" "1.2.0"
1763 | dependencies:
1764 | "confbox" "^0.1.7"
1765 | "mlly" "^1.7.1"
1766 | "pathe" "^1.1.2"
1767 |
1768 | "postcss@^8.4.43":
1769 | "integrity" "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ=="
1770 | "resolved" "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz"
1771 | "version" "8.4.47"
1772 | dependencies:
1773 | "nanoid" "^3.3.7"
1774 | "picocolors" "^1.1.0"
1775 | "source-map-js" "^1.2.1"
1776 |
1777 | "potpack@^1.0.1":
1778 | "integrity" "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ=="
1779 | "resolved" "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz"
1780 | "version" "1.0.2"
1781 |
1782 | "promise-worker-transferable@^1.0.4":
1783 | "integrity" "sha512-bN+0ehEnrXfxV2ZQvU2PetO0n4gqBD4ulq3MI1WOPLgr7/Mg9yRQkX5+0v1vagr74ZTsl7XtzlaYDo2EuCeYJw=="
1784 | "resolved" "https://registry.npmjs.org/promise-worker-transferable/-/promise-worker-transferable-1.0.4.tgz"
1785 | "version" "1.0.4"
1786 | dependencies:
1787 | "is-promise" "^2.1.0"
1788 | "lie" "^3.0.2"
1789 |
1790 | "prop-types@^15.6.0", "prop-types@^15.8.1":
1791 | "integrity" "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="
1792 | "resolved" "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz"
1793 | "version" "15.8.1"
1794 | dependencies:
1795 | "loose-envify" "^1.4.0"
1796 | "object-assign" "^4.1.1"
1797 | "react-is" "^16.13.1"
1798 |
1799 | "punycode@^2.1.0":
1800 | "integrity" "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="
1801 | "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz"
1802 | "version" "2.3.1"
1803 |
1804 | "queue-microtask@^1.2.2":
1805 | "integrity" "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
1806 | "resolved" "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
1807 | "version" "1.2.3"
1808 |
1809 | "react-colorful@^5.5.1":
1810 | "integrity" "sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw=="
1811 | "resolved" "https://registry.npmjs.org/react-colorful/-/react-colorful-5.6.1.tgz"
1812 | "version" "5.6.1"
1813 |
1814 | "react-composer@^5.0.3":
1815 | "integrity" "sha512-1uWd07EME6XZvMfapwZmc7NgCZqDemcvicRi3wMJzXsQLvZ3L7fTHVyPy1bZdnWXM4iPjYuNE+uJ41MLKeTtnA=="
1816 | "resolved" "https://registry.npmjs.org/react-composer/-/react-composer-5.0.3.tgz"
1817 | "version" "5.0.3"
1818 | dependencies:
1819 | "prop-types" "^15.6.0"
1820 |
1821 | "react-dom@^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom@^18.3.1", "react-dom@>=16.13", "react-dom@>=16.8.0", "react-dom@>=18.0":
1822 | "integrity" "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw=="
1823 | "resolved" "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz"
1824 | "version" "18.3.1"
1825 | dependencies:
1826 | "loose-envify" "^1.1.0"
1827 | "scheduler" "^0.23.2"
1828 |
1829 | "react-dropzone@^12.0.0":
1830 | "integrity" "sha512-iBYHA1rbopIvtzokEX4QubO6qk5IF/x3BtKGu74rF2JkQDXnwC4uO/lHKpaw4PJIV6iIAYOlwLv2FpiGyqHNog=="
1831 | "resolved" "https://registry.npmjs.org/react-dropzone/-/react-dropzone-12.1.0.tgz"
1832 | "version" "12.1.0"
1833 | dependencies:
1834 | "attr-accept" "^2.2.2"
1835 | "file-selector" "^0.5.0"
1836 | "prop-types" "^15.8.1"
1837 |
1838 | "react-icons@^5.3.0":
1839 | "integrity" "sha512-DnUk8aFbTyQPSkCfF8dbX6kQjXA9DktMeJqfjrg6cK9vwQVMxmcA3BfP4QoiztVmEHtwlTgLFsPuH2NskKT6eg=="
1840 | "resolved" "https://registry.npmjs.org/react-icons/-/react-icons-5.3.0.tgz"
1841 | "version" "5.3.0"
1842 |
1843 | "react-is@^16.13.1":
1844 | "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
1845 | "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
1846 | "version" "16.13.1"
1847 |
1848 | "react-reconciler@^0.27.0":
1849 | "integrity" "sha512-HmMDKciQjYmBRGuuhIaKA1ba/7a+UsM5FzOZsMO2JYHt9Jh8reCb7j1eDC95NOyUlKM9KRyvdx0flBuDvYSBoA=="
1850 | "resolved" "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.27.0.tgz"
1851 | "version" "0.27.0"
1852 | dependencies:
1853 | "loose-envify" "^1.1.0"
1854 | "scheduler" "^0.21.0"
1855 |
1856 | "react-refresh@^0.14.2":
1857 | "integrity" "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA=="
1858 | "resolved" "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz"
1859 | "version" "0.14.2"
1860 |
1861 | "react@*", "react@^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", "react@^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^18.0.0", "react@^18.3.1", "react@>= 16.3.0", "react@>= 16.8", "react@>= 16.8.0", "react@>=16.13", "react@>=16.8", "react@>=16.8.0", "react@>=17.0", "react@>=18.0":
1862 | "integrity" "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ=="
1863 | "resolved" "https://registry.npmjs.org/react/-/react-18.3.1.tgz"
1864 | "version" "18.3.1"
1865 | dependencies:
1866 | "loose-envify" "^1.1.0"
1867 |
1868 | "regenerator-runtime@^0.14.0":
1869 | "integrity" "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
1870 | "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz"
1871 | "version" "0.14.1"
1872 |
1873 | "require-from-string@^2.0.2":
1874 | "integrity" "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="
1875 | "resolved" "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz"
1876 | "version" "2.0.2"
1877 |
1878 | "resolve@~1.22.1", "resolve@~1.22.2":
1879 | "integrity" "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw=="
1880 | "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz"
1881 | "version" "1.22.8"
1882 | dependencies:
1883 | "is-core-module" "^2.13.0"
1884 | "path-parse" "^1.0.7"
1885 | "supports-preserve-symlinks-flag" "^1.0.0"
1886 |
1887 | "reusify@^1.0.4":
1888 | "integrity" "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
1889 | "resolved" "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz"
1890 | "version" "1.0.4"
1891 |
1892 | "rollup@^1.20.0||^2.0.0||^3.0.0||^4.0.0", "rollup@^4.20.0":
1893 | "integrity" "sha512-WoinX7GeQOFMGznEcWA1WrTQCd/tpEbMkc3nuMs9BT0CPjMdSjPMTVClwWd4pgSQwJdP65SK9mTCNvItlr5o7w=="
1894 | "resolved" "https://registry.npmjs.org/rollup/-/rollup-4.22.5.tgz"
1895 | "version" "4.22.5"
1896 | dependencies:
1897 | "@types/estree" "1.0.6"
1898 | optionalDependencies:
1899 | "@rollup/rollup-android-arm-eabi" "4.22.5"
1900 | "@rollup/rollup-android-arm64" "4.22.5"
1901 | "@rollup/rollup-darwin-arm64" "4.22.5"
1902 | "@rollup/rollup-darwin-x64" "4.22.5"
1903 | "@rollup/rollup-linux-arm-gnueabihf" "4.22.5"
1904 | "@rollup/rollup-linux-arm-musleabihf" "4.22.5"
1905 | "@rollup/rollup-linux-arm64-gnu" "4.22.5"
1906 | "@rollup/rollup-linux-arm64-musl" "4.22.5"
1907 | "@rollup/rollup-linux-powerpc64le-gnu" "4.22.5"
1908 | "@rollup/rollup-linux-riscv64-gnu" "4.22.5"
1909 | "@rollup/rollup-linux-s390x-gnu" "4.22.5"
1910 | "@rollup/rollup-linux-x64-gnu" "4.22.5"
1911 | "@rollup/rollup-linux-x64-musl" "4.22.5"
1912 | "@rollup/rollup-win32-arm64-msvc" "4.22.5"
1913 | "@rollup/rollup-win32-ia32-msvc" "4.22.5"
1914 | "@rollup/rollup-win32-x64-msvc" "4.22.5"
1915 | "fsevents" "~2.3.2"
1916 |
1917 | "run-parallel@^1.1.9":
1918 | "integrity" "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="
1919 | "resolved" "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz"
1920 | "version" "1.2.0"
1921 | dependencies:
1922 | "queue-microtask" "^1.2.2"
1923 |
1924 | "scheduler@^0.21.0":
1925 | "integrity" "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ=="
1926 | "resolved" "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz"
1927 | "version" "0.21.0"
1928 | dependencies:
1929 | "loose-envify" "^1.1.0"
1930 |
1931 | "scheduler@^0.23.2":
1932 | "integrity" "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="
1933 | "resolved" "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz"
1934 | "version" "0.23.2"
1935 | dependencies:
1936 | "loose-envify" "^1.1.0"
1937 |
1938 | "semver@^6.3.1":
1939 | "integrity" "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
1940 | "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz"
1941 | "version" "6.3.1"
1942 |
1943 | "semver@^7.6.0":
1944 | "integrity" "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A=="
1945 | "resolved" "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz"
1946 | "version" "7.6.3"
1947 |
1948 | "semver@~7.5.4":
1949 | "integrity" "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA=="
1950 | "resolved" "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz"
1951 | "version" "7.5.4"
1952 | dependencies:
1953 | "lru-cache" "^6.0.0"
1954 |
1955 | "set-value@^2.0.0":
1956 | "integrity" "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw=="
1957 | "resolved" "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz"
1958 | "version" "2.0.1"
1959 | dependencies:
1960 | "extend-shallow" "^2.0.1"
1961 | "is-extendable" "^0.1.1"
1962 | "is-plain-object" "^2.0.3"
1963 | "split-string" "^3.0.1"
1964 |
1965 | "shebang-command@^2.0.0":
1966 | "integrity" "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="
1967 | "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz"
1968 | "version" "2.0.0"
1969 | dependencies:
1970 | "shebang-regex" "^3.0.0"
1971 |
1972 | "shebang-regex@^3.0.0":
1973 | "integrity" "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
1974 | "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz"
1975 | "version" "3.0.0"
1976 |
1977 | "source-map-js@^1.2.0", "source-map-js@^1.2.1":
1978 | "integrity" "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="
1979 | "resolved" "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz"
1980 | "version" "1.2.1"
1981 |
1982 | "source-map@~0.6.1":
1983 | "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
1984 | "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
1985 | "version" "0.6.1"
1986 |
1987 | "split-string@^3.0.1":
1988 | "integrity" "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw=="
1989 | "resolved" "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz"
1990 | "version" "3.1.0"
1991 | dependencies:
1992 | "extend-shallow" "^3.0.0"
1993 |
1994 | "sprintf-js@~1.0.2":
1995 | "integrity" "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
1996 | "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"
1997 | "version" "1.0.3"
1998 |
1999 | "stats-gl@^2.0.0":
2000 | "integrity" "sha512-94G5nZvduDmzxBS7K0lYnynYwreZpkknD8g5dZmU6mpwIhy3caCrjAm11Qm1cbyx7mqix7Fp00RkbsonzKWnoQ=="
2001 | "resolved" "https://registry.npmjs.org/stats-gl/-/stats-gl-2.2.8.tgz"
2002 | "version" "2.2.8"
2003 | dependencies:
2004 | "@types/three" "^0.163.0"
2005 |
2006 | "stats.js@^0.17.0":
2007 | "integrity" "sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw=="
2008 | "resolved" "https://registry.npmjs.org/stats.js/-/stats.js-0.17.0.tgz"
2009 | "version" "0.17.0"
2010 |
2011 | "string-argv@~0.3.1":
2012 | "integrity" "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q=="
2013 | "resolved" "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz"
2014 | "version" "0.3.2"
2015 |
2016 | "strip-json-comments@~3.1.1":
2017 | "integrity" "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
2018 | "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz"
2019 | "version" "3.1.1"
2020 |
2021 | "supports-color@^5.3.0":
2022 | "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="
2023 | "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
2024 | "version" "5.5.0"
2025 | dependencies:
2026 | "has-flag" "^3.0.0"
2027 |
2028 | "supports-color@~8.1.1":
2029 | "integrity" "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="
2030 | "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz"
2031 | "version" "8.1.1"
2032 | dependencies:
2033 | "has-flag" "^4.0.0"
2034 |
2035 | "supports-preserve-symlinks-flag@^1.0.0":
2036 | "integrity" "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
2037 | "resolved" "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
2038 | "version" "1.0.0"
2039 |
2040 | "suspend-react@^0.1.3":
2041 | "integrity" "sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ=="
2042 | "resolved" "https://registry.npmjs.org/suspend-react/-/suspend-react-0.1.3.tgz"
2043 | "version" "0.1.3"
2044 |
2045 | "three-gpu-pathtracer@^0.0.13":
2046 | "integrity" "sha512-GpgGQq75HWqtixHjJ1FEYd6Yv4v1ZNjjUw+Tg1locO4OsQhSLCZ3ycYc5pAZ8PV5TmfANvpnLF8HGfWd8GxvDQ=="
2047 | "resolved" "https://registry.npmjs.org/three-gpu-pathtracer/-/three-gpu-pathtracer-0.0.13.tgz"
2048 | "version" "0.0.13"
2049 | dependencies:
2050 | "three-mesh-bvh" "^0.5.19"
2051 |
2052 | "three-gpu-pathtracer@^0.0.23":
2053 | "integrity" "sha512-CjMX5YU3ajDklOv3hW1EQ4CCkPLiLR+jB31w6G5WLf6Nasemib62tmCj45vBK5ItKAD0aHG1NWc479gXzk6fOQ=="
2054 | "resolved" "https://registry.npmjs.org/three-gpu-pathtracer/-/three-gpu-pathtracer-0.0.23.tgz"
2055 | "version" "0.0.23"
2056 |
2057 | "three-mesh-bvh@^0.5.19":
2058 | "integrity" "sha512-VTIgfjz8aFoPKTQoMIQQv9jJD4ybFRZuKKE1/kqy78FQcuHQ0+iIWv7C5cSb2inlvs7bNMVY3yRx3RXGZfrvzQ=="
2059 | "resolved" "https://registry.npmjs.org/three-mesh-bvh/-/three-mesh-bvh-0.5.24.tgz"
2060 | "version" "0.5.24"
2061 |
2062 | "three-mesh-bvh@^0.7.8", "three-mesh-bvh@>=0.7.4":
2063 | "integrity" "sha512-BGEZTOIC14U0XIRw3tO4jY7IjP7n7v24nv9JXS1CyeVRWOCkcOMhRnmENUjuV39gktAw4Ofhr0OvIAiTspQrrw=="
2064 | "resolved" "https://registry.npmjs.org/three-mesh-bvh/-/three-mesh-bvh-0.7.8.tgz"
2065 | "version" "0.7.8"
2066 |
2067 | "three-stdlib@^2.29.9":
2068 | "integrity" "sha512-V/uycBuqQOP/3Z+FBtpMdj2Ds5PyfJ3VDfMzktEmG4niOIzv7q1y5uMSbMcng0+057m1l0N147FQxsodQo9zBg=="
2069 | "resolved" "https://registry.npmjs.org/three-stdlib/-/three-stdlib-2.33.0.tgz"
2070 | "version" "2.33.0"
2071 | dependencies:
2072 | "@types/draco3d" "^1.4.0"
2073 | "@types/offscreencanvas" "^2019.6.4"
2074 | "@types/webxr" "^0.5.2"
2075 | "draco3d" "^1.4.1"
2076 | "fflate" "^0.6.9"
2077 | "potpack" "^1.0.1"
2078 |
2079 | "three@^0.169.0", "three@>= 0.123.0", "three@>= 0.151.0", "three@>= 0.159.0", "three@>=0.125.0", "three@>=0.126", "three@>=0.126.1", "three@>=0.128.0", "three@>=0.133", "three@>=0.134.0", "three@>=0.137", "three@>=0.139.2", "three@>=0.149", "three@>=0.151.0":
2080 | "integrity" "sha512-Ed906MA3dR4TS5riErd4QBsRGPcx+HBDX2O5yYE5GqJeFQTPU+M56Va/f/Oph9X7uZo3W3o4l2ZhBZ6f6qUv0w=="
2081 | "resolved" "https://registry.npmjs.org/three/-/three-0.169.0.tgz"
2082 | "version" "0.169.0"
2083 |
2084 | "to-fast-properties@^2.0.0":
2085 | "integrity" "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog=="
2086 | "resolved" "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz"
2087 | "version" "2.0.0"
2088 |
2089 | "to-regex-range@^5.0.1":
2090 | "integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="
2091 | "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
2092 | "version" "5.0.1"
2093 | dependencies:
2094 | "is-number" "^7.0.0"
2095 |
2096 | "troika-three-text@^0.49.0":
2097 | "integrity" "sha512-lXGWxgjJP9kw4i4Wh+0k0Q/7cRfS6iOME4knKht/KozPu9GcFA9NnNpRvehIhrUawq9B0ZRw+0oiFHgRO+4Wig=="
2098 | "resolved" "https://registry.npmjs.org/troika-three-text/-/troika-three-text-0.49.1.tgz"
2099 | "version" "0.49.1"
2100 | dependencies:
2101 | "bidi-js" "^1.0.2"
2102 | "troika-three-utils" "^0.49.0"
2103 | "troika-worker-utils" "^0.49.0"
2104 | "webgl-sdf-generator" "1.1.1"
2105 |
2106 | "troika-three-utils@^0.49.0":
2107 | "integrity" "sha512-umitFL4cT+Fm/uONmaQEq4oZlyRHWwVClaS6ZrdcueRvwc2w+cpNQ47LlJKJswpqtMFWbEhOLy0TekmcPZOdYA=="
2108 | "resolved" "https://registry.npmjs.org/troika-three-utils/-/troika-three-utils-0.49.0.tgz"
2109 | "version" "0.49.0"
2110 |
2111 | "troika-worker-utils@^0.49.0":
2112 | "integrity" "sha512-1xZHoJrG0HFfCvT/iyN41DvI/nRykiBtHqFkGaGgJwq5iXfIZFBiPPEHFpPpgyKM3Oo5ITHXP5wM2TNQszYdVg=="
2113 | "resolved" "https://registry.npmjs.org/troika-worker-utils/-/troika-worker-utils-0.49.0.tgz"
2114 | "version" "0.49.0"
2115 |
2116 | "ts-api-utils@^1.3.0":
2117 | "integrity" "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ=="
2118 | "resolved" "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz"
2119 | "version" "1.3.0"
2120 |
2121 | "tslib@^2.0.3":
2122 | "integrity" "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA=="
2123 | "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz"
2124 | "version" "2.7.0"
2125 |
2126 | "tunnel-rat@^0.1.2":
2127 | "integrity" "sha512-lR5VHmkPhzdhrM092lI2nACsLO4QubF0/yoOhzX7c+wIpbN1GjHNzCc91QlpxBi+cnx8vVJ+Ur6vL5cEoQPFpQ=="
2128 | "resolved" "https://registry.npmjs.org/tunnel-rat/-/tunnel-rat-0.1.2.tgz"
2129 | "version" "0.1.2"
2130 | dependencies:
2131 | "zustand" "^4.3.2"
2132 |
2133 | "typescript-eslint@^8.0.1":
2134 | "integrity" "sha512-nEHbEYJyHwsuf7c3V3RS7Saq+1+la3i0ieR3qP0yjqWSzVmh8Drp47uOl9LjbPANac4S7EFSqvcYIKXUUwIfIQ=="
2135 | "resolved" "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.7.0.tgz"
2136 | "version" "8.7.0"
2137 | dependencies:
2138 | "@typescript-eslint/eslint-plugin" "8.7.0"
2139 | "@typescript-eslint/parser" "8.7.0"
2140 | "@typescript-eslint/utils" "8.7.0"
2141 |
2142 | "typescript@*", "typescript@^5.5.3", "typescript@>=4.2.0":
2143 | "integrity" "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw=="
2144 | "resolved" "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz"
2145 | "version" "5.6.2"
2146 |
2147 | "typescript@5.4.2":
2148 | "integrity" "sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ=="
2149 | "resolved" "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz"
2150 | "version" "5.4.2"
2151 |
2152 | "ufo@^1.5.3":
2153 | "integrity" "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ=="
2154 | "resolved" "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz"
2155 | "version" "1.5.4"
2156 |
2157 | "undici-types@~6.19.2":
2158 | "integrity" "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw=="
2159 | "resolved" "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz"
2160 | "version" "6.19.8"
2161 |
2162 | "universalify@^0.1.0":
2163 | "integrity" "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
2164 | "resolved" "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz"
2165 | "version" "0.1.2"
2166 |
2167 | "update-browserslist-db@^1.1.0":
2168 | "integrity" "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A=="
2169 | "resolved" "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz"
2170 | "version" "1.1.1"
2171 | dependencies:
2172 | "escalade" "^3.2.0"
2173 | "picocolors" "^1.1.0"
2174 |
2175 | "uri-js@^4.2.2", "uri-js@^4.4.1":
2176 | "integrity" "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="
2177 | "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"
2178 | "version" "4.4.1"
2179 | dependencies:
2180 | "punycode" "^2.1.0"
2181 |
2182 | "use-sync-external-store@1.2.2":
2183 | "integrity" "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw=="
2184 | "resolved" "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz"
2185 | "version" "1.2.2"
2186 |
2187 | "utility-types@^3.10.0":
2188 | "integrity" "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw=="
2189 | "resolved" "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz"
2190 | "version" "3.11.0"
2191 |
2192 | "uuid@^9.0.1":
2193 | "integrity" "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA=="
2194 | "resolved" "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz"
2195 | "version" "9.0.1"
2196 |
2197 | "v8n@^1.3.3":
2198 | "integrity" "sha512-LdabyT4OffkyXFCe9UT+uMkxNBs5rcTVuZClvxQr08D5TUgo1OFKkoT65qYRCsiKBl/usHjpXvP4hHMzzDRj3A=="
2199 | "resolved" "https://registry.npmjs.org/v8n/-/v8n-1.5.1.tgz"
2200 | "version" "1.5.1"
2201 |
2202 | "vite-plugin-dts@^4.2.1":
2203 | "integrity" "sha512-USwTMReZFf8yXV+cKkm4WOMqmFjbReAvkyxON5xzdnZzJEBnFgax6BBDZIGGr9WMJYvhHdpaIHLrOjXDcla4OA=="
2204 | "resolved" "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-4.2.2.tgz"
2205 | "version" "4.2.2"
2206 | dependencies:
2207 | "@microsoft/api-extractor" "7.47.7"
2208 | "@rollup/pluginutils" "^5.1.0"
2209 | "@volar/typescript" "^2.4.4"
2210 | "@vue/language-core" "2.1.6"
2211 | "compare-versions" "^6.1.1"
2212 | "debug" "^4.3.6"
2213 | "kolorist" "^1.8.0"
2214 | "local-pkg" "^0.5.0"
2215 | "magic-string" "^0.30.11"
2216 |
2217 | "vite@*", "vite@^4.2.0 || ^5.0.0", "vite@^5.4.1":
2218 | "integrity" "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ=="
2219 | "resolved" "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz"
2220 | "version" "5.4.8"
2221 | dependencies:
2222 | "esbuild" "^0.21.3"
2223 | "postcss" "^8.4.43"
2224 | "rollup" "^4.20.0"
2225 | optionalDependencies:
2226 | "fsevents" "~2.3.3"
2227 |
2228 | "vscode-uri@^3.0.8":
2229 | "integrity" "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw=="
2230 | "resolved" "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz"
2231 | "version" "3.0.8"
2232 |
2233 | "webgl-constants@^1.1.1":
2234 | "integrity" "sha512-LkBXKjU5r9vAW7Gcu3T5u+5cvSvh5WwINdr0C+9jpzVB41cjQAP5ePArDtk/WHYdVj0GefCgM73BA7FlIiNtdg=="
2235 | "resolved" "https://registry.npmjs.org/webgl-constants/-/webgl-constants-1.1.1.tgz"
2236 | "version" "1.1.1"
2237 |
2238 | "webgl-sdf-generator@1.1.1":
2239 | "integrity" "sha512-9Z0JcMTFxeE+b2x1LJTdnaT8rT8aEp7MVxkNwoycNmJWwPdzoXzMh0BjJSh/AEFP+KPYZUli814h8bJZFIZ2jA=="
2240 | "resolved" "https://registry.npmjs.org/webgl-sdf-generator/-/webgl-sdf-generator-1.1.1.tgz"
2241 | "version" "1.1.1"
2242 |
2243 | "which@^2.0.1":
2244 | "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="
2245 | "resolved" "https://registry.npmjs.org/which/-/which-2.0.2.tgz"
2246 | "version" "2.0.2"
2247 | dependencies:
2248 | "isexe" "^2.0.0"
2249 |
2250 | "xatlas-web@^0.1.0":
2251 | "integrity" "sha512-PprVfuXbaIskxLTLBUQRaWfgSy9xUQqAMIRooOw0P6NYqwgh6T0voeer6+Z5M7AFt5SGXUybuww/uDGs1yw8vQ=="
2252 | "resolved" "https://registry.npmjs.org/xatlas-web/-/xatlas-web-0.1.0.tgz"
2253 | "version" "0.1.0"
2254 |
2255 | "yallist@^3.0.2":
2256 | "integrity" "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
2257 | "resolved" "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz"
2258 | "version" "3.1.1"
2259 |
2260 | "yallist@^4.0.0":
2261 | "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
2262 | "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
2263 | "version" "4.0.0"
2264 |
2265 | "zustand@^3.6.9", "zustand@^3.7.1":
2266 | "integrity" "sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA=="
2267 | "resolved" "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz"
2268 | "version" "3.7.2"
2269 |
2270 | "zustand@^4.3.2":
2271 | "integrity" "sha512-+0PALYNJNgK6hldkgDq2vLrw5f6g/jCInz52n9RTpropGgeAf/ioFUCdtsjCqu4gNhW9D01rUQBROoRjdzyn2Q=="
2272 | "resolved" "https://registry.npmjs.org/zustand/-/zustand-4.5.5.tgz"
2273 | "version" "4.5.5"
2274 | dependencies:
2275 | "use-sync-external-store" "1.2.2"
2276 |
--------------------------------------------------------------------------------