├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── .prettierignore ├── .prettierrc ├── doc-images ├── animation.gif ├── distorted.gif ├── gltf.gif ├── logo.png ├── refraction.gif └── wooble.gif ├── index.html ├── package-lock.json ├── package.json ├── public ├── audio.wav ├── diamond.glb ├── hdr.hdr ├── react.glb ├── textures │ ├── Metal042A_1K-JPG.usda │ ├── Metal042A_1K-JPG.usdc │ ├── Metal042A_1K_Color.jpg │ ├── Metal042A_1K_Displacement.jpg │ ├── Metal042A_1K_Metalness.jpg │ ├── Metal042A_1K_NormalDX.jpg │ ├── Metal042A_1K_NormalGL.jpg │ ├── Metal042A_1K_Roughness.jpg │ └── Metal042A_PREVIEW.jpg └── vite.svg ├── readme.md ├── src ├── .bkp.app.jsx ├── AnimatedBox.jsx ├── App.css ├── App.jsx ├── DreiRefraction.jsx ├── LoadedGltf.jsx ├── MeshDistortion.jsx ├── WobbleMaterial.jsx ├── XR8Scene.js ├── assets │ └── react.svg ├── examples.js ├── index.css └── main.jsx ├── vite.config.js └── yarn.lock /.eslintignore: -------------------------------------------------------------------------------- 1 | .eslintrc.js -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | browser: true, 4 | es2021: true, 5 | }, 6 | extends: ['eslint:recommended', 'plugin:react/recommended'], 7 | parserOptions: { 8 | ecmaFeatures: { 9 | jsx: true, 10 | }, 11 | ecmaVersion: 12, 12 | sourceType: 'module', 13 | }, 14 | plugins: ['react'], 15 | rules: { 16 | 'eol-last': ['error', 'always'], 17 | 'no-debugger': 'error', 18 | 'no-unused-vars': ['error', { ignoreRestSiblings: true }], 19 | 'react/no-children-prop': 0, 20 | 'react/display-name': 0, 21 | 'react/prop-types': 0, 22 | 'react/react-in-jsx-scope': 0, 23 | semi: ['error', 'never'], 24 | }, 25 | } 26 | -------------------------------------------------------------------------------- /.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 | *.pem 26 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | dist/* 2 | node_modules/* 3 | package.json -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 160, 3 | "tabWidth": 2, 4 | "useTabs": false, 5 | "semi": false, 6 | "singleQuote": true, 7 | "trailingComma": "all", 8 | "bracketSpacing": true, 9 | "jsxBracketSameLine": true 10 | } -------------------------------------------------------------------------------- /doc-images/animation.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vettorazi/react-three-8thwall/42c2841bc057f8ac0182b352c046d21ca108deea/doc-images/animation.gif -------------------------------------------------------------------------------- /doc-images/distorted.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vettorazi/react-three-8thwall/42c2841bc057f8ac0182b352c046d21ca108deea/doc-images/distorted.gif -------------------------------------------------------------------------------- /doc-images/gltf.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vettorazi/react-three-8thwall/42c2841bc057f8ac0182b352c046d21ca108deea/doc-images/gltf.gif -------------------------------------------------------------------------------- /doc-images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vettorazi/react-three-8thwall/42c2841bc057f8ac0182b352c046d21ca108deea/doc-images/logo.png -------------------------------------------------------------------------------- /doc-images/refraction.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vettorazi/react-three-8thwall/42c2841bc057f8ac0182b352c046d21ca108deea/doc-images/refraction.gif -------------------------------------------------------------------------------- /doc-images/wooble.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vettorazi/react-three-8thwall/42c2841bc057f8ac0182b352c046d21ca108deea/doc-images/wooble.gif -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8thwall + React Three Fiber 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-8thwall", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite --host", 8 | "build": "vite build", 9 | "preview": "vite preview" 10 | }, 11 | "dependencies": { 12 | "@react-three/drei": "^9.47.1", 13 | "@react-three/fiber": "^8.9.1", 14 | "@types/three": "^0.146.0", 15 | "react": "^18.2.0", 16 | "react-dom": "^18.2.0", 17 | "three": "^0.147.0", 18 | "three-stdlib": "^2.21.1" 19 | }, 20 | "devDependencies": { 21 | "@types/react": "^18.0.26", 22 | "@types/react-dom": "^18.0.9", 23 | "@vitejs/plugin-react": "^3.0.0", 24 | "vite": "^4.0.0", 25 | "vite-plugin-mkcert": "^1.10.1" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /public/audio.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vettorazi/react-three-8thwall/42c2841bc057f8ac0182b352c046d21ca108deea/public/audio.wav -------------------------------------------------------------------------------- /public/diamond.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vettorazi/react-three-8thwall/42c2841bc057f8ac0182b352c046d21ca108deea/public/diamond.glb -------------------------------------------------------------------------------- /public/hdr.hdr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vettorazi/react-three-8thwall/42c2841bc057f8ac0182b352c046d21ca108deea/public/hdr.hdr -------------------------------------------------------------------------------- /public/react.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vettorazi/react-three-8thwall/42c2841bc057f8ac0182b352c046d21ca108deea/public/react.glb -------------------------------------------------------------------------------- /public/textures/Metal042A_1K-JPG.usda: -------------------------------------------------------------------------------- 1 | #usda 1.0 2 | ( 3 | customLayerData = { 4 | string author = "ambientCG (ambientCG.com)" 5 | string copyright = "CC0 1.0 Public Domain Dedication (https://creativecommons.org/publicdomain/zero/1.0/)" 6 | string generator = "ambientCG USD Script v3 (build_usda_pbr_material.py)" 7 | string title = "Metal042A by ambientCG" 8 | string url = "https://ambientcg.com/a/Metal042A" 9 | } 10 | defaultPrim = "ambientCG_Material_Metal042A_1K_JPG" 11 | metersPerUnit = 1 12 | upAxis = "Z" 13 | ) 14 | 15 | def Material "ambientCG_Material_Metal042A_1K_JPG" 16 | { 17 | token outputs:surface.connect = 18 | 19 | def Shader "TextureCoordinateReader" 20 | { 21 | uniform token info:id = "UsdPrimvarReader_float2" 22 | token inputs:varname = "st" 23 | float2 outputs:result 24 | } 25 | 26 | def Shader "PBRShader" 27 | { 28 | uniform token info:id = "UsdPreviewSurface" 29 | color3f inputs:diffuseColor.connect = 30 | float inputs:displacement.connect = 31 | float inputs:metallic.connect = 32 | normal3f inputs:normal.connect = 33 | float inputs:roughness.connect = 34 | int inputs:useSpecularWorkflow = 0 35 | token outputs:surface 36 | } 37 | 38 | def Shader "roughness" 39 | { 40 | uniform token info:id = "UsdUVTexture" 41 | float4 inputs:fallback = (0.5, 0.5, 0.5, 1) 42 | asset inputs:file = @Metal042A_1K_Roughness.jpg@ 43 | token inputs:sourceColorSpace = "raw" 44 | token inputs:st.connect = 45 | token inputs:wrapS = "repeat" 46 | token inputs:wrapT = "repeat" 47 | float3 outputs:r 48 | } 49 | 50 | def Shader "normal" 51 | { 52 | uniform token info:id = "UsdUVTexture" 53 | float4 inputs:bias = (-1, -1, -1, 0) 54 | float4 inputs:fallback = (0, 0, 1, 1) 55 | asset inputs:file = @Metal042A_1K_NormalGL.jpg@ 56 | float4 inputs:scale = (2, 2, 2, 1) 57 | token inputs:sourceColorSpace = "raw" 58 | token inputs:st.connect = 59 | token inputs:wrapS = "repeat" 60 | token inputs:wrapT = "repeat" 61 | float3 outputs:rgb 62 | } 63 | 64 | def Shader "displacement" 65 | { 66 | uniform token info:id = "UsdUVTexture" 67 | float4 inputs:fallback = (0, 0, 0, 1) 68 | asset inputs:file = @Metal042A_1K_Displacement.jpg@ 69 | token inputs:sourceColorSpace = "raw" 70 | token inputs:st.connect = 71 | token inputs:wrapS = "repeat" 72 | token inputs:wrapT = "repeat" 73 | float3 outputs:r 74 | } 75 | 76 | def Shader "diffuseColor" 77 | { 78 | uniform token info:id = "UsdUVTexture" 79 | float4 inputs:fallback = (0.75, 0.75, 0.75, 1) 80 | asset inputs:file = @Metal042A_1K_Color.jpg@ 81 | token inputs:sourceColorSpace = "sRGB" 82 | token inputs:st.connect = 83 | token inputs:wrapS = "repeat" 84 | token inputs:wrapT = "repeat" 85 | float3 outputs:rgb 86 | } 87 | 88 | def Shader "metallic" 89 | { 90 | uniform token info:id = "UsdUVTexture" 91 | float4 inputs:fallback = (0, 0, 0, 1) 92 | asset inputs:file = @Metal042A_1K_Metalness.jpg@ 93 | token inputs:sourceColorSpace = "raw" 94 | token inputs:st.connect = 95 | token inputs:wrapS = "repeat" 96 | token inputs:wrapT = "repeat" 97 | float3 outputs:r 98 | } 99 | } 100 | 101 | -------------------------------------------------------------------------------- /public/textures/Metal042A_1K-JPG.usdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vettorazi/react-three-8thwall/42c2841bc057f8ac0182b352c046d21ca108deea/public/textures/Metal042A_1K-JPG.usdc -------------------------------------------------------------------------------- /public/textures/Metal042A_1K_Color.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vettorazi/react-three-8thwall/42c2841bc057f8ac0182b352c046d21ca108deea/public/textures/Metal042A_1K_Color.jpg -------------------------------------------------------------------------------- /public/textures/Metal042A_1K_Displacement.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vettorazi/react-three-8thwall/42c2841bc057f8ac0182b352c046d21ca108deea/public/textures/Metal042A_1K_Displacement.jpg -------------------------------------------------------------------------------- /public/textures/Metal042A_1K_Metalness.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vettorazi/react-three-8thwall/42c2841bc057f8ac0182b352c046d21ca108deea/public/textures/Metal042A_1K_Metalness.jpg -------------------------------------------------------------------------------- /public/textures/Metal042A_1K_NormalDX.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vettorazi/react-three-8thwall/42c2841bc057f8ac0182b352c046d21ca108deea/public/textures/Metal042A_1K_NormalDX.jpg -------------------------------------------------------------------------------- /public/textures/Metal042A_1K_NormalGL.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vettorazi/react-three-8thwall/42c2841bc057f8ac0182b352c046d21ca108deea/public/textures/Metal042A_1K_NormalGL.jpg -------------------------------------------------------------------------------- /public/textures/Metal042A_1K_Roughness.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vettorazi/react-three-8thwall/42c2841bc057f8ac0182b352c046d21ca108deea/public/textures/Metal042A_1K_Roughness.jpg -------------------------------------------------------------------------------- /public/textures/Metal042A_PREVIEW.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vettorazi/react-three-8thwall/42c2841bc057f8ac0182b352c046d21ca108deea/public/textures/Metal042A_PREVIEW.jpg -------------------------------------------------------------------------------- /public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 |

React Three + 8thWall

5 |

Create AR applications on 8th Wall, in the best way possible: Declaratively.😉

6 | 7 |
8 | 9 | `React Three + 8thWall` is a collection of examples and boilerplate project that enable developers to use React Three.js and Drei components on your AR project for 8thwall. 10 | 11 | #### Quick-start 12 | 13 | 🤩 It's simple as simple as... 14 | `git clone ` 15 | 🚀 Then, install and run: 16 | `npm install` 17 | `npm run dev` 18 | 19 | Setup project 20 | In index.html 21 | 22 | replace [YOUR_API_TOKEN_HERE] by your App key 23 | --- 24 | 25 | #### How about SSL Certificates? 26 | 27 | 8thwall has a weird way of generating SSL, using webpack and a confusing serve.bat file... 🤢 28 | But this project has everything ready and working, out of box! No need to run multiple tasks in the terminal and deal with multiple processes. 29 | 30 | When you run `npm run dev` in the terminal, your IP will show up with a ✨https://✨. 31 | 32 | ##### You might need to create a SSL cert. for mobile 33 | 34 | The easiest way, it's to use mkcert () 35 | Install: 36 | `brew install mkcert` 37 | and run: 38 | `mkcert -key-file key.pem -cert-file cert.pem ` 39 | 40 | then airdrop to phone and install it on your device. 41 | 42 | --- 43 | 44 | #### Examples 45 | 46 | Here's a couple of examples I used to test the pipeline. But generally all materials, loaders and components used on Drei or React Three will work (you may face issues with some materials that use camera renders) 47 | 48 | ### Refraction Material 49 | 50 | ```jsx 51 | import DreiRefraction from './examples'; 52 | ; 53 | ``` 54 | 55 |

56 | 57 |

58 | 59 | ### Loading GLTF 60 | 61 | ```jsx 62 | import LoadedGltf from './examples'; 63 | ; 64 | ``` 65 | 66 |

67 | 68 |

69 | 70 | ### Animation Example 71 | 72 | ```jsx 73 | import AnimatedBox from './examples'; 74 | ; 75 | ``` 76 | 77 |

78 | 79 |

80 | 81 | ### Wobble Material 82 | 83 | ```jsx 84 | import WobbleMaterial from './examples'; 85 | ; 86 | ``` 87 | 88 |

89 | 90 |

91 | 92 | ### Distorted mesh 93 | 94 | ```jsx 95 | import MeshDistortion from './examples'; 96 | ; 97 | ``` 98 | 99 |

100 | 101 |

102 | 103 |

104 |
105 | Buy Me A Coffee 106 |

107 | -------------------------------------------------------------------------------- /src/.bkp.app.jsx: -------------------------------------------------------------------------------- 1 | import { useState, useRef, useEffect } from 'react'; 2 | import './App.css'; 3 | import { Canvas } from '@react-three/fiber'; 4 | import { Mesh } from 'three'; 5 | import AnimatedBox from './AnimatedBox'; 6 | import DreiRefraction from './DreiRefraction'; 7 | import { useGLTF, MeshRefractionMaterial } from '@react-three/drei'; 8 | 9 | function App() { 10 | const canvasRef = useRef(); 11 | const sceneRef = useRef(); 12 | 13 | const { nodes } = useGLTF('./diamond.glb'); 14 | 15 | // const onxrloaded = () => { 16 | let { onxrloaded, cubeCamera, renderTarget } = XR8Scene(canvasRef, sceneRef); 17 | // console.log('starting XR'); 18 | // const cubeMapScene = new THREE.Scene(); 19 | // const initXrScene = ({ scene, camera }) => { 20 | // const refMat = new THREE.MeshBasicMaterial({ 21 | // side: THREE.DoubleSide, 22 | // color: 0xffffff, 23 | // map: camTexture_, 24 | // }); 25 | // const sphere = new THREE.SphereGeometry(100, 15, 15); 26 | // const sphereMesh = new THREE.Mesh(sphere, refMat); 27 | // sphereMesh.scale.set(-1, 1, 1); 28 | // sphereMesh.rotation.set(Math.PI, -Math.PI / 2, 0); 29 | // cubeMapScene.add(sphereMesh); 30 | 31 | // scene.add(sceneRef.current); 32 | // camera.position.set(0, 3, 0); 33 | // }; 34 | 35 | // XR8.addCameraPipelineModules([ 36 | // XR8.GlTextureRenderer.pipelineModule(), // Draws the camera feed. 37 | // XR8.Threejs.pipelineModule(), // Creates a ThreeJS AR Scene. 38 | // XR8.XrController.pipelineModule(), // Enables SLAM tracking. 39 | // window.LandingPage.pipelineModule(), // Detects unsupported browsers and gives hints. 40 | // XRExtras.FullWindowCanvas.pipelineModule(), // Modifies the canvas to fill the window. 41 | // XRExtras.Loading.pipelineModule(), // Manages the loading screen on startup. 42 | // XRExtras.RuntimeError.pipelineModule(), // Shows an error image on runtime error. 43 | // ]); 44 | // XR8.addCameraPipelineModule({ 45 | // name: 'react-8thwall-boilerplate', 46 | // onStart: ({ canvasWidth, canvasHeight }) => { 47 | // const { scene, camera } = XR8.Threejs.xrScene(); 48 | // initXrScene({ scene, camera }); 49 | // XR8.XrController.updateCameraProjectionMatrix({ 50 | // origin: camera.position, 51 | // facing: camera.quaternion, 52 | // }); 53 | // }, //END OF ONSTART 54 | // onUpdate: ({ processCpuResult }) => { 55 | // const { scene, camera, renderer } = XR8.Threejs.xrScene(); 56 | // cubeCamera.update(renderer, cubeMapScene); 57 | // const { reality } = processCpuResult; 58 | // if (!reality) { 59 | // return; 60 | // } 61 | // }, 62 | // onProcessCpu: ({ frameStartResult }) => { 63 | // const { cameraTexture } = frameStartResult; 64 | // // force initialization 65 | // const { scene, camera, renderer } = XR8.Threejs.xrScene(); // Get the 3js scene from XR8.Threejs 66 | // texProps = renderer.properties.get(camTexture_); 67 | // texProps.__webglTexture = cameraTexture; 68 | // }, 69 | // }); 70 | 71 | // canvasRef.current.addEventListener('touchstart', () => { 72 | // XR8.XrController.recenter(); 73 | // }); 74 | // XR8.run({ canvas: canvasRef.current }); 75 | // }; 76 | 77 | useEffect(() => { 78 | XRExtras.Loading.showLoading({ onxrloaded }); 79 | }, []); 80 | 81 | return ( 82 |
83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | {/* */} 92 | 97 | 107 | 108 | {/* */} 109 | 110 | 111 | 117 |
118 | ); 119 | } 120 | 121 | export default App; 122 | function XR8Scene(canvasRef, sceneRef) { 123 | const renderTarget = new THREE.WebGLCubeRenderTarget(256, { 124 | format: THREE.RGBFormat, 125 | generateMipmaps: true, 126 | minFilter: THREE.LinearMipmapLinearFilter, 127 | encoding: THREE.sRGBEncoding, 128 | }); 129 | const cubeCamera = new THREE.CubeCamera(1, 1000, renderTarget); 130 | const onxrloaded = () => { 131 | let cameraFeedRender = false; 132 | 133 | const camTexture_ = new THREE.Texture(); 134 | let cameraFeedRenderer = null; 135 | const renderTex_ = null; 136 | let canvasWidth_ = null; 137 | let canvasHeight_ = null; 138 | let videoWidth_ = null; 139 | let videoHeight_ = null; 140 | let texProps = null; 141 | 142 | console.log('starting XRscene'); 143 | const cubeMapScene = new THREE.Scene(); 144 | const initXrScene = ({ scene, camera }) => { 145 | const refMat = new THREE.MeshBasicMaterial({ 146 | side: THREE.DoubleSide, 147 | color: 0xffffff, 148 | map: camTexture_, 149 | }); 150 | const sphere = new THREE.SphereGeometry(100, 15, 15); 151 | const sphereMesh = new THREE.Mesh(sphere, refMat); 152 | sphereMesh.scale.set(-1, 1, 1); 153 | sphereMesh.rotation.set(Math.PI, -Math.PI / 2, 0); 154 | cubeMapScene.add(sphereMesh); 155 | 156 | scene.add(sceneRef.current); 157 | camera.position.set(0, 3, 0); 158 | }; 159 | 160 | XR8.addCameraPipelineModules([ 161 | XR8.GlTextureRenderer.pipelineModule(), // Draws the camera feed. 162 | XR8.Threejs.pipelineModule(), // Creates a ThreeJS AR Scene. 163 | XR8.XrController.pipelineModule(), // Enables SLAM tracking. 164 | window.LandingPage.pipelineModule(), // Detects unsupported browsers and gives hints. 165 | XRExtras.FullWindowCanvas.pipelineModule(), // Modifies the canvas to fill the window. 166 | XRExtras.Loading.pipelineModule(), // Manages the loading screen on startup. 167 | XRExtras.RuntimeError.pipelineModule(), // Shows an error image on runtime error. 168 | ]); 169 | XR8.addCameraPipelineModule({ 170 | name: 'react-8thwall-boilerplate', 171 | onStart: ({ canvasWidth, canvasHeight }) => { 172 | const { scene, camera } = XR8.Threejs.xrScene(); 173 | initXrScene({ scene, camera }); 174 | XR8.XrController.updateCameraProjectionMatrix({ 175 | origin: camera.position, 176 | facing: camera.quaternion, 177 | }); 178 | }, //END OF ONSTART 179 | onUpdate: ({ processCpuResult }) => { 180 | const { scene, camera, renderer } = XR8.Threejs.xrScene(); 181 | cubeCamera.update(renderer, cubeMapScene); 182 | const { reality } = processCpuResult; 183 | if (!reality) { 184 | return; 185 | } 186 | }, 187 | onProcessCpu: ({ frameStartResult }) => { 188 | const { cameraTexture } = frameStartResult; 189 | // force initialization 190 | const { scene, camera, renderer } = XR8.Threejs.xrScene(); // Get the 3js scene from XR8.Threejs 191 | texProps = renderer.properties.get(camTexture_); 192 | texProps.__webglTexture = cameraTexture; 193 | }, 194 | }); 195 | canvasRef.current.addEventListener('touchstart', () => { 196 | XR8.XrController.recenter(); 197 | }); 198 | XR8.run({ canvas: canvasRef.current }); 199 | }; 200 | return { onxrloaded, renderTarget, cubeCamera }; 201 | } 202 | 203 | /* 204 | having cert(https): 205 | `npm install mkcert` 206 | then change the vite.config.js to: 207 | 208 | ``` 209 | import { defineConfig } from 'vite' 210 | import react from '@vitejs/plugin-react' 211 | import mkcert from 'vite-plugin-mkcert' 212 | 213 | // https://vitejs.dev/config/ 214 | export default defineConfig({ 215 | server: { https: true }, 216 | plugins: [react(), mkcert()], 217 | }) 218 | ``` 219 | 220 | package.json needs to expose the IP: 221 | `"dev": "vite --host",` 222 | 223 | */ 224 | -------------------------------------------------------------------------------- /src/AnimatedBox.jsx: -------------------------------------------------------------------------------- 1 | import { useFrame } from '@react-three/fiber'; 2 | import * as THREE from 'three'; 3 | import { useRef } from 'react'; 4 | 5 | export default function AnimatedBox() { 6 | const movingCube = useRef(); 7 | const clock = new THREE.Clock(); 8 | useFrame(() => { 9 | const rotateX = clock.getElapsedTime(); 10 | movingCube.current.rotation.x = rotateX; 11 | }); 12 | return ( 13 | 14 | 15 | 16 | 17 | ); 18 | } 19 | -------------------------------------------------------------------------------- /src/App.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vettorazi/react-three-8thwall/42c2841bc057f8ac0182b352c046d21ca108deea/src/App.css -------------------------------------------------------------------------------- /src/App.jsx: -------------------------------------------------------------------------------- 1 | import XR8Scene from './XR8Scene'; 2 | import { useRef, useEffect } from 'react'; 3 | import './App.css'; 4 | import { Canvas } from '@react-three/fiber'; 5 | import DreiRefraction from "./DreiRefraction"; 6 | 7 | function App() { 8 | const canvasRef = useRef(); 9 | const R3Scene = useRef(); 10 | 11 | let { onxrloaded, cubeCamera } = XR8Scene(canvasRef, R3Scene); 12 | 13 | useEffect(() => { 14 | XRExtras.Loading.showLoading({ onxrloaded }); 15 | }, []); 16 | 17 | return ( 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 33 |
34 | ); 35 | } 36 | 37 | export default App; 38 | -------------------------------------------------------------------------------- /src/DreiRefraction.jsx: -------------------------------------------------------------------------------- 1 | import { useRef } from 'react'; 2 | import { 3 | useGLTF, 4 | MeshRefractionMaterial, 5 | CubeCamera, 6 | MeshDistortMaterial, 7 | AccumulativeShadows, 8 | RandomizedLight, 9 | Environment, 10 | OrbitControls, 11 | } from '@react-three/drei'; 12 | import { Canvas, useLoader } from '@react-three/fiber'; 13 | import { RGBELoader } from 'three-stdlib'; 14 | 15 | export default function DreiRefraction({ ...props }) { 16 | const ref = useRef(); 17 | const { nodes } = useGLTF('./diamond.glb'); 18 | const texture = useLoader(RGBELoader, './hdr.hdr'); 19 | const config = { 20 | bounces: 1, 21 | aberrationStrength: 0.1, 22 | ior: 2.4, 23 | fresnel: 2.5, 24 | color: 'white', 25 | fastChroma: false, 26 | }; 27 | 28 | return ( 29 | <> 30 | 36 | 46 | 47 | 48 | ); 49 | } 50 | -------------------------------------------------------------------------------- /src/LoadedGltf.jsx: -------------------------------------------------------------------------------- 1 | import { useFrame } from '@react-three/fiber'; 2 | import { useRef } from 'react'; 3 | import * as Three from 'three'; 4 | import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; 5 | import { useGLTF } from '@react-three/drei'; 6 | 7 | export default function LoadedGltf() { 8 | const movingLogo = useRef(); 9 | const clock = new THREE.Clock(); 10 | const { nodes, materials } = useGLTF('./react.glb'); 11 | console.log(nodes.atom.material); 12 | nodes.atom.material.color = new THREE.Color('#61dbfb'); 13 | nodes.atom.material.roughness = 0.5; 14 | nodes.atom.material.metalness = 0.5; 15 | 16 | useFrame(() => { 17 | const rotateX = clock.getElapsedTime(); 18 | movingLogo.current.rotation.y = rotateX; 19 | }); 20 | return ( 21 | 29 | ); 30 | } 31 | -------------------------------------------------------------------------------- /src/MeshDistortion.jsx: -------------------------------------------------------------------------------- 1 | import { MeshDistortMaterial, Torus, GradientTexture } from '@react-three/drei'; 2 | 3 | export default function WobbleMaterial() { 4 | return ( 5 | 6 | 7 | 8 | 13 | 14 | 15 | 16 | ); 17 | } 18 | -------------------------------------------------------------------------------- /src/WobbleMaterial.jsx: -------------------------------------------------------------------------------- 1 | import { MeshWobbleMaterial, Torus } from '@react-three/drei'; 2 | 3 | export default function WobbleMaterial() { 4 | return ( 5 | 6 | 7 | 8 | 9 | 10 | ); 11 | } 12 | -------------------------------------------------------------------------------- /src/XR8Scene.js: -------------------------------------------------------------------------------- 1 | 2 | export default function XR8Scene(canvasRef, R3Scene) { 3 | const renderTarget = new THREE.WebGLCubeRenderTarget(256, { 4 | format: THREE.RGBFormat, 5 | generateMipmaps: true, 6 | minFilter: THREE.LinearMipmapLinearFilter, 7 | encoding: THREE.sRGBEncoding, 8 | }); 9 | const cubeCamera = new THREE.CubeCamera(1, 1000, renderTarget); 10 | const onxrloaded = () => { 11 | console.log('starting XRscene'); 12 | const camTexture_ = new THREE.Texture(); 13 | let texProps = null; 14 | const cubeMapScene = new THREE.Scene(); 15 | 16 | const initXrScene = ({ scene, camera }) => { 17 | //Creating a sphere to use as a background 18 | const refMat = new THREE.MeshBasicMaterial({ 19 | side: THREE.DoubleSide, 20 | color: 0xffffff, 21 | map: camTexture_, 22 | }); 23 | const sphere = new THREE.SphereGeometry(100, 15, 15); 24 | const sphereMesh = new THREE.Mesh(sphere, refMat); 25 | sphereMesh.scale.set(-1, 1, 1); 26 | sphereMesh.rotation.set(Math.PI, -Math.PI / 2, 0); 27 | cubeMapScene.add(sphereMesh); 28 | 29 | scene.add(R3Scene.current); 30 | camera.position.set(0, 3, 0); 31 | }; 32 | 33 | XR8.addCameraPipelineModules([ 34 | XR8.GlTextureRenderer.pipelineModule(), // Draws the camera feed. 35 | XR8.Threejs.pipelineModule(), // Creates a ThreeJS AR Scene. 36 | XR8.XrController.pipelineModule(), // Enables SLAM tracking. 37 | window.LandingPage.pipelineModule(), // Detects unsupported browsers and gives hints. 38 | XRExtras.FullWindowCanvas.pipelineModule(), // Modifies the canvas to fill the window. 39 | XRExtras.Loading.pipelineModule(), // Manages the loading screen on startup. 40 | XRExtras.RuntimeError.pipelineModule(), // Shows an error image on runtime error. 41 | ]); 42 | XR8.addCameraPipelineModule({ 43 | name: 'react-8thwall-boilerplate', 44 | onStart: ({ canvasWidth, canvasHeight }) => { 45 | const { scene, camera } = XR8.Threejs.xrScene(); 46 | initXrScene({ scene, camera }); 47 | XR8.XrController.updateCameraProjectionMatrix({ 48 | origin: camera.position, 49 | facing: camera.quaternion, 50 | }); 51 | }, //END OF ONSTART 52 | onUpdate: ({ processCpuResult }) => { 53 | const { scene, camera, renderer } = XR8.Threejs.xrScene(); 54 | cubeCamera.update(renderer, cubeMapScene); 55 | const { reality } = processCpuResult; 56 | if (!reality) { 57 | return; 58 | } 59 | }, 60 | onProcessCpu: ({ frameStartResult }) => { 61 | const { cameraTexture } = frameStartResult; 62 | // force initialization 63 | const { scene, camera, renderer } = XR8.Threejs.xrScene(); // Get the 3js scene from XR8.Threejs 64 | texProps = renderer.properties.get(camTexture_); 65 | texProps.__webglTexture = cameraTexture; 66 | }, 67 | }); 68 | canvasRef.current.addEventListener('touchstart', () => { 69 | XR8.XrController.recenter(); 70 | }); 71 | XR8.run({ canvas: canvasRef.current }); 72 | }; 73 | 74 | 75 | 76 | //cubeCamera holds the texture of the scene, in case you need to use for 77 | //reflections, refractions, etc (see DreiRefraction.jsx for example) 78 | return { onxrloaded, renderTarget, cubeCamera }; 79 | } 80 | -------------------------------------------------------------------------------- /src/assets/react.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/examples.js: -------------------------------------------------------------------------------- 1 | import AnimatedBox from './AnimatedBox'; 2 | import DreiRefraction from './DreiRefraction'; 3 | import WobbleMaterial from './WobbleMaterial'; 4 | import MeshDistortion from './MeshDistortion'; 5 | import LoadedGltf from './LoadedGltf'; 6 | 7 | export {LoadedGltf, AnimatedBox, DreiRefraction, WobbleMaterial, MeshDistortion }; -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vettorazi/react-three-8thwall/42c2841bc057f8ac0182b352c046d21ca108deea/src/index.css -------------------------------------------------------------------------------- /src/main.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom/client' 3 | import App from './App' 4 | import './index.css' 5 | 6 | ReactDOM.createRoot(document.getElementById('root')).render( 7 | 8 | 9 | , 10 | ) 11 | -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | import mkcert from 'vite-plugin-mkcert' 4 | 5 | // https://vitejs.dev/config/ 6 | export default defineConfig({ 7 | server: { https: true }, 8 | plugins: [react(), mkcert()], 9 | }) 10 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@7.12.11": 6 | version "7.12.11" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz" 8 | integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== 9 | dependencies: 10 | "@babel/highlight" "^7.10.4" 11 | 12 | "@babel/code-frame@^7.14.5": 13 | version "7.14.5" 14 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz" 15 | integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== 16 | dependencies: 17 | "@babel/highlight" "^7.14.5" 18 | 19 | "@babel/compat-data@^7.15.0": 20 | version "7.15.0" 21 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz" 22 | integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA== 23 | 24 | "@babel/core@^7.14.3", "@babel/core@^7.14.8": 25 | version "7.15.0" 26 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.0.tgz" 27 | integrity sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw== 28 | dependencies: 29 | "@babel/code-frame" "^7.14.5" 30 | "@babel/generator" "^7.15.0" 31 | "@babel/helper-compilation-targets" "^7.15.0" 32 | "@babel/helper-module-transforms" "^7.15.0" 33 | "@babel/helpers" "^7.14.8" 34 | "@babel/parser" "^7.15.0" 35 | "@babel/template" "^7.14.5" 36 | "@babel/traverse" "^7.15.0" 37 | "@babel/types" "^7.15.0" 38 | convert-source-map "^1.7.0" 39 | debug "^4.1.0" 40 | gensync "^1.0.0-beta.2" 41 | json5 "^2.1.2" 42 | semver "^6.3.0" 43 | source-map "^0.5.0" 44 | 45 | "@babel/generator@^7.15.0": 46 | version "7.15.0" 47 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz" 48 | integrity sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ== 49 | dependencies: 50 | "@babel/types" "^7.15.0" 51 | jsesc "^2.5.1" 52 | source-map "^0.5.0" 53 | 54 | "@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.14.5": 55 | version "7.14.5" 56 | resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz" 57 | integrity sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA== 58 | dependencies: 59 | "@babel/types" "^7.14.5" 60 | 61 | "@babel/helper-compilation-targets@^7.15.0": 62 | version "7.15.0" 63 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz" 64 | integrity sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A== 65 | dependencies: 66 | "@babel/compat-data" "^7.15.0" 67 | "@babel/helper-validator-option" "^7.14.5" 68 | browserslist "^4.16.6" 69 | semver "^6.3.0" 70 | 71 | "@babel/helper-function-name@^7.14.5": 72 | version "7.14.5" 73 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz" 74 | integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ== 75 | dependencies: 76 | "@babel/helper-get-function-arity" "^7.14.5" 77 | "@babel/template" "^7.14.5" 78 | "@babel/types" "^7.14.5" 79 | 80 | "@babel/helper-get-function-arity@^7.14.5": 81 | version "7.14.5" 82 | resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz" 83 | integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg== 84 | dependencies: 85 | "@babel/types" "^7.14.5" 86 | 87 | "@babel/helper-hoist-variables@^7.14.5": 88 | version "7.14.5" 89 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz" 90 | integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ== 91 | dependencies: 92 | "@babel/types" "^7.14.5" 93 | 94 | "@babel/helper-member-expression-to-functions@^7.15.0": 95 | version "7.15.0" 96 | resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz" 97 | integrity sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg== 98 | dependencies: 99 | "@babel/types" "^7.15.0" 100 | 101 | "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.14.5": 102 | version "7.14.5" 103 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz" 104 | integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== 105 | dependencies: 106 | "@babel/types" "^7.14.5" 107 | 108 | "@babel/helper-module-transforms@^7.15.0": 109 | version "7.15.0" 110 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz" 111 | integrity sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg== 112 | dependencies: 113 | "@babel/helper-module-imports" "^7.14.5" 114 | "@babel/helper-replace-supers" "^7.15.0" 115 | "@babel/helper-simple-access" "^7.14.8" 116 | "@babel/helper-split-export-declaration" "^7.14.5" 117 | "@babel/helper-validator-identifier" "^7.14.9" 118 | "@babel/template" "^7.14.5" 119 | "@babel/traverse" "^7.15.0" 120 | "@babel/types" "^7.15.0" 121 | 122 | "@babel/helper-optimise-call-expression@^7.14.5": 123 | version "7.14.5" 124 | resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz" 125 | integrity sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA== 126 | dependencies: 127 | "@babel/types" "^7.14.5" 128 | 129 | "@babel/helper-plugin-utils@^7.14.5": 130 | version "7.14.5" 131 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz" 132 | integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== 133 | 134 | "@babel/helper-replace-supers@^7.15.0": 135 | version "7.15.0" 136 | resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz" 137 | integrity sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA== 138 | dependencies: 139 | "@babel/helper-member-expression-to-functions" "^7.15.0" 140 | "@babel/helper-optimise-call-expression" "^7.14.5" 141 | "@babel/traverse" "^7.15.0" 142 | "@babel/types" "^7.15.0" 143 | 144 | "@babel/helper-simple-access@^7.14.8": 145 | version "7.14.8" 146 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz" 147 | integrity sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg== 148 | dependencies: 149 | "@babel/types" "^7.14.8" 150 | 151 | "@babel/helper-split-export-declaration@^7.14.5": 152 | version "7.14.5" 153 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz" 154 | integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA== 155 | dependencies: 156 | "@babel/types" "^7.14.5" 157 | 158 | "@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9": 159 | version "7.14.9" 160 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz" 161 | integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== 162 | 163 | "@babel/helper-validator-option@^7.14.5": 164 | version "7.14.5" 165 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz" 166 | integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== 167 | 168 | "@babel/helpers@^7.14.8": 169 | version "7.15.3" 170 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.3.tgz" 171 | integrity sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g== 172 | dependencies: 173 | "@babel/template" "^7.14.5" 174 | "@babel/traverse" "^7.15.0" 175 | "@babel/types" "^7.15.0" 176 | 177 | "@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": 178 | version "7.14.5" 179 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz" 180 | integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== 181 | dependencies: 182 | "@babel/helper-validator-identifier" "^7.14.5" 183 | chalk "^2.0.0" 184 | js-tokens "^4.0.0" 185 | 186 | "@babel/parser@^7.14.5", "@babel/parser@^7.15.0": 187 | version "7.15.3" 188 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz" 189 | integrity sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA== 190 | 191 | "@babel/plugin-syntax-jsx@^7.12.13", "@babel/plugin-syntax-jsx@^7.14.5": 192 | version "7.14.5" 193 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz" 194 | integrity sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw== 195 | dependencies: 196 | "@babel/helper-plugin-utils" "^7.14.5" 197 | 198 | "@babel/plugin-syntax-typescript@^7.12.13": 199 | version "7.14.5" 200 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz" 201 | integrity sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q== 202 | dependencies: 203 | "@babel/helper-plugin-utils" "^7.14.5" 204 | 205 | "@babel/plugin-transform-react-jsx-self@^7.14.5": 206 | version "7.14.9" 207 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.14.9.tgz" 208 | integrity sha512-Fqqu0f8zv9W+RyOnx29BX/RlEsBRANbOf5xs5oxb2aHP4FKbLXxIaVPUiCti56LAR1IixMH4EyaixhUsKqoBHw== 209 | dependencies: 210 | "@babel/helper-plugin-utils" "^7.14.5" 211 | 212 | "@babel/plugin-transform-react-jsx-source@^7.14.5": 213 | version "7.14.5" 214 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.14.5.tgz" 215 | integrity sha512-1TpSDnD9XR/rQ2tzunBVPThF5poaYT9GqP+of8fAtguYuI/dm2RkrMBDemsxtY0XBzvW7nXjYM0hRyKX9QYj7Q== 216 | dependencies: 217 | "@babel/helper-plugin-utils" "^7.14.5" 218 | 219 | "@babel/plugin-transform-react-jsx@^7.14.3": 220 | version "7.14.9" 221 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.9.tgz" 222 | integrity sha512-30PeETvS+AeD1f58i1OVyoDlVYQhap/K20ZrMjLmmzmC2AYR/G43D4sdJAaDAqCD3MYpSWbmrz3kES158QSLjw== 223 | dependencies: 224 | "@babel/helper-annotate-as-pure" "^7.14.5" 225 | "@babel/helper-module-imports" "^7.14.5" 226 | "@babel/helper-plugin-utils" "^7.14.5" 227 | "@babel/plugin-syntax-jsx" "^7.14.5" 228 | "@babel/types" "^7.14.9" 229 | 230 | "@babel/runtime@^7.11.2", "@babel/runtime@^7.13.10", "@babel/runtime@^7.14.6": 231 | version "7.15.3" 232 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.3.tgz" 233 | integrity sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA== 234 | dependencies: 235 | regenerator-runtime "^0.13.4" 236 | 237 | "@babel/template@^7.14.5": 238 | version "7.14.5" 239 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz" 240 | integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g== 241 | dependencies: 242 | "@babel/code-frame" "^7.14.5" 243 | "@babel/parser" "^7.14.5" 244 | "@babel/types" "^7.14.5" 245 | 246 | "@babel/traverse@^7.15.0", "@babel/traverse@^7.4.5": 247 | version "7.15.0" 248 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz" 249 | integrity sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw== 250 | dependencies: 251 | "@babel/code-frame" "^7.14.5" 252 | "@babel/generator" "^7.15.0" 253 | "@babel/helper-function-name" "^7.14.5" 254 | "@babel/helper-hoist-variables" "^7.14.5" 255 | "@babel/helper-split-export-declaration" "^7.14.5" 256 | "@babel/parser" "^7.15.0" 257 | "@babel/types" "^7.15.0" 258 | debug "^4.1.0" 259 | globals "^11.1.0" 260 | 261 | "@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.14.9", "@babel/types@^7.15.0": 262 | version "7.15.0" 263 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz" 264 | integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ== 265 | dependencies: 266 | "@babel/helper-validator-identifier" "^7.14.9" 267 | to-fast-properties "^2.0.0" 268 | 269 | "@chevrotain/types@^9.0.2": 270 | version "9.0.2" 271 | resolved "https://registry.yarnpkg.com/@chevrotain/types/-/types-9.0.2.tgz" 272 | integrity sha512-lo1dQPX7DQffJb26eaYLEy4/jUTFmsGKa43mDvMNAHwItEgUQHUkTZR0iAkHG0aJv8ejM/KqYpRVSNetrOK8qw== 273 | 274 | "@chevrotain/utils@^9.0.2": 275 | version "9.0.2" 276 | resolved "https://registry.yarnpkg.com/@chevrotain/utils/-/utils-9.0.2.tgz" 277 | integrity sha512-iTju1VpbGruWagXS/XswuqeimOCRNeDvrXLlWHYsHp1qTU8sJfAfLiX5vs7DNxB1px6N8VWVI0SD8vMUksNBYw== 278 | 279 | "@emotion/is-prop-valid@^0.8.8": 280 | version "0.8.8" 281 | resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz" 282 | integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== 283 | dependencies: 284 | "@emotion/memoize" "0.7.4" 285 | 286 | "@emotion/memoize@0.7.4": 287 | version "0.7.4" 288 | resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz" 289 | integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== 290 | 291 | "@emotion/stylis@^0.8.4": 292 | version "0.8.5" 293 | resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz" 294 | integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ== 295 | 296 | "@emotion/unitless@^0.7.4": 297 | version "0.7.5" 298 | resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz" 299 | integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== 300 | 301 | "@eslint/eslintrc@^0.4.3": 302 | version "0.4.3" 303 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz" 304 | integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== 305 | dependencies: 306 | ajv "^6.12.4" 307 | debug "^4.1.1" 308 | espree "^7.3.0" 309 | globals "^13.9.0" 310 | ignore "^4.0.6" 311 | import-fresh "^3.2.1" 312 | js-yaml "^3.13.1" 313 | minimatch "^3.0.4" 314 | strip-json-comments "^3.1.1" 315 | 316 | "@humanwhocodes/config-array@^0.5.0": 317 | version "0.5.0" 318 | resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz" 319 | integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== 320 | dependencies: 321 | "@humanwhocodes/object-schema" "^1.2.0" 322 | debug "^4.1.1" 323 | minimatch "^3.0.4" 324 | 325 | "@humanwhocodes/object-schema@^1.2.0": 326 | version "1.2.0" 327 | resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz" 328 | integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== 329 | 330 | "@nabla/vite-plugin-eslint@^1.3.1": 331 | version "1.3.1" 332 | resolved "https://registry.yarnpkg.com/@nabla/vite-plugin-eslint/-/vite-plugin-eslint-1.3.1.tgz" 333 | integrity sha512-xuAmk/ByF2diGcALTgwez5VjuNN9P4xXSbz1tPu2AJUfvm2TDsg6bGswcGuRtvm7CSSM7AI4mvRIRiIZ7r0XDg== 334 | dependencies: 335 | "@types/eslint" "*" 336 | chalk "*" 337 | 338 | "@react-spring/animated@~9.2.0": 339 | version "9.2.4" 340 | resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.2.4.tgz#062ecc0fdfef89f2541a42d8500428b70035f879" 341 | integrity sha512-AfV6ZM8pCCAT29GY5C8/1bOPjZrv/7kD0vedjiE/tEYvNDwg9GlscrvsTViWR2XykJoYrDfdkYArrldWpsCJ5g== 342 | dependencies: 343 | "@react-spring/shared" "~9.2.0" 344 | "@react-spring/types" "~9.2.0" 345 | 346 | "@react-spring/core@~9.2.0": 347 | version "9.2.4" 348 | resolved "https://registry.yarnpkg.com/@react-spring/core/-/core-9.2.4.tgz#275a4a065e3a315a4f5fb28c9a6f62ce718c25d6" 349 | integrity sha512-R+PwyfsjiuYCWqaTTfCpYpRmsP0h87RNm7uxC1Uxy7QAHUfHEm2sAHn+AdHPwq/MbVwDssVT8C5yf2WGcqiXGg== 350 | dependencies: 351 | "@react-spring/animated" "~9.2.0" 352 | "@react-spring/shared" "~9.2.0" 353 | "@react-spring/types" "~9.2.0" 354 | 355 | "@react-spring/rafz@~9.2.0": 356 | version "9.2.4" 357 | resolved "https://registry.yarnpkg.com/@react-spring/rafz/-/rafz-9.2.4.tgz#44793e9adc14dd0dcd1573d094368af11a89d73a" 358 | integrity sha512-SOKf9eue+vAX+DGo7kWYNl9i9J3gPUlQjifIcV9Bzw9h3i30wPOOP0TjS7iMG/kLp2cdHQYDNFte6nt23VAZkQ== 359 | 360 | "@react-spring/shared@~9.2.0": 361 | version "9.2.4" 362 | resolved "https://registry.yarnpkg.com/@react-spring/shared/-/shared-9.2.4.tgz#f9cc66ac5308a77293330a18518e34121f4008c1" 363 | integrity sha512-ZEr4l2BxmyFRUvRA2VCkPfCJii4E7cGkwbjmTBx1EmcGrOnde/V2eF5dxqCTY3k35QuCegkrWe0coRJVkh8q2Q== 364 | dependencies: 365 | "@react-spring/rafz" "~9.2.0" 366 | "@react-spring/types" "~9.2.0" 367 | 368 | "@react-spring/three@^9.2.4": 369 | version "9.2.4" 370 | resolved "https://registry.yarnpkg.com/@react-spring/three/-/three-9.2.4.tgz#849c97658a6e1410b6f823ad21e2ee33feada820" 371 | integrity sha512-ljFig7XW099VWwRPKPUf+4yYLivp/sSWXN3oO5SJOF/9BSoV1quS/9chZ5Myl5J14od3CsHf89Tv4FdlX5kHlA== 372 | dependencies: 373 | "@react-spring/animated" "~9.2.0" 374 | "@react-spring/core" "~9.2.0" 375 | "@react-spring/shared" "~9.2.0" 376 | "@react-spring/types" "~9.2.0" 377 | 378 | "@react-spring/types@~9.2.0": 379 | version "9.2.4" 380 | resolved "https://registry.yarnpkg.com/@react-spring/types/-/types-9.2.4.tgz#2365ce9d761f548a9adcb2cd68714bf26765a5de" 381 | integrity sha512-zHUXrWO8nweUN/ISjrjqU7GgXXvoEbFca1CgiE0TY0H/dqJb3l+Rhx8ecPVNYimzFg3ZZ1/T0egpLop8SOv4aA== 382 | 383 | "@react-three/drei@^7.5.0": 384 | version "7.5.0" 385 | resolved "https://registry.yarnpkg.com/@react-three/drei/-/drei-7.5.0.tgz" 386 | integrity sha512-GNDSAUgEsOncWsmp68kdiP0hjt15lDN8xnY4xrORnXCtNoTvoaIzZNtLVz2E8NZrrC1rQ5dvmaGHvDg4u506Hw== 387 | dependencies: 388 | "@babel/runtime" "^7.11.2" 389 | blob-polyfill "^5.0.20210201" 390 | detect-gpu "^3.0.0" 391 | glsl-noise "^0.0.0" 392 | lodash.omit "^4.5.0" 393 | lodash.pick "^4.4.0" 394 | react-merge-refs "^1.0.0" 395 | stats.js "^0.17.0" 396 | three-mesh-bvh "^0.4.1" 397 | three-stdlib "^2.4.0" 398 | troika-three-text "^0.42.0" 399 | use-asset "^1.0.4" 400 | utility-types "^3.10.0" 401 | zustand "^3.5.1" 402 | 403 | "@react-three/fiber@^7.0.6": 404 | version "7.0.6" 405 | resolved "https://registry.yarnpkg.com/@react-three/fiber/-/fiber-7.0.6.tgz" 406 | integrity sha512-GSMmnk66B/xGGfbSj5lGiZCxGQD0i8rm0Bt/Xp6TD2b9cYe2Lxb2wegU04zIeN89aoUYMHXhL1GNXsZvvOjfUA== 407 | dependencies: 408 | "@babel/runtime" "^7.13.10" 409 | react-merge-refs "^1.1.0" 410 | react-reconciler "^0.26.2" 411 | react-three-fiber "0.0.0-deprecated" 412 | react-use-measure "^2.0.4" 413 | resize-observer-polyfill "^1.5.1" 414 | scheduler "^0.20.2" 415 | use-asset "^1.0.4" 416 | utility-types "^3.10.0" 417 | zustand "^3.5.1" 418 | 419 | "@rollup/pluginutils@^4.1.1": 420 | version "4.1.1" 421 | resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.1.1.tgz" 422 | integrity sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ== 423 | dependencies: 424 | estree-walker "^2.0.1" 425 | picomatch "^2.2.2" 426 | 427 | "@types/eslint@*": 428 | version "7.28.0" 429 | resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.28.0.tgz" 430 | integrity sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A== 431 | dependencies: 432 | "@types/estree" "*" 433 | "@types/json-schema" "*" 434 | 435 | "@types/estree@*": 436 | version "0.0.50" 437 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz" 438 | integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== 439 | 440 | "@types/json-schema@*": 441 | version "7.0.9" 442 | resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz" 443 | integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== 444 | 445 | "@use-gesture/core@^10.0.0-beta.22": 446 | version "10.0.0-beta.22" 447 | resolved "https://registry.yarnpkg.com/@use-gesture/core/-/core-10.0.0-beta.22.tgz#5627dd00137462e306116942aedeadf249634353" 448 | integrity sha512-nFPsMiHii99huDpeKjC9e5Ggagn4M/UAb3DFWw1/dEZl1fJSfFobrNdtB+5sPOTwyDBBsKpk4oS7Nde4coGDzA== 449 | 450 | "@use-gesture/react@^10.0.0-beta.22": 451 | version "10.0.0-beta.22" 452 | resolved "https://registry.yarnpkg.com/@use-gesture/react/-/react-10.0.0-beta.22.tgz#e88da83d1eedde4f422d53a09fbc09522e823a67" 453 | integrity sha512-6ZTpyK1XwL6xgzV0LArxE/rMBNueOiIp0LJoKHdX5/LSf33unMd/E7v9YGOf55NM7vl0tOevpa9f5gSlw4Pvhw== 454 | dependencies: 455 | "@use-gesture/core" "^10.0.0-beta.22" 456 | 457 | "@vitejs/plugin-react-refresh@1.3.6": 458 | version "1.3.6" 459 | resolved "https://registry.yarnpkg.com/@vitejs/plugin-react-refresh/-/plugin-react-refresh-1.3.6.tgz#19818392db01e81746cfeb04e096ab3010e79fe3" 460 | integrity sha512-iNR/UqhUOmFFxiezt0em9CgmiJBdWR+5jGxB2FihaoJfqGt76kiwaKoVOJVU5NYcDWMdN06LbyN2VIGIoYdsEA== 461 | dependencies: 462 | "@babel/core" "^7.14.8" 463 | "@babel/plugin-transform-react-jsx-self" "^7.14.5" 464 | "@babel/plugin-transform-react-jsx-source" "^7.14.5" 465 | "@rollup/pluginutils" "^4.1.1" 466 | react-refresh "^0.10.0" 467 | 468 | "@webgpu/glslang@^0.0.15": 469 | version "0.0.15" 470 | resolved "https://registry.yarnpkg.com/@webgpu/glslang/-/glslang-0.0.15.tgz" 471 | integrity sha512-niT+Prh3Aff8Uf1MVBVUsaNjFj9rJAKDXuoHIKiQbB+6IUP/3J3JIhBNyZ7lDhytvXxw6ppgnwKZdDJ08UMj4Q== 472 | 473 | "@webxr-input-profiles/motion-controllers@^1.0.0": 474 | version "1.0.0" 475 | resolved "https://registry.yarnpkg.com/@webxr-input-profiles/motion-controllers/-/motion-controllers-1.0.0.tgz" 476 | integrity sha512-Ppxde+G1/QZbU8ShCQg+eq5VtlcL/FPkerF1dkDOLlIml0LJD1tFqnCZYR0SrHzYleIQ2siRnOx7xbFLaCpExQ== 477 | 478 | acorn-jsx@^5.3.1: 479 | version "5.3.2" 480 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz" 481 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== 482 | 483 | acorn@^7.4.0: 484 | version "7.4.1" 485 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz" 486 | integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== 487 | 488 | add@^2.0.6: 489 | version "2.0.6" 490 | resolved "https://registry.yarnpkg.com/add/-/add-2.0.6.tgz#248f0a9f6e5a528ef2295dbeec30532130ae2235" 491 | integrity sha1-JI8Kn25aUo7yKV2+7DBTITCuIjU= 492 | 493 | ajv@^6.10.0, ajv@^6.12.4: 494 | version "6.12.6" 495 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz" 496 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 497 | dependencies: 498 | fast-deep-equal "^3.1.1" 499 | fast-json-stable-stringify "^2.0.0" 500 | json-schema-traverse "^0.4.1" 501 | uri-js "^4.2.2" 502 | 503 | ajv@^8.0.1: 504 | version "8.6.2" 505 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.2.tgz" 506 | integrity sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w== 507 | dependencies: 508 | fast-deep-equal "^3.1.1" 509 | json-schema-traverse "^1.0.0" 510 | require-from-string "^2.0.2" 511 | uri-js "^4.2.2" 512 | 513 | ansi-colors@^4.1.1: 514 | version "4.1.1" 515 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz" 516 | integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== 517 | 518 | ansi-regex@^5.0.0: 519 | version "5.0.0" 520 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz" 521 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== 522 | 523 | ansi-styles@^3.2.1: 524 | version "3.2.1" 525 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz" 526 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 527 | dependencies: 528 | color-convert "^1.9.0" 529 | 530 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 531 | version "4.3.0" 532 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz" 533 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 534 | dependencies: 535 | color-convert "^2.0.1" 536 | 537 | any-base@^1.1.0: 538 | version "1.1.0" 539 | resolved "https://registry.yarnpkg.com/any-base/-/any-base-1.1.0.tgz#ae101a62bc08a597b4c9ab5b7089d456630549fe" 540 | integrity sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg== 541 | 542 | argparse@^1.0.7: 543 | version "1.0.10" 544 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz" 545 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 546 | dependencies: 547 | sprintf-js "~1.0.2" 548 | 549 | array-includes@^3.1.2, array-includes@^3.1.3: 550 | version "3.1.3" 551 | resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz" 552 | integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== 553 | dependencies: 554 | call-bind "^1.0.2" 555 | define-properties "^1.1.3" 556 | es-abstract "^1.18.0-next.2" 557 | get-intrinsic "^1.1.1" 558 | is-string "^1.0.5" 559 | 560 | array.prototype.flatmap@^1.2.4: 561 | version "1.2.4" 562 | resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz" 563 | integrity sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q== 564 | dependencies: 565 | call-bind "^1.0.0" 566 | define-properties "^1.1.3" 567 | es-abstract "^1.18.0-next.1" 568 | function-bind "^1.1.1" 569 | 570 | astral-regex@^2.0.0: 571 | version "2.0.0" 572 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz" 573 | integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== 574 | 575 | "babel-plugin-styled-components@>= 1.12.0": 576 | version "1.13.2" 577 | resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.13.2.tgz" 578 | integrity sha512-Vb1R3d4g+MUfPQPVDMCGjm3cDocJEUTR7Xq7QS95JWWeksN1wdFRYpD2kulDgI3Huuaf1CZd+NK4KQmqUFh5dA== 579 | dependencies: 580 | "@babel/helper-annotate-as-pure" "^7.0.0" 581 | "@babel/helper-module-imports" "^7.0.0" 582 | babel-plugin-syntax-jsx "^6.18.0" 583 | lodash "^4.17.11" 584 | 585 | babel-plugin-syntax-jsx@^6.18.0: 586 | version "6.18.0" 587 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz" 588 | integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= 589 | 590 | balanced-match@^1.0.0: 591 | version "1.0.2" 592 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz" 593 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 594 | 595 | bidi-js@^1.0.2: 596 | version "1.0.2" 597 | resolved "https://registry.yarnpkg.com/bidi-js/-/bidi-js-1.0.2.tgz" 598 | integrity sha512-rzSy/k7WdX5zOyeHHCOixGXbCHkyogkxPKL2r8QtzHmVQDiWCXUWa18bLdMWT9CYMLOYTjWpTHawuev2ouYJVw== 599 | dependencies: 600 | require-from-string "^2.0.2" 601 | 602 | blob-polyfill@^5.0.20210201: 603 | version "5.0.20210201" 604 | resolved "https://registry.yarnpkg.com/blob-polyfill/-/blob-polyfill-5.0.20210201.tgz" 605 | integrity sha512-SrH6IG6aXL9pCgSysBCiDpGcAJ1j6/c1qCwR3sTEQJhb+MTk6FITNA6eW6WNYQDNZVi4Z9GjxH5v2MMTv59CrQ== 606 | 607 | brace-expansion@^1.1.7: 608 | version "1.1.11" 609 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz" 610 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 611 | dependencies: 612 | balanced-match "^1.0.0" 613 | concat-map "0.0.1" 614 | 615 | browserslist@^4.16.6: 616 | version "4.16.8" 617 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.8.tgz" 618 | integrity sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ== 619 | dependencies: 620 | caniuse-lite "^1.0.30001251" 621 | colorette "^1.3.0" 622 | electron-to-chromium "^1.3.811" 623 | escalade "^3.1.1" 624 | node-releases "^1.1.75" 625 | 626 | call-bind@^1.0.0, call-bind@^1.0.2: 627 | version "1.0.2" 628 | resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" 629 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== 630 | dependencies: 631 | function-bind "^1.1.1" 632 | get-intrinsic "^1.0.2" 633 | 634 | callsites@^3.0.0: 635 | version "3.1.0" 636 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz" 637 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 638 | 639 | camelize@^1.0.0: 640 | version "1.0.0" 641 | resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz" 642 | integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs= 643 | 644 | caniuse-lite@^1.0.30001251: 645 | version "1.0.30001252" 646 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001252.tgz" 647 | integrity sha512-I56jhWDGMtdILQORdusxBOH+Nl/KgQSdDmpJezYddnAkVOmnoU8zwjTV9xAjMIYxr0iPreEAVylCGcmHCjfaOw== 648 | 649 | chalk@*, chalk@^4.0.0: 650 | version "4.1.2" 651 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz" 652 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 653 | dependencies: 654 | ansi-styles "^4.1.0" 655 | supports-color "^7.1.0" 656 | 657 | chalk@^2.0.0: 658 | version "2.4.2" 659 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz" 660 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 661 | dependencies: 662 | ansi-styles "^3.2.1" 663 | escape-string-regexp "^1.0.5" 664 | supports-color "^5.3.0" 665 | 666 | chevrotain@^9.0.2: 667 | version "9.0.2" 668 | resolved "https://registry.yarnpkg.com/chevrotain/-/chevrotain-9.0.2.tgz" 669 | integrity sha512-6ZjgUdGvU4j1n1b2hTjb79Vr2V+qNtmP7f8FVt79+kdAYcUj2QfYNwI8ycCVsgHD/dIeO5Vr1hckkkfliVQTfg== 670 | dependencies: 671 | "@chevrotain/types" "^9.0.2" 672 | "@chevrotain/utils" "^9.0.2" 673 | regexp-to-ast "0.5.0" 674 | 675 | color-convert@^1.9.0: 676 | version "1.9.3" 677 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz" 678 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 679 | dependencies: 680 | color-name "1.1.3" 681 | 682 | color-convert@^2.0.1: 683 | version "2.0.1" 684 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz" 685 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 686 | dependencies: 687 | color-name "~1.1.4" 688 | 689 | color-name@1.1.3: 690 | version "1.1.3" 691 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz" 692 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 693 | 694 | color-name@~1.1.4: 695 | version "1.1.4" 696 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz" 697 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 698 | 699 | colorette@^1.2.2, colorette@^1.3.0: 700 | version "1.3.0" 701 | resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz" 702 | integrity sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w== 703 | 704 | concat-map@0.0.1: 705 | version "0.0.1" 706 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz" 707 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 708 | 709 | convert-source-map@^1.7.0: 710 | version "1.8.0" 711 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz" 712 | integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== 713 | dependencies: 714 | safe-buffer "~5.1.1" 715 | 716 | cross-spawn@^7.0.2: 717 | version "7.0.3" 718 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz" 719 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 720 | dependencies: 721 | path-key "^3.1.0" 722 | shebang-command "^2.0.0" 723 | which "^2.0.1" 724 | 725 | css-color-keywords@^1.0.0: 726 | version "1.0.0" 727 | resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz" 728 | integrity sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU= 729 | 730 | css-to-react-native@^3.0.0: 731 | version "3.0.0" 732 | resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.0.0.tgz" 733 | integrity sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ== 734 | dependencies: 735 | camelize "^1.0.0" 736 | css-color-keywords "^1.0.0" 737 | postcss-value-parser "^4.0.2" 738 | 739 | debounce@^1.2.0: 740 | version "1.2.1" 741 | resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz" 742 | integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== 743 | 744 | debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: 745 | version "4.3.2" 746 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz" 747 | integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== 748 | dependencies: 749 | ms "2.1.2" 750 | 751 | deep-is@^0.1.3: 752 | version "0.1.3" 753 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz" 754 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= 755 | 756 | define-properties@^1.1.3: 757 | version "1.1.3" 758 | resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" 759 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== 760 | dependencies: 761 | object-keys "^1.0.12" 762 | 763 | detect-gpu@^3.0.0: 764 | version "3.1.14" 765 | resolved "https://registry.yarnpkg.com/detect-gpu/-/detect-gpu-3.1.14.tgz" 766 | integrity sha512-1iJqJ6xxLp5sQreh2oMq0EhvYMZxgS1d2ul2CyO7bzwGCfCK81JLRZ+e3SCGw8YXUzokhu27NCZjGaX8rr76CA== 767 | dependencies: 768 | webgl-constants "^1.1.1" 769 | 770 | doctrine@^2.1.0: 771 | version "2.1.0" 772 | resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" 773 | integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== 774 | dependencies: 775 | esutils "^2.0.2" 776 | 777 | doctrine@^3.0.0: 778 | version "3.0.0" 779 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz" 780 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 781 | dependencies: 782 | esutils "^2.0.2" 783 | 784 | electron-to-chromium@^1.3.811: 785 | version "1.3.822" 786 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.822.tgz" 787 | integrity sha512-k7jG5oYYHxF4jx6PcqwHX3JVME/OjzolqOZiIogi9xtsfsmTjTdie4x88OakYFPEa8euciTgCCzvVNwvmjHb1Q== 788 | 789 | emoji-regex@^8.0.0: 790 | version "8.0.0" 791 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz" 792 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 793 | 794 | enquirer@^2.3.5: 795 | version "2.3.6" 796 | resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz" 797 | integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== 798 | dependencies: 799 | ansi-colors "^4.1.1" 800 | 801 | es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: 802 | version "1.18.5" 803 | resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz" 804 | integrity sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA== 805 | dependencies: 806 | call-bind "^1.0.2" 807 | es-to-primitive "^1.2.1" 808 | function-bind "^1.1.1" 809 | get-intrinsic "^1.1.1" 810 | has "^1.0.3" 811 | has-symbols "^1.0.2" 812 | internal-slot "^1.0.3" 813 | is-callable "^1.2.3" 814 | is-negative-zero "^2.0.1" 815 | is-regex "^1.1.3" 816 | is-string "^1.0.6" 817 | object-inspect "^1.11.0" 818 | object-keys "^1.1.1" 819 | object.assign "^4.1.2" 820 | string.prototype.trimend "^1.0.4" 821 | string.prototype.trimstart "^1.0.4" 822 | unbox-primitive "^1.0.1" 823 | 824 | es-to-primitive@^1.2.1: 825 | version "1.2.1" 826 | resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" 827 | integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== 828 | dependencies: 829 | is-callable "^1.1.4" 830 | is-date-object "^1.0.1" 831 | is-symbol "^1.0.2" 832 | 833 | esbuild@^0.12.8: 834 | version "0.12.24" 835 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.24.tgz#21966fad25a80f368ed308101e88102bce0dc68f" 836 | integrity sha512-C0ibY+HsXzYB6L/pLWEiWjMpghKsIc58Q5yumARwBQsHl9DXPakW+5NI/Y9w4YXiz0PEP6XTGTT/OV4Nnsmb4A== 837 | 838 | escalade@^3.1.1: 839 | version "3.1.1" 840 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz" 841 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 842 | 843 | escape-string-regexp@^1.0.5: 844 | version "1.0.5" 845 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" 846 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 847 | 848 | escape-string-regexp@^4.0.0: 849 | version "4.0.0" 850 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" 851 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 852 | 853 | eslint-plugin-react@^7.24.0: 854 | version "7.24.0" 855 | resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.24.0.tgz" 856 | integrity sha512-KJJIx2SYx7PBx3ONe/mEeMz4YE0Lcr7feJTCMyyKb/341NcjuAgim3Acgan89GfPv7nxXK2+0slu0CWXYM4x+Q== 857 | dependencies: 858 | array-includes "^3.1.3" 859 | array.prototype.flatmap "^1.2.4" 860 | doctrine "^2.1.0" 861 | has "^1.0.3" 862 | jsx-ast-utils "^2.4.1 || ^3.0.0" 863 | minimatch "^3.0.4" 864 | object.entries "^1.1.4" 865 | object.fromentries "^2.0.4" 866 | object.values "^1.1.4" 867 | prop-types "^15.7.2" 868 | resolve "^2.0.0-next.3" 869 | string.prototype.matchall "^4.0.5" 870 | 871 | eslint-scope@^5.1.1: 872 | version "5.1.1" 873 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz" 874 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== 875 | dependencies: 876 | esrecurse "^4.3.0" 877 | estraverse "^4.1.1" 878 | 879 | eslint-utils@^2.1.0: 880 | version "2.1.0" 881 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz" 882 | integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== 883 | dependencies: 884 | eslint-visitor-keys "^1.1.0" 885 | 886 | eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: 887 | version "1.3.0" 888 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" 889 | integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== 890 | 891 | eslint-visitor-keys@^2.0.0: 892 | version "2.1.0" 893 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" 894 | integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== 895 | 896 | eslint@^7.32.0: 897 | version "7.32.0" 898 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz" 899 | integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== 900 | dependencies: 901 | "@babel/code-frame" "7.12.11" 902 | "@eslint/eslintrc" "^0.4.3" 903 | "@humanwhocodes/config-array" "^0.5.0" 904 | ajv "^6.10.0" 905 | chalk "^4.0.0" 906 | cross-spawn "^7.0.2" 907 | debug "^4.0.1" 908 | doctrine "^3.0.0" 909 | enquirer "^2.3.5" 910 | escape-string-regexp "^4.0.0" 911 | eslint-scope "^5.1.1" 912 | eslint-utils "^2.1.0" 913 | eslint-visitor-keys "^2.0.0" 914 | espree "^7.3.1" 915 | esquery "^1.4.0" 916 | esutils "^2.0.2" 917 | fast-deep-equal "^3.1.3" 918 | file-entry-cache "^6.0.1" 919 | functional-red-black-tree "^1.0.1" 920 | glob-parent "^5.1.2" 921 | globals "^13.6.0" 922 | ignore "^4.0.6" 923 | import-fresh "^3.0.0" 924 | imurmurhash "^0.1.4" 925 | is-glob "^4.0.0" 926 | js-yaml "^3.13.1" 927 | json-stable-stringify-without-jsonify "^1.0.1" 928 | levn "^0.4.1" 929 | lodash.merge "^4.6.2" 930 | minimatch "^3.0.4" 931 | natural-compare "^1.4.0" 932 | optionator "^0.9.1" 933 | progress "^2.0.0" 934 | regexpp "^3.1.0" 935 | semver "^7.2.1" 936 | strip-ansi "^6.0.0" 937 | strip-json-comments "^3.1.0" 938 | table "^6.0.9" 939 | text-table "^0.2.0" 940 | v8-compile-cache "^2.0.3" 941 | 942 | espree@^7.3.0, espree@^7.3.1: 943 | version "7.3.1" 944 | resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz" 945 | integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== 946 | dependencies: 947 | acorn "^7.4.0" 948 | acorn-jsx "^5.3.1" 949 | eslint-visitor-keys "^1.3.0" 950 | 951 | esprima@^4.0.0: 952 | version "4.0.1" 953 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz" 954 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 955 | 956 | esquery@^1.4.0: 957 | version "1.4.0" 958 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz" 959 | integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== 960 | dependencies: 961 | estraverse "^5.1.0" 962 | 963 | esrecurse@^4.3.0: 964 | version "4.3.0" 965 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz" 966 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 967 | dependencies: 968 | estraverse "^5.2.0" 969 | 970 | estraverse@^4.1.1: 971 | version "4.3.0" 972 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz" 973 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 974 | 975 | estraverse@^5.1.0, estraverse@^5.2.0: 976 | version "5.2.0" 977 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz" 978 | integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== 979 | 980 | estree-walker@^2.0.1: 981 | version "2.0.2" 982 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz" 983 | integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== 984 | 985 | esutils@^2.0.2: 986 | version "2.0.3" 987 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz" 988 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 989 | 990 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 991 | version "3.1.3" 992 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" 993 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 994 | 995 | fast-json-stable-stringify@^2.0.0: 996 | version "2.1.0" 997 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" 998 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 999 | 1000 | fast-levenshtein@^2.0.6: 1001 | version "2.0.6" 1002 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" 1003 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= 1004 | 1005 | fflate@^0.6.9: 1006 | version "0.6.10" 1007 | resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.6.10.tgz" 1008 | integrity sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg== 1009 | 1010 | file-entry-cache@^6.0.1: 1011 | version "6.0.1" 1012 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz" 1013 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== 1014 | dependencies: 1015 | flat-cache "^3.0.4" 1016 | 1017 | flat-cache@^3.0.4: 1018 | version "3.0.4" 1019 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz" 1020 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== 1021 | dependencies: 1022 | flatted "^3.1.0" 1023 | rimraf "^3.0.2" 1024 | 1025 | flatted@^3.1.0: 1026 | version "3.2.2" 1027 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz" 1028 | integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== 1029 | 1030 | fs.realpath@^1.0.0: 1031 | version "1.0.0" 1032 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz" 1033 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 1034 | 1035 | fs@^0.0.1-security: 1036 | version "0.0.1-security" 1037 | resolved "https://registry.yarnpkg.com/fs/-/fs-0.0.1-security.tgz#8a7bd37186b6dddf3813f23858b57ecaaf5e41d4" 1038 | integrity sha1-invTcYa23d84E/I4WLV+yq9eQdQ= 1039 | 1040 | fsevents@~2.3.2: 1041 | version "2.3.2" 1042 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz" 1043 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 1044 | 1045 | function-bind@^1.1.1: 1046 | version "1.1.1" 1047 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz" 1048 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 1049 | 1050 | functional-red-black-tree@^1.0.1: 1051 | version "1.0.1" 1052 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" 1053 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= 1054 | 1055 | gensync@^1.0.0-beta.2: 1056 | version "1.0.0-beta.2" 1057 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz" 1058 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== 1059 | 1060 | get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: 1061 | version "1.1.1" 1062 | resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" 1063 | integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== 1064 | dependencies: 1065 | function-bind "^1.1.1" 1066 | has "^1.0.3" 1067 | has-symbols "^1.0.1" 1068 | 1069 | glob-parent@^5.1.2: 1070 | version "5.1.2" 1071 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz" 1072 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 1073 | dependencies: 1074 | is-glob "^4.0.1" 1075 | 1076 | glob@^7.1.3: 1077 | version "7.1.7" 1078 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz" 1079 | integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== 1080 | dependencies: 1081 | fs.realpath "^1.0.0" 1082 | inflight "^1.0.4" 1083 | inherits "2" 1084 | minimatch "^3.0.4" 1085 | once "^1.3.0" 1086 | path-is-absolute "^1.0.0" 1087 | 1088 | globals@^11.1.0: 1089 | version "11.12.0" 1090 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz" 1091 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 1092 | 1093 | globals@^13.6.0, globals@^13.9.0: 1094 | version "13.11.0" 1095 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.11.0.tgz" 1096 | integrity sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g== 1097 | dependencies: 1098 | type-fest "^0.20.2" 1099 | 1100 | glsl-noise@^0.0.0: 1101 | version "0.0.0" 1102 | resolved "https://registry.yarnpkg.com/glsl-noise/-/glsl-noise-0.0.0.tgz" 1103 | integrity sha1-NndF86MzgsDu7Ey1S36Zz8HXZws= 1104 | 1105 | has-bigints@^1.0.1: 1106 | version "1.0.1" 1107 | resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz" 1108 | integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== 1109 | 1110 | has-flag@^3.0.0: 1111 | version "3.0.0" 1112 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz" 1113 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 1114 | 1115 | has-flag@^4.0.0: 1116 | version "4.0.0" 1117 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz" 1118 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 1119 | 1120 | has-symbols@^1.0.1, has-symbols@^1.0.2: 1121 | version "1.0.2" 1122 | resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz" 1123 | integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== 1124 | 1125 | has-tostringtag@^1.0.0: 1126 | version "1.0.0" 1127 | resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" 1128 | integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== 1129 | dependencies: 1130 | has-symbols "^1.0.2" 1131 | 1132 | has@^1.0.3: 1133 | version "1.0.3" 1134 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz" 1135 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 1136 | dependencies: 1137 | function-bind "^1.1.1" 1138 | 1139 | hoist-non-react-statics@^3.0.0: 1140 | version "3.3.2" 1141 | resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz" 1142 | integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== 1143 | dependencies: 1144 | react-is "^16.7.0" 1145 | 1146 | ignore@^4.0.6: 1147 | version "4.0.6" 1148 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz" 1149 | integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== 1150 | 1151 | import-fresh@^3.0.0, import-fresh@^3.2.1: 1152 | version "3.3.0" 1153 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz" 1154 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== 1155 | dependencies: 1156 | parent-module "^1.0.0" 1157 | resolve-from "^4.0.0" 1158 | 1159 | imurmurhash@^0.1.4: 1160 | version "0.1.4" 1161 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz" 1162 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 1163 | 1164 | inflight@^1.0.4: 1165 | version "1.0.6" 1166 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz" 1167 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 1168 | dependencies: 1169 | once "^1.3.0" 1170 | wrappy "1" 1171 | 1172 | inherits@2: 1173 | version "2.0.4" 1174 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz" 1175 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1176 | 1177 | internal-slot@^1.0.3: 1178 | version "1.0.3" 1179 | resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" 1180 | integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== 1181 | dependencies: 1182 | get-intrinsic "^1.1.0" 1183 | has "^1.0.3" 1184 | side-channel "^1.0.4" 1185 | 1186 | is-bigint@^1.0.1: 1187 | version "1.0.4" 1188 | resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" 1189 | integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== 1190 | dependencies: 1191 | has-bigints "^1.0.1" 1192 | 1193 | is-boolean-object@^1.1.0: 1194 | version "1.1.2" 1195 | resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" 1196 | integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== 1197 | dependencies: 1198 | call-bind "^1.0.2" 1199 | has-tostringtag "^1.0.0" 1200 | 1201 | is-callable@^1.1.4, is-callable@^1.2.3: 1202 | version "1.2.4" 1203 | resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz" 1204 | integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== 1205 | 1206 | is-core-module@^2.2.0: 1207 | version "2.6.0" 1208 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.6.0.tgz" 1209 | integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ== 1210 | dependencies: 1211 | has "^1.0.3" 1212 | 1213 | is-date-object@^1.0.1: 1214 | version "1.0.5" 1215 | resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" 1216 | integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== 1217 | dependencies: 1218 | has-tostringtag "^1.0.0" 1219 | 1220 | is-extglob@^2.1.1: 1221 | version "2.1.1" 1222 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz" 1223 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 1224 | 1225 | is-fullwidth-code-point@^3.0.0: 1226 | version "3.0.0" 1227 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" 1228 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 1229 | 1230 | is-glob@^4.0.0, is-glob@^4.0.1: 1231 | version "4.0.1" 1232 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz" 1233 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 1234 | dependencies: 1235 | is-extglob "^2.1.1" 1236 | 1237 | is-negative-zero@^2.0.1: 1238 | version "2.0.1" 1239 | resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz" 1240 | integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== 1241 | 1242 | is-number-object@^1.0.4: 1243 | version "1.0.6" 1244 | resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz" 1245 | integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== 1246 | dependencies: 1247 | has-tostringtag "^1.0.0" 1248 | 1249 | is-regex@^1.1.3: 1250 | version "1.1.4" 1251 | resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" 1252 | integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== 1253 | dependencies: 1254 | call-bind "^1.0.2" 1255 | has-tostringtag "^1.0.0" 1256 | 1257 | is-string@^1.0.5, is-string@^1.0.6: 1258 | version "1.0.7" 1259 | resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" 1260 | integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== 1261 | dependencies: 1262 | has-tostringtag "^1.0.0" 1263 | 1264 | is-symbol@^1.0.2, is-symbol@^1.0.3: 1265 | version "1.0.4" 1266 | resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" 1267 | integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== 1268 | dependencies: 1269 | has-symbols "^1.0.2" 1270 | 1271 | isexe@^2.0.0: 1272 | version "2.0.0" 1273 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz" 1274 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 1275 | 1276 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: 1277 | version "4.0.0" 1278 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz" 1279 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 1280 | 1281 | js-yaml@^3.13.1: 1282 | version "3.14.1" 1283 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz" 1284 | integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== 1285 | dependencies: 1286 | argparse "^1.0.7" 1287 | esprima "^4.0.0" 1288 | 1289 | jsesc@^2.5.1: 1290 | version "2.5.2" 1291 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz" 1292 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 1293 | 1294 | json-schema-traverse@^0.4.1: 1295 | version "0.4.1" 1296 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" 1297 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 1298 | 1299 | json-schema-traverse@^1.0.0: 1300 | version "1.0.0" 1301 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" 1302 | integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== 1303 | 1304 | json-stable-stringify-without-jsonify@^1.0.1: 1305 | version "1.0.1" 1306 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" 1307 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= 1308 | 1309 | json5@^2.1.2: 1310 | version "2.2.0" 1311 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz" 1312 | integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== 1313 | dependencies: 1314 | minimist "^1.2.5" 1315 | 1316 | "jsx-ast-utils@^2.4.1 || ^3.0.0": 1317 | version "3.2.0" 1318 | resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz" 1319 | integrity sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q== 1320 | dependencies: 1321 | array-includes "^3.1.2" 1322 | object.assign "^4.1.2" 1323 | 1324 | ktx-parse@^0.2.1: 1325 | version "0.2.1" 1326 | resolved "https://registry.yarnpkg.com/ktx-parse/-/ktx-parse-0.2.1.tgz" 1327 | integrity sha512-I+2mYJ6nQdWGmOlE3m9d9idKfhn2MCw04zaVpgtzyuc19uQ8OwRmmYLf/TP5ueVFfYmHbdpM8mPmId2X5PBLEw== 1328 | 1329 | levn@^0.4.1: 1330 | version "0.4.1" 1331 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz" 1332 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== 1333 | dependencies: 1334 | prelude-ls "^1.2.1" 1335 | type-check "~0.4.0" 1336 | 1337 | load-script@^1.0.0: 1338 | version "1.0.0" 1339 | resolved "https://registry.yarnpkg.com/load-script/-/load-script-1.0.0.tgz#0491939e0bee5643ee494a7e3da3d2bac70c6ca4" 1340 | integrity sha1-BJGTngvuVkPuSUp+PaPSuscMbKQ= 1341 | 1342 | lodash.clonedeep@^4.5.0: 1343 | version "4.5.0" 1344 | resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" 1345 | integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= 1346 | 1347 | lodash.merge@^4.6.2: 1348 | version "4.6.2" 1349 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz" 1350 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== 1351 | 1352 | lodash.omit@^4.5.0: 1353 | version "4.5.0" 1354 | resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz" 1355 | integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA= 1356 | 1357 | lodash.pick@^4.4.0: 1358 | version "4.4.0" 1359 | resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz" 1360 | integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= 1361 | 1362 | lodash.truncate@^4.4.2: 1363 | version "4.4.2" 1364 | resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz" 1365 | integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= 1366 | 1367 | lodash@^4.17.11: 1368 | version "4.17.21" 1369 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz" 1370 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 1371 | 1372 | loose-envify@^1.1.0, loose-envify@^1.4.0: 1373 | version "1.4.0" 1374 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz" 1375 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 1376 | dependencies: 1377 | js-tokens "^3.0.0 || ^4.0.0" 1378 | 1379 | lru-cache@^6.0.0: 1380 | version "6.0.0" 1381 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz" 1382 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 1383 | dependencies: 1384 | yallist "^4.0.0" 1385 | 1386 | minimatch@^3.0.4: 1387 | version "3.0.4" 1388 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz" 1389 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 1390 | dependencies: 1391 | brace-expansion "^1.1.7" 1392 | 1393 | minimist@^1.2.5: 1394 | version "1.2.5" 1395 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz" 1396 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 1397 | 1398 | mmd-parser@^1.0.4: 1399 | version "1.0.4" 1400 | resolved "https://registry.yarnpkg.com/mmd-parser/-/mmd-parser-1.0.4.tgz" 1401 | integrity sha512-Qi0VCU46t2IwfGv5KF0+D/t9cizcDug7qnNoy9Ggk7aucp0tssV8IwTMkBlDbm+VqAf3cdQHTCARKSsuS2MYFg== 1402 | 1403 | ms@2.1.2: 1404 | version "2.1.2" 1405 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz" 1406 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1407 | 1408 | nanoid@^3.1.23: 1409 | version "3.1.25" 1410 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz" 1411 | integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q== 1412 | 1413 | natural-compare@^1.4.0: 1414 | version "1.4.0" 1415 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz" 1416 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= 1417 | 1418 | node-releases@^1.1.75: 1419 | version "1.1.75" 1420 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.75.tgz" 1421 | integrity sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw== 1422 | 1423 | object-assign@^4.1.1: 1424 | version "4.1.1" 1425 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz" 1426 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 1427 | 1428 | object-inspect@^1.11.0, object-inspect@^1.9.0: 1429 | version "1.11.0" 1430 | resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz" 1431 | integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== 1432 | 1433 | object-keys@^1.0.12, object-keys@^1.1.1: 1434 | version "1.1.1" 1435 | resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" 1436 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 1437 | 1438 | object.assign@^4.1.2: 1439 | version "4.1.2" 1440 | resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" 1441 | integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== 1442 | dependencies: 1443 | call-bind "^1.0.0" 1444 | define-properties "^1.1.3" 1445 | has-symbols "^1.0.1" 1446 | object-keys "^1.1.1" 1447 | 1448 | object.entries@^1.1.4: 1449 | version "1.1.4" 1450 | resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz" 1451 | integrity sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA== 1452 | dependencies: 1453 | call-bind "^1.0.2" 1454 | define-properties "^1.1.3" 1455 | es-abstract "^1.18.2" 1456 | 1457 | object.fromentries@^2.0.4: 1458 | version "2.0.4" 1459 | resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz" 1460 | integrity sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ== 1461 | dependencies: 1462 | call-bind "^1.0.2" 1463 | define-properties "^1.1.3" 1464 | es-abstract "^1.18.0-next.2" 1465 | has "^1.0.3" 1466 | 1467 | object.values@^1.1.4: 1468 | version "1.1.4" 1469 | resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz" 1470 | integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg== 1471 | dependencies: 1472 | call-bind "^1.0.2" 1473 | define-properties "^1.1.3" 1474 | es-abstract "^1.18.2" 1475 | 1476 | once@^1.3.0: 1477 | version "1.4.0" 1478 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz" 1479 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1480 | dependencies: 1481 | wrappy "1" 1482 | 1483 | opentype.js@^1.3.3: 1484 | version "1.3.3" 1485 | resolved "https://registry.yarnpkg.com/opentype.js/-/opentype.js-1.3.3.tgz" 1486 | integrity sha512-/qIY/+WnKGlPIIPhbeNjynfD2PO15G9lA/xqlX2bDH+4lc3Xz5GCQ68mqxj3DdUv6AJqCeaPvuAoH8mVL0zcuA== 1487 | dependencies: 1488 | string.prototype.codepointat "^0.2.1" 1489 | tiny-inflate "^1.0.3" 1490 | 1491 | optionator@^0.9.1: 1492 | version "0.9.1" 1493 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz" 1494 | integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== 1495 | dependencies: 1496 | deep-is "^0.1.3" 1497 | fast-levenshtein "^2.0.6" 1498 | levn "^0.4.1" 1499 | prelude-ls "^1.2.1" 1500 | type-check "^0.4.0" 1501 | word-wrap "^1.2.3" 1502 | 1503 | parent-module@^1.0.0: 1504 | version "1.0.1" 1505 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz" 1506 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 1507 | dependencies: 1508 | callsites "^3.0.0" 1509 | 1510 | path-is-absolute@^1.0.0: 1511 | version "1.0.1" 1512 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz" 1513 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 1514 | 1515 | path-key@^3.1.0: 1516 | version "3.1.1" 1517 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz" 1518 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 1519 | 1520 | path-parse@^1.0.6: 1521 | version "1.0.7" 1522 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz" 1523 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1524 | 1525 | picomatch@^2.2.2: 1526 | version "2.3.0" 1527 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz" 1528 | integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== 1529 | 1530 | postcss-value-parser@^4.0.2: 1531 | version "4.1.0" 1532 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz" 1533 | integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== 1534 | 1535 | postcss@^8.3.6: 1536 | version "8.3.6" 1537 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.6.tgz" 1538 | integrity sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A== 1539 | dependencies: 1540 | colorette "^1.2.2" 1541 | nanoid "^3.1.23" 1542 | source-map-js "^0.6.2" 1543 | 1544 | potpack@^1.0.1: 1545 | version "1.0.1" 1546 | resolved "https://registry.yarnpkg.com/potpack/-/potpack-1.0.1.tgz" 1547 | integrity sha512-15vItUAbViaYrmaB/Pbw7z6qX2xENbFSTA7Ii4tgbPtasxm5v6ryKhKtL91tpWovDJzTiZqdwzhcFBCwiMVdVw== 1548 | 1549 | prelude-ls@^1.2.1: 1550 | version "1.2.1" 1551 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz" 1552 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== 1553 | 1554 | progress@^2.0.0: 1555 | version "2.0.3" 1556 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz" 1557 | integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== 1558 | 1559 | prop-types@^15.7.2: 1560 | version "15.7.2" 1561 | resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz" 1562 | integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== 1563 | dependencies: 1564 | loose-envify "^1.4.0" 1565 | object-assign "^4.1.1" 1566 | react-is "^16.8.1" 1567 | 1568 | punycode@^2.1.0: 1569 | version "2.1.1" 1570 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz" 1571 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 1572 | 1573 | react-dom@^17.0.2: 1574 | version "17.0.2" 1575 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz" 1576 | integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== 1577 | dependencies: 1578 | loose-envify "^1.1.0" 1579 | object-assign "^4.1.1" 1580 | scheduler "^0.20.2" 1581 | 1582 | react-is@^16.7.0, react-is@^16.8.1: 1583 | version "16.13.1" 1584 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz" 1585 | integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== 1586 | 1587 | react-merge-refs@^1.0.0, react-merge-refs@^1.1.0: 1588 | version "1.1.0" 1589 | resolved "https://registry.yarnpkg.com/react-merge-refs/-/react-merge-refs-1.1.0.tgz" 1590 | integrity sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ== 1591 | 1592 | react-reconciler@^0.26.2: 1593 | version "0.26.2" 1594 | resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.26.2.tgz" 1595 | integrity sha512-nK6kgY28HwrMNwDnMui3dvm3rCFjZrcGiuwLc5COUipBK5hWHLOxMJhSnSomirqWwjPBJKV1QcbkI0VJr7Gl1Q== 1596 | dependencies: 1597 | loose-envify "^1.1.0" 1598 | object-assign "^4.1.1" 1599 | scheduler "^0.20.2" 1600 | 1601 | react-refresh@^0.10.0: 1602 | version "0.10.0" 1603 | resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.10.0.tgz" 1604 | integrity sha512-PgidR3wST3dDYKr6b4pJoqQFpPGNKDSCDx4cZoshjXipw3LzO7mG1My2pwEzz2JVkF+inx3xRpDeQLFQGH/hsQ== 1605 | 1606 | react-three-fiber@0.0.0-deprecated: 1607 | version "0.0.0-deprecated" 1608 | resolved "https://registry.yarnpkg.com/react-three-fiber/-/react-three-fiber-0.0.0-deprecated.tgz" 1609 | integrity sha512-EblIqTAsIpkYeM8bZtC4lcpTE0A2zCEGipFB52RgcQq/q+0oryrk7Sxt+sqhIjUu6xMNEVywV8dr74lz5yWO6A== 1610 | 1611 | react-use-measure@^2.0.4: 1612 | version "2.0.4" 1613 | resolved "https://registry.yarnpkg.com/react-use-measure/-/react-use-measure-2.0.4.tgz" 1614 | integrity sha512-7K2HIGaPMl3Q9ZQiEVjen3tRXl4UDda8LiTPy/QxP8dP2rl5gPBhf7mMH6MVjjRNv3loU7sNzey/ycPNnHVTxQ== 1615 | dependencies: 1616 | debounce "^1.2.0" 1617 | 1618 | react@^17.0.2: 1619 | version "17.0.2" 1620 | resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz" 1621 | integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== 1622 | dependencies: 1623 | loose-envify "^1.1.0" 1624 | object-assign "^4.1.1" 1625 | 1626 | regenerator-runtime@^0.13.4: 1627 | version "0.13.9" 1628 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" 1629 | integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== 1630 | 1631 | regexp-to-ast@0.5.0: 1632 | version "0.5.0" 1633 | resolved "https://registry.yarnpkg.com/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz" 1634 | integrity sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw== 1635 | 1636 | regexp.prototype.flags@^1.3.1: 1637 | version "1.3.1" 1638 | resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz" 1639 | integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== 1640 | dependencies: 1641 | call-bind "^1.0.2" 1642 | define-properties "^1.1.3" 1643 | 1644 | regexpp@^3.1.0: 1645 | version "3.2.0" 1646 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz" 1647 | integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== 1648 | 1649 | require-from-string@^2.0.2: 1650 | version "2.0.2" 1651 | resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz" 1652 | integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== 1653 | 1654 | resize-observer-polyfill@^1.5.1: 1655 | version "1.5.1" 1656 | resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz" 1657 | integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== 1658 | 1659 | resolve-from@^4.0.0: 1660 | version "4.0.0" 1661 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz" 1662 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 1663 | 1664 | resolve@^1.20.0: 1665 | version "1.20.0" 1666 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz" 1667 | integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== 1668 | dependencies: 1669 | is-core-module "^2.2.0" 1670 | path-parse "^1.0.6" 1671 | 1672 | resolve@^2.0.0-next.3: 1673 | version "2.0.0-next.3" 1674 | resolved "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz" 1675 | integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q== 1676 | dependencies: 1677 | is-core-module "^2.2.0" 1678 | path-parse "^1.0.6" 1679 | 1680 | rimraf@^3.0.2: 1681 | version "3.0.2" 1682 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz" 1683 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 1684 | dependencies: 1685 | glob "^7.1.3" 1686 | 1687 | rollup@^2.38.5: 1688 | version "2.56.3" 1689 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.56.3.tgz" 1690 | integrity sha512-Au92NuznFklgQCUcV96iXlxUbHuB1vQMaH76DHl5M11TotjOHwqk9CwcrT78+Tnv4FN9uTBxq6p4EJoYkpyekg== 1691 | optionalDependencies: 1692 | fsevents "~2.3.2" 1693 | 1694 | safe-buffer@~5.1.1: 1695 | version "5.1.2" 1696 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz" 1697 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 1698 | 1699 | scheduler@^0.20.2: 1700 | version "0.20.2" 1701 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz" 1702 | integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== 1703 | dependencies: 1704 | loose-envify "^1.1.0" 1705 | object-assign "^4.1.1" 1706 | 1707 | semver@^6.3.0: 1708 | version "6.3.0" 1709 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz" 1710 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 1711 | 1712 | semver@^7.2.1: 1713 | version "7.3.5" 1714 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz" 1715 | integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== 1716 | dependencies: 1717 | lru-cache "^6.0.0" 1718 | 1719 | shallowequal@^1.1.0: 1720 | version "1.1.0" 1721 | resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz" 1722 | integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== 1723 | 1724 | shebang-command@^2.0.0: 1725 | version "2.0.0" 1726 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz" 1727 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 1728 | dependencies: 1729 | shebang-regex "^3.0.0" 1730 | 1731 | shebang-regex@^3.0.0: 1732 | version "3.0.0" 1733 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz" 1734 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 1735 | 1736 | short-uuid@^4.2.0: 1737 | version "4.2.0" 1738 | resolved "https://registry.yarnpkg.com/short-uuid/-/short-uuid-4.2.0.tgz#3706d9e7287ac589dc5ffe324d3e34817a07540b" 1739 | integrity sha512-r3cxuPPZSuF0QkKsK9bBR7u+7cwuCRzWzgjPh07F5N2iIUNgblnMHepBY16xgj5t1lG9iOP9k/TEafY1qhRzaw== 1740 | dependencies: 1741 | any-base "^1.1.0" 1742 | uuid "^8.3.2" 1743 | 1744 | side-channel@^1.0.4: 1745 | version "1.0.4" 1746 | resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" 1747 | integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== 1748 | dependencies: 1749 | call-bind "^1.0.0" 1750 | get-intrinsic "^1.0.2" 1751 | object-inspect "^1.9.0" 1752 | 1753 | slice-ansi@^4.0.0: 1754 | version "4.0.0" 1755 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz" 1756 | integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== 1757 | dependencies: 1758 | ansi-styles "^4.0.0" 1759 | astral-regex "^2.0.0" 1760 | is-fullwidth-code-point "^3.0.0" 1761 | 1762 | source-map-js@^0.6.2: 1763 | version "0.6.2" 1764 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz" 1765 | integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== 1766 | 1767 | source-map@^0.5.0: 1768 | version "0.5.7" 1769 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz" 1770 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= 1771 | 1772 | sprintf-js@~1.0.2: 1773 | version "1.0.3" 1774 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz" 1775 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 1776 | 1777 | stats.js@^0.17.0: 1778 | version "0.17.0" 1779 | resolved "https://registry.yarnpkg.com/stats.js/-/stats.js-0.17.0.tgz" 1780 | integrity sha1-scPcRtlEmLV4t/05hbgaznExzH0= 1781 | 1782 | string-width@^4.2.0: 1783 | version "4.2.2" 1784 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz" 1785 | integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== 1786 | dependencies: 1787 | emoji-regex "^8.0.0" 1788 | is-fullwidth-code-point "^3.0.0" 1789 | strip-ansi "^6.0.0" 1790 | 1791 | string.prototype.codepointat@^0.2.1: 1792 | version "0.2.1" 1793 | resolved "https://registry.yarnpkg.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz" 1794 | integrity sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg== 1795 | 1796 | string.prototype.matchall@^4.0.5: 1797 | version "4.0.5" 1798 | resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz" 1799 | integrity sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q== 1800 | dependencies: 1801 | call-bind "^1.0.2" 1802 | define-properties "^1.1.3" 1803 | es-abstract "^1.18.2" 1804 | get-intrinsic "^1.1.1" 1805 | has-symbols "^1.0.2" 1806 | internal-slot "^1.0.3" 1807 | regexp.prototype.flags "^1.3.1" 1808 | side-channel "^1.0.4" 1809 | 1810 | string.prototype.trimend@^1.0.4: 1811 | version "1.0.4" 1812 | resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz" 1813 | integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== 1814 | dependencies: 1815 | call-bind "^1.0.2" 1816 | define-properties "^1.1.3" 1817 | 1818 | string.prototype.trimstart@^1.0.4: 1819 | version "1.0.4" 1820 | resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz" 1821 | integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== 1822 | dependencies: 1823 | call-bind "^1.0.2" 1824 | define-properties "^1.1.3" 1825 | 1826 | strip-ansi@^6.0.0: 1827 | version "6.0.0" 1828 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz" 1829 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== 1830 | dependencies: 1831 | ansi-regex "^5.0.0" 1832 | 1833 | strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: 1834 | version "3.1.1" 1835 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz" 1836 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 1837 | 1838 | styled-components@^5.3.1: 1839 | version "5.3.1" 1840 | resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.3.1.tgz" 1841 | integrity sha512-JThv2JRzyH0NOIURrk9iskdxMSAAtCfj/b2Sf1WJaCUsloQkblepy1jaCLX/bYE+mhYo3unmwVSI9I5d9ncSiQ== 1842 | dependencies: 1843 | "@babel/helper-module-imports" "^7.0.0" 1844 | "@babel/traverse" "^7.4.5" 1845 | "@emotion/is-prop-valid" "^0.8.8" 1846 | "@emotion/stylis" "^0.8.4" 1847 | "@emotion/unitless" "^0.7.4" 1848 | babel-plugin-styled-components ">= 1.12.0" 1849 | css-to-react-native "^3.0.0" 1850 | hoist-non-react-statics "^3.0.0" 1851 | shallowequal "^1.1.0" 1852 | supports-color "^5.5.0" 1853 | 1854 | supports-color@^5.3.0, supports-color@^5.5.0: 1855 | version "5.5.0" 1856 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz" 1857 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1858 | dependencies: 1859 | has-flag "^3.0.0" 1860 | 1861 | supports-color@^7.1.0: 1862 | version "7.2.0" 1863 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz" 1864 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1865 | dependencies: 1866 | has-flag "^4.0.0" 1867 | 1868 | table@^6.0.9: 1869 | version "6.7.1" 1870 | resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz" 1871 | integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== 1872 | dependencies: 1873 | ajv "^8.0.1" 1874 | lodash.clonedeep "^4.5.0" 1875 | lodash.truncate "^4.4.2" 1876 | slice-ansi "^4.0.0" 1877 | string-width "^4.2.0" 1878 | strip-ansi "^6.0.0" 1879 | 1880 | text-table@^0.2.0: 1881 | version "0.2.0" 1882 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz" 1883 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= 1884 | 1885 | three-mesh-bvh@^0.4.1: 1886 | version "0.4.3" 1887 | resolved "https://registry.yarnpkg.com/three-mesh-bvh/-/three-mesh-bvh-0.4.3.tgz" 1888 | integrity sha512-4CO1dU73hQRwGgeOL05CnsKkIa0LgNCH6S8t66D9nvSiyK9wDzrSqzGVd8e+eUytFoliYHc/lwoW0uamrmXo5w== 1889 | 1890 | three-stdlib@^2.4.0: 1891 | version "2.4.0" 1892 | resolved "https://registry.yarnpkg.com/three-stdlib/-/three-stdlib-2.4.0.tgz" 1893 | integrity sha512-fy1utgeo/RskodAmKPoiexkcH/m5Zy9C01QjuESTnihDd+LyjxsmqAUI+qoDCkQIAwtBvYPE53EFBXzZM0B04A== 1894 | dependencies: 1895 | "@babel/runtime" "^7.14.6" 1896 | "@webgpu/glslang" "^0.0.15" 1897 | "@webxr-input-profiles/motion-controllers" "^1.0.0" 1898 | chevrotain "^9.0.2" 1899 | fflate "^0.6.9" 1900 | ktx-parse "^0.2.1" 1901 | mmd-parser "^1.0.4" 1902 | opentype.js "^1.3.3" 1903 | potpack "^1.0.1" 1904 | zstddec "^0.0.2" 1905 | 1906 | three@^0.132.2: 1907 | version "0.132.2" 1908 | resolved "https://registry.yarnpkg.com/three/-/three-0.132.2.tgz" 1909 | integrity sha512-0wcR7LxxkXMn6Gi58gEs3QvY8WpTVXA31L2VOvpjm4ZPYFRHCZC13UqynheFoS5OXDYgtBneN0dhbaNBE8iLhQ== 1910 | 1911 | tiny-inflate@^1.0.3: 1912 | version "1.0.3" 1913 | resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.3.tgz" 1914 | integrity sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw== 1915 | 1916 | to-fast-properties@^2.0.0: 1917 | version "2.0.0" 1918 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz" 1919 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= 1920 | 1921 | troika-three-text@^0.42.0: 1922 | version "0.42.0" 1923 | resolved "https://registry.yarnpkg.com/troika-three-text/-/troika-three-text-0.42.0.tgz" 1924 | integrity sha512-bI9tCNwYDxcAi04NN0g0exOCrvNur9YfA2adR3AZgKHq+FIzxFIOem9LJ8kVwvo4smR+/hAv8N8pcRvXTek21w== 1925 | dependencies: 1926 | bidi-js "^1.0.2" 1927 | troika-three-utils "^0.42.0" 1928 | troika-worker-utils "^0.42.0" 1929 | 1930 | troika-three-utils@^0.42.0: 1931 | version "0.42.0" 1932 | resolved "https://registry.yarnpkg.com/troika-three-utils/-/troika-three-utils-0.42.0.tgz" 1933 | integrity sha512-IimGItKTN4PxeXEL4uWSF20kHZU1J1jXHD0gYQflX3QOFSven7HBG7nEqHcWavbZkB3AeRfR6NB3294GIt3uGA== 1934 | 1935 | troika-worker-utils@^0.42.0: 1936 | version "0.42.0" 1937 | resolved "https://registry.yarnpkg.com/troika-worker-utils/-/troika-worker-utils-0.42.0.tgz" 1938 | integrity sha512-eTfX/vBNC7zMD+sSIDzbQAVwbhotbCz71IimZe0rFqPvAXkvLpKfH2YcWd1Ho42PII1O9Gl4QxxTV8ulRmDilQ== 1939 | 1940 | type-check@^0.4.0, type-check@~0.4.0: 1941 | version "0.4.0" 1942 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz" 1943 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== 1944 | dependencies: 1945 | prelude-ls "^1.2.1" 1946 | 1947 | type-fest@^0.20.2: 1948 | version "0.20.2" 1949 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz" 1950 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== 1951 | 1952 | unbox-primitive@^1.0.1: 1953 | version "1.0.1" 1954 | resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz" 1955 | integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== 1956 | dependencies: 1957 | function-bind "^1.1.1" 1958 | has-bigints "^1.0.1" 1959 | has-symbols "^1.0.2" 1960 | which-boxed-primitive "^1.0.2" 1961 | 1962 | uri-js@^4.2.2: 1963 | version "4.4.1" 1964 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz" 1965 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 1966 | dependencies: 1967 | punycode "^2.1.0" 1968 | 1969 | use-asset@^1.0.4: 1970 | version "1.0.4" 1971 | resolved "https://registry.yarnpkg.com/use-asset/-/use-asset-1.0.4.tgz" 1972 | integrity sha512-7/hqDrWa0iMnCoET9W1T07EmD4Eg/Wmoj/X8TGBc++ECRK4m5yTsjP4O6s0yagbxfqIOuUkIxe2/sA+VR2GxZA== 1973 | dependencies: 1974 | fast-deep-equal "^3.1.3" 1975 | 1976 | utility-types@^3.10.0: 1977 | version "3.10.0" 1978 | resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.10.0.tgz" 1979 | integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg== 1980 | 1981 | uuid@^8.3.2: 1982 | version "8.3.2" 1983 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" 1984 | integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== 1985 | 1986 | v8-compile-cache@^2.0.3: 1987 | version "2.3.0" 1988 | resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz" 1989 | integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== 1990 | 1991 | vite-react-jsx@1.1.2: 1992 | version "1.1.2" 1993 | resolved "https://registry.yarnpkg.com/vite-react-jsx/-/vite-react-jsx-1.1.2.tgz#028cfd59fd4e60c55770497a176fe2d70faa240b" 1994 | integrity sha512-cv0kcBnr8pRZWreLhCIl0/wSnm6lwUc61kPYqGoVQLl4D2JdDMLMMWgKHDpFLc95l3U1pTX8lTVXq2KdeBE9IA== 1995 | dependencies: 1996 | "@babel/core" "^7.14.3" 1997 | "@babel/plugin-syntax-jsx" "^7.12.13" 1998 | "@babel/plugin-syntax-typescript" "^7.12.13" 1999 | "@babel/plugin-transform-react-jsx" "^7.14.3" 2000 | resolve "^1.20.0" 2001 | 2002 | vite@2.4.4: 2003 | version "2.4.4" 2004 | resolved "https://registry.yarnpkg.com/vite/-/vite-2.4.4.tgz#8c402a07ad45f168f6eb5428bead38f3e4363e47" 2005 | integrity sha512-m1wK6pFJKmaYA6AeZIUXyiAgUAAJzVXhIMYCdZUpCaFMGps0v0IlNJtbmPvkUhVEyautalajmnW5X6NboUPsnw== 2006 | dependencies: 2007 | esbuild "^0.12.8" 2008 | postcss "^8.3.6" 2009 | resolve "^1.20.0" 2010 | rollup "^2.38.5" 2011 | optionalDependencies: 2012 | fsevents "~2.3.2" 2013 | 2014 | webgl-constants@^1.1.1: 2015 | version "1.1.1" 2016 | resolved "https://registry.yarnpkg.com/webgl-constants/-/webgl-constants-1.1.1.tgz" 2017 | integrity sha512-LkBXKjU5r9vAW7Gcu3T5u+5cvSvh5WwINdr0C+9jpzVB41cjQAP5ePArDtk/WHYdVj0GefCgM73BA7FlIiNtdg== 2018 | 2019 | which-boxed-primitive@^1.0.2: 2020 | version "1.0.2" 2021 | resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" 2022 | integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== 2023 | dependencies: 2024 | is-bigint "^1.0.1" 2025 | is-boolean-object "^1.1.0" 2026 | is-number-object "^1.0.4" 2027 | is-string "^1.0.5" 2028 | is-symbol "^1.0.3" 2029 | 2030 | which@^2.0.1: 2031 | version "2.0.2" 2032 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz" 2033 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 2034 | dependencies: 2035 | isexe "^2.0.0" 2036 | 2037 | word-wrap@^1.2.3: 2038 | version "1.2.3" 2039 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz" 2040 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== 2041 | 2042 | wrappy@1: 2043 | version "1.0.2" 2044 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz" 2045 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 2046 | 2047 | yallist@^4.0.0: 2048 | version "4.0.0" 2049 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz" 2050 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 2051 | 2052 | yarn@^1.22.11: 2053 | version "1.22.11" 2054 | resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.22.11.tgz#d0104043e7349046e0e2aec977c24be106925ed6" 2055 | integrity sha512-AWje4bzqO9RUn3sdnM5N8n4ZJ0BqCc/kqFJvpOI5/EVkINXui0yuvU7NDCEF//+WaxHuNay2uOHxA4+tq1P3cg== 2056 | 2057 | zstddec@^0.0.2: 2058 | version "0.0.2" 2059 | resolved "https://registry.yarnpkg.com/zstddec/-/zstddec-0.0.2.tgz" 2060 | integrity sha512-DCo0oxvcvOTGP/f5FA6tz2Z6wF+FIcEApSTu0zV5sQgn9hoT5lZ9YRAKUraxt9oP7l4e8TnNdi8IZTCX6WCkwA== 2061 | 2062 | zustand@^3.5.1, zustand@^3.5.10: 2063 | version "3.5.10" 2064 | resolved "https://registry.yarnpkg.com/zustand/-/zustand-3.5.10.tgz" 2065 | integrity sha512-upluvSRWrlCiExu2UbkuMIPJ9AigyjRFoO7O9eUossIj7rPPq7pcJ0NKk6t2P7KF80tg/UdPX6/pNKOSbs9DEg== 2066 | --------------------------------------------------------------------------------