├── .eslintignore
├── .eslintrc.js
├── .gitignore
├── .prettierignore
├── .prettierrc
├── README.md
├── index.html
├── package-lock.json
├── package.json
├── public
└── icons
│ ├── back.svg
│ └── download.svg
├── src
├── App.jsx
├── canvas
│ ├── Box.jsx
│ ├── Canvas.jsx
│ └── Model.jsx
├── dom
│ ├── Dom
│ │ ├── Dom.jsx
│ │ └── Dom.styles.jsx
│ └── Snapshot
│ │ ├── Snapshot.jsx
│ │ └── Snapshot.styles.jsx
├── favicon.svg
├── helpers
│ ├── GradientMaterial.js
│ ├── RaycastOnSurface.jsx
│ ├── disposeAll.js
│ ├── getFullScreen.js
│ ├── store.js
│ ├── useCameraPostProcess.jsx
│ └── usePostprocess.jsx
├── index.css
├── main.jsx
└── shaders
│ ├── outline
│ └── outline.js
│ ├── shaderCamera.jsx
│ └── shaderFbo.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 | node_modules
2 | .eslintcache
3 | dist/*
4 | .DS_Store
--------------------------------------------------------------------------------
/.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 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # React-three-fiber 8thwall Starter
2 |
3 | Created by the [utsubo](https://www.utsubo.co/) studio.
4 |
5 | ## Setup project
6 |
7 | In index.html
8 |
9 | replace XXXXXX by your App key
10 |
11 | ## Add your domain for smartphone authorization
12 |
13 | go to https://www.8thwall.com/ and go to your project's dashboard
14 |
15 | Setup Domains ->
16 | Once you did a yarn dev you will see "Network: https://192.168.x.x:3000/", add this to your authorized domains
17 |
18 | ## Debug (Android)
19 |
20 | - Plug device to your computer with USB Debug mode in developer mode
21 | - Go to https://192.168.x.x:3000/ and authorize https on your smartphone
22 | - chrome://inspect/#devices -> inspect
23 | - You can directly debug on the chrome inspector
24 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Vite App
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "utsubo-8thwall",
3 | "version": "0.0.0",
4 | "scripts": {
5 | "dev": "vite --host 0.0.0.0",
6 | "build": "vite build",
7 | "serve": "vite preview"
8 | },
9 | "dependencies": {
10 | "@react-spring/three": "^9.2.4",
11 | "@react-three/drei": "^7.5.0",
12 | "@react-three/fiber": "^7.0.6",
13 | "@use-gesture/react": "^10.0.0-beta.22",
14 | "load-script": "^1.0.0",
15 | "react": "^17.0.2",
16 | "react-dom": "^17.0.2",
17 | "short-uuid": "^4.2.0",
18 | "styled-components": "^5.3.1",
19 | "three": "^0.132.2",
20 | "vite-react-jsx": "1.1.2",
21 | "zustand": "^3.5.10"
22 | },
23 | "devDependencies": {
24 | "@nabla/vite-plugin-eslint": "^1.3.1",
25 | "@vitejs/plugin-react-refresh": "1.3.6",
26 | "add": "^2.0.6",
27 | "eslint": "^7.32.0",
28 | "eslint-plugin-react": "^7.24.0",
29 | "fs": "^0.0.1-security",
30 | "vite": "2.4.4",
31 | "yarn": "^1.22.11"
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/public/icons/back.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/public/icons/download.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/App.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Canvas from './canvas/Canvas'
3 | import Dom from './dom/Dom/Dom'
4 | import { createGlobalStyle } from 'styled-components'
5 |
6 | const GlobalStyle = createGlobalStyle`
7 | html,
8 | body,
9 | #root,
10 | canvas {
11 | position: fixed;
12 | width: 100%;
13 | height: 100%;
14 | margin: 0;
15 | padding: 0;
16 | top: 0;
17 | left: 0;
18 | overflow: hidden;
19 | }
20 | #root {
21 | z-index: 2;
22 | }
23 | * {
24 | user-select: none;
25 | }
26 | html, body {touch-action: none;}
27 |
28 | #requestingCameraPermissions {
29 | color: rgb(25, 17, 11);
30 | background-color: #f6f5f3;
31 | font-family: "Louis Vuitton Web","Helvetica Neue","Helvetica",Arial,sans-serif !important;
32 | box-shadow: 0 1px 0 0 #eae8e4 !important;
33 | font-size: 1rem;
34 | letter-spacing: .025rem;
35 | line-height: 2rem;
36 | font-weight: 300;
37 | }
38 | #loadBackground {
39 | background-color: rgba(0, 0,0, .3) !important;
40 | }
41 |
42 | #requestingCameraIcon {
43 | display: none;
44 | }
45 |
46 | #requestingCameraIcon {
47 | /* This changes the image from white to black */
48 | filter: invert(1);
49 | }
50 |
51 | .prompt-box-8w {
52 | background-color: #fff !important;
53 | border-radius: 0 !important;
54 | color: rgb(25, 17, 11) !important;
55 | width: calc(100% - 56px);
56 | font-family: "Louis Vuitton Web","Helvetica Neue","Helvetica",Arial,sans-serif !important;
57 | box-shadow: none !important;
58 | padding: 14px;
59 | font-size: 14px;
60 | strong {
61 | font-size: 20px;
62 | }
63 |
64 | }
65 |
66 | .prompt-button-8w {
67 | background-color: #fff !important;
68 | color: rgb(25, 17, 11) !important;
69 | box-shadow: inset 0 0 0 1px rgb(25, 17, 11) !important;
70 | border-radius: 0 !important;
71 | font-size: 14px;
72 | letter-spacing: .05rem;
73 | line-height: 1rem;
74 | font-weight: 500;
75 | white-space: nowrap;
76 | margin: 7px;
77 | }
78 |
79 | .button-primary-8w {
80 | background-color: rgb(25, 17, 11) !important;
81 | border-radius: 0 !important;
82 | color: #fff !important;
83 | font-size: 14px;
84 | padding: 14px;
85 | font-size: .8125rem;
86 | letter-spacing: .05rem;
87 | line-height: 1rem;
88 | font-weight: 500;
89 | white-space: nowrap;
90 | margin: 7px;
91 | }
92 | `
93 |
94 | function App() {
95 | let inDom = false
96 | const observer = new MutationObserver(() => {
97 | if (document.querySelector('.prompt-box-8w')) {
98 | if (!inDom) {
99 | document.querySelector('.prompt-box-8w p').innerHTML = 'UTSUBO AR
Press Approve to continue.'
100 | document.querySelector('.prompt-button-8w').innerHTML = 'Deny'
101 | document.querySelector('.button-primary-8w').innerHTML = 'Approve'
102 | }
103 | inDom = true
104 | } else if (inDom) {
105 | inDom = false
106 | observer.disconnect()
107 | }
108 | })
109 | observer.observe(document.body, { childList: true })
110 | return (
111 | <>
112 |
113 |
114 |
115 | >
116 | )
117 | }
118 |
119 | export default App
120 |
--------------------------------------------------------------------------------
/src/canvas/Box.jsx:
--------------------------------------------------------------------------------
1 | import * as THREE from 'three'
2 | import { useFrame } from '@react-three/fiber'
3 | import { useRef } from 'react'
4 | import { AttachRaycastOnSurface } from '../helpers/RaycastOnSurface'
5 |
6 | const Box = () => {
7 | const refBox = useRef(null)
8 |
9 | useFrame((_, delta) => {
10 | refBox.current.rotation.x = refBox.current.rotation.y += delta
11 | })
12 |
13 | return (
14 | <>
15 |
16 |
17 |
18 | {}}>
19 |
20 |
21 |
22 |
23 |
24 |
25 | >
26 | )
27 | }
28 |
29 | export default Box
30 |
--------------------------------------------------------------------------------
/src/canvas/Canvas.jsx:
--------------------------------------------------------------------------------
1 | import React, { useEffect, useLayoutEffect, useRef, useState } from 'react'
2 | import * as THREE from 'three'
3 | import { Canvas, useThree } from '@react-three/fiber'
4 | import useStore from '../helpers/store'
5 | import Model from './Model'
6 | import fragment from '../shaders/shaderCamera'
7 |
8 | const App8thWall = (props) => {
9 | const { scene, camera } = props
10 | const set = useThree((state) => state.set)
11 |
12 | // ref to root of our ThreeJS app
13 | const appRef = useRef()
14 |
15 | // add our app to 8thWall's ThreeJS scene
16 | useEffect(() => {
17 | if (scene) {
18 | scene.add(appRef.current)
19 | }
20 | }, [scene])
21 |
22 | // set 8thWall's ThreeJS camera as default camera of
23 | // react-three-fiber
24 | useEffect(() => {
25 | if (camera) {
26 | set({
27 | camera: camera,
28 | })
29 | }
30 | }, [camera, set])
31 |
32 | // useCameraPostProcess()
33 |
34 | return (
35 | <>
36 |
37 |
38 |
39 | >
40 | )
41 | }
42 |
43 | const XRAvailable = () => {
44 | const { scene, camera, renderer } = window.XR8.Threejs.xrScene()
45 |
46 | window.XR8.XrController.updateCameraProjectionMatrix({
47 | origin: camera.position,
48 | facing: camera.quaternion,
49 | })
50 |
51 | return
52 | }
53 |
54 | const CanvasComp = () => {
55 | const ref = useRef(null)
56 | const [xr8Ready, setxr8Ready] = useState(false)
57 | const dom = useStore((s) => s.dom)
58 |
59 | let canvasEl = document.getElementsByTagName('canvas')[0]
60 |
61 | useLayoutEffect(() => {
62 | const spamTryStart = setInterval(() => {
63 | const { XR8, XRExtras } = window
64 | // console.log(XR8)
65 | if (XR8 && !xr8Ready) {
66 | clearInterval(spamTryStart)
67 |
68 | XR8.GlTextureRenderer.configure({
69 | fragmentSource: fragment,
70 | }) // postprocess
71 |
72 | window.THREE = THREE
73 | XR8.addCameraPipelineModules([
74 | XR8.GlTextureRenderer.pipelineModule(), // Draws the camera feed.
75 | XR8.Threejs.pipelineModule(), // Creates a ThreeJS AR Scene.
76 | XR8.XrController.pipelineModule(), // Enables SLAM tracking.
77 | XR8.CanvasScreenshot.pipelineModule(),
78 | XRExtras.AlmostThere.pipelineModule(), // Detects unsupported browsers and gives hints.
79 | XRExtras.FullWindowCanvas.pipelineModule(), // Modifies the canvas to fill the window.
80 | XRExtras.Loading.pipelineModule(), // Manages the loading screen on startup.
81 | XRExtras.RuntimeError.pipelineModule(), // Shows an error image on runtime error.
82 |
83 | // Custom pipeline modules.
84 | ])
85 | XR8.addCameraPipelineModule({
86 | name: 'callbackmount',
87 | onStart: () => {
88 | console.log('isLOADED!')
89 | setxr8Ready(true)
90 | },
91 | })
92 | XR8.XrController.configure({ enableLighting: false, enableWorldPoints: false, disableWorldTracking: false })
93 | XR8.run({ canvas: canvasEl, webgl2: false })
94 | }
95 | }, 100)
96 | }, [])
97 |
98 | return (
99 |
116 | )
117 | }
118 |
119 | export default CanvasComp
120 |
--------------------------------------------------------------------------------
/src/canvas/Model.jsx:
--------------------------------------------------------------------------------
1 | import React, { Suspense, useRef } from 'react'
2 | import { RayCastSurface } from '../helpers/RaycastOnSurface.jsx'
3 | import Box from './Box.jsx'
4 |
5 | export default function Model(props) {
6 | const group = useRef()
7 | return (
8 | <>
9 |
10 | {
15 | event.stopPropagation()
16 | }}>
17 |
18 |
19 |
20 |
21 | >
22 | )
23 | }
24 |
--------------------------------------------------------------------------------
/src/dom/Dom/Dom.jsx:
--------------------------------------------------------------------------------
1 | import { useEffect, useRef } from 'react'
2 | import useStore from '../../helpers/store'
3 | import { Snapshot } from '../Snapshot/Snapshot'
4 | import * as Style from './Dom.styles'
5 | import { useGesture } from '@use-gesture/react'
6 |
7 | const gestureOptions = {
8 | drag: {
9 | filterTaps: true,
10 | pointer: {
11 | touch: false,
12 | },
13 | },
14 | pinch: {
15 | scaleBounds: {
16 | min: 0.1,
17 | max: 10,
18 | },
19 | pointer: {
20 | touch: false,
21 | },
22 | },
23 | }
24 |
25 | const Dom = () => {
26 | const ref = useRef(null)
27 |
28 | useEffect(() => {
29 | useStore.setState({ dom: ref })
30 | }, [])
31 |
32 | const bind = useGesture(
33 | {
34 | onPinch: ({ offset }) => {
35 | const [scale] = offset
36 | useStore.setState({ setScale: scale, setPos: false })
37 | },
38 | onDrag: ({ xy }) => {
39 | useStore.setState({ setPos: true })
40 | useStore.setState({ mousePos: { x: (xy[0] / window.innerWidth) * 2 - 1, y: -(xy[1] / window.innerHeight) * 2 + 1 } })
41 | },
42 | onTouchEnd: () => {
43 | useStore.setState({ setPos: false })
44 | },
45 | },
46 | {
47 | ...gestureOptions,
48 | },
49 | )
50 | return (
51 | <>
52 |
58 | Utsubo 8thwall Starter
59 |
60 |
61 | >
62 | )
63 | }
64 |
65 | export default Dom
66 |
--------------------------------------------------------------------------------
/src/dom/Dom/Dom.styles.jsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | export const Header = styled.div`
4 | position: fixed;
5 | display: flex;
6 | align-content: center;
7 | padding: 14px;
8 | width: 100%;
9 | justify-content: center;
10 | font-weight: bold;
11 | font-size: 20px;
12 | color: black;
13 | `
14 |
15 | export const Container = styled.div`
16 | position: fixed;
17 | top: 0;
18 | left: 0;
19 | width: 100%;
20 | height: 100%;
21 | z-index: 2;
22 | `
23 |
--------------------------------------------------------------------------------
/src/dom/Snapshot/Snapshot.jsx:
--------------------------------------------------------------------------------
1 | import useStore, { getState, setState } from '../../helpers/store'
2 | import * as Style from './Snapshot.styles'
3 |
4 | export const TakeScreenshot = () => {
5 | const image = useStore((s) => s.image)
6 | // const isShooting = useStore((s) => s.isShooting)
7 |
8 | return (
9 | {
12 | event.preventDefault()
13 | if (getState().isShooting) {
14 | return
15 | }
16 | setState({ isShooting: true })
17 |
18 | window.XR8.canvasScreenshot()
19 | .takeScreenshot()
20 | .then(
21 | (data) => {
22 | // myImage is an
HTML element
23 | // const image = document.getElementById('myImage')
24 | const src = 'data:image/jpeg;base64,' + data
25 | useStore.setState({ image: src, isShooting: false })
26 | },
27 | (error) => {
28 | console.log(error)
29 | },
30 | )
31 | }}>
32 |
33 |
34 | )
35 | }
36 |
37 | export const PreviewScreenshot = () => {
38 | const image = useStore((s) => s.image)
39 | const isShooting = useStore((s) => s.isShooting)
40 |
41 | return (
42 |
43 | {image && !isShooting ? (
44 |
45 |
46 |
47 |
48 | ) : null}
49 |
50 | )
51 | }
52 |
53 | export const PreviewBackDrop = () => {
54 | const image = useStore((s) => s.image)
55 | const isShooting = useStore((s) => s.isShooting)
56 |
57 | return
58 | }
59 |
60 | export const GoBackScreenshot = () => {
61 | const image = useStore((s) => s.image)
62 |
63 | return (
64 | {
66 | event.preventDefault()
67 | useStore.setState({ image: null })
68 | }}
69 | className={`${image ? 'active' : ''}`}>
70 |
71 |
72 |
73 |
74 | )
75 | }
76 |
77 | export const DownloadScreenshot = () => {
78 | const image = useStore((s) => s.image)
79 |
80 | return (
81 |
82 |
83 |
84 |
85 |
86 | )
87 | }
88 |
89 | export const Snapshot = () => {
90 | return (
91 | <>
92 |
93 |
94 |
95 |
96 | >
97 | )
98 | }
99 |
--------------------------------------------------------------------------------
/src/dom/Snapshot/Snapshot.styles.jsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | export const SnapshotButton = styled.div`
4 | position: fixed;
5 | bottom: 12px;
6 | width: 60px;
7 | height: 60px;
8 | left: 50%;
9 | padding: 12px;
10 | border-radius: 100%;
11 | z-index: 99;
12 | pointer-events: none;
13 | transform: translate(-50%, 0) scale(0) translateZ(0);
14 | transition: transform 0.4s cubic-bezier(0, 0, 0.01, 0.99);
15 |
16 | &::before {
17 | content: ' ';
18 | position: absolute;
19 | left: 50%;
20 | top: 50%;
21 | transform: translate(-50%, -50%) scale(0) translateZ(0);
22 | width: 44px;
23 | height: 44px;
24 | border-radius: 100%;
25 | border: 1px solid #19110b;
26 | transition: transform 0.4s cubic-bezier(0, 0, 0.01, 0.99) 0.05s;
27 | z-index: -1;
28 | }
29 |
30 | &.active {
31 | pointer-events: all;
32 | transform: translate(-50%, 0) scale(1) translateZ(0);
33 | &::before {
34 | transform: translate(-50%, -50%) scale(1) translateZ(0);
35 | }
36 | }
37 | `
38 |
39 | export const SnapshotButtonContent = styled.div`
40 | width: 100%;
41 | height: 100%;
42 | background-color: #fff;
43 | border-radius: 100%;
44 | `
45 |
46 | export const SnapshotPreviewContainer = styled.div`
47 | position: absolute;
48 | top: 24px;
49 | left: 24px;
50 | height: calc(100% - 100px - 60px);
51 | width: calc(100% - 60px);
52 | z-index: 99;
53 | opacity: 0;
54 | transform-origin: top center;
55 | transform: translate(120px, 60px) scale(1.1) rotate(-12deg) translateZ(0);
56 | transition: opacity 0.2s cubic-bezier(0, 0, 0.01, 0.99), transform 0.5s cubic-bezier(0, 0, 0.01, 0.99);
57 | pointer-events: none;
58 | &.active {
59 | pointer-events: all;
60 | opacity: 1;
61 | transform: translate(0, 0) rotate(0deg) scale(1) translateZ(0);
62 | }
63 | `
64 | export const SnapshotPreview = styled.a`
65 | position: relative;
66 | display: block;
67 | width: 100%;
68 | height: 100%;
69 | pointer-events: all;
70 | & > img {
71 | position: absolute;
72 | left: 0;
73 | top: 0;
74 | width: 100%;
75 | height: 100%;
76 | object-fit: cover;
77 | }
78 | `
79 |
80 | export const SnapshotGoBack = styled.div`
81 | position: fixed;
82 | bottom: 12px;
83 | width: 60px;
84 | height: 60px;
85 | padding: 12px;
86 | left: 12px;
87 | border-radius: 100%;
88 | z-index: 99;
89 | pointer-events: none;
90 | transform: scale(0) translateZ(0);
91 | transition: transform 0.4s cubic-bezier(0, 0, 0.01, 0.99);
92 | &::before {
93 | content: ' ';
94 | position: absolute;
95 | left: 50%;
96 | top: 50%;
97 | transform: translate(-50%, -50%) scale(0) translateZ(0);
98 | width: 44px;
99 | height: 44px;
100 | border-radius: 100%;
101 | border: 1px solid #19110b;
102 | transition: transform 0.4s cubic-bezier(0, 0, 0.01, 0.99) 0.05s;
103 | z-index: -1;
104 | }
105 | &.active {
106 | pointer-events: all;
107 | transform: scale(1) translateZ(0);
108 | &::before {
109 | transform: translate(-50%, -50%) scale(1) translateZ(0);
110 | }
111 | img {
112 | opacity: 1;
113 | transform: translateX(0px) translateZ(0);
114 | }
115 | }
116 | `
117 |
118 | export const SnapshotGoBackContent = styled.div`
119 | width: 100%;
120 | height: 100%;
121 | background-color: #fff;
122 | border-radius: 100%;
123 | display: flex;
124 | justify-content: center;
125 | vertical-align: middle;
126 | img {
127 | width: 30px;
128 | opacity: 0;
129 | transform: translateX(10px) translateZ(0);
130 | transition: transform 0.4s cubic-bezier(0, 0, 0.01, 0.99) 0.2s, opacity 0.3s cubic-bezier(0, 0, 0.01, 0.99) 0.2s;
131 | }
132 | `
133 |
134 | export const SnapshotBackDrop = styled.div`
135 | position: fixed;
136 | top: 0;
137 | left: 0;
138 | right: 0;
139 | bottom: 0;
140 | background: rgb(18 18 18 / 35%);
141 | backdrop-filter: blur(5px);
142 | opacity: 0;
143 | pointer-events: none;
144 | transition: opacity 0.6s cubic-bezier(0, 0, 0.01, 0.99);
145 |
146 | &.active {
147 | opacity: 1;
148 | }
149 | `
150 |
151 | export const DownloadButton = styled.div`
152 | position: absolute;
153 | bottom: 4px;
154 | right: 4px;
155 | width: 60px;
156 | height: 60px;
157 | padding: 12px;
158 | border-radius: 100%;
159 | z-index: 99;
160 | pointer-events: none;
161 | transform: scale(0) translateZ(0);
162 | transition: transform 0.4s cubic-bezier(0, 0, 0.01, 0.99);
163 |
164 | &.active {
165 | transform: scale(1) translateZ(0);
166 | img {
167 | opacity: 1;
168 | transform: translateX(0px) translateZ(0);
169 | }
170 | }
171 | `
172 |
173 | export const DownloadButtonContent = styled.div`
174 | width: 100%;
175 | height: 100%;
176 | background-color: #fff;
177 | border-radius: 100%;
178 | display: flex;
179 | justify-content: center;
180 | vertical-align: middle;
181 | img {
182 | width: 14px;
183 | opacity: 0;
184 | transform: translateX(10px) translateZ(0);
185 | transition: transform 0.4s cubic-bezier(0, 0, 0.01, 0.99) 0.2ss, opacity 0.3s cubic-bezier(0, 0, 0.01, 0.99) 0.2s;
186 | }
187 | `
188 |
--------------------------------------------------------------------------------
/src/favicon.svg:
--------------------------------------------------------------------------------
1 |
16 |
--------------------------------------------------------------------------------
/src/helpers/GradientMaterial.js:
--------------------------------------------------------------------------------
1 | import * as THREE from 'three'
2 | import guid from 'short-uuid'
3 |
4 | class GradientMaterial extends THREE.ShaderMaterial {
5 | constructor() {
6 | super({
7 | uniforms: {
8 | opacity: { value: 0 },
9 | shadow: { value: 1 },
10 | },
11 | vertexShader: `
12 | varying vec2 vUv;
13 | void main() {
14 | vec4 modelPosition = modelMatrix * vec4(position, 1.0);
15 | vec4 viewPosition = viewMatrix * modelPosition;
16 | vec4 projectionPosition = projectionMatrix * viewPosition;
17 | gl_Position = projectionPosition;
18 | vUv = uv;
19 | }`,
20 | fragmentShader: `
21 | uniform float opacity;
22 | uniform float shadow;
23 | varying vec2 vUv;
24 |
25 |
26 | float circle(in vec2 _st, in float _radius){
27 | vec2 dist = _st-vec2(0.5);
28 | return smoothstep(_radius-(_radius*3.),
29 | _radius+(_radius*2.),
30 | dot(dist,dist)*4.0);
31 | }
32 |
33 |
34 | void main() {
35 | float d = circle(vUv, .35);
36 |
37 | gl_FragColor = mix(vec4(1.,1.,1.,.7), mix(vec4(0.0, 0.0, 0.0, .5), vec4(0.0, 0.0, 0.0, 0.0), d), shadow);
38 | // gl_FragColor = vec4(1.);
39 | }`,
40 | })
41 | }
42 | }
43 |
44 | GradientMaterial.key = guid.generate()
45 |
46 | export { GradientMaterial }
47 |
--------------------------------------------------------------------------------
/src/helpers/RaycastOnSurface.jsx:
--------------------------------------------------------------------------------
1 | import * as THREE from 'three'
2 | import { forwardRef, useEffect, useMemo, useRef, useState } from 'react'
3 | import { extend, useFrame, useThree } from '@react-three/fiber'
4 | import useStore, { setState } from './store'
5 | import { GradientMaterial } from './GradientMaterial'
6 |
7 | extend({ GradientMaterial })
8 |
9 | export const RayCastSurface = () => {
10 | const surface = useRef(null)
11 | useEffect(() => {
12 | setState({ surface })
13 | }, [])
14 |
15 | return (
16 |
17 |
18 |
19 |
20 | )
21 | }
22 |
23 | export const AttachRaycastOnSurface = forwardRef(({ children, ...props }, ref) => {
24 | const localRef = useRef(null)
25 | const selector = useRef(null)
26 | const surface = useStore((s) => s.surface)
27 | const [maxBbox, setMaxBbox] = useState(1)
28 | const dummy = useMemo(() => new THREE.Vector3(), [])
29 | const dummySelector = useMemo(() => new THREE.Vector3(0, 0, 0), [])
30 | const dummySize = useMemo(() => new THREE.Vector3(), [])
31 | const raycaster = useMemo(() => new THREE.Raycaster(), [])
32 | const { camera } = useThree()
33 |
34 | useEffect(() => {
35 | if (localRef.current) {
36 | const bbox = new THREE.Box3().setFromObject(localRef.current)
37 | bbox.getSize(dummySize)
38 | // divide by 2 because it's a the radius
39 | setMaxBbox(Math.max(dummySize.x, dummySize.z) / 2)
40 |
41 | dummy.copy(localRef.current.position)
42 | dummySelector.copy(localRef.current.position)
43 | }
44 | }, [ref])
45 |
46 | useFrame(() => {
47 | const { setPos, setScale, mousePos, idActive } = useStore.getState()
48 | camera.position.y = 3
49 | if (localRef.current.id !== idActive) return
50 |
51 | if (setPos) {
52 | // Update the picking ray with the camera and tap position.
53 | raycaster.setFromCamera({ x: mousePos.x, y: mousePos.y }, camera)
54 |
55 | const intersects = raycaster.intersectObject(surface.current)
56 |
57 | if (intersects.length === 1 && intersects[0].object === surface.current) {
58 | dummy.set(intersects[0].point.x, 0.2, intersects[0].point.z)
59 | }
60 | } else {
61 | dummy.y = 0
62 | }
63 | localRef.current.position.lerp(dummy, 0.14)
64 | localRef.current.scale.setScalar(THREE.MathUtils.lerp(localRef.current.scale.x, setScale, 0.14))
65 | dummySelector.copy(dummy)
66 |
67 | if (selector.current.material) {
68 | selector.current.material.uniforms.opacity.value = THREE.MathUtils.lerp(
69 | selector.current.material.uniforms.opacity.value,
70 | Math.abs(localRef.current.scale.x - setScale) > 0.05 ? 0.7 : 0.7,
71 | 0.14,
72 | )
73 | selector.current.material.uniforms.shadow.value = THREE.MathUtils.lerp(selector.current.material.uniforms.shadow.value, setPos ? 0 : 1, 0.33)
74 | }
75 | })
76 | return (
77 | {
81 | setState({ idActive: localRef.current.id })
82 | }}>
83 | {children}
84 |
85 |
86 |
87 |
88 |
89 | )
90 | })
91 |
--------------------------------------------------------------------------------
/src/helpers/disposeAll.js:
--------------------------------------------------------------------------------
1 | export const disposeAll = (scene) => {
2 | scene.traverse((object) => {
3 | if (!object.isMesh) return
4 |
5 | object.geometry.dispose()
6 | if (object.material.isMaterial) {
7 | cleanMaterial(object.material)
8 | } else {
9 | // an array of materials
10 | for (const material of object.material) cleanMaterial(material)
11 | }
12 | })
13 | }
14 |
15 | const cleanMaterial = (material) => {
16 | // dispose textures
17 | for (const key of Object.keys(material)) {
18 | const value = material[key]
19 |
20 | if (value && typeof value === 'object' && 'minFilter' in value) {
21 | value.dispose()
22 | }
23 | }
24 | material.dispose()
25 | }
26 |
--------------------------------------------------------------------------------
/src/helpers/getFullScreen.js:
--------------------------------------------------------------------------------
1 | import * as THREE from 'three'
2 |
3 | export function getFullscreenTriangle() {
4 | const geometry = new THREE.BufferGeometry()
5 | const vertices = new Float32Array([-1, -1, 3, -1, -1, 3])
6 | const uvs = new Float32Array([0, 0, 2, 0, 0, 2])
7 |
8 | geometry.setAttribute('position', new THREE.BufferAttribute(vertices, 2))
9 | geometry.setAttribute('uv', new THREE.BufferAttribute(uvs, 2))
10 |
11 | return geometry
12 | }
13 |
--------------------------------------------------------------------------------
/src/helpers/store.js:
--------------------------------------------------------------------------------
1 | import { createRef } from 'react'
2 | import create from 'zustand'
3 |
4 | const useStore = create(() => {
5 | return {
6 | dom: createRef(null),
7 | surface: createRef(null),
8 | setPos: false,
9 | setScale: 1,
10 | idActive: 0,
11 | startCameraPPAnim: false,
12 | time: 0,
13 | isShooting: false,
14 | mousePos: {
15 | x: 0.5,
16 | y: 0.5,
17 | },
18 | }
19 | })
20 | export const mutationScale = {}
21 | export const { getState, setState } = useStore
22 |
23 | export default useStore
24 |
--------------------------------------------------------------------------------
/src/helpers/useCameraPostProcess.jsx:
--------------------------------------------------------------------------------
1 | import { useFrame } from '@react-three/fiber'
2 | import useStore, { getState, setState } from './store'
3 | import { useSpring } from '@react-spring/core'
4 |
5 | export default function useCameraPostProcess() {
6 | const startCameraPPAnim = useStore((s) => s.startCameraPPAnim)
7 | const { factor } = useSpring({
8 | factor: startCameraPPAnim ? 1 : 0,
9 | delay: 0,
10 | config: {
11 | duration: 1600,
12 | },
13 | })
14 |
15 | let time = 0
16 | useFrame((state, delta) => {
17 | time += delta
18 | setState({ time, factor: factor.get() })
19 | })
20 |
21 | let uFactor = null
22 | let uTime = null
23 | let initUniforms = false
24 | window.XR8.addCameraPipelineModule({
25 | name: 'camerafbo',
26 | onProcessCpu: ({ processGpuResult }) => {
27 | const { renderer } = window.XR8.Threejs.xrScene()
28 | const glc = renderer.getContext()
29 | const { shader } = processGpuResult.gltexturerenderer
30 | const { time, factor } = getState()
31 |
32 | glc.useProgram(shader)
33 | if (!initUniforms) {
34 | uFactor = glc.getUniformLocation(shader, 'factor')
35 | uTime = glc.getUniformLocation(shader, 'time')
36 | initUniforms = true
37 | }
38 | glc.uniform1f(uTime, time)
39 | glc.uniform1f(uFactor, factor)
40 | },
41 | })
42 |
43 | return null
44 | }
45 |
--------------------------------------------------------------------------------
/src/helpers/usePostprocess.jsx:
--------------------------------------------------------------------------------
1 | import { useThree } from '@react-three/fiber'
2 | import * as THREE from 'three'
3 | import { useEffect, useMemo } from 'react'
4 | import shaderFbo from '../shaders/shaderFbo'
5 | import { getFullscreenTriangle } from '../helpers/getFullScreen'
6 | import { disposeAll } from '../helpers/disposeAll'
7 |
8 | export default function usePostProcess() {
9 | const { scene, camera, size, gl } = useThree()
10 |
11 | const [renderTarget, postScene, postCamera] = useMemo(() => {
12 | const postCamera = new THREE.OrthographicCamera(-1, 1, 1, -1, 0, 1)
13 |
14 | const renderTarget = new THREE.WebGLRenderTarget(512, 512)
15 |
16 | renderTarget.texture.generateMipmaps = false
17 | renderTarget.depthBuffer = true
18 | renderTarget.depthTexture = new THREE.DepthTexture()
19 | renderTarget.depthTexture.format = THREE.DepthFormat
20 | renderTarget.depthTexture.type = THREE.UnsignedShortType
21 |
22 | renderTarget.stencilBuffer = false
23 | renderTarget.texture.format = THREE.RGBFormat
24 | renderTarget.samples = 4
25 |
26 | shaderFbo.uniforms.tDiffuse.value = renderTarget.texture
27 | shaderFbo.uniforms.tDepth.value = renderTarget.depthTexture
28 |
29 | shaderFbo.uniforms.uRes.value = new THREE.Vector2(size.width, size.height)
30 |
31 | // Fullscreen triangle
32 | const postScene = new THREE.Scene()
33 |
34 | const postGeometry = getFullscreenTriangle()
35 |
36 | const screen = new THREE.Mesh(postGeometry, shaderFbo)
37 | screen.frustumCulled = false
38 | postScene.add(screen)
39 | postScene.background = new THREE.Color(0x212121)
40 |
41 | return [renderTarget, postScene, postCamera]
42 | }, [])
43 |
44 | useEffect(() => {
45 | return () => {
46 | renderTarget.dispose()
47 | disposeAll(postScene)
48 | }
49 | }, [])
50 | useEffect(() => {
51 | renderTarget.setSize(size.width, size.height)
52 | shaderFbo.uniforms.uRes.value = new THREE.Vector2(size.width, size.height)
53 | }, [renderTarget, size])
54 |
55 | window.XR8.addCameraPipelineModule({
56 | name: 'fbo',
57 | onRender() {
58 | gl.setRenderTarget(renderTarget)
59 | gl.render(scene, camera)
60 |
61 | gl.setRenderTarget(null)
62 | gl.render(postScene, postCamera)
63 | },
64 | })
65 |
66 | return {
67 | renderTarget: renderTarget,
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/src/index.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
5 | sans-serif;
6 | -webkit-font-smoothing: antialiased;
7 | -moz-osx-font-smoothing: grayscale;
8 | }
9 |
10 | code {
11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
12 | monospace;
13 | }
14 |
--------------------------------------------------------------------------------
/src/main.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import ReactDOM from 'react-dom'
3 | import './index.css'
4 | import App from './App'
5 |
6 | ReactDOM.render(
7 |
8 |
9 | ,
10 | document.getElementById('root')
11 | )
12 |
--------------------------------------------------------------------------------
/src/shaders/outline/outline.js:
--------------------------------------------------------------------------------
1 | import { BackSide, Color, ShaderMaterial, UniformsLib, UniformsUtils } from 'three'
2 | import guid from 'short-uuid'
3 | import { extend } from '@react-three/fiber'
4 |
5 | const vertex = `
6 | #include
7 | #include
8 | #include
9 | #include
10 | #include
11 | uniform float outlineThickness;
12 |
13 |
14 | vec4 calculateOutline( vec4 pos, vec3 normal, vec4 skinned ) {
15 | float thickness = outlineThickness;
16 | float ratio = 1.5; // TODO: support outline thickness ratio for each vertex
17 | vec4 pos2 = projectionMatrix * modelViewMatrix * vec4( skinned.xyz + normal, 1.0 );
18 | vec4 norm = normalize( pos - pos2 );
19 | // REMOVED * POS.W
20 | return pos + norm * thickness * ratio * (pos.w / 4.);
21 | }
22 |
23 | void main() {
24 |
25 | #include
26 |
27 | #include
28 | #include
29 |
30 | #include
31 | #include
32 | #include
33 | vec3 outlineNormal = - objectNormal; // the outline material is always rendered with BackSide
34 | gl_Position = calculateOutline(gl_Position, outlineNormal, vec4( transformed, 1.0 ));
35 |
36 | #include
37 | #include
38 | #include
39 | }
40 | `
41 |
42 | const fragment = `
43 | #include
44 | #include
45 | uniform vec3 outlineColor;
46 | uniform float outlineAlpha;
47 |
48 | void main() {
49 | gl_FragColor = vec4( outlineColor, outlineAlpha );
50 | #include
51 | #include
52 | }
53 | `
54 |
55 | class ShaderOutline extends ShaderMaterial {
56 | constructor() {
57 | super({
58 | uniforms: UniformsUtils.merge([
59 | UniformsLib['fog'],
60 | UniformsLib['displacementmap'],
61 | {
62 | outlineThickness: { value: 0.02 },
63 | outlineColor: { value: new Color(0x000000) },
64 | outlineAlpha: { value: 1 },
65 | },
66 | ]),
67 | fragmentShader: fragment,
68 | vertexShader: vertex,
69 | side: BackSide,
70 | })
71 | }
72 | }
73 |
74 | ShaderOutline.key = guid.generate()
75 |
76 | extend({ ShaderOutline })
77 | export default ShaderOutline
78 |
--------------------------------------------------------------------------------
/src/shaders/shaderCamera.jsx:
--------------------------------------------------------------------------------
1 | const fragment = `
2 |
3 | precision mediump float;
4 | varying vec2 texUv;
5 | uniform sampler2D sampler;
6 | uniform float time;
7 | uniform float factor;
8 |
9 | float circle(in vec2 _st, in float _radius){
10 | vec2 dist = _st-vec2(0.5);
11 | return 1.-smoothstep(_radius-(_radius*0.01),
12 | _radius+(_radius*0.01),
13 | dot(dist,dist)*4.0);
14 | }
15 |
16 |
17 |
18 | void main() {
19 | // vec2 uvS = mix(texUv, texUv * distance(texUv, vec2(0.5)), factor);
20 | vec2 position = - 1.0 + 2.0 * texUv;
21 |
22 | // float a = atan( position.y, position.x );
23 | // float r = sqrt( dot( position, position ) );
24 |
25 | // vec2 uv2;
26 | // uv2.x = cos( a ) / r;
27 | // uv2.y = sin( a ) / r;
28 | // uv2 /= 10.0;
29 | // uv2 += time * 0.05;
30 |
31 | vec4 camera = texture2D(sampler, mix(texUv, texUv, factor));
32 | gl_FragColor = mix(camera, vec4(1.), factor);
33 | }
34 |
35 |
36 | `
37 | export default fragment
38 |
--------------------------------------------------------------------------------
/src/shaders/shaderFbo.jsx:
--------------------------------------------------------------------------------
1 | const vertex = `
2 | out vec2 vUv;
3 |
4 | void main() {
5 | vUv = uv;
6 | gl_Position = vec4(position, 1.0);
7 | }
8 | `
9 |
10 | const fragment = `
11 |
12 | precision mediump float;
13 |
14 |
15 | in vec2 vUv;
16 | out vec4 fragColor;
17 | uniform sampler2D sampler;
18 | uniform sampler2D tDepth;
19 | uniform sampler2D tDiffuse;
20 | uniform sampler2D tNormal;
21 | uniform vec2 uRes;
22 |
23 | float perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {
24 | return ( near * far ) / ( ( far - near ) * invClipZ - far );
25 | }
26 |
27 | float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {
28 | return ( viewZ + near ) / ( near - far );
29 | }
30 |
31 | float depthSampleToWorld(float depth, float cameraNear, float cameraFar) {
32 | // return cameraNear * cameraFar / (cameraFar - depth * (cameraFar - cameraNear));
33 | float viewZ = perspectiveDepthToViewZ( depth, cameraNear, cameraFar );
34 | return viewZToOrthographicDepth( viewZ, cameraNear, cameraFar );
35 |
36 | }
37 |
38 | float sobelDepth(sampler2D tex, ivec2 xy, float camNear, float camFar) {
39 | float
40 | x00 = depthSampleToWorld(texelFetch(tex, xy + ivec2(-1, -1), 0).x, camNear, camFar),
41 | x01 = depthSampleToWorld(texelFetch(tex, xy + ivec2(-1, 0), 0).x, camNear, camFar),
42 | x02 = depthSampleToWorld(texelFetch(tex, xy + ivec2(-1, 1), 0).x, camNear, camFar),
43 | x10 = depthSampleToWorld(texelFetch(tex, xy + ivec2( 0, -1), 0).x, camNear, camFar),
44 | x11 = depthSampleToWorld(texelFetch(tex, xy + ivec2( 0, 0), 0).x, camNear, camFar),
45 | x12 = depthSampleToWorld(texelFetch(tex, xy + ivec2( 0, 1), 0).x, camNear, camFar),
46 | x20 = depthSampleToWorld(texelFetch(tex, xy + ivec2( 1, -1), 0).x, camNear, camFar),
47 | x21 = depthSampleToWorld(texelFetch(tex, xy + ivec2( 1, 0), 0).x, camNear, camFar),
48 | x22 = depthSampleToWorld(texelFetch(tex, xy + ivec2( 1, 1), 0).x, camNear, camFar);
49 | float
50 | x = x00 + 2.0f * x10 + x20 - (x02 + 2.0f * x12 + x22),
51 | y = x00 + 2.0f * x01 + x02 - (x20 + 2.0f * x21 + x22);
52 | return sqrt(x * x + y * y);
53 | }
54 |
55 | vec3 sobelNorm(sampler2D tex, ivec2 xy) {
56 | vec3
57 | x00 = texelFetch(tex, xy + ivec2(-1, -1), 0).xyz,
58 | x01 = texelFetch(tex, xy + ivec2(-1, 0), 0).xyz,
59 | x02 = texelFetch(tex, xy + ivec2(-1, 1), 0).xyz,
60 | x10 = texelFetch(tex, xy + ivec2( 0, -1), 0).xyz,
61 | x11 = texelFetch(tex, xy + ivec2( 0, 0), 0).xyz,
62 | x12 = texelFetch(tex, xy + ivec2( 0, 1), 0).xyz,
63 | x20 = texelFetch(tex, xy + ivec2( 1, -1), 0).xyz,
64 | x21 = texelFetch(tex, xy + ivec2( 1, 0), 0).xyz,
65 | x22 = texelFetch(tex, xy + ivec2( 1, 1), 0).xyz;
66 | vec3
67 | x = x00 + 2.0f * x10 + x20 - (x02 + 2.0f * x12 + x22),
68 | y = x00 + 2.0f * x01 + x02 - (x20 + 2.0f * x21 + x22);
69 | return sqrt(x * x + y * y);
70 | }
71 |
72 |
73 | vec3 toon(
74 | vec3 colorIn, uint steps,
75 | ivec2 fCoord, sampler2D normalTex, sampler2D depthTex,
76 | float camNear, float camFar,
77 | float normalWeight, float depthWeight,
78 | float edgeThresholdMin, float edgeThresholdMax, vec3 color, float scale
79 | ) {
80 | colorIn = floor(colorIn * (float(steps) - 0.01f)) / float(steps);
81 | vec3 normal = normalWeight * sobelNorm(normalTex, fCoord);
82 | float depth = depthWeight * sobelDepth(depthTex, fCoord, camNear, camFar);
83 | float diff = length(normal) + depth;
84 |
85 | colorIn = mix(colorIn, color, smoothstep(edgeThresholdMin, edgeThresholdMax, diff * scale));
86 | return colorIn;
87 | }
88 |
89 |
90 | float getHeight(vec2 uv) {
91 | return texture(tDepth, uv).r;
92 | }
93 |
94 | vec4 bumpFromDepth(vec2 uv, vec2 resolution, float scale) {
95 | vec2 step = 1. / resolution;
96 |
97 | float height = getHeight(uv);
98 |
99 | vec2 dxy = height - vec2(
100 | getHeight(uv + vec2(step.x, 0.)),
101 | getHeight(uv + vec2(0., step.y))
102 | );
103 |
104 | return vec4(normalize(vec3(dxy * scale / step, 1.)), height);
105 | }
106 |
107 |
108 |
109 | float cameraNear = 0.1;
110 | float cameraFar = 10.;
111 |
112 | void main() {
113 | vec3 result = texture(tDiffuse, vUv).rgb;
114 |
115 | uvec2 fragCoord = uvec2(gl_FragCoord.xy);
116 | ivec2 fCoord = ivec2(gl_FragCoord.xy);
117 |
118 | vec3 diffuseToon = toon(
119 | result, 1u, fCoord,
120 | tNormal, tDepth,
121 | cameraNear, cameraFar,
122 | 0.2f, 0.5f,
123 | .3f, 1.8f,
124 | vec3(1., 0., 0.),
125 | 1.0f
126 | );
127 |
128 | fragColor = vec4(1.);
129 | fragColor = mix(vec4(1.), texture(tDepth, vUv), 1.);
130 | // fragColor = vec4(diffuseToon, 1.);
131 | }
132 |
133 | `
134 |
135 | import * as THREE from 'three'
136 |
137 | const shaderFbo = new THREE.ShaderMaterial({
138 | uniforms: {
139 | time: { value: null },
140 | uRes: { value: new THREE.Vector2(500) },
141 | tDiffuse: { value: null },
142 | tNormal: { value: null },
143 | tDepth: { value: null },
144 | },
145 | fragmentShader: fragment,
146 | vertexShader: vertex,
147 | glslVersion: THREE.GLSL3,
148 | })
149 |
150 | export default shaderFbo
151 |
--------------------------------------------------------------------------------
/vite.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite'
2 | import reactRefresh from '@vitejs/plugin-react-refresh'
3 | import reactJsx from 'vite-react-jsx'
4 |
5 | // https://vitejs.dev/config/
6 | export default defineConfig({
7 | server: {
8 | https: true,
9 | },
10 | plugins: [reactJsx(), reactRefresh()],
11 | })
12 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------