├── .gitignore ├── tsconfig.json ├── .github └── workflows │ └── ci.yml ├── README.md ├── vite.config.ts ├── LICENSE ├── package.json ├── src ├── index.test.ts ├── __snapshots__ │ └── index.test.ts.snap └── index.ts └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | dist 4 | 5 | # Editor directories and files 6 | .idea 7 | .vscode 8 | *.suo 9 | *.ntvs* 10 | *.njsproj 11 | *.sln 12 | *.sw? 13 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "outDir": "dist", 4 | "target": "esnext", 5 | "module": "esnext", 6 | "lib": ["esnext", "dom"], 7 | "moduleResolution": "node", 8 | "strict": true, 9 | "pretty": true, 10 | "noEmit": true, 11 | "forceConsistentCasingInFileNames": true, 12 | "skipLibCheck": true 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | on: 3 | push: 4 | branches: [main] 5 | pull_request: 6 | branches: [main] 7 | 8 | jobs: 9 | build-test: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/checkout@v2 13 | - uses: actions/setup-node@v2 14 | 15 | - name: Install dependencies 16 | run: yarn install 17 | 18 | - name: Check build health 19 | run: yarn build 20 | 21 | - name: Run tests 22 | run: yarn test 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # react-three-babel 2 | 3 | [![Version](https://img.shields.io/npm/v/@react-three/babel?style=flat&colorA=000000&colorB=000000)](https://npmjs.com/@react-three/babel) 4 | 5 | A Babel plugin for [tree-shaking three.js via JSX](https://docs.pmnd.rs/react-three-fiber/api/canvas#tree-shaking). 6 | 7 | ```bash 8 | npm install --save-dev @react-three/babel 9 | ``` 10 | 11 | ```js 12 | // .babelrc or babel.config.js 13 | { 14 | plugins: ['module:@react-three/babel'] 15 | } 16 | ``` 17 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import * as path from 'node:path' 2 | import { defineConfig } from 'vite' 3 | 4 | export default defineConfig({ 5 | build: { 6 | minify: false, 7 | target: 'es2018', 8 | sourcemap: true, 9 | lib: { 10 | formats: ['es', 'cjs'], 11 | entry: 'src/index.ts', 12 | fileName: '[name]', 13 | }, 14 | rollupOptions: { 15 | external: (id: string) => !id.startsWith('.') && !path.isAbsolute(id), 16 | output: { 17 | sourcemapExcludeSources: true, 18 | }, 19 | }, 20 | }, 21 | plugins: [ 22 | { 23 | name: 'vite-tsc', 24 | generateBundle() { 25 | this.emitFile({ type: 'asset', fileName: 'index.d.ts', source: `export * from '../src'` }) 26 | }, 27 | }, 28 | ], 29 | }) 30 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021-2023 Poimandres 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@react-three/babel", 3 | "version": "1.0.2", 4 | "description": "A Babel plugin for tree-shaking three.js via JSX.", 5 | "keywords": [ 6 | "react", 7 | "babel", 8 | "threejs", 9 | "transform", 10 | "plugin" 11 | ], 12 | "author": "Umar Ahmed (https://github.com/umar-ahmed)", 13 | "maintainers": [ 14 | "Cody Bennett (https://github.com/codyjasonbennett)" 15 | ], 16 | "homepage": "https://github.com/pmndrs/react-three-babel", 17 | "repository": "https://github.com/pmndrs/react-three-babel", 18 | "license": "MIT", 19 | "files": [ 20 | "dist/*", 21 | "src/*" 22 | ], 23 | "types": "./dist/index.d.ts", 24 | "main": "./dist/index.js", 25 | "module": "./dist/index.mjs", 26 | "exports": { 27 | "types": "./dist/index.d.ts", 28 | "require": "./dist/index.js", 29 | "import": "./dist/index.mjs" 30 | }, 31 | "sideEffects": false, 32 | "peerDependencies": { 33 | "@babel/core": ">=7", 34 | "@react-three/fiber": ">=6", 35 | "three": "*" 36 | }, 37 | "dependencies": { 38 | "@babel/helper-plugin-utils": "^7.22.5" 39 | }, 40 | "devDependencies": { 41 | "@babel/core": "^7.21.8", 42 | "@react-three/fiber": "^8.13.0", 43 | "@types/babel__core": "^7.20.0", 44 | "@types/babel__helper-plugin-utils": "^7.10.3", 45 | "@types/node": "^20.1.7", 46 | "@types/three": "^0.152.0", 47 | "three": "^0.152.2", 48 | "typescript": "^5.0.4", 49 | "vite": "^4.3.7", 50 | "vitest": "^0.31.0" 51 | }, 52 | "scripts": { 53 | "dev": "vite", 54 | "build": "vite build", 55 | "test": "vitest run", 56 | "prepublishOnly": "yarn run build && yarn run test" 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /src/index.test.ts: -------------------------------------------------------------------------------- 1 | import * as babel from '@babel/core' 2 | import { it, expect } from 'vitest' 3 | import plugin from '../src/index' 4 | 5 | function transform(code: string): string { 6 | return babel.transform(code.replace(/\s+/g, ' '), { plugins: [plugin] })!.code! 7 | } 8 | 9 | it('removes namespaced extend calls', () => { 10 | const code = transform( 11 | ` 12 | import * as THREE from "three"; 13 | import { extend } from "@react-three/fiber"; 14 | 15 | extend(THREE); 16 | `, 17 | ) 18 | expect(code).toMatchSnapshot() 19 | }) 20 | 21 | it('handles JSX', () => { 22 | const code = transform( 23 | ` 24 | function Box(props) { 25 | return ( 26 | 27 | 28 | 29 | 30 | ); 31 | } 32 | `, 33 | ) 34 | expect(code).toMatchSnapshot() 35 | }) 36 | 37 | it('handles JSX member expressions', () => { 38 | const code = transform( 39 | ` 40 | import { animated } from "@react-spring/three"; 41 | 42 | function Box(props) { 43 | return ( 44 | 45 | 46 | 47 | 48 | ); 49 | } 50 | `, 51 | ) 52 | expect(code).toMatchSnapshot() 53 | }) 54 | 55 | it('handles dynamic expressions', () => { 56 | const code = transform( 57 | ` 58 | function Material(props) { 59 | const Comp = props.foo ? 'meshBasicMaterial' : 'meshStandardMaterial'; 60 | return ; 61 | } 62 | `, 63 | ) 64 | expect(code).toMatchSnapshot() 65 | }) 66 | 67 | it('handles template strings', () => { 68 | const code = transform( 69 | ` 70 | function Material(props) { 71 | const Comp = \`mesh\$\{props.type\}Material\`; 72 | return ; 73 | } 74 | `, 75 | ) 76 | expect(code).toMatchSnapshot() 77 | }) 78 | -------------------------------------------------------------------------------- /src/__snapshots__/index.test.ts.snap: -------------------------------------------------------------------------------- 1 | // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html 2 | 3 | exports[`handles JSX 1`] = ` 4 | "import { Mesh as _Mesh, BoxGeometry as _BoxGeometry, MeshBasicMaterial as _MeshBasicMaterial } from \\"three\\"; 5 | import { extend as _extend } from \\"@react-three/fiber\\"; 6 | _extend({ 7 | Mesh: _Mesh, 8 | BoxGeometry: _BoxGeometry, 9 | MeshBasicMaterial: _MeshBasicMaterial 10 | }); 11 | function Box(props) { 12 | return ; 13 | }" 14 | `; 15 | 16 | exports[`handles JSX member expressions 1`] = ` 17 | "import { animated } from \\"@react-spring/three\\"; 18 | import { Mesh as _Mesh, BoxGeometry as _BoxGeometry, MeshBasicMaterial as _MeshBasicMaterial } from \\"three\\"; 19 | import { extend as _extend } from \\"@react-three/fiber\\"; 20 | _extend({ 21 | Mesh: _Mesh, 22 | BoxGeometry: _BoxGeometry, 23 | MeshBasicMaterial: _MeshBasicMaterial 24 | }); 25 | function Box(props) { 26 | return ; 27 | }" 28 | `; 29 | 30 | exports[`handles dynamic expressions 1`] = ` 31 | "import { MeshBasicMaterial as _MeshBasicMaterial, MeshStandardMaterial as _MeshStandardMaterial } from \\"three\\"; 32 | import { extend as _extend } from \\"@react-three/fiber\\"; 33 | _extend({ 34 | MeshBasicMaterial: _MeshBasicMaterial, 35 | MeshStandardMaterial: _MeshStandardMaterial 36 | }); 37 | function Material(props) { 38 | const Comp = props.foo ? 'meshBasicMaterial' : 'meshStandardMaterial'; 39 | return ; 40 | }" 41 | `; 42 | 43 | exports[`handles template strings 1`] = ` 44 | "import { MeshBasicMaterial as _MeshBasicMaterial, MeshDepthMaterial as _MeshDepthMaterial, MeshDistanceMaterial as _MeshDistanceMaterial, MeshLambertMaterial as _MeshLambertMaterial, MeshMatcapMaterial as _MeshMatcapMaterial, MeshNormalMaterial as _MeshNormalMaterial, MeshPhongMaterial as _MeshPhongMaterial, MeshPhysicalMaterial as _MeshPhysicalMaterial, MeshStandardMaterial as _MeshStandardMaterial, MeshToonMaterial as _MeshToonMaterial } from \\"three\\"; 45 | import { extend as _extend } from \\"@react-three/fiber\\"; 46 | _extend({ 47 | MeshBasicMaterial: _MeshBasicMaterial, 48 | MeshDepthMaterial: _MeshDepthMaterial, 49 | MeshDistanceMaterial: _MeshDistanceMaterial, 50 | MeshLambertMaterial: _MeshLambertMaterial, 51 | MeshMatcapMaterial: _MeshMatcapMaterial, 52 | MeshNormalMaterial: _MeshNormalMaterial, 53 | MeshPhongMaterial: _MeshPhongMaterial, 54 | MeshPhysicalMaterial: _MeshPhysicalMaterial, 55 | MeshStandardMaterial: _MeshStandardMaterial, 56 | MeshToonMaterial: _MeshToonMaterial 57 | }); 58 | function Material(props) { 59 | const Comp = \`mesh\${props.type}Material\`; 60 | return ; 61 | }" 62 | `; 63 | 64 | exports[`removes namespaced extend calls 1`] = ` 65 | "import * as THREE from \\"three\\"; 66 | import { extend } from \\"@react-three/fiber\\";" 67 | `; 68 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { type NodePath, types as t } from '@babel/core' 2 | import { declare } from "@babel/helper-plugin-utils"; 3 | import * as THREE from 'three' 4 | 5 | const imports = new Map() 6 | let lastImport: NodePath | null = null 7 | 8 | /** 9 | * Tree-shakes [`@react-three/fiber`](https://github.com/pmndrs/react-three-fiber) by evaluating JSX and granularly populating the three.js catalogue. 10 | * @see https://docs.pmnd.rs/react-three-fiber/api/canvas#tree-shaking 11 | * 12 | * ```jsx 13 | * import { animated } from '@react-spring/three' 14 | * import { createRoot } from '@react-three/fiber' 15 | * 16 | * function Box(props) { 17 | * const Comp = props.foo ? 'meshBasicMaterial' : 'meshStandardMaterial' 18 | * return ( 19 | * 20 | * 21 | * 22 | * 23 | * ) 24 | * } 25 | * 26 | * createRoot(canvasNode).render() 27 | * ``` 28 | * 29 | * Transforms into: 30 | * 31 | * ```jsx 32 | * import { 33 | * InstancedMesh as _InstancedMesh, 34 | * BoxGeometry as _BoxGeometry, 35 | * MeshBasicMaterial as _MeshBasicMaterial, 36 | * MeshStandardMaterial as _MeshStandardMaterial 37 | * } from 'three' 38 | * import { extend as _extend } from '@react-three/fiber' 39 | * 40 | * //__PURE__// 41 | * _extend({ 42 | * InstancedMesh: _InstancedMesh, 43 | * BoxGeometry: _BoxGeometry, 44 | * MeshBasicMaterial: _MeshBasicMaterial, 45 | * MeshStandardMaterial: _MeshStandardMaterial 46 | * }) 47 | * ``` 48 | */ 49 | export default declare((api) => { 50 | api.assertVersion(7) 51 | return { 52 | manipulateOptions(_, options) { 53 | options.plugins.push('jsx') 54 | }, 55 | post() { 56 | imports.clear() 57 | lastImport = null 58 | }, 59 | visitor: { 60 | CallExpression(path) { 61 | // Remove extend(THREE) from Canvas and user-land 62 | if ( 63 | t.isIdentifier(path.node.callee) && 64 | path.node.callee.name === 'extend' && 65 | t.isIdentifier(path.node.arguments[0]) && 66 | path.node.arguments[0].name === 'THREE' 67 | ) { 68 | path.remove() 69 | } 70 | }, 71 | ImportDeclaration(importPath) { 72 | lastImport = importPath 73 | }, 74 | JSXOpeningElement(path) { 75 | // Don't include non-React JSX 76 | // https://github.com/facebook/jsx/issues/13 77 | const { name } = path.node 78 | if (t.isJSXNamespacedName(name)) return 79 | 80 | // Parse identifiers (e.g. , ) 81 | let type = 'property' in name ? name.property.name : name.name 82 | const declaration = path.scope.getBinding(type)?.path.node 83 | if (t.isVariableDeclarator(declaration)) { 84 | if (t.isStringLiteral(declaration.init)) { 85 | // const Comp = 'value' 86 | // 87 | type = declaration.init.value 88 | } else if (t.isTemplateLiteral(declaration.init)) { 89 | // const Comp = `value${var}` 90 | // 91 | type = declaration.init.quasis.map((n) => n.value.cooked).join('\\w*') 92 | } else if (t.isBinaryExpression(declaration.init) || t.isAssignmentExpression(declaration.init)) { 93 | // const Comp = 'left' + 'right' || (left += 'right') 94 | // 95 | type = [declaration.init.left, declaration.init.right] 96 | .map((o) => (t.isStringLiteral(o) ? o.value : '\\w*')) 97 | .join('') 98 | } else if (t.isConditionalExpression(declaration.init)) { 99 | // const Comp = test ? 'consequent' : 'alternate' 100 | // 101 | type = [declaration.init.consequent, declaration.init.alternate] 102 | .map((o) => (t.isStringLiteral(o) ? o.value : '\\w*')) 103 | .join('|') 104 | } else { 105 | // const Comp = var 106 | // 107 | type = '\\w+' 108 | } 109 | } 110 | 111 | // Test type pattern 112 | const pattern = new RegExp(`^${type}$`) 113 | for (const className in THREE) { 114 | const type = className.replace(/^[A-Z]/, (c) => c.toLowerCase()) 115 | if (!imports.has(className) && pattern.test(type)) { 116 | const local = path.scope.generateUidIdentifier(className) 117 | imports.set(className, t.importSpecifier(local, t.identifier(className))) 118 | } 119 | } 120 | }, 121 | Program: { 122 | exit(path) { 123 | // Only mutate JSX 124 | if (!imports.size) return 125 | 126 | // Flatten three.js imports 127 | const THREEImports = t.importDeclaration([...imports.values()], t.stringLiteral('three')) 128 | 129 | // Import extend and call it 130 | const extendImport = t.importSpecifier(path.scope.generateUidIdentifier('extend'), t.identifier('extend')) 131 | const extendCall = t.expressionStatement( 132 | t.callExpression(extendImport.local, [ 133 | t.objectExpression( 134 | (THREEImports.specifiers as t.ImportSpecifier[]).map((importSpecifier) => 135 | t.objectProperty(importSpecifier.imported, importSpecifier.local, false, true), 136 | ), 137 | ), 138 | ]), 139 | ) 140 | 141 | // Flatten R3F imports 142 | const R3FExports = t.importDeclaration([extendImport], t.stringLiteral('@react-three/fiber')) 143 | 144 | // Add statements in reverse order; imports must be top-level 145 | for (const node of [extendCall, R3FExports, THREEImports]) { 146 | if (lastImport) lastImport.insertAfter(node) 147 | else path.unshiftContainer('body', node) 148 | } 149 | }, 150 | }, 151 | }, 152 | } 153 | }) 154 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@ampproject/remapping@^2.2.0": 6 | version "2.2.1" 7 | resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" 8 | integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== 9 | dependencies: 10 | "@jridgewell/gen-mapping" "^0.3.0" 11 | "@jridgewell/trace-mapping" "^0.3.9" 12 | 13 | "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.21.4": 14 | version "7.21.4" 15 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39" 16 | integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== 17 | dependencies: 18 | "@babel/highlight" "^7.18.6" 19 | 20 | "@babel/compat-data@^7.21.5": 21 | version "7.21.7" 22 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.7.tgz#61caffb60776e49a57ba61a88f02bedd8714f6bc" 23 | integrity sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA== 24 | 25 | "@babel/core@^7.21.8": 26 | version "7.21.8" 27 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.8.tgz#2a8c7f0f53d60100ba4c32470ba0281c92aa9aa4" 28 | integrity sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ== 29 | dependencies: 30 | "@ampproject/remapping" "^2.2.0" 31 | "@babel/code-frame" "^7.21.4" 32 | "@babel/generator" "^7.21.5" 33 | "@babel/helper-compilation-targets" "^7.21.5" 34 | "@babel/helper-module-transforms" "^7.21.5" 35 | "@babel/helpers" "^7.21.5" 36 | "@babel/parser" "^7.21.8" 37 | "@babel/template" "^7.20.7" 38 | "@babel/traverse" "^7.21.5" 39 | "@babel/types" "^7.21.5" 40 | convert-source-map "^1.7.0" 41 | debug "^4.1.0" 42 | gensync "^1.0.0-beta.2" 43 | json5 "^2.2.2" 44 | semver "^6.3.0" 45 | 46 | "@babel/generator@^7.21.5": 47 | version "7.21.5" 48 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.5.tgz#c0c0e5449504c7b7de8236d99338c3e2a340745f" 49 | integrity sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w== 50 | dependencies: 51 | "@babel/types" "^7.21.5" 52 | "@jridgewell/gen-mapping" "^0.3.2" 53 | "@jridgewell/trace-mapping" "^0.3.17" 54 | jsesc "^2.5.1" 55 | 56 | "@babel/helper-compilation-targets@^7.21.5": 57 | version "7.21.5" 58 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz#631e6cc784c7b660417421349aac304c94115366" 59 | integrity sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w== 60 | dependencies: 61 | "@babel/compat-data" "^7.21.5" 62 | "@babel/helper-validator-option" "^7.21.0" 63 | browserslist "^4.21.3" 64 | lru-cache "^5.1.1" 65 | semver "^6.3.0" 66 | 67 | "@babel/helper-environment-visitor@^7.21.5": 68 | version "7.21.5" 69 | resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz#c769afefd41d171836f7cb63e295bedf689d48ba" 70 | integrity sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ== 71 | 72 | "@babel/helper-function-name@^7.21.0": 73 | version "7.21.0" 74 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" 75 | integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== 76 | dependencies: 77 | "@babel/template" "^7.20.7" 78 | "@babel/types" "^7.21.0" 79 | 80 | "@babel/helper-hoist-variables@^7.18.6": 81 | version "7.18.6" 82 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" 83 | integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== 84 | dependencies: 85 | "@babel/types" "^7.18.6" 86 | 87 | "@babel/helper-module-imports@^7.21.4": 88 | version "7.21.4" 89 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af" 90 | integrity sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg== 91 | dependencies: 92 | "@babel/types" "^7.21.4" 93 | 94 | "@babel/helper-module-transforms@^7.21.5": 95 | version "7.21.5" 96 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz#d937c82e9af68d31ab49039136a222b17ac0b420" 97 | integrity sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw== 98 | dependencies: 99 | "@babel/helper-environment-visitor" "^7.21.5" 100 | "@babel/helper-module-imports" "^7.21.4" 101 | "@babel/helper-simple-access" "^7.21.5" 102 | "@babel/helper-split-export-declaration" "^7.18.6" 103 | "@babel/helper-validator-identifier" "^7.19.1" 104 | "@babel/template" "^7.20.7" 105 | "@babel/traverse" "^7.21.5" 106 | "@babel/types" "^7.21.5" 107 | 108 | "@babel/helper-plugin-utils@^7.22.5": 109 | version "7.22.5" 110 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" 111 | integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== 112 | 113 | "@babel/helper-simple-access@^7.21.5": 114 | version "7.21.5" 115 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz#d697a7971a5c39eac32c7e63c0921c06c8a249ee" 116 | integrity sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg== 117 | dependencies: 118 | "@babel/types" "^7.21.5" 119 | 120 | "@babel/helper-split-export-declaration@^7.18.6": 121 | version "7.18.6" 122 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" 123 | integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== 124 | dependencies: 125 | "@babel/types" "^7.18.6" 126 | 127 | "@babel/helper-string-parser@^7.21.5": 128 | version "7.21.5" 129 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz#2b3eea65443c6bdc31c22d037c65f6d323b6b2bd" 130 | integrity sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w== 131 | 132 | "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": 133 | version "7.19.1" 134 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" 135 | integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== 136 | 137 | "@babel/helper-validator-option@^7.21.0": 138 | version "7.21.0" 139 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" 140 | integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== 141 | 142 | "@babel/helpers@^7.21.5": 143 | version "7.21.5" 144 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.5.tgz#5bac66e084d7a4d2d9696bdf0175a93f7fb63c08" 145 | integrity sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA== 146 | dependencies: 147 | "@babel/template" "^7.20.7" 148 | "@babel/traverse" "^7.21.5" 149 | "@babel/types" "^7.21.5" 150 | 151 | "@babel/highlight@^7.18.6": 152 | version "7.18.6" 153 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" 154 | integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== 155 | dependencies: 156 | "@babel/helper-validator-identifier" "^7.18.6" 157 | chalk "^2.0.0" 158 | js-tokens "^4.0.0" 159 | 160 | "@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.21.5", "@babel/parser@^7.21.8": 161 | version "7.21.8" 162 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.8.tgz#642af7d0333eab9c0ad70b14ac5e76dbde7bfdf8" 163 | integrity sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA== 164 | 165 | "@babel/runtime@^7.17.8": 166 | version "7.21.5" 167 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.5.tgz#8492dddda9644ae3bda3b45eabe87382caee7200" 168 | integrity sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q== 169 | dependencies: 170 | regenerator-runtime "^0.13.11" 171 | 172 | "@babel/template@^7.20.7": 173 | version "7.20.7" 174 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" 175 | integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== 176 | dependencies: 177 | "@babel/code-frame" "^7.18.6" 178 | "@babel/parser" "^7.20.7" 179 | "@babel/types" "^7.20.7" 180 | 181 | "@babel/traverse@^7.21.5": 182 | version "7.21.5" 183 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.5.tgz#ad22361d352a5154b498299d523cf72998a4b133" 184 | integrity sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw== 185 | dependencies: 186 | "@babel/code-frame" "^7.21.4" 187 | "@babel/generator" "^7.21.5" 188 | "@babel/helper-environment-visitor" "^7.21.5" 189 | "@babel/helper-function-name" "^7.21.0" 190 | "@babel/helper-hoist-variables" "^7.18.6" 191 | "@babel/helper-split-export-declaration" "^7.18.6" 192 | "@babel/parser" "^7.21.5" 193 | "@babel/types" "^7.21.5" 194 | debug "^4.1.0" 195 | globals "^11.1.0" 196 | 197 | "@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.4", "@babel/types@^7.21.5", "@babel/types@^7.3.0": 198 | version "7.21.5" 199 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.5.tgz#18dfbd47c39d3904d5db3d3dc2cc80bedb60e5b6" 200 | integrity sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q== 201 | dependencies: 202 | "@babel/helper-string-parser" "^7.21.5" 203 | "@babel/helper-validator-identifier" "^7.19.1" 204 | to-fast-properties "^2.0.0" 205 | 206 | "@esbuild/android-arm64@0.17.19": 207 | version "0.17.19" 208 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz#bafb75234a5d3d1b690e7c2956a599345e84a2fd" 209 | integrity sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA== 210 | 211 | "@esbuild/android-arm@0.17.19": 212 | version "0.17.19" 213 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz#5898f7832c2298bc7d0ab53701c57beb74d78b4d" 214 | integrity sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A== 215 | 216 | "@esbuild/android-x64@0.17.19": 217 | version "0.17.19" 218 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz#658368ef92067866d95fb268719f98f363d13ae1" 219 | integrity sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww== 220 | 221 | "@esbuild/darwin-arm64@0.17.19": 222 | version "0.17.19" 223 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz#584c34c5991b95d4d48d333300b1a4e2ff7be276" 224 | integrity sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg== 225 | 226 | "@esbuild/darwin-x64@0.17.19": 227 | version "0.17.19" 228 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz#7751d236dfe6ce136cce343dce69f52d76b7f6cb" 229 | integrity sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw== 230 | 231 | "@esbuild/freebsd-arm64@0.17.19": 232 | version "0.17.19" 233 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz#cacd171665dd1d500f45c167d50c6b7e539d5fd2" 234 | integrity sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ== 235 | 236 | "@esbuild/freebsd-x64@0.17.19": 237 | version "0.17.19" 238 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz#0769456eee2a08b8d925d7c00b79e861cb3162e4" 239 | integrity sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ== 240 | 241 | "@esbuild/linux-arm64@0.17.19": 242 | version "0.17.19" 243 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz#38e162ecb723862c6be1c27d6389f48960b68edb" 244 | integrity sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg== 245 | 246 | "@esbuild/linux-arm@0.17.19": 247 | version "0.17.19" 248 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz#1a2cd399c50040184a805174a6d89097d9d1559a" 249 | integrity sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA== 250 | 251 | "@esbuild/linux-ia32@0.17.19": 252 | version "0.17.19" 253 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz#e28c25266b036ce1cabca3c30155222841dc035a" 254 | integrity sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ== 255 | 256 | "@esbuild/linux-loong64@0.17.19": 257 | version "0.17.19" 258 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz#0f887b8bb3f90658d1a0117283e55dbd4c9dcf72" 259 | integrity sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ== 260 | 261 | "@esbuild/linux-mips64el@0.17.19": 262 | version "0.17.19" 263 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz#f5d2a0b8047ea9a5d9f592a178ea054053a70289" 264 | integrity sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A== 265 | 266 | "@esbuild/linux-ppc64@0.17.19": 267 | version "0.17.19" 268 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz#876590e3acbd9fa7f57a2c7d86f83717dbbac8c7" 269 | integrity sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg== 270 | 271 | "@esbuild/linux-riscv64@0.17.19": 272 | version "0.17.19" 273 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz#7f49373df463cd9f41dc34f9b2262d771688bf09" 274 | integrity sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA== 275 | 276 | "@esbuild/linux-s390x@0.17.19": 277 | version "0.17.19" 278 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz#e2afd1afcaf63afe2c7d9ceacd28ec57c77f8829" 279 | integrity sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q== 280 | 281 | "@esbuild/linux-x64@0.17.19": 282 | version "0.17.19" 283 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz#8a0e9738b1635f0c53389e515ae83826dec22aa4" 284 | integrity sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw== 285 | 286 | "@esbuild/netbsd-x64@0.17.19": 287 | version "0.17.19" 288 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz#c29fb2453c6b7ddef9a35e2c18b37bda1ae5c462" 289 | integrity sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q== 290 | 291 | "@esbuild/openbsd-x64@0.17.19": 292 | version "0.17.19" 293 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz#95e75a391403cb10297280d524d66ce04c920691" 294 | integrity sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g== 295 | 296 | "@esbuild/sunos-x64@0.17.19": 297 | version "0.17.19" 298 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz#722eaf057b83c2575937d3ffe5aeb16540da7273" 299 | integrity sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg== 300 | 301 | "@esbuild/win32-arm64@0.17.19": 302 | version "0.17.19" 303 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz#9aa9dc074399288bdcdd283443e9aeb6b9552b6f" 304 | integrity sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag== 305 | 306 | "@esbuild/win32-ia32@0.17.19": 307 | version "0.17.19" 308 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz#95ad43c62ad62485e210f6299c7b2571e48d2b03" 309 | integrity sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw== 310 | 311 | "@esbuild/win32-x64@0.17.19": 312 | version "0.17.19" 313 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz#8cfaf2ff603e9aabb910e9c0558c26cf32744061" 314 | integrity sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA== 315 | 316 | "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": 317 | version "0.3.3" 318 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" 319 | integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== 320 | dependencies: 321 | "@jridgewell/set-array" "^1.0.1" 322 | "@jridgewell/sourcemap-codec" "^1.4.10" 323 | "@jridgewell/trace-mapping" "^0.3.9" 324 | 325 | "@jridgewell/resolve-uri@3.1.0": 326 | version "3.1.0" 327 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" 328 | integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== 329 | 330 | "@jridgewell/set-array@^1.0.1": 331 | version "1.1.2" 332 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" 333 | integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== 334 | 335 | "@jridgewell/sourcemap-codec@1.4.14": 336 | version "1.4.14" 337 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" 338 | integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== 339 | 340 | "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13": 341 | version "1.4.15" 342 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" 343 | integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== 344 | 345 | "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": 346 | version "0.3.18" 347 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" 348 | integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== 349 | dependencies: 350 | "@jridgewell/resolve-uri" "3.1.0" 351 | "@jridgewell/sourcemap-codec" "1.4.14" 352 | 353 | "@react-three/fiber@^8.13.0": 354 | version "8.13.0" 355 | resolved "https://registry.yarnpkg.com/@react-three/fiber/-/fiber-8.13.0.tgz#c9eabe60f2276a66d7ce9a3b927083894f4202f9" 356 | integrity sha512-hPFzFNgikEMyEbL+NpSA7q+UWZxInrrkJldWaCR2w34Fwf20x9p68bsyN0/yn9oM2VlWoJcJjR8hw1tN9AxHuA== 357 | dependencies: 358 | "@babel/runtime" "^7.17.8" 359 | "@types/react-reconciler" "^0.26.7" 360 | its-fine "^1.0.6" 361 | react-reconciler "^0.27.0" 362 | react-use-measure "^2.1.1" 363 | scheduler "^0.21.0" 364 | suspend-react "^0.0.8" 365 | zustand "^3.7.1" 366 | 367 | "@tweenjs/tween.js@~18.6.4": 368 | version "18.6.4" 369 | resolved "https://registry.yarnpkg.com/@tweenjs/tween.js/-/tween.js-18.6.4.tgz#40a3d0a93647124872dec8e0fd1bd5926695b6ca" 370 | integrity sha512-lB9lMjuqjtuJrx7/kOkqQBtllspPIN+96OvTCeJ2j5FEzinoAXTdAMFnDAQT1KVPRlnYfBrqxtqP66vDM40xxQ== 371 | 372 | "@types/babel__core@*": 373 | version "7.20.5" 374 | resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" 375 | integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== 376 | dependencies: 377 | "@babel/parser" "^7.20.7" 378 | "@babel/types" "^7.20.7" 379 | "@types/babel__generator" "*" 380 | "@types/babel__template" "*" 381 | "@types/babel__traverse" "*" 382 | 383 | "@types/babel__core@^7.20.0": 384 | version "7.20.0" 385 | resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.0.tgz#61bc5a4cae505ce98e1e36c5445e4bee060d8891" 386 | integrity sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ== 387 | dependencies: 388 | "@babel/parser" "^7.20.7" 389 | "@babel/types" "^7.20.7" 390 | "@types/babel__generator" "*" 391 | "@types/babel__template" "*" 392 | "@types/babel__traverse" "*" 393 | 394 | "@types/babel__generator@*": 395 | version "7.6.4" 396 | resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" 397 | integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== 398 | dependencies: 399 | "@babel/types" "^7.0.0" 400 | 401 | "@types/babel__helper-plugin-utils@^7.10.3": 402 | version "7.10.3" 403 | resolved "https://registry.yarnpkg.com/@types/babel__helper-plugin-utils/-/babel__helper-plugin-utils-7.10.3.tgz#d2240d11dd7a24624e47e9b3f8a790839d7e90d0" 404 | integrity sha512-FcLBBPXInqKfULB2nvOBskQPcnSMZ0s1Y2q76u9H1NPPWaLcTeq38xBeKfF/RBUECK333qeaqRdYoPSwW7rTNQ== 405 | dependencies: 406 | "@types/babel__core" "*" 407 | 408 | "@types/babel__template@*": 409 | version "7.4.1" 410 | resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" 411 | integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== 412 | dependencies: 413 | "@babel/parser" "^7.1.0" 414 | "@babel/types" "^7.0.0" 415 | 416 | "@types/babel__traverse@*": 417 | version "7.18.5" 418 | resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.5.tgz#c107216842905afafd3b6e774f6f935da6f5db80" 419 | integrity sha512-enCvTL8m/EHS/zIvJno9nE+ndYPh1/oNFzRYRmtUqJICG2VnCSBzMLW5VN2KCQU91f23tsNKR8v7VJJQMatl7Q== 420 | dependencies: 421 | "@babel/types" "^7.3.0" 422 | 423 | "@types/chai-subset@^1.3.3": 424 | version "1.3.3" 425 | resolved "https://registry.yarnpkg.com/@types/chai-subset/-/chai-subset-1.3.3.tgz#97893814e92abd2c534de422cb377e0e0bdaac94" 426 | integrity sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw== 427 | dependencies: 428 | "@types/chai" "*" 429 | 430 | "@types/chai@*", "@types/chai@^4.3.4": 431 | version "4.3.5" 432 | resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.5.tgz#ae69bcbb1bebb68c4ac0b11e9d8ed04526b3562b" 433 | integrity sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng== 434 | 435 | "@types/node@*", "@types/node@^20.1.7": 436 | version "20.1.7" 437 | resolved "https://registry.yarnpkg.com/@types/node/-/node-20.1.7.tgz#ce10c802f7731909d0a44ac9888e8b3a9125eb62" 438 | integrity sha512-WCuw/o4GSwDGMoonES8rcvwsig77dGCMbZDrZr2x4ZZiNW4P/gcoZXe/0twgtobcTkmg9TuKflxYL/DuwDyJzg== 439 | 440 | "@types/prop-types@*": 441 | version "15.7.5" 442 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" 443 | integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== 444 | 445 | "@types/react-reconciler@^0.26.7": 446 | version "0.26.7" 447 | resolved "https://registry.yarnpkg.com/@types/react-reconciler/-/react-reconciler-0.26.7.tgz#0c4643f30821ae057e401b0d9037e03e8e9b2a36" 448 | integrity sha512-mBDYl8x+oyPX/VBb3E638N0B7xG+SPk/EAMcVPeexqus/5aTpTphQi0curhhshOqRrc9t6OPoJfEUkbymse/lQ== 449 | dependencies: 450 | "@types/react" "*" 451 | 452 | "@types/react-reconciler@^0.28.0": 453 | version "0.28.2" 454 | resolved "https://registry.yarnpkg.com/@types/react-reconciler/-/react-reconciler-0.28.2.tgz#f16b0e8cc4748af70ca975eaaace0d79582c71fa" 455 | integrity sha512-8tu6lHzEgYPlfDf/J6GOQdIc+gs+S2yAqlby3zTsB3SP2svlqTYe5fwZNtZyfactP74ShooP2vvi1BOp9ZemWw== 456 | dependencies: 457 | "@types/react" "*" 458 | 459 | "@types/react@*": 460 | version "18.2.6" 461 | resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.6.tgz#5cd53ee0d30ffc193b159d3516c8c8ad2f19d571" 462 | integrity sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA== 463 | dependencies: 464 | "@types/prop-types" "*" 465 | "@types/scheduler" "*" 466 | csstype "^3.0.2" 467 | 468 | "@types/scheduler@*": 469 | version "0.16.3" 470 | resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" 471 | integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== 472 | 473 | "@types/stats.js@*": 474 | version "0.17.0" 475 | resolved "https://registry.yarnpkg.com/@types/stats.js/-/stats.js-0.17.0.tgz#0ed81d48e03b590c24da85540c1d952077a9fe20" 476 | integrity sha512-9w+a7bR8PeB0dCT/HBULU2fMqf6BAzvKbxFboYhmDtDkKPiyXYbjoe2auwsXlEFI7CFNMF1dCv3dFH5Poy9R1w== 477 | 478 | "@types/three@^0.152.0": 479 | version "0.152.0" 480 | resolved "https://registry.yarnpkg.com/@types/three/-/three-0.152.0.tgz#23d8a61461bac007e56dc0c0081fe22ca1e38421" 481 | integrity sha512-9QdaV5bfZEqeQi0xkXLdnoJt7lgYZbppdBAgJSWRicdtZoCYJ34nS2QkdeuzXt+UXExofk4OWqMzdX71HeDOVg== 482 | dependencies: 483 | "@tweenjs/tween.js" "~18.6.4" 484 | "@types/stats.js" "*" 485 | "@types/webxr" "*" 486 | fflate "~0.6.9" 487 | lil-gui "~0.17.0" 488 | 489 | "@types/webxr@*": 490 | version "0.5.2" 491 | resolved "https://registry.yarnpkg.com/@types/webxr/-/webxr-0.5.2.tgz#5d9627b0ffe223aa3b166de7112ac8a9460dc54f" 492 | integrity sha512-szL74BnIcok9m7QwYtVmQ+EdIKwbjPANudfuvDrAF8Cljg9MKUlIoc1w5tjj9PMpeSH3U1Xnx//czQybJ0EfSw== 493 | 494 | "@vitest/expect@0.31.0": 495 | version "0.31.0" 496 | resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-0.31.0.tgz#37ab35d4f75c12826c204f2a0290e0c2e5ef1192" 497 | integrity sha512-Jlm8ZTyp6vMY9iz9Ny9a0BHnCG4fqBa8neCF6Pk/c/6vkUk49Ls6UBlgGAU82QnzzoaUs9E/mUhq/eq9uMOv/g== 498 | dependencies: 499 | "@vitest/spy" "0.31.0" 500 | "@vitest/utils" "0.31.0" 501 | chai "^4.3.7" 502 | 503 | "@vitest/runner@0.31.0": 504 | version "0.31.0" 505 | resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-0.31.0.tgz#ca830405ae4c2744ae5fb7fbe85df81b56430ebc" 506 | integrity sha512-H1OE+Ly7JFeBwnpHTrKyCNm/oZgr+16N4qIlzzqSG/YRQDATBYmJb/KUn3GrZaiQQyL7GwpNHVZxSQd6juLCgw== 507 | dependencies: 508 | "@vitest/utils" "0.31.0" 509 | concordance "^5.0.4" 510 | p-limit "^4.0.0" 511 | pathe "^1.1.0" 512 | 513 | "@vitest/snapshot@0.31.0": 514 | version "0.31.0" 515 | resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-0.31.0.tgz#f59c4bcf0d03f1f494ee09286965e60a1e0cab64" 516 | integrity sha512-5dTXhbHnyUMTMOujZPB0wjFjQ6q5x9c8TvAsSPUNKjp1tVU7i9pbqcKPqntyu2oXtmVxKbuHCqrOd+Ft60r4tg== 517 | dependencies: 518 | magic-string "^0.30.0" 519 | pathe "^1.1.0" 520 | pretty-format "^27.5.1" 521 | 522 | "@vitest/spy@0.31.0": 523 | version "0.31.0" 524 | resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-0.31.0.tgz#98cb19046c0bd2673a73d6c90ee1533d1be82136" 525 | integrity sha512-IzCEQ85RN26GqjQNkYahgVLLkULOxOm5H/t364LG0JYb3Apg0PsYCHLBYGA006+SVRMWhQvHlBBCyuByAMFmkg== 526 | dependencies: 527 | tinyspy "^2.1.0" 528 | 529 | "@vitest/utils@0.31.0": 530 | version "0.31.0" 531 | resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-0.31.0.tgz#d0aae17150b95ebf7afdf4e5db8952ac21610ffa" 532 | integrity sha512-kahaRyLX7GS1urekRXN2752X4gIgOGVX4Wo8eDUGUkTWlGpXzf5ZS6N9RUUS+Re3XEE8nVGqNyxkSxF5HXlGhQ== 533 | dependencies: 534 | concordance "^5.0.4" 535 | loupe "^2.3.6" 536 | pretty-format "^27.5.1" 537 | 538 | acorn-walk@^8.2.0: 539 | version "8.2.0" 540 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" 541 | integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== 542 | 543 | acorn@^8.8.2: 544 | version "8.8.2" 545 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" 546 | integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== 547 | 548 | ansi-regex@^5.0.1: 549 | version "5.0.1" 550 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 551 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 552 | 553 | ansi-styles@^3.2.1: 554 | version "3.2.1" 555 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 556 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 557 | dependencies: 558 | color-convert "^1.9.0" 559 | 560 | ansi-styles@^5.0.0: 561 | version "5.2.0" 562 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" 563 | integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== 564 | 565 | assertion-error@^1.1.0: 566 | version "1.1.0" 567 | resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" 568 | integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== 569 | 570 | blueimp-md5@^2.10.0: 571 | version "2.19.0" 572 | resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.19.0.tgz#b53feea5498dcb53dc6ec4b823adb84b729c4af0" 573 | integrity sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w== 574 | 575 | browserslist@^4.21.3: 576 | version "4.21.5" 577 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" 578 | integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== 579 | dependencies: 580 | caniuse-lite "^1.0.30001449" 581 | electron-to-chromium "^1.4.284" 582 | node-releases "^2.0.8" 583 | update-browserslist-db "^1.0.10" 584 | 585 | cac@^6.7.14: 586 | version "6.7.14" 587 | resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" 588 | integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== 589 | 590 | caniuse-lite@^1.0.30001449: 591 | version "1.0.30001487" 592 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001487.tgz#d882d1a34d89c11aea53b8cdc791931bdab5fe1b" 593 | integrity sha512-83564Z3yWGqXsh2vaH/mhXfEM0wX+NlBCm1jYHOb97TrTWJEmPTccZgeLTPBUUb0PNVo+oomb7wkimZBIERClA== 594 | 595 | chai@^4.3.7: 596 | version "4.3.7" 597 | resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51" 598 | integrity sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A== 599 | dependencies: 600 | assertion-error "^1.1.0" 601 | check-error "^1.0.2" 602 | deep-eql "^4.1.2" 603 | get-func-name "^2.0.0" 604 | loupe "^2.3.1" 605 | pathval "^1.1.1" 606 | type-detect "^4.0.5" 607 | 608 | chalk@^2.0.0: 609 | version "2.4.2" 610 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 611 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 612 | dependencies: 613 | ansi-styles "^3.2.1" 614 | escape-string-regexp "^1.0.5" 615 | supports-color "^5.3.0" 616 | 617 | check-error@^1.0.2: 618 | version "1.0.2" 619 | resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" 620 | integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== 621 | 622 | color-convert@^1.9.0: 623 | version "1.9.3" 624 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 625 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 626 | dependencies: 627 | color-name "1.1.3" 628 | 629 | color-name@1.1.3: 630 | version "1.1.3" 631 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 632 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== 633 | 634 | concordance@^5.0.4: 635 | version "5.0.4" 636 | resolved "https://registry.yarnpkg.com/concordance/-/concordance-5.0.4.tgz#9896073261adced72f88d60e4d56f8efc4bbbbd2" 637 | integrity sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw== 638 | dependencies: 639 | date-time "^3.1.0" 640 | esutils "^2.0.3" 641 | fast-diff "^1.2.0" 642 | js-string-escape "^1.0.1" 643 | lodash "^4.17.15" 644 | md5-hex "^3.0.1" 645 | semver "^7.3.2" 646 | well-known-symbols "^2.0.0" 647 | 648 | convert-source-map@^1.7.0: 649 | version "1.9.0" 650 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" 651 | integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== 652 | 653 | csstype@^3.0.2: 654 | version "3.1.2" 655 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" 656 | integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== 657 | 658 | date-time@^3.1.0: 659 | version "3.1.0" 660 | resolved "https://registry.yarnpkg.com/date-time/-/date-time-3.1.0.tgz#0d1e934d170579f481ed8df1e2b8ff70ee845e1e" 661 | integrity sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg== 662 | dependencies: 663 | time-zone "^1.0.0" 664 | 665 | debounce@^1.2.1: 666 | version "1.2.1" 667 | resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" 668 | integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== 669 | 670 | debug@^4.1.0, debug@^4.3.4: 671 | version "4.3.4" 672 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 673 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 674 | dependencies: 675 | ms "2.1.2" 676 | 677 | deep-eql@^4.1.2: 678 | version "4.1.3" 679 | resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" 680 | integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== 681 | dependencies: 682 | type-detect "^4.0.0" 683 | 684 | electron-to-chromium@^1.4.284: 685 | version "1.4.397" 686 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.397.tgz#82a7e26c657538d59bb713b97ac22f97ea3a90ea" 687 | integrity sha512-jwnPxhh350Q/aMatQia31KAIQdhEsYS0fFZ0BQQlN9tfvOEwShu6ZNwI4kL/xBabjcB/nTy6lSt17kNIluJZ8Q== 688 | 689 | esbuild@^0.17.5: 690 | version "0.17.19" 691 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.19.tgz#087a727e98299f0462a3d0bcdd9cd7ff100bd955" 692 | integrity sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw== 693 | optionalDependencies: 694 | "@esbuild/android-arm" "0.17.19" 695 | "@esbuild/android-arm64" "0.17.19" 696 | "@esbuild/android-x64" "0.17.19" 697 | "@esbuild/darwin-arm64" "0.17.19" 698 | "@esbuild/darwin-x64" "0.17.19" 699 | "@esbuild/freebsd-arm64" "0.17.19" 700 | "@esbuild/freebsd-x64" "0.17.19" 701 | "@esbuild/linux-arm" "0.17.19" 702 | "@esbuild/linux-arm64" "0.17.19" 703 | "@esbuild/linux-ia32" "0.17.19" 704 | "@esbuild/linux-loong64" "0.17.19" 705 | "@esbuild/linux-mips64el" "0.17.19" 706 | "@esbuild/linux-ppc64" "0.17.19" 707 | "@esbuild/linux-riscv64" "0.17.19" 708 | "@esbuild/linux-s390x" "0.17.19" 709 | "@esbuild/linux-x64" "0.17.19" 710 | "@esbuild/netbsd-x64" "0.17.19" 711 | "@esbuild/openbsd-x64" "0.17.19" 712 | "@esbuild/sunos-x64" "0.17.19" 713 | "@esbuild/win32-arm64" "0.17.19" 714 | "@esbuild/win32-ia32" "0.17.19" 715 | "@esbuild/win32-x64" "0.17.19" 716 | 717 | escalade@^3.1.1: 718 | version "3.1.1" 719 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 720 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 721 | 722 | escape-string-regexp@^1.0.5: 723 | version "1.0.5" 724 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 725 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== 726 | 727 | esutils@^2.0.3: 728 | version "2.0.3" 729 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 730 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 731 | 732 | fast-diff@^1.2.0: 733 | version "1.2.0" 734 | resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" 735 | integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== 736 | 737 | fflate@~0.6.9: 738 | version "0.6.10" 739 | resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.6.10.tgz#5f40f9659205936a2d18abf88b2e7781662b6d43" 740 | integrity sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg== 741 | 742 | fsevents@~2.3.2: 743 | version "2.3.2" 744 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 745 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 746 | 747 | gensync@^1.0.0-beta.2: 748 | version "1.0.0-beta.2" 749 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" 750 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== 751 | 752 | get-func-name@^2.0.0: 753 | version "2.0.0" 754 | resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" 755 | integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== 756 | 757 | globals@^11.1.0: 758 | version "11.12.0" 759 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 760 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 761 | 762 | has-flag@^3.0.0: 763 | version "3.0.0" 764 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 765 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== 766 | 767 | its-fine@^1.0.6: 768 | version "1.1.1" 769 | resolved "https://registry.yarnpkg.com/its-fine/-/its-fine-1.1.1.tgz#e74b93fddd487441f978a50f64f0f5af4d2fc38e" 770 | integrity sha512-v1Ia1xl20KbuSGlwoaGsW0oxsw8Be+TrXweidxD9oT/1lAh6O3K3/GIM95Tt6WCiv6W+h2M7RB1TwdoAjQyyKw== 771 | dependencies: 772 | "@types/react-reconciler" "^0.28.0" 773 | 774 | js-string-escape@^1.0.1: 775 | version "1.0.1" 776 | resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" 777 | integrity sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg== 778 | 779 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: 780 | version "4.0.0" 781 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 782 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 783 | 784 | jsesc@^2.5.1: 785 | version "2.5.2" 786 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 787 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 788 | 789 | json5@^2.2.2: 790 | version "2.2.3" 791 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" 792 | integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== 793 | 794 | jsonc-parser@^3.2.0: 795 | version "3.2.0" 796 | resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" 797 | integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== 798 | 799 | lil-gui@~0.17.0: 800 | version "0.17.0" 801 | resolved "https://registry.yarnpkg.com/lil-gui/-/lil-gui-0.17.0.tgz#b41ae55d0023fcd9185f7395a218db0f58189663" 802 | integrity sha512-MVBHmgY+uEbmJNApAaPbtvNh1RCAeMnKym82SBjtp5rODTYKWtM+MXHCifLe2H2Ti1HuBGBtK/5SyG4ShQ3pUQ== 803 | 804 | local-pkg@^0.4.3: 805 | version "0.4.3" 806 | resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963" 807 | integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== 808 | 809 | lodash@^4.17.15: 810 | version "4.17.21" 811 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 812 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 813 | 814 | loose-envify@^1.1.0: 815 | version "1.4.0" 816 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 817 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 818 | dependencies: 819 | js-tokens "^3.0.0 || ^4.0.0" 820 | 821 | loupe@^2.3.1, loupe@^2.3.6: 822 | version "2.3.6" 823 | resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53" 824 | integrity sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA== 825 | dependencies: 826 | get-func-name "^2.0.0" 827 | 828 | lru-cache@^5.1.1: 829 | version "5.1.1" 830 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" 831 | integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== 832 | dependencies: 833 | yallist "^3.0.2" 834 | 835 | lru-cache@^6.0.0: 836 | version "6.0.0" 837 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 838 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 839 | dependencies: 840 | yallist "^4.0.0" 841 | 842 | magic-string@^0.30.0: 843 | version "0.30.0" 844 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.0.tgz#fd58a4748c5c4547338a424e90fa5dd17f4de529" 845 | integrity sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ== 846 | dependencies: 847 | "@jridgewell/sourcemap-codec" "^1.4.13" 848 | 849 | md5-hex@^3.0.1: 850 | version "3.0.1" 851 | resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-3.0.1.tgz#be3741b510591434b2784d79e556eefc2c9a8e5c" 852 | integrity sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw== 853 | dependencies: 854 | blueimp-md5 "^2.10.0" 855 | 856 | mlly@^1.2.0: 857 | version "1.2.1" 858 | resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.2.1.tgz#cd50151f5712b651c5c379085157bcdff661133b" 859 | integrity sha512-1aMEByaWgBPEbWV2BOPEMySRrzl7rIHXmQxam4DM8jVjalTQDjpN2ZKOLUrwyhfZQO7IXHml2StcHMhooDeEEQ== 860 | dependencies: 861 | acorn "^8.8.2" 862 | pathe "^1.1.0" 863 | pkg-types "^1.0.3" 864 | ufo "^1.1.2" 865 | 866 | ms@2.1.2: 867 | version "2.1.2" 868 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 869 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 870 | 871 | nanoid@^3.3.6: 872 | version "3.3.6" 873 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" 874 | integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== 875 | 876 | node-releases@^2.0.8: 877 | version "2.0.10" 878 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" 879 | integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== 880 | 881 | p-limit@^4.0.0: 882 | version "4.0.0" 883 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" 884 | integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== 885 | dependencies: 886 | yocto-queue "^1.0.0" 887 | 888 | pathe@^1.1.0: 889 | version "1.1.0" 890 | resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.0.tgz#e2e13f6c62b31a3289af4ba19886c230f295ec03" 891 | integrity sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w== 892 | 893 | pathval@^1.1.1: 894 | version "1.1.1" 895 | resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" 896 | integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== 897 | 898 | picocolors@^1.0.0: 899 | version "1.0.0" 900 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 901 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 902 | 903 | pkg-types@^1.0.3: 904 | version "1.0.3" 905 | resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.0.3.tgz#988b42ab19254c01614d13f4f65a2cfc7880f868" 906 | integrity sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A== 907 | dependencies: 908 | jsonc-parser "^3.2.0" 909 | mlly "^1.2.0" 910 | pathe "^1.1.0" 911 | 912 | postcss@^8.4.23: 913 | version "8.4.23" 914 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.23.tgz#df0aee9ac7c5e53e1075c24a3613496f9e6552ab" 915 | integrity sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA== 916 | dependencies: 917 | nanoid "^3.3.6" 918 | picocolors "^1.0.0" 919 | source-map-js "^1.0.2" 920 | 921 | pretty-format@^27.5.1: 922 | version "27.5.1" 923 | resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" 924 | integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== 925 | dependencies: 926 | ansi-regex "^5.0.1" 927 | ansi-styles "^5.0.0" 928 | react-is "^17.0.1" 929 | 930 | react-is@^17.0.1: 931 | version "17.0.2" 932 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" 933 | integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== 934 | 935 | react-reconciler@^0.27.0: 936 | version "0.27.0" 937 | resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.27.0.tgz#360124fdf2d76447c7491ee5f0e04503ed9acf5b" 938 | integrity sha512-HmMDKciQjYmBRGuuhIaKA1ba/7a+UsM5FzOZsMO2JYHt9Jh8reCb7j1eDC95NOyUlKM9KRyvdx0flBuDvYSBoA== 939 | dependencies: 940 | loose-envify "^1.1.0" 941 | scheduler "^0.21.0" 942 | 943 | react-use-measure@^2.1.1: 944 | version "2.1.1" 945 | resolved "https://registry.yarnpkg.com/react-use-measure/-/react-use-measure-2.1.1.tgz#5824537f4ee01c9469c45d5f7a8446177c6cc4ba" 946 | integrity sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig== 947 | dependencies: 948 | debounce "^1.2.1" 949 | 950 | regenerator-runtime@^0.13.11: 951 | version "0.13.11" 952 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" 953 | integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== 954 | 955 | rollup@^3.21.0: 956 | version "3.21.8" 957 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.21.8.tgz#fc768008fe2c953f18210370fd70fe1ffff59e2c" 958 | integrity sha512-SSFV2T2fWtQ/vvBip85u2Nr0GNKireabH9d7nXswBg+XSH+jbVDSYptRAEbCEsquhs503rpPA9POYAp0/Jhasw== 959 | optionalDependencies: 960 | fsevents "~2.3.2" 961 | 962 | scheduler@^0.21.0: 963 | version "0.21.0" 964 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.21.0.tgz#6fd2532ff5a6d877b6edb12f00d8ab7e8f308820" 965 | integrity sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ== 966 | dependencies: 967 | loose-envify "^1.1.0" 968 | 969 | semver@^6.3.0: 970 | version "6.3.0" 971 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 972 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 973 | 974 | semver@^7.3.2: 975 | version "7.5.1" 976 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" 977 | integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== 978 | dependencies: 979 | lru-cache "^6.0.0" 980 | 981 | siginfo@^2.0.0: 982 | version "2.0.0" 983 | resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" 984 | integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== 985 | 986 | source-map-js@^1.0.2: 987 | version "1.0.2" 988 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" 989 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== 990 | 991 | stackback@0.0.2: 992 | version "0.0.2" 993 | resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" 994 | integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== 995 | 996 | std-env@^3.3.2: 997 | version "3.3.3" 998 | resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.3.3.tgz#a54f06eb245fdcfef53d56f3c0251f1d5c3d01fe" 999 | integrity sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg== 1000 | 1001 | strip-literal@^1.0.1: 1002 | version "1.0.1" 1003 | resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-1.0.1.tgz#0115a332710c849b4e46497891fb8d585e404bd2" 1004 | integrity sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q== 1005 | dependencies: 1006 | acorn "^8.8.2" 1007 | 1008 | supports-color@^5.3.0: 1009 | version "5.5.0" 1010 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1011 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1012 | dependencies: 1013 | has-flag "^3.0.0" 1014 | 1015 | suspend-react@^0.0.8: 1016 | version "0.0.8" 1017 | resolved "https://registry.yarnpkg.com/suspend-react/-/suspend-react-0.0.8.tgz#b0740c1386b4eb652f17affe4339915ee268bd31" 1018 | integrity sha512-ZC3r8Hu1y0dIThzsGw0RLZplnX9yXwfItcvaIzJc2VQVi8TGyGDlu92syMB5ulybfvGLHAI5Ghzlk23UBPF8xg== 1019 | 1020 | three@^0.152.2: 1021 | version "0.152.2" 1022 | resolved "https://registry.yarnpkg.com/three/-/three-0.152.2.tgz#2ee0f2c504d31a4bc29b45495c12bded9fda7bfc" 1023 | integrity sha512-Ff9zIpSfkkqcBcpdiFo2f35vA9ZucO+N8TNacJOqaEE6DrB0eufItVMib8bK8Pcju/ZNT6a7blE1GhTpkdsILw== 1024 | 1025 | time-zone@^1.0.0: 1026 | version "1.0.0" 1027 | resolved "https://registry.yarnpkg.com/time-zone/-/time-zone-1.0.0.tgz#99c5bf55958966af6d06d83bdf3800dc82faec5d" 1028 | integrity sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA== 1029 | 1030 | tinybench@^2.4.0: 1031 | version "2.5.0" 1032 | resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.5.0.tgz#4711c99bbf6f3e986f67eb722fed9cddb3a68ba5" 1033 | integrity sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA== 1034 | 1035 | tinypool@^0.5.0: 1036 | version "0.5.0" 1037 | resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.5.0.tgz#3861c3069bf71e4f1f5aa2d2e6b3aaacc278961e" 1038 | integrity sha512-paHQtnrlS1QZYKF/GnLoOM/DN9fqaGOFbCbxzAhwniySnzl9Ebk8w73/dd34DAhe/obUbPAOldTyYXQZxnPBPQ== 1039 | 1040 | tinyspy@^2.1.0: 1041 | version "2.1.0" 1042 | resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-2.1.0.tgz#bd6875098f988728e6456cfd5ab8cc06498ecdeb" 1043 | integrity sha512-7eORpyqImoOvkQJCSkL0d0mB4NHHIFAy4b1u8PHdDa7SjGS2njzl6/lyGoZLm+eyYEtlUmFGE0rFj66SWxZgQQ== 1044 | 1045 | to-fast-properties@^2.0.0: 1046 | version "2.0.0" 1047 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 1048 | integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== 1049 | 1050 | type-detect@^4.0.0, type-detect@^4.0.5: 1051 | version "4.0.8" 1052 | resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" 1053 | integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== 1054 | 1055 | typescript@^5.0.4: 1056 | version "5.0.4" 1057 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b" 1058 | integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw== 1059 | 1060 | ufo@^1.1.2: 1061 | version "1.1.2" 1062 | resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.1.2.tgz#d0d9e0fa09dece0c31ffd57bd363f030a35cfe76" 1063 | integrity sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ== 1064 | 1065 | update-browserslist-db@^1.0.10: 1066 | version "1.0.11" 1067 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" 1068 | integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== 1069 | dependencies: 1070 | escalade "^3.1.1" 1071 | picocolors "^1.0.0" 1072 | 1073 | vite-node@0.31.0: 1074 | version "0.31.0" 1075 | resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.31.0.tgz#8794a98f21b0cf2394bfd2aaa5fc85d2c42be084" 1076 | integrity sha512-8x1x1LNuPvE2vIvkSB7c1mApX5oqlgsxzHQesYF7l5n1gKrEmrClIiZuOFbFDQcjLsmcWSwwmrWrcGWm9Fxc/g== 1077 | dependencies: 1078 | cac "^6.7.14" 1079 | debug "^4.3.4" 1080 | mlly "^1.2.0" 1081 | pathe "^1.1.0" 1082 | picocolors "^1.0.0" 1083 | vite "^3.0.0 || ^4.0.0" 1084 | 1085 | "vite@^3.0.0 || ^4.0.0", vite@^4.3.7: 1086 | version "4.3.7" 1087 | resolved "https://registry.yarnpkg.com/vite/-/vite-4.3.7.tgz#04f98ab0f4689490545b2f6fa0515e95072bb298" 1088 | integrity sha512-MTIFpbIm9v7Hh5b0wSBgkcWzSBz7SAa6K/cBTwS4kUiQJfQLFlZZRJRQgqunCVzhTPCk674tW+0Qaqh3Q00dBg== 1089 | dependencies: 1090 | esbuild "^0.17.5" 1091 | postcss "^8.4.23" 1092 | rollup "^3.21.0" 1093 | optionalDependencies: 1094 | fsevents "~2.3.2" 1095 | 1096 | vitest@^0.31.0: 1097 | version "0.31.0" 1098 | resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.31.0.tgz#133e98f779aa81afbc7ee1fcb385a0c458b8c2c8" 1099 | integrity sha512-JwWJS9p3GU9GxkG7eBSmr4Q4x4bvVBSswaCFf1PBNHiPx00obfhHRJfgHcnI0ffn+NMlIh9QGvG75FlaIBdKGA== 1100 | dependencies: 1101 | "@types/chai" "^4.3.4" 1102 | "@types/chai-subset" "^1.3.3" 1103 | "@types/node" "*" 1104 | "@vitest/expect" "0.31.0" 1105 | "@vitest/runner" "0.31.0" 1106 | "@vitest/snapshot" "0.31.0" 1107 | "@vitest/spy" "0.31.0" 1108 | "@vitest/utils" "0.31.0" 1109 | acorn "^8.8.2" 1110 | acorn-walk "^8.2.0" 1111 | cac "^6.7.14" 1112 | chai "^4.3.7" 1113 | concordance "^5.0.4" 1114 | debug "^4.3.4" 1115 | local-pkg "^0.4.3" 1116 | magic-string "^0.30.0" 1117 | pathe "^1.1.0" 1118 | picocolors "^1.0.0" 1119 | std-env "^3.3.2" 1120 | strip-literal "^1.0.1" 1121 | tinybench "^2.4.0" 1122 | tinypool "^0.5.0" 1123 | vite "^3.0.0 || ^4.0.0" 1124 | vite-node "0.31.0" 1125 | why-is-node-running "^2.2.2" 1126 | 1127 | well-known-symbols@^2.0.0: 1128 | version "2.0.0" 1129 | resolved "https://registry.yarnpkg.com/well-known-symbols/-/well-known-symbols-2.0.0.tgz#e9c7c07dbd132b7b84212c8174391ec1f9871ba5" 1130 | integrity sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q== 1131 | 1132 | why-is-node-running@^2.2.2: 1133 | version "2.2.2" 1134 | resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.2.2.tgz#4185b2b4699117819e7154594271e7e344c9973e" 1135 | integrity sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA== 1136 | dependencies: 1137 | siginfo "^2.0.0" 1138 | stackback "0.0.2" 1139 | 1140 | yallist@^3.0.2: 1141 | version "3.1.1" 1142 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" 1143 | integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== 1144 | 1145 | yallist@^4.0.0: 1146 | version "4.0.0" 1147 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 1148 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 1149 | 1150 | yocto-queue@^1.0.0: 1151 | version "1.0.0" 1152 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" 1153 | integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== 1154 | 1155 | zustand@^3.7.1: 1156 | version "3.7.2" 1157 | resolved "https://registry.yarnpkg.com/zustand/-/zustand-3.7.2.tgz#7b44c4f4a5bfd7a8296a3957b13e1c346f42514d" 1158 | integrity sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA== 1159 | --------------------------------------------------------------------------------