├── README.md
├── .gitignore
├── package.json
├── index.html
├── patches
└── three+0.158.0.patch
├── LICENSE
├── src
└── index.js
└── yarn.lock
/README.md:
--------------------------------------------------------------------------------
1 | # gpu culling
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | dist
4 |
5 | # Editor directories and files
6 | .idea
7 | .vscode
8 | *.suo
9 | *.ntvs*
10 | *.njsproj
11 | *.sln
12 | *.sw?
13 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "patch-package": "^8.0.0",
4 | "three": "^0.158.0",
5 | "vite": "^5.0.2"
6 | },
7 | "scripts": {
8 | "postinstall": "patch-package",
9 | "dev": "vite"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/patches/three+0.158.0.patch:
--------------------------------------------------------------------------------
1 | diff --git a/node_modules/three/build/three.module.js b/node_modules/three/build/three.module.js
2 | index 6a6e12a..c359d3b 100644
3 | --- a/node_modules/three/build/three.module.js
4 | +++ b/node_modules/three/build/three.module.js
5 | @@ -28512,6 +28512,8 @@ class WebGLRenderer {
6 | _this.capabilities = capabilities;
7 | _this.extensions = extensions;
8 | _this.properties = properties;
9 | + // https://github.com/mrdoob/three.js/pull/26777
10 | + _this.attributes = attributes;
11 | _this.renderLists = renderLists;
12 | _this.shadowMap = shadowMap;
13 | _this.state = state;
14 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021-2023 Cody Bennett
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import * as THREE from 'three'
2 | import { OrbitControls } from 'three/addons'
3 |
4 | const VARYING_REGEX = /[^\w](?:varying|out)\s+\w+\s+(\w+)\s*;/g
5 |
6 | /** @type {WebGLTransformFeedback | null} */
7 | let _transformFeedback = null
8 |
9 | /** @type {WeakMap} */
10 | const _compiled = new WeakMap()
11 | const _camera = new THREE.Camera()
12 |
13 | const DEFAULT_FRAGMENT = new THREE.ShaderMaterial().fragmentShader // default_fragment
14 |
15 | /**
16 | *
17 | * @param {THREE.Mesh} node
18 | */
19 | THREE.WebGLRenderer.prototype.compute = function (node) {
20 | const skipRaster = node.material.fragmentShader === DEFAULT_FRAGMENT
21 |
22 | /** @type {WebGL2RenderingContext} */
23 | const gl = this.getContext()
24 |
25 | // Create memoized compute material
26 | let oldMaterial = node.material
27 | let material = _compiled.get(node.material)
28 | if (!material) {
29 | material = node.material.clone()
30 | material.vertexShader = node.material.computeShader
31 | if (skipRaster) material.fragmentShader = 'out lowp vec4 c;void main(){c=vec4(0);}'
32 | material.uniforms = node.material.uniforms
33 | _compiled.set(node.material, material)
34 | }
35 | node.material = material
36 |
37 | // Prime and get compiled program
38 | // NOTE: compile doesn't populate this.attributes
39 | // https://github.com/mrdoob/three.js/pull/26777
40 | this.render(node, _camera)
41 | const materialProperties = this.properties.get(material)
42 | const compiled = materialProperties.currentProgram
43 | const program = compiled.program
44 |
45 | _transformFeedback ??= gl.createTransformFeedback()
46 | gl.bindTransformFeedback(gl.TRANSFORM_FEEDBACK, _transformFeedback)
47 |
48 | if (!compiled.outputs) {
49 | compiled.outputs = []
50 |
51 | // Get compiled source with resolved shader chunks
52 | const vertexShader = gl.getShaderSource(compiled.vertexShader)
53 |
54 | // Feedback shader outputs from source
55 | // TODO: interleave attributes for limits
56 | for (const [, output] of vertexShader.matchAll(VARYING_REGEX)) {
57 | const attribute = node.geometry.attributes[output]
58 | const { buffer } = this.attributes.get(attribute)
59 | gl.bindBufferBase(gl.TRANSFORM_FEEDBACK_BUFFER, compiled.outputs.length, buffer)
60 | compiled.outputs.push(output)
61 | }
62 |
63 | gl.transformFeedbackVaryings(program, compiled.outputs, gl.SEPARATE_ATTRIBS)
64 | gl.linkProgram(program)
65 |
66 | const error = gl.getProgramInfoLog(program)
67 | if (error) throw new Error(error)
68 |
69 | // Force reset uniforms after relink
70 | for (const uniform of materialProperties.uniformsList) {
71 | uniform.addr = gl.getUniformLocation(program, uniform.id)
72 | uniform.cache = []
73 | }
74 | }
75 |
76 | if (!skipRaster) gl.enable(gl.RASTERIZER_DISCARD)
77 |
78 | gl.beginTransformFeedback(gl.TRIANGLES)
79 | this.render(node, _camera)
80 | gl.endTransformFeedback()
81 |
82 | gl.bindTransformFeedback(gl.TRANSFORM_FEEDBACK, null)
83 | if (!skipRaster) gl.disable(gl.RASTERIZER_DISCARD)
84 | node.material = oldMaterial
85 |
86 | // Debug CPU readback
87 | // for (const output of compiled.outputs) {
88 | // const attribute = node.geometry.attributes[output]
89 | // const { buffer } = this.attributes.get(attribute)
90 |
91 | // gl.bindBuffer(gl.ARRAY_BUFFER, buffer)
92 | // gl.getBufferSubData(gl.ARRAY_BUFFER, 0, attribute.array)
93 | // gl.bindBuffer(gl.ARRAY_BUFFER, null)
94 |
95 | // console.log(output, ...Array.from(attribute.array))
96 | // }
97 | }
98 |
99 | THREE.ShaderMaterial.prototype.computeShader = ''
100 |
101 | const renderer = new THREE.WebGLRenderer({ antialias: true })
102 | renderer.setSize(window.innerWidth, window.innerHeight)
103 | document.body.appendChild(renderer.domElement)
104 |
105 | const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight)
106 | camera.position.z = 5
107 |
108 | const controls = new OrbitControls(camera, renderer.domElement)
109 | controls.enableDamping = true
110 |
111 | const scene = new THREE.Scene()
112 |
113 | const geometry = new THREE.BufferGeometry()
114 | geometry.setDrawRange(0, 3)
115 | geometry.boundingSphere = new THREE.Sphere().set(new THREE.Vector3(), Infinity)
116 | geometry.attributes = {
117 | radius: new THREE.BufferAttribute(new Float32Array(3), 1),
118 | position: new THREE.BufferAttribute(new Float32Array(9), 3),
119 | // TODO: only highp supported, use uint8
120 | visibility: new THREE.InstancedBufferAttribute(new Uint32Array(3), 1),
121 | }
122 | geometry.attributes.visibility.gpuType = THREE.IntType
123 |
124 | const projectionViewMatrix = new THREE.Matrix4()
125 |
126 | const cullMaterial = new THREE.RawShaderMaterial({
127 | defines: {
128 | NUM_MIPS: 0,
129 | },
130 | uniforms: {
131 | projectionViewMatrix: new THREE.Uniform(projectionViewMatrix),
132 | resolution: new THREE.Uniform(new THREE.Vector2()),
133 | mipmaps: new THREE.Uniform(null),
134 | },
135 | computeShader: /* glsl */ `//#version 300 es
136 | uniform mat4 projectionViewMatrix;
137 | uniform vec2 resolution;
138 | uniform sampler2D[NUM_MIPS] mipmaps;
139 |
140 | in float radius;
141 | in vec3 position;
142 | flat out uint visibility;
143 |
144 | vec4 textureGather(sampler2D tex, vec2 uv, int comp) {
145 | vec2 res = vec2(textureSize(tex, 0));
146 | ivec2 p = ivec2((uv * res) - 0.5);
147 | return vec4(
148 | texelFetchOffset(tex, p, 0, ivec2(0, 1))[comp],
149 | texelFetchOffset(tex, p, 0, ivec2(1, 1))[comp],
150 | texelFetchOffset(tex, p, 0, ivec2(1, 0))[comp],
151 | texelFetchOffset(tex, p, 0, ivec2(0, 0))[comp]
152 | );
153 | }
154 | vec4 textureGatherLevel(sampler2D[NUM_MIPS] tex, vec2 uv, int level, int comp) {
155 | // TODO: implement RT mips and TEXTURE_BASE_LEVEL for Hi-Z feedback
156 | if (level < 1) return textureGather(tex[0], uv, comp);
157 | if (level == 1) return textureGather(tex[1], uv, comp);
158 | if (level == 2) return textureGather(tex[2], uv, comp);
159 | if (level == 3) return textureGather(tex[3], uv, comp);
160 | if (level == 4) return textureGather(tex[4], uv, comp);
161 | return textureGather(tex[5], uv, comp);
162 | }
163 |
164 | void main() {
165 | bool visible = true;
166 |
167 | // Frustum cull
168 | if (visible) {
169 | // http://cs.otago.ac.nz/postgrads/alexis/planeExtraction.pdf
170 | mat4 frustum = transpose(projectionViewMatrix);
171 | vec4 planes[] = vec4[](
172 | frustum[3] - frustum[0], // left (-w < +x)
173 | frustum[3] + frustum[0], // right (+x < +w)
174 | frustum[3] - frustum[1], // bottom (-w < +y)
175 | frustum[3] + frustum[1], // top (+y < +w)
176 | frustum[3] - frustum[2], // near (-w < +z)
177 | frustum[3] + frustum[2] // far (+z < +w)
178 | );
179 |
180 | for (int i = 0; i < 6; i++) {
181 | float distance = dot(planes[i], vec4(position, 1));
182 | if (distance < -radius) {
183 | visible = false;
184 | break;
185 | }
186 | }
187 | }
188 |
189 | // Occlusion cull
190 | if (visible) {
191 | // Calculate sphere NDC from projected position
192 | vec4 ndc = projectionViewMatrix * vec4(position.xy, position.z - radius, 1);
193 | ndc.xyz /= ndc.w;
194 |
195 | // Sample screen depth
196 | vec2 uv = (ndc.xy + 1.0) * 0.5;
197 | int mip = int(ceil(log2(radius * resolution)));
198 | vec4 tile = textureGatherLevel(mipmaps, uv, mip, 0);
199 | float depth = max(max(tile.x, tile.y), max(tile.z, tile.w));
200 |
201 | // Test NDC against screen depth
202 | if (depth < ndc.z + 0.01) visible = false;
203 | }
204 |
205 | // Write visibility
206 | visibility = visible ? 1u : 0u;
207 | }
208 | `,
209 | glslVersion: THREE.GLSL3,
210 | })
211 | const cullMesh = new THREE.Mesh(geometry, cullMaterial)
212 |
213 | const normalMaterial = new THREE.ShaderMaterial({
214 | vertexShader: /* glsl */ `
215 | in uint visibility;
216 | out vec3 vNormal;
217 |
218 | void main() {
219 | vNormal = normalMatrix * normal;
220 | gl_Position = projectionMatrix * modelViewMatrix * vec4(position, visibility);
221 | }
222 | `,
223 | fragmentShader: /* glsl */ `
224 | in vec3 vNormal;
225 |
226 | void main() {
227 | gl_FragColor = vec4(normalize(vNormal) * 0.5 + 0.5, 1);
228 | }
229 | `,
230 | })
231 |
232 | const meshGeometry = new THREE.BoxGeometry()
233 | meshGeometry.setAttribute('visibility', geometry.attributes.visibility)
234 | meshGeometry.computeBoundingSphere()
235 |
236 | const cube = new THREE.InstancedMesh(meshGeometry, normalMaterial, 1)
237 | geometry.attributes.radius.array[0] = meshGeometry.boundingSphere.radius
238 | scene.add(cube)
239 |
240 | const plane = new THREE.Mesh(meshGeometry, new THREE.MeshNormalMaterial())
241 | plane.position.z = 1
242 | plane.scale.set(2, 2, 0.001)
243 | plane.material.transparent = true
244 | plane.material.opacity = 0.2
245 | scene.add(plane)
246 |
247 | const downsampleMaterial = new THREE.ShaderMaterial({
248 | uniforms: {
249 | tDepth: new THREE.Uniform(null),
250 | },
251 | vertexShader: /* glsl */ `
252 | out vec2 vUv;
253 |
254 | void main() {
255 | vUv = vec2(gl_VertexID << 1 & 2, gl_VertexID & 2);
256 | gl_Position = vec4(vUv * 2.0 - 1.0, 0, 1);
257 | }
258 | `,
259 | fragmentShader: /* glsl */ `
260 | uniform sampler2D tDepth;
261 | in vec2 vUv;
262 |
263 | vec4 textureGather(sampler2D tex, vec2 uv, int comp) {
264 | vec2 res = vec2(textureSize(tex, 0));
265 | ivec2 p = ivec2((uv * res) - 0.5);
266 | return vec4(
267 | texelFetchOffset(tex, p, 0, ivec2(0, 1))[comp],
268 | texelFetchOffset(tex, p, 0, ivec2(1, 1))[comp],
269 | texelFetchOffset(tex, p, 0, ivec2(1, 0))[comp],
270 | texelFetchOffset(tex, p, 0, ivec2(0, 0))[comp]
271 | );
272 | }
273 |
274 | void main() {
275 | vec4 tile = textureGather(tDepth, vUv, 0);
276 | float depth = max(max(tile.x, tile.y), max(tile.z, tile.w));
277 | gl_FragColor = vec4(depth, 0, 0, 1);
278 | }
279 | `,
280 | })
281 | const downsamplePass = new THREE.Mesh(geometry, downsampleMaterial)
282 |
283 | const depthTarget = new THREE.WebGLRenderTarget(0, 0, {
284 | minFilter: THREE.NearestFilter,
285 | type: THREE.HalfFloatType,
286 | format: THREE.RedFormat,
287 | })
288 |
289 | let NUM_MIPS = 0
290 | const mipmaps = [depthTarget]
291 |
292 | const onResize = () => {
293 | renderer.setSize(window.innerWidth, window.innerHeight)
294 | renderer.getDrawingBufferSize(cullMaterial.uniforms.resolution.value)
295 |
296 | // TODO: use POT and TEXTURE_BASE_LEVEL
297 | // https://bugs.chromium.org/p/chromium/issues/detail?id=1383129
298 | NUM_MIPS = 1 + Math.min(5, Math.floor(Math.log2(Math.max(window.innerWidth, window.innerHeight))))
299 | cullMaterial.defines.NUM_MIPS = NUM_MIPS
300 | // cullMaterial.computeShader = cullMaterial.computeShader.replace(
301 | // mipSelectCode,
302 | // (mipSelectCode = /* glsl */ `vec4 tile;${Array.from(
303 | // { length: NUM_MIPS },
304 | // (_, i) => `if (mip == ${i}) tile = textureGather(mipmaps[${i}], uv, 0);`,
305 | // ).join('\n')}`),
306 | // )
307 | cullMaterial.dispose()
308 |
309 | cullMaterial.vertexShader.replace()
310 |
311 | for (let i = 0; i < NUM_MIPS; i++) {
312 | mipmaps[i] ??= depthTarget.clone()
313 | mipmaps[i].setSize(window.innerWidth >> i, window.innerHeight >> i)
314 | }
315 |
316 | cullMaterial.uniforms.mipmaps.value = mipmaps.slice(0, NUM_MIPS).map((mipmap) => mipmap.texture)
317 |
318 | camera.aspect = window.innerWidth / window.innerHeight
319 | camera.updateProjectionMatrix()
320 | }
321 | onResize()
322 | window.addEventListener('resize', onResize)
323 |
324 | const depthMaterial = new THREE.ShaderMaterial({
325 | vertexShader: /* glsl */ `
326 | void main() {
327 | gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1);
328 | }
329 | `,
330 | fragmentShader: /* glsl */ `
331 | void main() {
332 | gl_FragColor = vec4(gl_FragCoord.z, 0, 0, 1);
333 | }
334 | `,
335 | })
336 |
337 | renderer.setAnimationLoop(() => {
338 | controls.update()
339 |
340 | // Create Hi-Z mip-chain
341 | for (let i = 0; i < NUM_MIPS; i++) {
342 | renderer.setRenderTarget(mipmaps[i])
343 |
344 | if (i === 0) {
345 | // Gather initial depth
346 | scene.overrideMaterial = depthMaterial
347 | renderer.render(scene, camera)
348 | scene.overrideMaterial = null
349 | } else {
350 | // Downsample previous level
351 | downsampleMaterial.uniforms.tDepth.value = mipmaps[i - 1].texture
352 | renderer.render(downsamplePass, camera)
353 | }
354 | }
355 | renderer.setRenderTarget(null)
356 |
357 | // Perform occlusion culling
358 | camera.updateWorldMatrix()
359 | projectionViewMatrix.multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse)
360 | renderer.compute(cullMesh)
361 |
362 | // Render with culling
363 | renderer.render(scene, camera)
364 | })
365 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@esbuild/android-arm64@0.19.8":
6 | version "0.19.8"
7 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.8.tgz#fb7130103835b6d43ea499c3f30cfb2b2ed58456"
8 | integrity sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==
9 |
10 | "@esbuild/android-arm@0.19.8":
11 | version "0.19.8"
12 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.8.tgz#b46e4d9e984e6d6db6c4224d72c86b7757e35bcb"
13 | integrity sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA==
14 |
15 | "@esbuild/android-x64@0.19.8":
16 | version "0.19.8"
17 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.8.tgz#a13db9441b5a4f4e4fec4a6f8ffacfea07888db7"
18 | integrity sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==
19 |
20 | "@esbuild/darwin-arm64@0.19.8":
21 | version "0.19.8"
22 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.8.tgz#49f5718d36541f40dd62bfdf84da9c65168a0fc2"
23 | integrity sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==
24 |
25 | "@esbuild/darwin-x64@0.19.8":
26 | version "0.19.8"
27 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.8.tgz#75c5c88371eea4bfc1f9ecfd0e75104c74a481ac"
28 | integrity sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q==
29 |
30 | "@esbuild/freebsd-arm64@0.19.8":
31 | version "0.19.8"
32 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.8.tgz#9d7259fea4fd2b5f7437b52b542816e89d7c8575"
33 | integrity sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw==
34 |
35 | "@esbuild/freebsd-x64@0.19.8":
36 | version "0.19.8"
37 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.8.tgz#abac03e1c4c7c75ee8add6d76ec592f46dbb39e3"
38 | integrity sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg==
39 |
40 | "@esbuild/linux-arm64@0.19.8":
41 | version "0.19.8"
42 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.8.tgz#c577932cf4feeaa43cb9cec27b89cbe0df7d9098"
43 | integrity sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==
44 |
45 | "@esbuild/linux-arm@0.19.8":
46 | version "0.19.8"
47 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.8.tgz#d6014d8b98b5cbc96b95dad3d14d75bb364fdc0f"
48 | integrity sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ==
49 |
50 | "@esbuild/linux-ia32@0.19.8":
51 | version "0.19.8"
52 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.8.tgz#2379a0554307d19ac4a6cdc15b08f0ea28e7a40d"
53 | integrity sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ==
54 |
55 | "@esbuild/linux-loong64@0.19.8":
56 | version "0.19.8"
57 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.8.tgz#e2a5bbffe15748b49356a6cd7b2d5bf60c5a7123"
58 | integrity sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ==
59 |
60 | "@esbuild/linux-mips64el@0.19.8":
61 | version "0.19.8"
62 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.8.tgz#1359331e6f6214f26f4b08db9b9df661c57cfa24"
63 | integrity sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q==
64 |
65 | "@esbuild/linux-ppc64@0.19.8":
66 | version "0.19.8"
67 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.8.tgz#9ba436addc1646dc89dae48c62d3e951ffe70951"
68 | integrity sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg==
69 |
70 | "@esbuild/linux-riscv64@0.19.8":
71 | version "0.19.8"
72 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.8.tgz#fbcf0c3a0b20f40b5fc31c3b7695f0769f9de66b"
73 | integrity sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg==
74 |
75 | "@esbuild/linux-s390x@0.19.8":
76 | version "0.19.8"
77 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.8.tgz#989e8a05f7792d139d5564ffa7ff898ac6f20a4a"
78 | integrity sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg==
79 |
80 | "@esbuild/linux-x64@0.19.8":
81 | version "0.19.8"
82 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.8.tgz#b187295393a59323397fe5ff51e769ec4e72212b"
83 | integrity sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==
84 |
85 | "@esbuild/netbsd-x64@0.19.8":
86 | version "0.19.8"
87 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.8.tgz#c1ec0e24ea82313cb1c7bae176bd5acd5bde7137"
88 | integrity sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw==
89 |
90 | "@esbuild/openbsd-x64@0.19.8":
91 | version "0.19.8"
92 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.8.tgz#0c5b696ac66c6d70cf9ee17073a581a28af9e18d"
93 | integrity sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ==
94 |
95 | "@esbuild/sunos-x64@0.19.8":
96 | version "0.19.8"
97 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.8.tgz#2a697e1f77926ff09fcc457d8f29916d6cd48fb1"
98 | integrity sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w==
99 |
100 | "@esbuild/win32-arm64@0.19.8":
101 | version "0.19.8"
102 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.8.tgz#ec029e62a2fca8c071842ecb1bc5c2dd20b066f1"
103 | integrity sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg==
104 |
105 | "@esbuild/win32-ia32@0.19.8":
106 | version "0.19.8"
107 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.8.tgz#cbb9a3146bde64dc15543e48afe418c7a3214851"
108 | integrity sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw==
109 |
110 | "@esbuild/win32-x64@0.19.8":
111 | version "0.19.8"
112 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.8.tgz#c8285183dbdb17008578dbacb6e22748709b4822"
113 | integrity sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA==
114 |
115 | "@rollup/rollup-android-arm-eabi@4.6.0":
116 | version "4.6.0"
117 | resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.6.0.tgz#c08a454d70605aacad17530a953791ea385e37d5"
118 | integrity sha512-keHkkWAe7OtdALGoutLY3utvthkGF+Y17ws9LYT8pxMBYXaCoH/8dXS2uzo6e8+sEhY7y/zi5RFo22Dy2lFpDw==
119 |
120 | "@rollup/rollup-android-arm64@4.6.0":
121 | version "4.6.0"
122 | resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.6.0.tgz#e0cf96960405947c1a09a389467e6aa10ae1a226"
123 | integrity sha512-y3Kt+34smKQNWilicPbBz/MXEY7QwDzMFNgwEWeYiOhUt9MTWKjHqe3EVkXwT2fR7izOvHpDWZ0o2IyD9SWX7A==
124 |
125 | "@rollup/rollup-darwin-arm64@4.6.0":
126 | version "4.6.0"
127 | resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.6.0.tgz#6d2f53021fbb9fdecf60bfb6fd5d999aef8385e9"
128 | integrity sha512-oLzzxcUIHltHxOCmaXl+pkIlU+uhSxef5HfntW7RsLh1eHm+vJzjD9Oo4oUKso4YuP4PpbFJNlZjJuOrxo8dPg==
129 |
130 | "@rollup/rollup-darwin-x64@4.6.0":
131 | version "4.6.0"
132 | resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.6.0.tgz#b7d0a4bbe6fc493efa269a60a66dc070ac10e2bd"
133 | integrity sha512-+ANnmjkcOBaV25n0+M0Bere3roeVAnwlKW65qagtuAfIxXF9YxUneRyAn/RDcIdRa7QrjRNJL3jR7T43ObGe8Q==
134 |
135 | "@rollup/rollup-linux-arm-gnueabihf@4.6.0":
136 | version "4.6.0"
137 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.6.0.tgz#12fad1802f500a0196ab0bb4dbb776aaabdedcc7"
138 | integrity sha512-tBTSIkjSVUyrekddpkAqKOosnj1Fc0ZY0rJL2bIEWPKqlEQk0paORL9pUIlt7lcGJi3LzMIlUGXvtNi1Z6MOCQ==
139 |
140 | "@rollup/rollup-linux-arm64-gnu@4.6.0":
141 | version "4.6.0"
142 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.6.0.tgz#6de1caa2c9952d16dafa21dd26da9562d4ea2112"
143 | integrity sha512-Ed8uJI3kM11de9S0j67wAV07JUNhbAqIrDYhQBrQW42jGopgheyk/cdcshgGO4fW5Wjq97COCY/BHogdGvKVNQ==
144 |
145 | "@rollup/rollup-linux-arm64-musl@4.6.0":
146 | version "4.6.0"
147 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.6.0.tgz#ef9cae3d22c8c44ff4f271e308bf1c013348bdc0"
148 | integrity sha512-mZoNQ/qK4D7SSY8v6kEsAAyDgznzLLuSFCA3aBHZTmf3HP/dW4tNLTtWh9+LfyO0Z1aUn+ecpT7IQ3WtIg3ViQ==
149 |
150 | "@rollup/rollup-linux-x64-gnu@4.6.0":
151 | version "4.6.0"
152 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.6.0.tgz#e9071050bed7c64a9fd964cde3c8bd139bf8e489"
153 | integrity sha512-rouezFHpwCqdEXsqAfNsTgSWO0FoZ5hKv5p+TGO5KFhyN/dvYXNMqMolOb8BkyKcPqjYRBeT+Z6V3aM26rPaYg==
154 |
155 | "@rollup/rollup-linux-x64-musl@4.6.0":
156 | version "4.6.0"
157 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.6.0.tgz#a4c7f5e0c363b2c34f6a7566b1c9da00bf0b96d0"
158 | integrity sha512-Bbm+fyn3S6u51urfj3YnqBXg5vI2jQPncRRELaucmhBVyZkbWClQ1fEsRmdnCPpQOQfkpg9gZArvtMVkOMsh1w==
159 |
160 | "@rollup/rollup-win32-arm64-msvc@4.6.0":
161 | version "4.6.0"
162 | resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.6.0.tgz#9a7bfc660ac088d447858fc5223984deb979a55a"
163 | integrity sha512-+MRMcyx9L2kTrTUzYmR61+XVsliMG4odFb5UmqtiT8xOfEicfYAGEuF/D1Pww1+uZkYhBqAHpvju7VN+GnC3ng==
164 |
165 | "@rollup/rollup-win32-ia32-msvc@4.6.0":
166 | version "4.6.0"
167 | resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.6.0.tgz#7d5fb96e9f0120451da1fece5c74d2bb373f8925"
168 | integrity sha512-rxfeE6K6s/Xl2HGeK6cO8SiQq3k/3BYpw7cfhW5Bk2euXNEpuzi2cc7llxx1si1QgwfjNtdRNTGqdBzGlFZGFw==
169 |
170 | "@rollup/rollup-win32-x64-msvc@4.6.0":
171 | version "4.6.0"
172 | resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.6.0.tgz#15841505c7ec1648020941d04ca0210f88c59e3a"
173 | integrity sha512-QqmCsydHS172Y0Kc13bkMXvipbJSvzeglBncJG3LsYJSiPlxYACz7MmJBs4A8l1oU+jfhYEIC/+AUSlvjmiX/g==
174 |
175 | "@yarnpkg/lockfile@^1.1.0":
176 | version "1.1.0"
177 | resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31"
178 | integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==
179 |
180 | ansi-styles@^4.1.0:
181 | version "4.3.0"
182 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
183 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
184 | dependencies:
185 | color-convert "^2.0.1"
186 |
187 | at-least-node@^1.0.0:
188 | version "1.0.0"
189 | resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
190 | integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
191 |
192 | balanced-match@^1.0.0:
193 | version "1.0.2"
194 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
195 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
196 |
197 | brace-expansion@^1.1.7:
198 | version "1.1.11"
199 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
200 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
201 | dependencies:
202 | balanced-match "^1.0.0"
203 | concat-map "0.0.1"
204 |
205 | braces@^3.0.2:
206 | version "3.0.2"
207 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
208 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
209 | dependencies:
210 | fill-range "^7.0.1"
211 |
212 | call-bind@^1.0.5:
213 | version "1.0.5"
214 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513"
215 | integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==
216 | dependencies:
217 | function-bind "^1.1.2"
218 | get-intrinsic "^1.2.1"
219 | set-function-length "^1.1.1"
220 |
221 | chalk@^4.1.2:
222 | version "4.1.2"
223 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
224 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
225 | dependencies:
226 | ansi-styles "^4.1.0"
227 | supports-color "^7.1.0"
228 |
229 | ci-info@^3.7.0:
230 | version "3.9.0"
231 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4"
232 | integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
233 |
234 | color-convert@^2.0.1:
235 | version "2.0.1"
236 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
237 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
238 | dependencies:
239 | color-name "~1.1.4"
240 |
241 | color-name@~1.1.4:
242 | version "1.1.4"
243 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
244 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
245 |
246 | concat-map@0.0.1:
247 | version "0.0.1"
248 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
249 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
250 |
251 | cross-spawn@^7.0.3:
252 | version "7.0.3"
253 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
254 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
255 | dependencies:
256 | path-key "^3.1.0"
257 | shebang-command "^2.0.0"
258 | which "^2.0.1"
259 |
260 | define-data-property@^1.1.1:
261 | version "1.1.1"
262 | resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3"
263 | integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==
264 | dependencies:
265 | get-intrinsic "^1.2.1"
266 | gopd "^1.0.1"
267 | has-property-descriptors "^1.0.0"
268 |
269 | esbuild@^0.19.3:
270 | version "0.19.8"
271 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.8.tgz#ad05b72281d84483fa6b5345bd246c27a207b8f1"
272 | integrity sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w==
273 | optionalDependencies:
274 | "@esbuild/android-arm" "0.19.8"
275 | "@esbuild/android-arm64" "0.19.8"
276 | "@esbuild/android-x64" "0.19.8"
277 | "@esbuild/darwin-arm64" "0.19.8"
278 | "@esbuild/darwin-x64" "0.19.8"
279 | "@esbuild/freebsd-arm64" "0.19.8"
280 | "@esbuild/freebsd-x64" "0.19.8"
281 | "@esbuild/linux-arm" "0.19.8"
282 | "@esbuild/linux-arm64" "0.19.8"
283 | "@esbuild/linux-ia32" "0.19.8"
284 | "@esbuild/linux-loong64" "0.19.8"
285 | "@esbuild/linux-mips64el" "0.19.8"
286 | "@esbuild/linux-ppc64" "0.19.8"
287 | "@esbuild/linux-riscv64" "0.19.8"
288 | "@esbuild/linux-s390x" "0.19.8"
289 | "@esbuild/linux-x64" "0.19.8"
290 | "@esbuild/netbsd-x64" "0.19.8"
291 | "@esbuild/openbsd-x64" "0.19.8"
292 | "@esbuild/sunos-x64" "0.19.8"
293 | "@esbuild/win32-arm64" "0.19.8"
294 | "@esbuild/win32-ia32" "0.19.8"
295 | "@esbuild/win32-x64" "0.19.8"
296 |
297 | fill-range@^7.0.1:
298 | version "7.0.1"
299 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
300 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
301 | dependencies:
302 | to-regex-range "^5.0.1"
303 |
304 | find-yarn-workspace-root@^2.0.0:
305 | version "2.0.0"
306 | resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd"
307 | integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==
308 | dependencies:
309 | micromatch "^4.0.2"
310 |
311 | fs-extra@^9.0.0:
312 | version "9.1.0"
313 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
314 | integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
315 | dependencies:
316 | at-least-node "^1.0.0"
317 | graceful-fs "^4.2.0"
318 | jsonfile "^6.0.1"
319 | universalify "^2.0.0"
320 |
321 | fs.realpath@^1.0.0:
322 | version "1.0.0"
323 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
324 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
325 |
326 | fsevents@~2.3.2, fsevents@~2.3.3:
327 | version "2.3.3"
328 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
329 | integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
330 |
331 | function-bind@^1.1.2:
332 | version "1.1.2"
333 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
334 | integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
335 |
336 | get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2:
337 | version "1.2.2"
338 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b"
339 | integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==
340 | dependencies:
341 | function-bind "^1.1.2"
342 | has-proto "^1.0.1"
343 | has-symbols "^1.0.3"
344 | hasown "^2.0.0"
345 |
346 | glob@^7.1.3:
347 | version "7.2.3"
348 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
349 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
350 | dependencies:
351 | fs.realpath "^1.0.0"
352 | inflight "^1.0.4"
353 | inherits "2"
354 | minimatch "^3.1.1"
355 | once "^1.3.0"
356 | path-is-absolute "^1.0.0"
357 |
358 | gopd@^1.0.1:
359 | version "1.0.1"
360 | resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
361 | integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==
362 | dependencies:
363 | get-intrinsic "^1.1.3"
364 |
365 | graceful-fs@^4.1.11, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
366 | version "4.2.11"
367 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
368 | integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
369 |
370 | has-flag@^4.0.0:
371 | version "4.0.0"
372 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
373 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
374 |
375 | has-property-descriptors@^1.0.0:
376 | version "1.0.1"
377 | resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340"
378 | integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==
379 | dependencies:
380 | get-intrinsic "^1.2.2"
381 |
382 | has-proto@^1.0.1:
383 | version "1.0.1"
384 | resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0"
385 | integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==
386 |
387 | has-symbols@^1.0.3:
388 | version "1.0.3"
389 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
390 | integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
391 |
392 | hasown@^2.0.0:
393 | version "2.0.0"
394 | resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c"
395 | integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==
396 | dependencies:
397 | function-bind "^1.1.2"
398 |
399 | inflight@^1.0.4:
400 | version "1.0.6"
401 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
402 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
403 | dependencies:
404 | once "^1.3.0"
405 | wrappy "1"
406 |
407 | inherits@2:
408 | version "2.0.4"
409 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
410 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
411 |
412 | is-docker@^2.0.0:
413 | version "2.2.1"
414 | resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
415 | integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
416 |
417 | is-number@^7.0.0:
418 | version "7.0.0"
419 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
420 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
421 |
422 | is-wsl@^2.1.1:
423 | version "2.2.0"
424 | resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
425 | integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
426 | dependencies:
427 | is-docker "^2.0.0"
428 |
429 | isarray@^2.0.5:
430 | version "2.0.5"
431 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
432 | integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
433 |
434 | isexe@^2.0.0:
435 | version "2.0.0"
436 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
437 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
438 |
439 | json-stable-stringify@^1.0.2:
440 | version "1.1.0"
441 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.1.0.tgz#43d39c7c8da34bfaf785a61a56808b0def9f747d"
442 | integrity sha512-zfA+5SuwYN2VWqN1/5HZaDzQKLJHaBVMZIIM+wuYjdptkaQsqzDdqjqf+lZZJUuJq1aanHiY8LhH8LmH+qBYJA==
443 | dependencies:
444 | call-bind "^1.0.5"
445 | isarray "^2.0.5"
446 | jsonify "^0.0.1"
447 | object-keys "^1.1.1"
448 |
449 | jsonfile@^6.0.1:
450 | version "6.1.0"
451 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
452 | integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
453 | dependencies:
454 | universalify "^2.0.0"
455 | optionalDependencies:
456 | graceful-fs "^4.1.6"
457 |
458 | jsonify@^0.0.1:
459 | version "0.0.1"
460 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978"
461 | integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==
462 |
463 | klaw-sync@^6.0.0:
464 | version "6.0.0"
465 | resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c"
466 | integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==
467 | dependencies:
468 | graceful-fs "^4.1.11"
469 |
470 | lru-cache@^6.0.0:
471 | version "6.0.0"
472 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
473 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
474 | dependencies:
475 | yallist "^4.0.0"
476 |
477 | micromatch@^4.0.2:
478 | version "4.0.5"
479 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
480 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
481 | dependencies:
482 | braces "^3.0.2"
483 | picomatch "^2.3.1"
484 |
485 | minimatch@^3.1.1:
486 | version "3.1.2"
487 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
488 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
489 | dependencies:
490 | brace-expansion "^1.1.7"
491 |
492 | minimist@^1.2.6:
493 | version "1.2.8"
494 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
495 | integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
496 |
497 | nanoid@^3.3.6:
498 | version "3.3.7"
499 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
500 | integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
501 |
502 | object-keys@^1.1.1:
503 | version "1.1.1"
504 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
505 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
506 |
507 | once@^1.3.0:
508 | version "1.4.0"
509 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
510 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
511 | dependencies:
512 | wrappy "1"
513 |
514 | open@^7.4.2:
515 | version "7.4.2"
516 | resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321"
517 | integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==
518 | dependencies:
519 | is-docker "^2.0.0"
520 | is-wsl "^2.1.1"
521 |
522 | os-tmpdir@~1.0.2:
523 | version "1.0.2"
524 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
525 | integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==
526 |
527 | patch-package@^8.0.0:
528 | version "8.0.0"
529 | resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-8.0.0.tgz#d191e2f1b6e06a4624a0116bcb88edd6714ede61"
530 | integrity sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA==
531 | dependencies:
532 | "@yarnpkg/lockfile" "^1.1.0"
533 | chalk "^4.1.2"
534 | ci-info "^3.7.0"
535 | cross-spawn "^7.0.3"
536 | find-yarn-workspace-root "^2.0.0"
537 | fs-extra "^9.0.0"
538 | json-stable-stringify "^1.0.2"
539 | klaw-sync "^6.0.0"
540 | minimist "^1.2.6"
541 | open "^7.4.2"
542 | rimraf "^2.6.3"
543 | semver "^7.5.3"
544 | slash "^2.0.0"
545 | tmp "^0.0.33"
546 | yaml "^2.2.2"
547 |
548 | path-is-absolute@^1.0.0:
549 | version "1.0.1"
550 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
551 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
552 |
553 | path-key@^3.1.0:
554 | version "3.1.1"
555 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
556 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
557 |
558 | picocolors@^1.0.0:
559 | version "1.0.0"
560 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
561 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
562 |
563 | picomatch@^2.3.1:
564 | version "2.3.1"
565 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
566 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
567 |
568 | postcss@^8.4.31:
569 | version "8.4.31"
570 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d"
571 | integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==
572 | dependencies:
573 | nanoid "^3.3.6"
574 | picocolors "^1.0.0"
575 | source-map-js "^1.0.2"
576 |
577 | rimraf@^2.6.3:
578 | version "2.7.1"
579 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
580 | integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
581 | dependencies:
582 | glob "^7.1.3"
583 |
584 | rollup@^4.2.0:
585 | version "4.6.0"
586 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.6.0.tgz#4f966f6dd3f6bafd01b864d68ba078d308b864fa"
587 | integrity sha512-R8i5Her4oO1LiMQ3jKf7MUglYV/mhQ5g5OKeld5CnkmPdIGo79FDDQYqPhq/PCVuTQVuxsWgIbDy9F+zdHn80w==
588 | optionalDependencies:
589 | "@rollup/rollup-android-arm-eabi" "4.6.0"
590 | "@rollup/rollup-android-arm64" "4.6.0"
591 | "@rollup/rollup-darwin-arm64" "4.6.0"
592 | "@rollup/rollup-darwin-x64" "4.6.0"
593 | "@rollup/rollup-linux-arm-gnueabihf" "4.6.0"
594 | "@rollup/rollup-linux-arm64-gnu" "4.6.0"
595 | "@rollup/rollup-linux-arm64-musl" "4.6.0"
596 | "@rollup/rollup-linux-x64-gnu" "4.6.0"
597 | "@rollup/rollup-linux-x64-musl" "4.6.0"
598 | "@rollup/rollup-win32-arm64-msvc" "4.6.0"
599 | "@rollup/rollup-win32-ia32-msvc" "4.6.0"
600 | "@rollup/rollup-win32-x64-msvc" "4.6.0"
601 | fsevents "~2.3.2"
602 |
603 | semver@^7.5.3:
604 | version "7.5.4"
605 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
606 | integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
607 | dependencies:
608 | lru-cache "^6.0.0"
609 |
610 | set-function-length@^1.1.1:
611 | version "1.1.1"
612 | resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed"
613 | integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==
614 | dependencies:
615 | define-data-property "^1.1.1"
616 | get-intrinsic "^1.2.1"
617 | gopd "^1.0.1"
618 | has-property-descriptors "^1.0.0"
619 |
620 | shebang-command@^2.0.0:
621 | version "2.0.0"
622 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
623 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
624 | dependencies:
625 | shebang-regex "^3.0.0"
626 |
627 | shebang-regex@^3.0.0:
628 | version "3.0.0"
629 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
630 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
631 |
632 | slash@^2.0.0:
633 | version "2.0.0"
634 | resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
635 | integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==
636 |
637 | source-map-js@^1.0.2:
638 | version "1.0.2"
639 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
640 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
641 |
642 | supports-color@^7.1.0:
643 | version "7.2.0"
644 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
645 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
646 | dependencies:
647 | has-flag "^4.0.0"
648 |
649 | three@^0.158.0:
650 | version "0.158.0"
651 | resolved "https://registry.yarnpkg.com/three/-/three-0.158.0.tgz#03ddd5b60ce9c31be8fb69f27a6d9efd49908ac3"
652 | integrity sha512-TALj4EOpdDPF1henk2Q+s17K61uEAAWQ7TJB68nr7FKxqwyDr3msOt5IWdbGm4TaWKjrtWS8DJJWe9JnvsWOhQ==
653 |
654 | tmp@^0.0.33:
655 | version "0.0.33"
656 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
657 | integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
658 | dependencies:
659 | os-tmpdir "~1.0.2"
660 |
661 | to-regex-range@^5.0.1:
662 | version "5.0.1"
663 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
664 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
665 | dependencies:
666 | is-number "^7.0.0"
667 |
668 | universalify@^2.0.0:
669 | version "2.0.1"
670 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d"
671 | integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==
672 |
673 | vite@^5.0.2:
674 | version "5.0.2"
675 | resolved "https://registry.yarnpkg.com/vite/-/vite-5.0.2.tgz#3c94627dace83b9bf04b64eaf618038e30fb95c0"
676 | integrity sha512-6CCq1CAJCNM1ya2ZZA7+jS2KgnhbzvxakmlIjN24cF/PXhRMzpM/z8QgsVJA/Dm5fWUWnVEsmtBoMhmerPxT0g==
677 | dependencies:
678 | esbuild "^0.19.3"
679 | postcss "^8.4.31"
680 | rollup "^4.2.0"
681 | optionalDependencies:
682 | fsevents "~2.3.3"
683 |
684 | which@^2.0.1:
685 | version "2.0.2"
686 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
687 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
688 | dependencies:
689 | isexe "^2.0.0"
690 |
691 | wrappy@1:
692 | version "1.0.2"
693 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
694 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
695 |
696 | yallist@^4.0.0:
697 | version "4.0.0"
698 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
699 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
700 |
701 | yaml@^2.2.2:
702 | version "2.3.4"
703 | resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2"
704 | integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==
705 |
--------------------------------------------------------------------------------